On 06/15/2011 04:15 PM, Anton Shepelev wrote:
Nikolay Nikolov:

Basically,  all  it does is, it checks if the LANG
variable contains ґUTF-8' as a substring (not sure
if  it is the right way to do it, but it works for
Fedora,  Ubuntu,  OpenSUSE,  Mandriva  and  latest
Debian) and if it does, it writes UTF-8 characters
to the console, by  using  an  internal  CP437  to
UTF-8 conversion table.
Then my guessing was correct, but in this case there
is a better solution.  Instead  of  relying  on  the
value of LANG, FP-IDE should directly check the con-
sole mode. This can be  done  using  the  'kbd_mode'
command. If the mode reported is UTF-8, then use the
translation table, otherwise assume CP437.

At least, this will make it more reliable with UTF-8
consoles.
Yes, but there are still several issues:
1) It only works on the linux console. It doesn't work under xterm, gnome-terminal, konsole, etc and we still need a way to detect if they are in UTF-8 mode or not. 2) IIRC, it only checks if the keyboard input is in UTF-8 mode. What we actually care about is whether the console output (not input) is in UTF-8 mode. But I guess it's ok to assume that if the input is UTF-8, then then output is also most likely to be UTF-8. 3) I don't like the idea of having to invoke an external program and parse its output, but this could be done by directly invoking the ioctl that kbd_mode uses.

Do you know how many linux distros (besides Puppy Linux) would need this? When I came up with the 'UTF-8' string check in the LANG variable, I tested Fedora, Ubuntu, openSUSE, Mandriva and Debian and they all worked this way, so I figured it's a de facto standard.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to