Commit aa2bc82
Fix graph diagram CJK/Unicode character rendering
- Use runewidth.StringWidth() for display width calculation instead of
len() which returns byte count
- Use runewidth.RuneWidth() to properly position wide characters
- Fill subsequent positions with empty string for wide CJK characters
that occupy 2 terminal columns
- Add Korean language test case (korean_nodes.txt)
This fixes double-encoding bug where UTF-8 bytes were incorrectly
interpreted as Unicode code points, causing garbled output like
"íì¤í¸" instead of "테스트".
Affected functions:
- drawText(): text rendering
- drawBox(): node label rendering
- drawSubgraphLabel(): subgraph label rendering
- setColumnWidth(): box width calculation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>1 parent 2955c2e commit aa2bc82
3 files changed
Lines changed: 73 additions & 12 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
55 | 65 | | |
56 | 66 | | |
57 | 67 | | |
| |||
228 | 238 | | |
229 | 239 | | |
230 | 240 | | |
| 241 | + | |
| 242 | + | |
231 | 243 | | |
232 | | - | |
233 | | - | |
234 | | - | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
235 | 254 | | |
236 | 255 | | |
237 | 256 | | |
| |||
317 | 336 | | |
318 | 337 | | |
319 | 338 | | |
| 339 | + | |
| 340 | + | |
320 | 341 | | |
321 | | - | |
| 342 | + | |
322 | 343 | | |
323 | 344 | | |
324 | 345 | | |
325 | | - | |
326 | | - | |
327 | | - | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
328 | 357 | | |
| 358 | + | |
329 | 359 | | |
330 | 360 | | |
331 | 361 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
36 | 37 | | |
37 | 38 | | |
38 | 39 | | |
39 | | - | |
| 40 | + | |
| 41 | + | |
40 | 42 | | |
41 | 43 | | |
42 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
0 commit comments