# HG changeset patch # User Paul Eggert # Date 943508011 0 # Node ID 301daf47e72337f3e080c7e83ba84c86b4cdbacd # Parent 929999669c16df1336af971d999505876c0144a3 * 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. diff -r 929999669c16 -r 301daf47e723 src/ChangeLog Binary file src/ChangeLog has changed diff -r 929999669c16 -r 301daf47e723 src/emacs.c --- 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. */