changeset 33869:e41a7b1e443f

(init_environment): Set LANG environment variable based on locale settings, if not set.
author Jason Rumney <jasonr@gnu.org>
date Fri, 24 Nov 2000 21:30:06 +0000
parents d77db72e017d
children 8816b5542315
files src/w32.c
diffstat 1 files changed, 19 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/w32.c	Fri Nov 24 21:29:07 2000 +0000
+++ b/src/w32.c	Fri Nov 24 21:30:06 2000 +0000
@@ -702,6 +702,7 @@
     int i;
     LPBYTE lpval;
     DWORD dwType;
+    char locale_name[32];
 
     static struct env_entry
     {
@@ -721,9 +722,25 @@
 	 is then ignored.  */
       /*  {"INFOPATH", "%emacs_dir%/info"},  */
       {"EMACSDOC", "%emacs_dir%/etc"},
-      {"TERM", "cmd"}
+      {"TERM", "cmd"},
+      {"LANG", NULL},
     };
 
+  /* Get default locale info and use it for LANG.  */
+  if (GetLocaleInfo (LOCALE_USER_DEFAULT,
+                     LOCALE_SABBREVLANGNAME | LOCALE_USE_CP_ACP,
+                     locale_name, sizeof (locale_name)))
+    {
+      for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
+        {
+          if (strcmp (env_vars[i].name, "LANG") == 0)
+            {
+              env_vars[i].def_value = locale_name;
+              break;
+            }
+        }
+    }
+
 #define SET_ENV_BUF_SIZE (4 * MAX_PATH)	/* to cover EMACSLOADPATH */
 
     /* Treat emacs_dir specially: set it unconditionally based on our
@@ -752,7 +769,7 @@
 	}
     }
 
-    for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) 
+    for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++)
       {
 	if (!getenv (env_vars[i].name))
 	  {