From 2a5dc105a323a20ab3dce82f3b39fa20555ab174 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Wed, 22 Sep 2021 21:08:38 -0700 Subject: [PATCH] makedevs: stop using get_line(). Also use FLAG(). --- toys/other/makedevs.c | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/toys/other/makedevs.c b/toys/other/makedevs.c index a6998fcc..4edd0737 100644 --- a/toys/other/makedevs.c +++ b/toys/other/makedevs.c @@ -39,22 +39,24 @@ GLOBALS( char *d; ) -void makedevs_main() +void makedevs_main(void) { - int fd = 0, line_no, i; + FILE *fp = stdin; char *line = NULL; + size_t allocated_length = 0; + int line_no = 0, i; // Open file and chdir, verbosely xprintf("rootdir = %s\n", *toys.optargs); - if ((toys.optflags & FLAG_d) && strcmp(TT.d, "-")) { - fd = xopenro(TT.d); + if (FLAG(d) && strcmp(TT.d, "-")) { + fp = xfopen(TT.d, "r"); xprintf("table = %s\n", TT.d); } else xprintf("table = \n"); xchdir(*toys.optargs); - for (line_no = 0; (line = get_line(fd)); free(line)) { + while (getline(&line, &allocated_length, fp) > 0) { char type=0, user[64], group[64], *node, *ptr = line; - unsigned int mode = 0755, major = 0, minor = 0, cnt = 0, incr = 0, + unsigned int mode = 0755, major = 0, minor = 0, cnt = 0, incr = 0, st_val = 0; uid_t uid; gid_t gid; @@ -104,9 +106,10 @@ void makedevs_main() continue; } - if (chown(ptr, uid, gid) || chmod(ptr, mode)) + if (chown(ptr, uid, gid) || chmod(ptr, mode)) perror_msg("line %d: can't chown/chmod '%s'", line_no, ptr); } } - xclose(fd); + free(line); + if (fp != stdin) fclose(fp); } -- 2.39.2