changeset 26590:301daf47e723

* emacs.c (fixup_locale): Don't bother to record initial locale. (synchronize_locale): If the desired locale is nil, treat it as if it were the empty string, so that we set the locale from the environment.
author Paul Eggert <eggert@twinsun.com>
date Thu, 25 Nov 1999 05:33:31 +0000
parents 929999669c16
children f7c7ef351f04
files src/ChangeLog src/emacs.c
diffstat 2 files changed, 9 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
Binary file src/ChangeLog has changed
--- a/src/emacs.c	Thu Nov 25 05:22:07 1999 +0000
+++ b/src/emacs.c	Thu Nov 25 05:33:31 1999 +0000
@@ -1911,30 +1911,26 @@
 void
 fixup_locale ()
 {
-  char *l;
-
   /* The Emacs Lisp reader needs LC_NUMERIC to be "C",
      so that numbers are read and printed properly for Emacs Lisp.  */
   setlocale (LC_NUMERIC, "C");
-
-#ifdef LC_MESSAGES
-  l = setlocale (LC_MESSAGES, (char *) 0);
-  Vprevious_system_messages_locale = l ? build_string (l) : Qnil;
-#endif
-  l = setlocale (LC_TIME, (char *) 0);
-  Vprevious_system_time_locale = l ? build_string (l) : Qnil;
 }
 
+/* Set system locale CATEGORY, with previous locale *PLOCALE, to
+   DESIRED_LOCALE.  */
 static void
 synchronize_locale (category, plocale, desired_locale)
      int category;
      Lisp_Object *plocale;
      Lisp_Object desired_locale;
 {
-  if (STRINGP (desired_locale)
-      && (NILP (*plocale) || NILP (Fstring_equal (*plocale, desired_locale)))
-      && setlocale (category, XSTRING (desired_locale)->data))
-    *plocale = desired_locale;
+  if (! EQ (*plocale, desired_locale))
+    {
+      *plocale = desired_locale;
+      setlocale (category, (STRINGP (desired_locale)
+			    ? XSTRING (desired_locale)->data
+			    : ""));
+    }
 }
 
 /* Set system time locale to match Vsystem_time_locale, if possible.  */