From 2a5b2f4c76fe85aa37d5d99adc13f6d1f1e313e3 Mon Sep 17 00:00:00 2001 From: BurnZeZ Date: Tue, 1 Mar 2016 21:21:06 -0500 Subject: [PATCH] dict mkindex: code cleanup handle malloc failure check if open failed _before_ seeking better arg handling --- sys/src/cmd/dict/mkindex.c | 36 +++++++++++++++++++++--------------- sys/src/cmd/dict/roget.c | 2 +- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/sys/src/cmd/dict/mkindex.c b/sys/src/cmd/dict/mkindex.c index 230247927..3ec1dac3f 100644 --- a/sys/src/cmd/dict/mkindex.c +++ b/sys/src/cmd/dict/mkindex.c @@ -22,6 +22,13 @@ Dict *dict; /* current dictionary */ Entry getentry(long); +void +usage(void) +{ + fprint(2, "usage: %s [-D] [-d dictname]\n", argv0); + exits("usage"); +} + void main(int argc, char **argv) { @@ -34,16 +41,16 @@ main(int argc, char **argv) dict = &dicts[0]; ARGBEGIN { case 'd': - p = ARGF(); + p = EARGF(usage()); dict = 0; - if(p) { - for(i=0; dicts[i].name; i++) - if(strcmp(p, dicts[i].name)==0) { - dict = &dicts[i]; - break; - } + + for(i=0; dicts[i].name; i++) { + if(strcmp(p, dicts[i].name)==0) { + dict = &dicts[i]; + break; + } } - if(!dict) { + if(dict == nil) { err("unknown dictionary: %s", p); exits("nodict"); } @@ -51,14 +58,16 @@ main(int argc, char **argv) case 'D': debug++; break; - ARGEND } + default: + usage(); + }ARGEND USED(argc,argv); bdict = Bopen(dict->path, OREAD); - ae = Bseek(bdict, 0, 2); if(!bdict) { err("can't open dictionary %s", dict->path); exits("nodict"); } + ae = Bseek(bdict, 0, 2); for(a = 0; a < ae; a = (*dict->nextoff)(a+1)) { linelen = 0; e = getentry(a); @@ -91,11 +100,8 @@ getentry(long b) n = e-b; if(n) { if(n > anslen) { - ans.start = realloc(ans.start, n); - if(!ans.start) { - err("out of memory"); - exits("nomem"); - } + if((ans.start = realloc(ans.start, n)) == nil) + sysfatal("realloc: %r"); anslen = n; } Bseek(bdict, b, 0); diff --git a/sys/src/cmd/dict/roget.c b/sys/src/cmd/dict/roget.c index 36eee7e1c..dd25d7991 100644 --- a/sys/src/cmd/dict/roget.c +++ b/sys/src/cmd/dict/roget.c @@ -62,7 +62,7 @@ rogetprintentry(Entry e, int cmd) p += 4; spc = 0; } - + if (p < e.end -2 && strncmp(p, "[ ", 2) == 0){ /* twiddle layout */ outchars(" ["); continue;