--- Begin Message ---
Subject: |
format-time-string ignores user's preferred locale |
Date: |
Thu, 23 Jan 2020 13:48:16 +1000 |
User-agent: |
mu4e 1.2.0; emacs 27.0.60 |
Calling function (format-time-string "%x") will output incorrect time
string, ignoring user's preferred locale.
* Steps to reproduce:
1. ensure locale is correct with M-x getenv RET LANG RET
-> en_AU.UTF-8
2. M-: (format-time-string "%x") RET
-> "01/23/20"
3. repeat for env LC_TIME
* Expected results:
The format for %x as per the docs:
%x is the locale’s "preferred" date format.
en_AU locale's "preferred" date format should be DD/MM/YYYY:
"23/01/2020"
i.e. the same as output from shell:
$ locale
LANG="en_AU.UTF-8"
LC_COLLATE="en_AU.UTF-8"
LC_CTYPE="en_AU.UTF-8"
LC_MESSAGES="en_AU.UTF-8"
LC_MONETARY="en_AU.UTF-8"
LC_NUMERIC="en_AU.UTF-8"
LC_TIME="en_AU.UTF-8"
LC_ALL=
$ date +%x
23/01/2020
* Actual results:
"01/23/20"
GNU Emacs 27.0.60 (build 1, x86_64-apple-darwin19.2.0, NS appkit-1894.20
Version 10.15.2 (Build 19C57)) of 2020-01-18
--- End Message ---
--- Begin Message ---
Subject: |
Re: bug#39248: format-time-string ignores user's preferred locale |
Date: |
Sun, 26 Jan 2020 00:35:31 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
On 1/25/20 3:18 AM, Alan Third wrote:
On Thu, Jan 23, 2020 at 11:35:20PM -0800, Paul Eggert wrote:
#ifdef HAVE_NS
ns_pool = ns_alloc_autorelease_pool ();
-#ifdef NS_IMPL_GNUSTEP
- /* GNUstep stupidly resets our locale settings after we made them. */
- fixup_locale ();
-#endif
Hi Paul, this LGTM, but I’m just curious if you’re sure we don’t need
that code above any more?
Although I don't use GNUstep and haven't tested the code, as I recall GNUstep
initializes itself on its first call (which is why the fixup_locale call was
there, as ns_alloc_autorelease_pool was the first call to GNUstep), and if so
then we don't need fixup_locale there anymore since we now call fixup_locale
earlier, just after calling ns_init_locale which calls NSLocale currentlocale
should cause GNUstep to initialize itself.
If I'm wrong feel free to put that code back in, but in the meantime I installed
the patch as-is, as Paul R. reports that it works for him.
--- End Message ---