diff options
author | Tianjie Xu <xunchang@google.com> | 2016-04-20 00:02:41 +0200 |
---|---|---|
committer | Tianjie Xu <xunchang@google.com> | 2016-04-20 23:50:35 +0200 |
commit | 2430e2978b95ff364c304e0aeeeaeec6df929146 (patch) | |
tree | 0a0fced9ceaaebcf03e36c30548e93ac2992291e /minui | |
parent | Merge "Update the system update animation." into nyc-dev (diff) | |
download | android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.tar android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.tar.gz android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.tar.bz2 android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.tar.lz android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.tar.xz android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.tar.zst android_bootable_recovery-2430e2978b95ff364c304e0aeeeaeec6df929146.zip |
Diffstat (limited to 'minui')
-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 5d69ea2d0..40d3c2c88 100644 --- a/minui/resources.cpp +++ b/minui/resources.cpp @@ -370,21 +370,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, |