Преглед на файлове

fix locale environment variable logic for empty strings

per POSIX (XBD 8.2) LC_*/LANG environment variables set to to the
empty string are supposed to be treated as if they were not set at
all.
Rich Felker преди 10 години
родител
ревизия
674e28af2d
променени са 1 файла, в които са добавени 3 реда и са изтрити 3 реда
  1. 3 3
      src/locale/__setlocalecat.c

+ 3 - 3
src/locale/__setlocalecat.c

@@ -16,9 +16,9 @@ static const char envvars[][12] = {
 int __setlocalecat(locale_t loc, int cat, const char *val)
 {
 	if (!*val) {
-		(val = getenv("LC_ALL")) ||
-		(val = getenv(envvars[cat])) ||
-		(val = getenv("LANG")) ||
+		(val = getenv("LC_ALL")) && *val ||
+		(val = getenv(envvars[cat])) && *val ||
+		(val = getenv("LANG")) && *val ||
 		(val = "C.UTF-8");
 	}