: speaking, when a XIM client is under initialization, it should call
: the following sequence of functions:
:
: setlocale(LC_CTYPE, "");
: XSupportsLocale();
: XSetLocaleModifiers("");
: XRegisterIMInstantiateCallback(display, NULL, NULL, NULL,
: im_callback, NULL);
:
: But now in rxvt the call of "XSetLocaleModifiers" is missing. So I made
: the following patch for rxvt-2.7.7 to fix this problem. I also tested
Hello,
Sorry that I did not check my patch very carefully. In the original
rxvt-2.7.7 source not only the "XSetLocaleModifiers" is missing, but
also the "XSupportsLocale" is, too. So I made another patch to fix
both of these, as attached in the end of the mail. Please forget the
previous patch. Thanks very much.
Best Regards,
T.H.Hsieh
diff -r --unified orig/rxvt-2.7.7/src/init.c rxvt-2.7.7/src/init.c
--- orig/rxvt-2.7.7/src/init.c Tue Aug 7 13:45:45 2001
+++ rxvt-2.7.7/src/init.c Tue Oct 9 22:11:11 2001
@@ -562,7 +562,15 @@
XA_STRING, 8, PropModeReplace,
(unsigned char *)r->h->locale, STRLEN(r->h->locale));
+ if (XSupportsLocale() != True) {
+ rxvt_print_error("The locale is not supported by Xlib.");
+ return;
+ }
rxvt_setTermFontSet(r, 0);
+ if (XSetLocaleModifiers("") == NULL) {
+ rxvt_print_error("Initially XSetLocaleModifiers false.");
+ return;
+ }
/* To avoid Segmentation Fault in C locale: Solaris only? */
if (STRCMP(r->h->locale, "C"))
XRegisterIMInstantiateCallback(r->Xdisplay, NULL, NULL, NULL,