diff options
author | Andreas Schwab <schwab@suse.de> | 2013-11-11 18:09:18 +0100 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2013-11-18 12:50:09 +0100 |
commit | a7931fcfba2a5007021f8d10fffa5f51651ad7b3 (patch) | |
tree | 95ee74831a1fcc8cad2b92cb26af5396837bf45e /locale/programs | |
parent | 728dab0e13529ba8778e6ef07e2cc80eddf028b5 (diff) | |
download | glibc-a7931fcfba2a5007021f8d10fffa5f51651ad7b3.tar glibc-a7931fcfba2a5007021f8d10fffa5f51651ad7b3.tar.gz glibc-a7931fcfba2a5007021f8d10fffa5f51651ad7b3.tar.bz2 glibc-a7931fcfba2a5007021f8d10fffa5f51651ad7b3.zip |
Properly handle unavailable elements in LC_MONETARY category
Diffstat (limited to 'locale/programs')
-rw-r--r-- | locale/programs/ld-monetary.c | 3 | ||||
-rw-r--r-- | locale/programs/ld-numeric.c | 3 | ||||
-rw-r--r-- | locale/programs/locale.c | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/locale/programs/ld-monetary.c b/locale/programs/ld-monetary.c index ec86223029..c88275f1cc 100644 --- a/locale/programs/ld-monetary.c +++ b/locale/programs/ld-monetary.c @@ -677,6 +677,9 @@ monetary_read (struct linereader *ldfile, struct localedef_t *result, if (!ignore_content) { + /* A single -1 means no grouping. */ + if (act == 1 && grouping[0] == '\177') + act--; grouping[act++] = '\0'; monetary->mon_grouping = xrealloc (grouping, act); diff --git a/locale/programs/ld-numeric.c b/locale/programs/ld-numeric.c index 093a04951e..f759947de4 100644 --- a/locale/programs/ld-numeric.c +++ b/locale/programs/ld-numeric.c @@ -305,6 +305,9 @@ numeric_read (struct linereader *ldfile, struct localedef_t *result, if (now->tok != tok_eol) goto err_label; + /* A single -1 means no grouping. */ + if (act == 1 && grouping[0] == '\177') + act--; grouping[act++] = '\0'; numeric->grouping = xrealloc (grouping, act); diff --git a/locale/programs/locale.c b/locale/programs/locale.c index 14d34e693d..c0bdb6c36d 100644 --- a/locale/programs/locale.c +++ b/locale/programs/locale.c @@ -895,7 +895,7 @@ show_info (const char *name) printf ("%s=", item->name); if (val != NULL) - printf ("%d", *val == '\177' ? -1 : *val); + printf ("%d", *val == '\377' ? -1 : *val); putchar ('\n'); } break; |