Lines 512-522
unwrap(struct magic_set *ms, const char *fn)
Link Here
|
512 |
size_t llen = 0; |
512 |
size_t llen = 0; |
513 |
int wid = 0, cwid; |
513 |
int wid = 0, cwid; |
514 |
int e = 0; |
514 |
int e = 0; |
515 |
size_t fi = 0, fimax = 100; |
515 |
size_t fi = 0, fimax = 0; |
516 |
char **flist = CAST(char **, malloc(sizeof(*flist) * fimax)); |
516 |
char **flist = NULL; |
517 |
|
|
|
518 |
if (flist == NULL) |
519 |
out: file_err(EXIT_FAILURE, "Cannot allocate memory for file list"); |
520 |
|
517 |
|
521 |
if (strcmp("-", fn) == 0) |
518 |
if (strcmp("-", fn) == 0) |
522 |
f = stdin; |
519 |
f = stdin; |
Lines 530-555
out: file_err(EXIT_FAILURE, "Cannot allocate memory for file list");
Link Here
|
530 |
while ((len = getline(&line, &llen, f)) > 0) { |
527 |
while ((len = getline(&line, &llen, f)) > 0) { |
531 |
if (line[len - 1] == '\n') |
528 |
if (line[len - 1] == '\n') |
532 |
line[len - 1] = '\0'; |
529 |
line[len - 1] = '\0'; |
|
|
530 |
cwid = file_mbswidth(ms, line); |
531 |
if (nobuffer) { |
532 |
e |= process(ms, line, cwid); |
533 |
free(line); |
534 |
line = NULL; |
535 |
llen = 0; |
536 |
continue; |
537 |
} |
538 |
if (cwid > wid) |
539 |
wid = cwid; |
533 |
if (fi >= fimax) { |
540 |
if (fi >= fimax) { |
534 |
fimax += 100; |
541 |
fimax += 100; |
535 |
char **nf = CAST(char **, |
542 |
char **nf = CAST(char **, |
536 |
realloc(flist, fimax * sizeof(*flist))); |
543 |
realloc(flist, fimax * sizeof(*flist))); |
537 |
if (nf == NULL) |
544 |
if (nf == NULL) { |
538 |
goto out; |
545 |
file_err(EXIT_FAILURE, |
|
|
546 |
"Cannot allocate memory for file list"); |
547 |
} |
539 |
flist = nf; |
548 |
flist = nf; |
540 |
} |
549 |
} |
541 |
flist[fi++] = line; |
550 |
flist[fi++] = line; |
542 |
cwid = file_mbswidth(ms, line); |
|
|
543 |
if (cwid > wid) |
544 |
wid = cwid; |
545 |
line = NULL; |
551 |
line = NULL; |
546 |
llen = 0; |
552 |
llen = 0; |
547 |
} |
553 |
} |
548 |
|
554 |
|
549 |
fimax = fi; |
555 |
if (!nobuffer) { |
550 |
for (fi = 0; fi < fimax; fi++) { |
556 |
fimax = fi; |
551 |
e |= process(ms, flist[fi], wid); |
557 |
for (fi = 0; fi < fimax; fi++) { |
552 |
free(flist[fi]); |
558 |
e |= process(ms, flist[fi], wid); |
|
|
559 |
free(flist[fi]); |
560 |
} |
553 |
} |
561 |
} |
554 |
free(flist); |
562 |
free(flist); |
555 |
|
563 |
|