From: Po Lu Date: Thu, 6 Oct 2022 02:55:25 +0000 (+0800) Subject: Minor fixes to IM locale handling X-Git-Tag: emacs-29.0.90~1855^2~12 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8e8d37aa326870ebf0ff6c07b4e37ae6abcf79b6;p=emacs.git Minor fixes to IM locale handling * lisp/term/x-win.el (x-get-input-coding-system): Translate locales. * src/xterm.c (x_term_init): If the X library doesn't support the current locale, don't set up input methods. --- diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el index 57c6b785e73..62684f52cc9 100644 --- a/lisp/term/x-win.el +++ b/lisp/term/x-win.el @@ -1623,7 +1623,7 @@ found." (if (equal x-locale "C") ;; Treat the C locale specially, as it means "ascii" under X. 'ascii - (let ((locale (downcase x-locale))) + (let ((locale (locale-translate (downcase x-locale)))) (or (locale-name-match locale locale-preferred-coding-systems) (when locale (if (string-match "\\.\\([^@]+\\)" locale) diff --git a/src/xterm.c b/src/xterm.c index f3bfae457ba..37e7916486e 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -29252,7 +29252,11 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) #endif #ifdef HAVE_X_I18N - xim_initialize (dpyinfo, resource_name); + /* Avoid initializing input methods if the X library does not + support Emacs's locale. When the current locale is not + supported, decoding input method strings becomes undefined. */ + if (!XSupportsLocale ()) + xim_initialize (dpyinfo, resource_name); #endif xsettings_initialize (dpyinfo);