Hi! ----
During testing I found a small glich if a script or user switches the locale in a subshell. Example: -- snip -- $ set | /usr/xpg4/bin/egrep "LC_|LANG" LANG=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 $ (export LC_ALL=ja_JP.UTF-8 ; man ls) # view manual page in japanese $ foo /bin/ksh93: foo: not found [<japanese characters here>] -- snip -- It seems the subshell sets LC_ALL to "ja_JP.UTF-8" but when the subshell exists |setlocale()| is not called again to restore the values. Forcing an internal call to |fork()| for a subshell for example using the $ ulimit # builtin works around the problem. Example: -- snip -- $ set | /usr/xpg4/bin/egrep "LC_|LANG" LANG=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 # call ulimit to make sure the subshell runs in a |fork()|'ed child process $ (ulimit -c 0 ; export LC_ALL=ja_JP.UTF-8 ; man ls) # view manual page in japanese $ foo /bin/ksh93: foo: not found [No such file or directory] -- snip -- ---- Bye, Roland -- __ . . __ (o.\ \/ /.o) roland.mainz at nrubsig.org \__\/\/__/ MPEG specialist, C&&JAVA&&Sun&&Unix programmer /O /==\ O\ TEL +49 641 7950090 (;O/ \/ \O;)
