summaryrefslogtreecommitdiffstats
path: root/usr.bin/mklocale
diff options
context:
space:
mode:
authorcharnier <charnier@FreeBSD.org>2003-06-17 19:58:33 +0000
committercharnier <charnier@FreeBSD.org>2003-06-17 19:58:33 +0000
commit501fae1f3adb464813b6e3cf54a12207b16cfa5b (patch)
tree48e8d79b1446259444e1c6d295b17644e8b49217 /usr.bin/mklocale
parentfd75f32b6552025854ca95ffe373b5bfea2be472 (diff)
downloadFreeBSD-src-501fae1f3adb464813b6e3cf54a12207b16cfa5b.zip
FreeBSD-src-501fae1f3adb464813b6e3cf54a12207b16cfa5b.tar.gz
Bump WARNS to 6. Add usage(). Use provided xmalloc() instead of malloc().
Use err().
Diffstat (limited to 'usr.bin/mklocale')
-rw-r--r--usr.bin/mklocale/Makefile2
-rw-r--r--usr.bin/mklocale/ldef.h1
-rw-r--r--usr.bin/mklocale/yacc.y99
3 files changed, 45 insertions, 57 deletions
diff --git a/usr.bin/mklocale/Makefile b/usr.bin/mklocale/Makefile
index eb63413..0f0978f 100644
--- a/usr.bin/mklocale/Makefile
+++ b/usr.bin/mklocale/Makefile
@@ -2,7 +2,7 @@
# $FreeBSD$
PROG= mklocale
-WARNS?= 4
+WARNS?= 6
SRCS= yacc.y lex.l y.tab.h
CFLAGS+= -I. -I${.CURDIR}
diff --git a/usr.bin/mklocale/ldef.h b/usr.bin/mklocale/ldef.h
index 532787c..2a253b8 100644
--- a/usr.bin/mklocale/ldef.h
+++ b/usr.bin/mklocale/ldef.h
@@ -34,6 +34,7 @@
* SUCH DAMAGE.
*
* @(#)ldef.h 8.1 (Berkeley) 6/6/93
+ * $FreeBSD$
*/
/*
diff --git a/usr.bin/mklocale/yacc.y b/usr.bin/mklocale/yacc.y
index d6a13acc..6ec0db3 100644
--- a/usr.bin/mklocale/yacc.y
+++ b/usr.bin/mklocale/yacc.y
@@ -77,6 +77,7 @@ _RuneLocale new_locale = { "", "", NULL, NULL, 0, {}, {}, {},
void set_map(rune_map *, rune_list *, unsigned long);
void set_digitmap(rune_map *, rune_list *);
void add_map(rune_map *, rune_list *, unsigned long);
+static void usage(void);
%}
%union {
@@ -127,7 +128,7 @@ entry : ENCODING STRING
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);
+ new_locale.variable = xmalloc(new_locale.variable_len);
strcpy((char *)new_locale.variable, $1);
}
| INVALID RUNE
@@ -146,28 +147,28 @@ entry : ENCODING STRING
list : RUNE
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $1;
$$->max = $1;
$$->next = 0;
}
| RUNE THRU RUNE
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $1;
$$->max = $3;
$$->next = 0;
}
| list RUNE
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $2;
$$->max = $2;
$$->next = $1;
}
| list RUNE THRU RUNE
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $2;
$$->max = $4;
$$->next = $1;
@@ -176,7 +177,7 @@ list : RUNE
map : LBRK RUNE RUNE RBRK
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $2;
$$->max = $2;
$$->map = $3;
@@ -184,7 +185,7 @@ map : LBRK RUNE RUNE RBRK
}
| map LBRK RUNE RUNE RBRK
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $3;
$$->max = $3;
$$->map = $4;
@@ -192,7 +193,7 @@ map : LBRK RUNE RUNE RBRK
}
| LBRK RUNE THRU RUNE ':' RUNE RBRK
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $2;
$$->max = $4;
$$->map = $6;
@@ -200,7 +201,7 @@ map : LBRK RUNE RUNE RBRK
}
| map LBRK RUNE THRU RUNE ':' RUNE RBRK
{
- $$ = (rune_list *)malloc(sizeof(rune_list));
+ $$ = (rune_list *)xmalloc(sizeof(rune_list));
$$->min = $3;
$$->max = $5;
$$->map = $7;
@@ -224,8 +225,6 @@ main(int ac, char *av[])
{
int x;
- extern char *optarg;
- extern int optind;
fp = stdout;
while ((x = getopt(ac, av, "do:")) != EOF) {
@@ -235,16 +234,12 @@ main(int ac, char *av[])
break;
case 'o':
locale_file = optarg;
- if ((fp = fopen(locale_file, "w")) == 0) {
- perror(locale_file);
- exit(1);
- }
+ if ((fp = fopen(locale_file, "w")) == 0)
+ err(1, "%s", locale_file);
atexit(cleanout);
break;
default:
- usage:
- fprintf(stderr, "usage: mklocale [-d] [-o output] [source]\n");
- exit(1);
+ usage();
}
}
@@ -252,13 +247,11 @@ main(int ac, char *av[])
case 0:
break;
case 1:
- if (freopen(av[optind], "r", stdin) == 0) {
- perror(av[optind]);
- exit(1);
- }
+ if (freopen(av[optind], "r", stdin) == 0)
+ err(1, "%s", av[optind]);
break;
default:
- goto usage;
+ usage();
}
for (x = 0; x < _CACHED_RUNES; ++x) {
mapupper.map[x] = x;
@@ -272,6 +265,13 @@ main(int ac, char *av[])
return(0);
}
+static void
+usage()
+{
+ fprintf(stderr, "usage: mklocale [-d] [-o output] [source]\n");
+ exit(1);
+}
+
void
yyerror(s)
const char *s;
@@ -284,10 +284,8 @@ xmalloc(sz)
unsigned int sz;
{
void *r = malloc(sz);
- if (!r) {
- perror("xmalloc");
- exit(1);
- }
+ if (!r)
+ errx(1, "xmalloc");
return(r);
}
@@ -296,10 +294,8 @@ xlalloc(sz)
unsigned int sz;
{
unsigned long *r = (unsigned long *)malloc(sz * sizeof(unsigned long));
- if (!r) {
- perror("xlalloc");
- exit(1);
- }
+ if (!r)
+ errx(1, "xlalloc");
return(r);
}
@@ -310,10 +306,8 @@ xrelalloc(old, sz)
{
unsigned long *r = (unsigned long *)realloc((char *)old,
sz * sizeof(unsigned long));
- if (!r) {
- perror("xrelalloc");
- exit(1);
- }
+ if (!r)
+ errx(1, "xrelalloc");
return(r);
}
@@ -443,8 +437,7 @@ add_map(map, list, flag)
r->next = list;
return;
}
- fprintf(stderr, "Error: conflicting map entries\n");
- exit(1);
+ errx(1, "error: conflicting map entries");
}
if (list->min >= r->min && list->max <= r->max) {
@@ -580,34 +573,28 @@ dump_tables()
}
}
- first_d = -1;
+ first_d = curr_d = -1;
for (x = 0; x < _CACHED_RUNES; ++x) {
unsigned long r = types.map[x];
if (r & _CTYPE_D) {
if (first_d < 0)
first_d = curr_d = x;
- else if (x != curr_d + 1) {
- fprintf(stderr, "Error: DIGIT range is not contiguous\n");
- exit(1);
- } else if (x - first_d > 9) {
- fprintf(stderr, "Error: DIGIT range is too big\n");
- exit(1);
- } else
+ else if (x != curr_d + 1)
+ errx(1, "error: DIGIT range is not contiguous");
+ else if (x - first_d > 9)
+ errx(1, "error: DIGIT range is too big");
+ else
curr_d++;
- if (!(r & _CTYPE_X)) {
- fprintf(stderr, "Error: DIGIT range is not a subset of XDIGIT range\n");
- exit(1);
- }
+ if (!(r & _CTYPE_X))
+ errx(1,
+ "error: DIGIT range is not a subset of XDIGIT range");
}
}
- if (first_d < 0) {
- fprintf(stderr, "Error: no DIGIT range defined in the single byte area\n");
- exit(1);
- } else if (curr_d - first_d < 9) {
- fprintf(stderr, "Error: DIGIT range is too small in the single byte area\n");
- exit(1);
- }
+ if (first_d < 0)
+ errx(1, "error: no DIGIT range defined in the single byte area");
+ else if (curr_d - first_d < 9)
+ errx(1, "error: DIGIT range is too small in the single byte area");
new_locale.invalid_rune = htonl(new_locale.invalid_rune);
OpenPOWER on IntegriCloud