Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_intl.c e_ipc_handlers.h 


Log Message:


intl - use env vars if set. allow reset to env vars default

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_intl.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -3 -r1.33 -r1.34
--- e_intl.c    31 May 2005 22:59:31 -0000      1.33
+++ e_intl.c    27 Jun 2005 13:24:56 -0000      1.34
@@ -11,6 +11,10 @@
  * * as we get translations add languages to the simplified lang list (C and 
en are currently the same, ja is a test translation - incomplete)
  */
 
+static char *_e_intl_orig_lc_messages = NULL;
+static char *_e_intl_orig_language = NULL;
+static char *_e_intl_orig_lc_all = NULL;
+static char *_e_intl_orig_lang = NULL;
 static char *_e_intl_language = NULL;
 static Evas_List *_e_intl_languages = NULL;
 
@@ -19,6 +23,8 @@
 int
 e_intl_init(void)
 {
+   char *s;
+   
    if (_e_intl_languages) return 1;
 
    /* supporeted languages - as we get translations - add them here
@@ -58,16 +64,24 @@
    ADD_LANG("it_IT.UTF-8");
    ADD_LANG("cs_CS.UTF-8");
 
+   if ((s = getenv("LC_MESSAGES"))) _e_intl_orig_lc_messages = strdup(s);
+   if ((s = getenv("LANGUAGE"))) _e_intl_orig_language = strdup(s);
+   if ((s = getenv("LC_ALL"))) _e_intl_orig_lc_all = strdup(s);
+   if ((s = getenv("LANG"))) _e_intl_orig_lang = strdup(s);
+   
    /* FIXME: NULL == use LANG. make this read a config value if it exists */
-   e_intl_language_set(getenv("LANG"));
+   e_intl_language_set(NULL);
    return 1;
 }
 
 int
 e_intl_shutdown(void)
 {
-   free(_e_intl_language);
-   _e_intl_language = NULL;
+   IF_FREE(_e_intl_language);
+   IF_FREE(_e_intl_orig_lc_messages);
+   IF_FREE(_e_intl_orig_language);
+   IF_FREE(_e_intl_orig_lc_all);
+   IF_FREE(_e_intl_orig_lang);
    evas_list_free(_e_intl_languages);
    return 1;
 }
@@ -100,6 +114,15 @@
    
    /* FIXME: determine if in user or system locale dir */
    if (_e_intl_language) free(_e_intl_language);
+   /* NULL lang means set everything back to the original environemtn defaults 
*/
+   if (!lang)
+     {
+       if (_e_intl_orig_lc_messages) e_util_env_set("LC_MESSAGES", 
_e_intl_orig_lc_messages);
+       if (_e_intl_orig_language) e_util_env_set("LANGUAGE", 
_e_intl_orig_language);
+       if (_e_intl_orig_lc_all) e_util_env_set("LC_ALL", _e_intl_orig_lc_all);
+       if (_e_intl_orig_lang) e_util_env_set("LANG", _e_intl_orig_lang);
+     }
+   if (!lang) lang = getenv("LC_MESSAGES");
    if (!lang) lang = getenv("LANGUAGE");
    if (!lang) lang = getenv("LC_ALL");
    if (!lang) lang = getenv("LANG");
@@ -107,8 +130,9 @@
      {
        _e_intl_language = strdup(lang);
        e_util_env_set("LANGUAGE", _e_intl_language);
-       if (getenv("LC_ALL")) e_util_env_set("LC_ALL", _e_intl_language);
-       if (getenv("LANG")) e_util_env_set("LANG", _e_intl_language);
+       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
      {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_ipc_handlers.h,v
retrieving revision 1.41
retrieving revision 1.42
diff -u -3 -r1.41 -r1.42
--- e_ipc_handlers.h    23 Jun 2005 03:29:37 -0000      1.41
+++ e_ipc_handlers.h    27 Jun 2005 13:24:56 -0000      1.42
@@ -903,7 +903,10 @@
    STRING(s, HDL);
    IF_FREE(e_config->language);
    e_config->language = strdup(s);
-   e_intl_language_set(e_config->language);
+   if ((e_config->language) && (strlen(e_config->language) > 0))
+     e_intl_language_set(e_config->language);
+   else
+     e_intl_language_set(NULL);
    SAVE;
    END_STRING(s);
 #elif (TYPE == E_REMOTE_IN)




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to