ref: 4881ec7ed2252c269ef20ec5a68d0ac6f1b2b125
parent: ff0284a71c3c27710b7a15b6834df521cd3e5fab
author: BurnZeZ <brz-9dev@feline.systems>
date: Tue Mar 1 16:21:06 EST 2016
dict mkindex: code cleanup handle malloc failure check if open failed _before_ seeking better arg handling
--- a/sys/src/cmd/dict/mkindex.c
+++ b/sys/src/cmd/dict/mkindex.c
@@ -23,6 +23,13 @@
Entry getentry(long);
void
+usage(void)
+{+ fprint(2, "usage: %s [-D] [-d dictname]\n", argv0);
+ exits("usage");+}
+
+void
main(int argc, char **argv)
{int i;
@@ -34,16 +41,16 @@
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 @@
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 @@
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);
--- a/sys/src/cmd/dict/roget.c
+++ b/sys/src/cmd/dict/roget.c
@@ -62,7 +62,7 @@
p += 4;
spc = 0;
}
-
+
if (p < e.end -2 && strncmp(p, "[ ", 2) == 0){ /* twiddle layout */ outchars(" [");continue;
--
⑨