ecere/sys/GetEnvironment (win32); i18n: More fixes
authorJerome St-Louis <jerome@ecere.com>
Fri, 28 Mar 2014 15:07:48 +0000 (11:07 -0400)
committerJerome St-Louis <jerome@ecere.com>
Fri, 28 Mar 2014 15:07:48 +0000 (11:07 -0400)
ecere/src/sys/System.c
ecere/src/sys/i18n.ec

index 87ea268..8f06578 100644 (file)
@@ -263,7 +263,8 @@ char * System_GetEnvironment(char * envName, char * envValue, int max)
       envValue[0] = 0;
 
    __ecereNameSpace__ecere__com__eSystem_Delete(_wenvName);
-   return success ? envValue : null;
+   // Distinguish empty vs. unexisting environment variables with GetLastError()
+   return (success || !GetLastError()) ? envValue : null;
 #else
    char * result = getenv(envName);
    if(result)
index e31f8fa..709189b 100644 (file)
@@ -60,7 +60,10 @@ public dllexport void LoadTranslatedStrings(String moduleName, char * name)
       colon = strstr(language, ":");
       if(colon) *colon = 0;
       locale = language;
+      if(!strcmpi(locale, "zh"))
+         strcpy(locale, "zh_CN");
    }
+
    if(locale)
    {
       char * under;