On Sat, Jun 15, 2013, at 0:35, Eon S. Jeon wrote: > Thanks for your interest. > > Would you explain how you tested? I've done only few tests: echo & vim. > The cursor handling should be incomplete, because I used a very hacky > method to workaround the innate ASCII-ism structure.
For cursor behavior, generally what other terminals do is allow the cursor to "actually" be in either of the two cells (and movement commands can place it in either one), but they _draw_ it over the whole character (moving the cursor from one half of a wide character to the other therefore has no visual change). When e.g. horizontal movement in something like a text editor goes one whole wide character at a time, it's generally because the application is enforcing this by moving it two columns explicitly. What you should do is run the command "stty cbreak -echo; cat", then do some typing (and pasting of wide characters), moving around the cursor with arrows (which send single cursor movement escape sequences), and type in other escape sequences for anything you're curious about. I've attached a file I used as a test suite to discover the behavior of other terminals. Note that you should do this outside of tmux if you use it; tmux itself has some bugs in this area that can make it hard to understand what's going on.
[0m#8[H [4;10H[0;7mOverwrite Tests:[36;44m [5;10HEEEEEEEEEEEEE [6;10HEEEEEEEEEEEEE [7;10HEEEEEEEEEEEEE [8;10HEEEEEEEEEEEEE [9;10HEEEEEEEEEEEEE [9;10H[41;33mA[AB[AC[AD[AEF[BG[BH[BI[BJ[BK [9;72H[0;7mWrap tests:[m [10;73Hï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ [11;74Hï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ [12;75Hï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ [13;76Hï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ï¼ [15H[0;7mDeletion Tests:[m [16Hï¼ï¼ï¼[16H[1P [17Hï¼ï¼ï¼[17H[2P [18Hï¼ï¼ï¼[18H[3P [19Hï¼ï¼ï¼[19H[4P [20Hï¼ï¼ï¼[20H[5P [21Hï¼ï¼ï¼[21H[6P [16;10Hï¼ï¼ï¼[16;10H[P [17;10Hï¼ï¼ï¼[17;11H[P [18;10Hï¼ï¼ï¼[18;12H[P [19;10Hï¼ï¼ï¼[19;13H[P [20;10Hï¼ï¼ï¼[20;14H[P [21;10Hï¼ï¼ï¼[21;15H[P [16;20Hï¼ï¼ï¼[16;20H[P [17;20Hï¼ï¼ï¼[17;20H[P[P [18;20Hï¼ï¼ï¼[18;20H[P[P[P [19;20Hï¼ï¼ï¼[19;20H[P[P[P[P [20;20Hï¼ï¼ï¼[20;20H[P[P[P[P[P [21;20Hï¼ï¼ï¼[21;20H[P[P[P[P[P[P [14;40H| [15;40H| [16;40H| [17;40H| [18;40H| [19;40H| [20;40H| [21;40H| [22;40H| [23;40H| [23H