On Wednesday 24 August 2005 22:39, Brian Gerst wrote: > > Do this instead: > char ln[LINE_SIZE], *line; > Right, now why didn't I think of that :)
Jeff: Does the patch below agree with you more? Signed-off-by: Jesper Juhl <[EMAIL PROTECTED]> --- usr/gen_init_cpio.c | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) --- linux-2.6.13-rc6-mm2-orig/usr/gen_init_cpio.c 2005-06-17 21:48:29.000000000 +0200 +++ linux-2.6.13-rc6-mm2/usr/gen_init_cpio.c 2005-08-24 23:10:36.000000000 +0200 @@ -438,7 +438,8 @@ struct file_handler file_handler_table[] int main (int argc, char *argv[]) { FILE *cpio_list; - char line[LINE_SIZE]; + char ln[LINE_SIZE]; + char *line; char *args, *type; int ec = 0; int line_nr = 0; @@ -455,7 +456,7 @@ int main (int argc, char *argv[]) exit(1); } - while (fgets(line, LINE_SIZE, cpio_list)) { + while (line = ln, fgets(line, LINE_SIZE, cpio_list)) { int type_idx; size_t slen = strlen(line); @@ -466,11 +467,12 @@ int main (int argc, char *argv[]) continue; } - if (! (type = strtok(line, " \t"))) { + if (! (type = strsep(&line, " \t"))) { fprintf(stderr, "ERROR: incorrect format, could not locate file type line %d: '%s'\n", - line_nr, line); + line_nr, ln); ec = -1; + continue; } if ('\n' == *type) { @@ -483,16 +485,20 @@ int main (int argc, char *argv[]) continue; } - if (! (args = strtok(NULL, "\n"))) { + if (! (args = strsep(&line, "\n"))) { fprintf(stderr, "ERROR: incorrect format, newline required line %d: '%s'\n", - line_nr, line); + line_nr, ln); ec = -1; + continue; } + + if (!*args) + continue; for (type_idx = 0; file_handler_table[type_idx].type; type_idx++) { int rc; - if (! strcmp(line, file_handler_table[type_idx].type)) { + if (! strcmp(type, file_handler_table[type_idx].type)) { if ((rc = file_handler_table[type_idx].handler(args))) { ec = rc; fprintf(stderr, " line %d\n", line_nr); @@ -503,7 +509,7 @@ int main (int argc, char *argv[]) if (NULL == file_handler_table[type_idx].type) { fprintf(stderr, "unknown file type line %d: '%s'\n", - line_nr, line); + line_nr, ln); } } cpio_trailer(); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/