diff --git a/src/common/iso639.cpp b/src/common/iso639.cpp index 7c5e64139..24af51be5 100644 --- a/src/common/iso639.cpp +++ b/src/common/iso639.cpp @@ -544,18 +544,33 @@ char *get_iso639_english_name(const char *iso639_2_code) { return NULL; } -int +bool is_valid_iso639_2_code(const char *iso639_2_code) { int i; i = 0; while (iso639_languages[i].iso639_2_code != NULL) { if (!strcmp(iso639_languages[i].iso639_2_code, iso639_2_code)) - return i; + return true; i++; } - return 0; + return false; +} + +bool +is_valid_iso639_1_code(const char *iso639_1_code) { + int i; + + i = 0; + while (iso639_languages[i].iso639_2_code != NULL) { + if ((iso639_languages[i].iso639_1_code != NULL) && + !strcmp(iso639_languages[i].iso639_1_code, iso639_1_code)) + return true; + i++; + } + + return false; } void diff --git a/src/common/iso639.h b/src/common/iso639.h index f1da2a8b4..3b790f0bc 100644 --- a/src/common/iso639.h +++ b/src/common/iso639.h @@ -22,7 +22,8 @@ typedef struct { extern const iso639_language_t MTX_DLL_API iso639_languages[]; -int MTX_DLL_API is_valid_iso639_2_code(const char *iso639_2_code); +bool MTX_DLL_API is_valid_iso639_2_code(const char *iso639_2_code); +bool MTX_DLL_API is_valid_iso639_1_code(const char *iso639_1_code); const char *MTX_DLL_API get_iso639_english_name(const char *iso639_2_code); const char *MTX_DLL_API map_iso639_1_to_iso639_2(const char *iso639_1_code); const char *MTX_DLL_API map_iso639_2_to_iso639_1(const char *iso639_2_code);