Hello,

Trying to use busybox (1.18.4) as a daily ash shell (config attached),
I encounter some problems with my UTF-8 locale. These appear only when
you open a login ash session (no problem when this one is opened from
a bash session), that's why I created a temporary user to reproduce
the bug:

 # useradd unibug -s /bin/ash -d /tmp  -p ""
 # echo "export LANG=fr_FR.utf8  PS1=prompt:\ " >/tmp/.profile
 # export LANG=fr_FR.utf8
 # xterm -fa DejaVuSansMono:size=10:Bold -exec su - unibug
 prompt: x="é"       # "é" turns on "?" if the cursor is moved back.
 prompt: echo ${#x}
  2
 prompt: éééé        # press [del] as far as you can...
 prom                # ... and eat the prompt.

It seems the shell ignores the locale and considers a byte-oriented
charset is used in input, so each wide character is acknowledged to
be several (no problem if you redo the test using "fr_FR" as locale).

I've first tryed to use the libc Unicode routines
(CONFIG_UNICODE_USING_LOCAL option, with glibc-2.11.1 on Slackware
13.1), and got a worse result, as I couldn't even enter an accented
character (but ASCII worked well).

Then I've finally disabled the LANG checking
(CONFIG_FEATURE_CHECK_UNICODE_IN_ENV option), which seems to fix the
problem for me (but will certainly mess on a non-Unicode system). So,
the problem appears to be in the way busybox interacts with the LANG
environment variable.

Regards, expecting this to be useful for you,
Seb.

Attachment: config.gz
Description: Binary data

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to