summaryrefslogtreecommitdiffstats
path: root/lib/libc/locale/lmessages.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc/locale/lmessages.c')
-rw-r--r--lib/libc/locale/lmessages.c25
1 files changed, 9 insertions, 16 deletions
diff --git a/lib/libc/locale/lmessages.c b/lib/libc/locale/lmessages.c
index 99c2adf..8342164 100644
--- a/lib/libc/locale/lmessages.c
+++ b/lib/libc/locale/lmessages.c
@@ -51,23 +51,16 @@ static char * messages_locale_buf;
int
__messages_load_locale(const char *name) {
- int ret;
- ret = __part_load_locale(name, &_messages_using_locale,
- messages_locale_buf, "LC_MESSAGES", LCMESSAGES_SIZE_FULL,
+ /* Propose that we can have incomplete locale file (w/o "{yes,no}str").
+ Initialize them before loading. In case of complete locale, they'll
+ be initialized to loaded value, otherwise they'll not be touched. */
+ _messages_locale.yesstr = empty;
+ _messages_locale.nostr = empty;
+
+ return __part_load_locale(name, &_messages_using_locale,
+ messages_locale_buf, "LC_MESSAGES",
+ LCMESSAGES_SIZE_FULL, LCMESSAGES_SIZE_MIN,
(const char **)&_messages_locale);
- if (ret == 0) {
- /* Assume that we have incomplete locale file (without
- * "yesstr" and "nostr" declared. Try it also.
- */
- ret = __part_load_locale(name, &_messages_using_locale,
- messages_locale_buf, "LC_MESSAGES", LCMESSAGES_SIZE_MIN,
- (const char **)&_messages_locale);
- if (ret == 0) {
- _messages_locale.yesstr = empty;
- _messages_locale.nostr = empty;
- }
- }
- return ret;
}
struct lc_messages_T *
OpenPOWER on IntegriCloud