aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert1998-08-27 02:00:35 +0000
committerPaul Eggert1998-08-27 02:00:35 +0000
commit71f8198a32ea19add5ed5af1f3cf882c4a6822ce (patch)
tree6e0d8e739e4e4e99492d5d8ba0fb74d1f0beb11c /src
parent1697ec54e8a440bf6cd76b629e609b070ca072b0 (diff)
downloademacs-71f8198a32ea19add5ed5af1f3cf882c4a6822ce.tar.gz
emacs-71f8198a32ea19add5ed5af1f3cf882c4a6822ce.zip
(fixup_locale): New function. For now, it resets
LC_TIME to "C" (reverting the 1998-08-07 change), and also resets LC_MESSAGES to "C". (x_term_init): Use it to fix up the locale after setlocale (LC_ALL, "").
Diffstat (limited to 'src')
-rw-r--r--src/xterm.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/xterm.c b/src/xterm.c
index aedac4714db..8b6b98019c6 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -6950,6 +6950,28 @@ same_x_server (name1, name2)
6950} 6950}
6951#endif 6951#endif
6952 6952
6953#if defined (HAVE_X_I18N) || (defined (USE_X_TOOLKIT) && defined (HAVE_X11XTR6))
6954/* Recover from setlocale (LC_ALL, ""). */
6955static void
6956fixup_locale ()
6957{
6958 /* Currently we require strerror to use the "C" locale,
6959 since we don't yet support decoding its string result. */
6960#ifdef LC_MESSAGES
6961 setlocale (LC_MESSAGES, "C");
6962#endif
6963
6964 /* The Emacs Lisp reader needs LC_NUMERIC to be "C",
6965 so that numbers are read and printed properly for Emacs Lisp. */
6966 setlocale (LC_NUMERIC, "C");
6967
6968 /* Currently we require strftime to use the "C" locale,
6969 since we don't yet support encoding its format argument,
6970 or decoding its string result. */
6971 setlocale (LC_TIME, "C");
6972}
6973#endif
6974
6953struct x_display_info * 6975struct x_display_info *
6954x_term_init (display_name, xrm_option, resource_name) 6976x_term_init (display_name, xrm_option, resource_name)
6955 Lisp_Object display_name; 6977 Lisp_Object display_name;
@@ -6973,8 +6995,7 @@ x_term_init (display_name, xrm_option, resource_name)
6973 6995
6974#ifdef HAVE_X_I18N 6996#ifdef HAVE_X_I18N
6975 setlocale (LC_ALL, ""); 6997 setlocale (LC_ALL, "");
6976 /* In case we just overrode what init_lread did, redo it. */ 6998 fixup_locale ();
6977 setlocale (LC_NUMERIC, "C");
6978#endif 6999#endif
6979 7000
6980#ifdef USE_X_TOOLKIT 7001#ifdef USE_X_TOOLKIT
@@ -7005,7 +7026,7 @@ x_term_init (display_name, xrm_option, resource_name)
7005 7026
7006#ifdef HAVE_X11XTR6 7027#ifdef HAVE_X11XTR6
7007 /* I think this is to compensate for XtSetLanguageProc. */ 7028 /* I think this is to compensate for XtSetLanguageProc. */
7008 setlocale (LC_NUMERIC, "C"); 7029 fixup_locale ();
7009#endif 7030#endif
7010 } 7031 }
7011 7032