X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fshared%2Flocale-util.c;h=61db9a8125d1a77c4072ea4efa569bd192075d42;hb=92947a0878c5d129adb37ddbfdef35274ef5c6ae;hp=68851ae13d38b0b40f245d859dea979b93e3f386;hpb=d5099efc47d4e6ac60816b5381a5f607ab03f06e;p=elogind.git diff --git a/src/shared/locale-util.c b/src/shared/locale-util.c index 68851ae13..61db9a812 100644 --- a/src/shared/locale-util.c +++ b/src/shared/locale-util.c @@ -195,7 +195,7 @@ bool locale_is_valid(const char *name) { if (!utf8_is_valid(name)) return false; - if (!filename_is_safe(name)) + if (!filename_is_valid(name)) return false; if (!string_is_safe(name)) @@ -203,3 +203,22 @@ bool locale_is_valid(const char *name) { return true; } + +static const char * const locale_variable_table[_VARIABLE_LC_MAX] = { + [VARIABLE_LANG] = "LANG", + [VARIABLE_LANGUAGE] = "LANGUAGE", + [VARIABLE_LC_CTYPE] = "LC_CTYPE", + [VARIABLE_LC_NUMERIC] = "LC_NUMERIC", + [VARIABLE_LC_TIME] = "LC_TIME", + [VARIABLE_LC_COLLATE] = "LC_COLLATE", + [VARIABLE_LC_MONETARY] = "LC_MONETARY", + [VARIABLE_LC_MESSAGES] = "LC_MESSAGES", + [VARIABLE_LC_PAPER] = "LC_PAPER", + [VARIABLE_LC_NAME] = "LC_NAME", + [VARIABLE_LC_ADDRESS] = "LC_ADDRESS", + [VARIABLE_LC_TELEPHONE] = "LC_TELEPHONE", + [VARIABLE_LC_MEASUREMENT] = "LC_MEASUREMENT", + [VARIABLE_LC_IDENTIFICATION] = "LC_IDENTIFICATION" +}; + +DEFINE_STRING_TABLE_LOOKUP(locale_variable, LocaleVariable);