]> code.citadel.org Git - citadel.git/blobdiff - webcit/gettext.c
* Added a null pointer check to the 'language' variable to prevent crash
[citadel.git] / webcit / gettext.c
index 930d9df38abb4e33b425b54e2fdd2b048ab6c618..917ee4bd30508f8159482cde961798279c4bdda3 100644 (file)
@@ -6,10 +6,6 @@
 #include "webserver.h"
 
 #ifdef ENABLE_NLS
-
-#define NUM_LANGS 10           /* how many different locales do we know? */
-#define SEARCH_LANG 20         /* how many langs should we parse? */
-
 /* actual supported locales */
 const char *AvailLang[NUM_LANGS] = {
        "C",
@@ -238,14 +234,14 @@ void stop_selected_language(void) {
 
 void preset_locale(void)
 {
-#ifndef HAVE_USELOCALE
 #ifdef HAVE_GETTEXT
        char *language;
        
-       lprintf(9, "Nailing locale to %s\n", getenv("LANG"));
-       language = getenv("LANG");
-       setlocale(LC_MESSAGES, language);
-#endif
+       language = getenv("WEBCIT_LANG");
+       if ((language) && (!IsEmptyStr(language)) && (strcmp(language, "UNLIMITED") != 0)) {
+               lprintf(9, "Nailing locale to %s\n", language);
+               setlocale(LC_MESSAGES, language);
+       }
 #endif
 }
 
@@ -306,6 +302,9 @@ void ShutdownLocale(void)
 }
 
 #else  /* ENABLE_NLS */
+const char *AvailLang[NUM_LANGS] = {
+       "C"};
+
 /** \brief dummy for non NLS enabled systems */
 void tmplput_offer_languages(StrBuf *Target, WCTemplputParams *TP)
 {