|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
insstr (from ncursesw) UTF-8 issue Hello all!
I've discovered a problem (I think it's a bug, but maybe I'm doing something wrong) about the behavior of the insstr procedure in the context of UTF-8 encodings. (I'm using the ncursesw library.) To keep the email short, I've attached a tar file that contains all the necessary code to reproduce the bug. (Both a Python version (from which I've started) and a C version.) * context.txt contains the current versions of ncursesw library, and the result of the linking of my application; * bug.c and bug.py contain the sourcecode; * bug.c.bash and bug.py.bash the commands used to run the code; In summary the following code does not work correctly: ... mvinsstr (4, 0, "|aaist|"); // the correct expected order (without special characters) mvinsstr (5, 0, "|\xc4\x83\xc3\xa2\xc3\xae\xc5\x9f\xc5\xa3|"); // the wrong order (with special characters) ... It should print the characters |ăâîşţ| (some Romanian diacritics) (as in |aaist|), but instead it prints ||ţşîâă. It seems it sorts the characters... Now the addstr works as expected. Any problems on my side? Any solutions? Thanks, Ciprian Craciun. _______________________________________________ Bug-ncurses mailing list Bug-ncurses@... http://lists.gnu.org/mailman/listinfo/bug-ncurses |
|
|
|
|
|
Re: insstr (from ncursesw) UTF-8 issueOn Thu, 15 Oct 2009, Ciprian Dorin, Craciun wrote:
> Any updates on the instr issue? I made a fix here: 20090912 + add some test programs (and make these use the same special keys by sharing linedata.h functions): test/test_addstr.c test/test_addwstr.c test/test_addchstr.c test/test_add_wchstr.c + correct internal _nc_insert_ch() to use _nc_insert_wch() when inserting wide characters, since the wins_wch() function that it used did not update the cursor position (report by Ciprian Craciun). (it seems to work; I'll be out of town this Saturday and won't have time for more than a small fix or two before then). > > > On Tue, Sep 8, 2009 at 3:49 AM, Thomas Dickey <dickey@...> wrote: >> On Mon, 7 Sep 2009, Ciprian Dorin, Craciun wrote: >> >>> Hello all! >>> >>> I've discovered a problem (I think it's a bug, but maybe I'm doing >>> something wrong) about the behavior of the insstr procedure in the >>> context of UTF-8 encodings. (I'm using the ncursesw library.) >>> >>> To keep the email short, I've attached a tar file that contains >>> all the necessary code to reproduce the bug. (Both a Python version >>> (from which I've started) and a C version.) >>> * context.txt contains the current versions of ncursesw library, >>> and the result of the linking of my application; >>> * bug.c and bug.py contain the sourcecode; >>> * bug.c.bash and bug.py.bash the commands used to run the code; >>> >>> In summary the following code does not work correctly: >>> .... >>> mvinsstr (4, 0, "|aaist|"); // the correct expected order >>> (without special characters) >>> mvinsstr (5, 0, "|\xc4\x83\xc3\xa2\xc3\xae\xc5\x9f\xc5\xa3|"); >>> // the wrong order (with special characters) >>> .... >>> >>> It should print the characters |ăâîşţ| (some Romanian diacritics) >>> (as in |aaist|), but instead it prints ||ţşîâă. It seems it sorts the >>> characters... Now the addstr works as expected. >> >> Offhand, it looks like a bug in ncurses - I'll check/see what the fix would >> be... >> >> (ins_wstr and related functions should work, though they're more cumbersome >> to use). >> >> -- >> Thomas E. Dickey >> http://invisible-island.net >> ftp://invisible-island.net > Thomas E. Dickey http://invisible-island.net ftp://invisible-island.net _______________________________________________ Bug-ncurses mailing list Bug-ncurses@... http://lists.gnu.org/mailman/listinfo/bug-ncurses |
|
|
Re: insstr (from ncursesw) UTF-8 issueOn Fri, Oct 16, 2009 at 2:34 AM, Thomas Dickey <dickey@...> wrote:
> On Thu, 15 Oct 2009, Ciprian Dorin, Craciun wrote: > >> Any updates on the instr issue? > > I made a fix here: > > 20090912 > + add some test programs (and make these use the same special keys > by sharing linedata.h functions): > test/test_addstr.c > test/test_addwstr.c > test/test_addchstr.c > test/test_add_wchstr.c > + correct internal _nc_insert_ch() to use _nc_insert_wch() when > inserting wide characters, since the wins_wch() function that it > used > did not update the cursor position (report by Ciprian Craciun). > > (it seems to work; I'll be out of town this Saturday and won't have time > for more than a small fix or two before then). > >> >> >> On Tue, Sep 8, 2009 at 3:49 AM, Thomas Dickey <dickey@...> wrote: >>> >>> On Mon, 7 Sep 2009, Ciprian Dorin, Craciun wrote: >>> >>>> Hello all! >>>> >>>> I've discovered a problem (I think it's a bug, but maybe I'm doing >>>> something wrong) about the behavior of the insstr procedure in the >>>> context of UTF-8 encodings. (I'm using the ncursesw library.) >>>> >>>> To keep the email short, I've attached a tar file that contains >>>> all the necessary code to reproduce the bug. (Both a Python version >>>> (from which I've started) and a C version.) >>>> * context.txt contains the current versions of ncursesw library, >>>> and the result of the linking of my application; >>>> * bug.c and bug.py contain the sourcecode; >>>> * bug.c.bash and bug.py.bash the commands used to run the code; >>>> >>>> In summary the following code does not work correctly: >>>> .... >>>> mvinsstr (4, 0, "|aaist|"); // the correct expected order >>>> (without special characters) >>>> mvinsstr (5, 0, "|\xc4\x83\xc3\xa2\xc3\xae\xc5\x9f\xc5\xa3|"); >>>> // the wrong order (with special characters) >>>> .... >>>> >>>> It should print the characters |ăâîşţ| (some Romanian diacritics) >>>> (as in |aaist|), but instead it prints ||ţşîâă. It seems it sorts the >>>> characters... Now the addstr works as expected. >>> >>> Offhand, it looks like a bug in ncurses - I'll check/see what the fix >>> would >>> be... >>> >>> (ins_wstr and related functions should work, though they're more >>> cumbersome >>> to use). >>> >>> -- >>> Thomas E. Dickey >>> http://invisible-island.net >>> ftp://invisible-island.net >> > > -- > Thomas E. Dickey > http://invisible-island.net > ftp://invisible-island.net Yes it works. Thanks! _______________________________________________ Bug-ncurses mailing list Bug-ncurses@... http://lists.gnu.org/mailman/listinfo/bug-ncurses |
| Free embeddable forum powered by Nabble | Forum Help |