From 0c8559bbd1761feef1cb076d620b1ce63b20b942 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 25 Nov 1999 05:33:31 +0000 Subject: [PATCH] * 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. --- src/ChangeLog | 7 +++++++ src/emacs.c | 22 +++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index a9c1983a7a2..b53b9d7c24c 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +1999-11-25 Paul Eggert + + * 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. + 1999-11-25 Kenichi Handa * fileio.c (Finsert_file_contents): Set buffer-file-coding-system diff --git a/src/emacs.c b/src/emacs.c index 4ec6e612a63..91b0c773645 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -1911,30 +1911,26 @@ You must run Emacs in batch mode in order to dump it.") 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. */ -- 2.39.5