summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--usr.bin/mklocale/yacc.y12
1 files changed, 11 insertions, 1 deletions
diff --git a/usr.bin/mklocale/yacc.y b/usr.bin/mklocale/yacc.y
index 9709400..14a0ba1 100644
--- a/usr.bin/mklocale/yacc.y
+++ b/usr.bin/mklocale/yacc.y
@@ -116,7 +116,17 @@ table : entry
;
entry : ENCODING STRING
- { strncpy(new_locale.encoding, $2, sizeof(new_locale.encoding)); }
+ { if (strcmp($2, "NONE") &&
+ strcmp($2, "UTF2") &&
+ strcmp($2, "UTF-8") &&
+ strcmp($2, "EUC") &&
+ strcmp($2, "GBK") &&
+ strcmp($2, "BIG5") &&
+ strcmp($2, "MSKanji")) {
+ fprintf(stderr, "ENCODING %s is not supported by libc\n", $2);
+ exit(1);
+ }
+ strncpy(new_locale.encoding, $2, sizeof(new_locale.encoding)); }
| VARIABLE
{ new_locale.variable_len = strlen($1) + 1;
new_locale.variable = malloc(new_locale.variable_len);
OpenPOWER on IntegriCloud