Enlightenment CVS committal

Author  : stffrdhrn
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_intl.c 


Log Message:
Try to fix logic for setting locales when NULL is passed, This shoud satisfy
the needs of both Mathieu and andyetitmoves.
- Get lang from env vars
- If we were passed NULL do not set any env vars

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_intl.c,v
retrieving revision 1.60
retrieving revision 1.61
diff -u -3 -r1.60 -r1.61
--- e_intl.c    2 Dec 2005 19:20:48 -0000       1.60
+++ e_intl.c    3 Dec 2005 05:56:10 -0000       1.61
@@ -163,28 +163,43 @@
 e_intl_language_set(const char *lang)
 {
    char *alias_locale;
-
+   int set_envars;
+   
    if (_e_intl_language) free(_e_intl_language);
-   /* NULL lang means set everything back to the original environment defaults 
*/
+   set_envars = 1;
+   /* NULL lang means set everything back to the original environment 
+    * defaults 
+    */
    if (!lang)
      {
        e_util_env_set("LC_MESSAGES", _e_intl_orig_lc_messages);
        e_util_env_set("LANGUAGE", _e_intl_orig_language);
        e_util_env_set("LC_ALL", _e_intl_orig_lc_all);
        e_util_env_set("LANG", _e_intl_orig_lang);
+       
+       lang = getenv("LC_MESSAGES");
+       if (!lang) lang = getenv("LANGUAGE");
+       if (!lang) lang = getenv("LC_ALL");
+       if (!lang) lang = getenv("LANG");
+       
+       set_envars = 0;
      }
-   if (!lang) lang = getenv("LC_MESSAGES");
-   if (!lang) lang = getenv("LANGUAGE");
-   if (!lang) lang = getenv("LC_ALL");
-   if (!lang) lang = getenv("LANG");
+    
    if (lang)
      {
        _e_intl_language = strdup(lang);
        e_util_env_set("LANGUAGE", _e_intl_language);
-       /* FIXME: maybe we should set these anyway? */
-       if (getenv("LANG"))        e_util_env_set("LANG", _e_intl_language);
-       if (getenv("LC_ALL"))      e_util_env_set("LC_ALL", _e_intl_language);
-       if (getenv("LC_MESSAGES")) e_util_env_set("LC_MESSAGES", 
_e_intl_language);
+       /* Only set env vars is a non NULL locale was passed */
+       if (set_envars)
+         {
+            /* FIXME: maybe we should set these anyway? */
+            if (getenv("LANG"))        
+              e_util_env_set("LANG", _e_intl_language);
+            if (getenv("LC_ALL"))
+              e_util_env_set("LC_ALL", _e_intl_language);
+            if (getenv("LC_MESSAGES"))
+              e_util_env_set("LC_MESSAGES", _e_intl_language);
+         }
      }
    else
      {




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to