SL Baur writes:
Stephen J Turnbull <turnbull(a)sk.tsukuba.ac.jp> writes in
xemacs-beta(a)xemacs.org:
>>>>>> "Jan" == Jan Hebler <jan(a)hebler.de> writes:
Jan> the Bug occurs _only_ if i have set my LC_ALL to "DE_de" if i
Jan> set them to "C" everything works fine (well, except that my
Jan> LOCALES are now broken)
I see.
> This is a problem with internationalized software; the build
> environment and the run environment may be different. I don't see why
> this should bite you, I don't see anything in your backtraces that
> indicates you have called an OS utility that would try to "speak
> German" to XEmacs.
Actually, he did. GNU Libc is localized for German and I was able to
crash XEmacs/Mule by running under a French locale and then forcing an
error message related to sound.
After thinking more and more, i belive that this
bug is not related to
xemacs, but to glibc locales support. I have made an bug-report to them
now, since i found that other programs (esp. man and whatis) dieing too.
> However I believe the current idea is to build XEmacs in the C locale,
> so that the build environment is constant, then run it in your own
> locale. Have you tried `LC_ALL=C make beta; LC_ALL=de_DE src/xemacs'?
It's supposed to work that way.
Jan, please try the attached patch and see if building in your normal
German locale works.
Nice try, but the problem is, that if i set my LC_ALL to de_DE
xemacs
crash if i force him to the error "No such file or directory". If i set
my LC_ALL to C. everythig work. After 1h of fiddeling, i have made
the brutal patch, it works for me, but it is clear that problems
should not "fixed" that way
--- fileio.c.old Thu Nov 26 12:38:48 1998
+++ fileio.c Wed Mar 10 12:08:27 1999
@@ -235,14 +235,17 @@
class, errb);
}
-
+
/* Just like strerror(3), except return a lisp string instead of char *.
The string needs to be converted since it may be localized.
Perhaps this should use strerror-coding-system instead? */
Lisp_Object
lisp_strerror (int errnum)
{
- return build_ext_string (strerror (errnum), FORMAT_NATIVE);
+ if(errnum==2)
+ return build_ext_string ("Datei oder Verzeichniss nicht gefunden",
FORMAT_NATIVE);
+ else
+ return build_ext_string (strerror (errnum), FORMAT_NATIVE);
}
static Lisp_Object