]> git.eshelyaron.com Git - emacs.git/commitdiff
Minor fixes to IM locale handling
authorPo Lu <luangruo@yahoo.com>
Thu, 6 Oct 2022 02:55:25 +0000 (10:55 +0800)
committerPo Lu <luangruo@yahoo.com>
Thu, 6 Oct 2022 02:56:27 +0000 (10:56 +0800)
* 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.

lisp/term/x-win.el
src/xterm.c

index 57c6b785e7329101988bebeb2dafe631d8483d56..62684f52cc914db1dd3a046c0906e598acebdb51 100644 (file)
@@ -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)
index f3bfae457ba85afb48752002051c510204af168d..37e7916486ea8331a50649956a140f0e5702a707 100644 (file)
@@ -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);