aboutsummaryrefslogtreecommitdiff
path: root/locale/programs
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2013-11-11 18:09:18 +0100
committerAndreas Schwab <schwab@suse.de>2013-11-18 12:50:09 +0100
commita7931fcfba2a5007021f8d10fffa5f51651ad7b3 (patch)
tree95ee74831a1fcc8cad2b92cb26af5396837bf45e /locale/programs
parent728dab0e13529ba8778e6ef07e2cc80eddf028b5 (diff)
downloadglibc-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.c3
-rw-r--r--locale/programs/ld-numeric.c3
-rw-r--r--locale/programs/locale.c2
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;