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.
This commit is contained in:
Po Lu 2022-10-06 10:55:25 +08:00
parent c690d1f15d
commit 8e8d37aa32
2 changed files with 6 additions and 2 deletions

View 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)

View 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);