TIP: Click on subject to list as thread! ANSI
echo: golded
to: Nicholas Boel
from: Vitaliy Aksyonov
date: 2024-03-02 22:42:00
subject: Re: Need volonteers to te

Hello Nicholas.

02 Mar 24 14:44, you wrote to me:

 VA>> Most probably it was some combination which made it looking
 VA>> almost correct. I think that screen may be the reason you saw
 VA>> pseudo-graphics

 NB> I'm no longer using screen or tmux, and this version (along with all
 NB> previous versions since you made the ncurses change) work the same and
 NB> show UTF-8 properly, except for what you describe below:

 VA>> more or less correctly. Remember those line wraps? That happens
 VA>> because GoldEd converts those symbols to UTF-8 first. All
 VA>> pseudo-graphics symbols represented as 3 bytes. So that line
 VA>> become 3 times longer in bytes. Then GoldEd tries to split
 VA>> message to lines and it uses bytes! not symbols. That's why it
 VA>> splits the line in the middle of those pseudo-graphics. Even
 VA>> worse, it may tear apart one UTF-8 symbol to two lines and it
 VA>> will be displayed incorrectly.

 NB> Yeah, I've noticed most of this.. and thank you for your explanation.
 NB> At least now I know why it is happening.

 VA>> GoldEd cannot work correctly with multibyte sequences. And even
 VA>> if it looks "correct", it's just because most English letters has
 VA>> same codes in cp437 and UTF-8.

 NB> Maybe simple ones, like german umlauts and whatnot. But cp437 doesn't
 NB> have any Cyrillic, Greek, Japanese, Chinese, etc.

 VA>> If you want to keep using UTF-8, I may only suggest to find
 VA>> version, which "works" for you and stick to it.

 NB> I already have!

 VA>> Until full UTF-8 support implemented in GoldEd (if that ever
 VA>> happen), don't expect it to work correctly, sorry.

 NB> That's ok. I had it somewhat working for awhile, the latest reverts
 NB> have changed that. I don't have an issue going back to a "lucky"
 NB> version. ;)

 VA>> It's your choice. Just be aware, that if it works - it's just
 VA>> pure luck and don't expect it to last. Until we implement UTF-8
 VA>> support. It may take years. Or never happen. It's not so easy to
 VA>> do it with backward compatibility wih all older systems like DOS
 VA>> or OS/2.

 NB> I don't mind being lucky sometimes.

I played little bit more with the code and different settings and found what was the difference between those two versions.

First - you use "wide" ncurses - ncursesw. I use ncurses.
Second. GoldEd incorrectly initializes ncurses in reverted version (like it was before I started to make any changes in GoldEd code). ncurses documentation explicitly says that before call initscr(), locale has to be set with setlocale. Otherwise it will use incorrect settings. Most probably plain C locale. I kinda get picture very similar to yours.

Did you have an issue with non-English chars when scrolling the message? What I see in UFT-8 terminal now - most of unicode text displayed correctly and pseudo-graphic too. Only pseudo-graphics lines broken similar to yours. And when I scroll text down - it corrupts.

If you may try to add one line of code to latest master and try it - that would be helpful.

goldlib/gcui/gkbdbase.cpp
line 149, right before initscr add this:

setlocale(LC_ALL, "");

If that gives you expected result - I'll push this change to master.

Hope you still want to dig this. :)

Vitaliy

--- GoldED+/LNX 1.1.5-b20240223
                    
* Origin: Aurora, Colorado (1:104/117)

SOURCE: echomail via QWK@pharcyde.org

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.