فهرست منبع

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");
 	}