X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=miscutils%2Fmakedevs.c;h=776bcaa8d9a7a82e4604a000893b288a222d4abf;hb=eea561871b45a2335ab6a09f14dad627ffcdc1cd;hp=7bfe54fc19fb8f3f66019881932f47ce746919d3;hpb=1b751c894b520846af8575d09187ce342e88778c;p=oweals%2Fbusybox.git diff --git a/miscutils/makedevs.c b/miscutils/makedevs.c index 7bfe54fc1..776bcaa8d 100644 --- a/miscutils/makedevs.c +++ b/miscutils/makedevs.c @@ -1,5 +1,13 @@ /* vi: set sw=4 ts=4: */ +/* + * public domain -- Dave 'Kill a Cop' Cinege + * + * makedevs + * Make ranges of device files quickly. + * known bugs: can't deal with alpha ranges + */ +#include "busybox.h" #include #include #include @@ -9,16 +17,8 @@ #include #include #include /* major() and minor() */ -#include "busybox.h" #ifdef CONFIG_FEATURE_MAKEDEVS_LEAF -/* - * public domain -- Dave 'Kill a Cop' Cinege - * - * makedevs - * Make ranges of device files quickly. - * known bugs: can't deal with alpha ranges - */ int makedevs_main(int argc, char **argv) { mode_t mode; @@ -77,7 +77,7 @@ int makedevs_main(int argc, char **argv) /* Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */ -extern int makedevs_main(int argc, char **argv) +int makedevs_main(int argc, char **argv) { FILE *table = stdin; char *rootdir = NULL; @@ -86,7 +86,7 @@ extern int makedevs_main(int argc, char **argv) int ret = EXIT_SUCCESS; unsigned long flags; - flags = bb_getopt_ulflags(argc, argv, "d:", &line); + flags = bb_getopt_ulflags(argc, argv, "d:", &line); if (line) table = bb_xfopen(line, "r"); @@ -94,9 +94,7 @@ extern int makedevs_main(int argc, char **argv) bb_error_msg_and_die("root directory not specified"); } - if (chdir(rootdir) != 0) { - bb_perror_msg_and_die("could not chdir to %s", rootdir); - } + bb_xchdir(rootdir); umask(0); @@ -138,9 +136,9 @@ extern int makedevs_main(int argc, char **argv) if (name[0] == '#') { continue; } - - gid = group ? get_ug_id(group, bb_xgetgrnam) : getgid(); - uid = user ? get_ug_id(user, bb_xgetpwnam) : getuid(); + + gid = (*group) ? get_ug_id(group, bb_xgetgrnam) : getgid(); + uid = (*user) ? get_ug_id(user, bb_xgetpwnam) : getuid(); full_name = concat_path_file(rootdir, name); if (type == 'd') { @@ -234,9 +232,9 @@ loop: } fclose(table); - return 0; + return ret; } #else -# error makdedevs configuration error, either leaf or table must be selected +# error makedevs configuration error, either leaf or table must be selected #endif