>>>> "me" == Stephen J Turnbull
<turnbull(a)sk.tsukuba.ac.jp> writes:
me> Maybe Xlib checks for LANG=C and says "I don't need no
me> steenkin' input method" if it finds it. I don't have X11R6.3
me> source easily available at the moment to check though.
I lied :-) I forgot that I built X during the "Sparc/Linux hates
XEmacs" fiasco, and the source was still hanging around (another
miracle of modern mass storage pricing).
>>>> "sb" == SL Baur <steve(a)xemacs.org>
writes:
sb> I've traced down some locale-related coredumps to the
sb> following code in _XimPreConnectionIM (xc/lib/X11/imDefIm.c)
sb> when LANG=C and the *inputMethod: X resource is set.
sb> /* locale name check */
sb> _XGetLCValues(lcd, XlcNLanguage, &language, XlcNTerritory,
&territory,
sb> XlcNCodeset, &codeset, NULL);
The call above uses functions from at least two other files in
xc/lib/X11 :-/, and several of the calls are through method pointers.
The pointers have names like `decode_data'; I have no idea how to
predict what that call will return for lcd->territory == NULL. (Well,
I do have one idea but I'm out of time tonight.)
sb> So why doesn't XEmacs drop core when linked against XIM/XLib
sb> (it does with Lesstif)? Both commercial Motif (as linked with
sb> Netscape and Java) and Lesstif blow chunks and die.
My current guess is that for string data those "decoders" substitute a
pointer to a null string for a NULL pointer. And that Motif uses its
own variant of _XGetLCValues (or something that it calls, or one of
the methods) that isn't so careful.
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +1 (298) 53-5091