emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-25 eb4a18c 1/2: Set locale when run from OS X GUI


From: Paul Eggert
Subject: [Emacs-diffs] emacs-25 eb4a18c 1/2: Set locale when run from OS X GUI
Date: Thu, 11 Feb 2016 02:36:57 +0000

branch: emacs-25
commit eb4a18c7db2286bcb9d9ea8f392175a28a86772c
Author: Alan Third <address@hidden>
Commit: Paul Eggert <address@hidden>

    Set locale when run from OS X GUI
    
    * src/emacs.c (main): Call ns_init_locale.
    * src/nsterm.m (ns_init_locale): Get locale from OS and set LANG.
    * src/nsterm.h: Include ns_init_locale.
---
 src/emacs.c  |    5 +++++
 src/nsterm.h |    2 ++
 src/nsterm.m |   21 +++++++++++++++++++++
 3 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/src/emacs.c b/src/emacs.c
index e3cfad0..ab5d777 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -1310,6 +1310,11 @@ Using an Emacs configured with --with-x-toolkit=lucid 
does not have this problem
   init_ntproc (dumping); /* must precede init_editfns.  */
 #endif
 
+#ifdef HAVE_NS
+  /* Initialise the locale from user defaults. */
+  ns_init_locale();
+#endif
+
   /* Initialize and GC-protect Vinitial_environment and
      Vprocess_environment before set_initial_environment fills them
      in.  */
diff --git a/src/nsterm.h b/src/nsterm.h
index 6ca584e..fa5399c 100644
--- a/src/nsterm.h
+++ b/src/nsterm.h
@@ -1141,6 +1141,8 @@ extern void  ns_retain_object (void *obj);
 extern void *ns_alloc_autorelease_pool (void);
 extern void ns_release_autorelease_pool (void *);
 extern const char *ns_get_defaults_value (const char *key);
+extern void ns_init_locale (void);
+
 
 /* in nsmenu */
 extern void update_frame_tool_bar (struct frame *f);
diff --git a/src/nsterm.m b/src/nsterm.m
index f77aadb..43d1377 100644
--- a/src/nsterm.m
+++ b/src/nsterm.m
@@ -586,6 +586,27 @@ ns_load_path (void)
 
 
 void
+ns_init_locale (void)
+/* OS X doesn't set any environment variables for the locale when run
+   from the GUI. Get the locale from the OS and set LANG. */
+{
+  NSLocale *locale = [NSLocale currentLocale];
+
+  NSTRACE ("ns_init_locale");
+
+  @try
+    {
+      /* Set LANG to locale, but not if LANG is already set. */
+      setenv("LANG", [[locale localeIdentifier] UTF8String], 0);
+    }
+  @catch (NSException *e)
+    {
+      NSLog (@"Locale detection failed: %@: %@", [e name], [e reason]);
+    }
+}
+
+
+void
 ns_release_object (void *obj)
 /* --------------------------------------------------------------------------
     Release an object (callable from C)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]