diff options
author | Tianjie Xu <xunchang@google.com> | 2016-04-21 00:12:11 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2016-04-21 00:12:11 +0200 |
commit | 45609d37efe3ced3a599b6eccd6e6dbd184152e6 (patch) | |
tree | 71cf320482cb3fc9a4c18cd539457f7160f96152 /minui | |
parent | Merge "Remove trailing punctuation from recovery strings." into nyc-dev (diff) | |
parent | Merge "Fix matches_locale function" into nyc-dev (diff) | |
download | android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.tar android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.tar.gz android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.tar.bz2 android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.tar.lz android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.tar.xz android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.tar.zst android_bootable_recovery-45609d37efe3ced3a599b6eccd6e6dbd184152e6.zip |
Diffstat (limited to '')
-rw-r--r-- | minui/minui.h | 2 | ||||
-rw-r--r-- | minui/resources.cpp | 21 |
2 files changed, 10 insertions, 13 deletions
diff --git a/minui/minui.h b/minui/minui.h index e3bc00548..fb0bbe10c 100644 --- a/minui/minui.h +++ b/minui/minui.h @@ -84,6 +84,8 @@ int ev_get_epollfd(); // Resources // +bool matches_locale(const char* prefix, const char* locale); + // res_create_*_surface() functions return 0 if no error, else // negative. // diff --git a/minui/resources.cpp b/minui/resources.cpp index cf738a7fb..730b05f13 100644 --- a/minui/resources.cpp +++ b/minui/resources.cpp @@ -371,21 +371,16 @@ int res_create_alpha_surface(const char* name, GRSurface** pSurface) { return result; } -static int matches_locale(const char* loc, const char* locale) { - if (locale == NULL) return 0; +// This function tests if a locale string stored in PNG (prefix) matches +// the locale string provided by the system (locale). +bool matches_locale(const char* prefix, const char* locale) { + if (locale == NULL) return false; - if (strcmp(loc, locale) == 0) return 1; + // Return true if the whole string of prefix matches the top part of + // locale. For instance, prefix == "en" matches locale == "en_US"; + // and prefix == "zh_CN" matches locale == "zh_CN_#Hans". - // if loc does *not* have an underscore, and it matches the start - // of locale, and the next character in locale *is* an underscore, - // that's a match. For instance, loc == "en" matches locale == - // "en_US". - - int i; - for (i = 0; loc[i] != 0 && loc[i] != '_'; ++i); - if (loc[i] == '_') return 0; - - return (strncmp(locale, loc, i) == 0 && locale[i] == '_'); + return (strncmp(prefix, locale, strlen(prefix)) == 0); } int res_create_localized_alpha_surface(const char* name, |