ifconfig: code shrink
[oweals/busybox.git] / miscutils / makedevs.c
index 3bc1559c78b511ff6704281a0fc4fcbbabe7cad8..1f88f34288437c1e5daf4cba2193cf308d886776 100644 (file)
@@ -7,9 +7,10 @@
  * known bugs: can't deal with alpha ranges
  */
 
-#include "busybox.h"
+#include "libbb.h"
 
-#ifdef CONFIG_FEATURE_MAKEDEVS_LEAF
+#if ENABLE_FEATURE_MAKEDEVS_LEAF
+int makedevs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int makedevs_main(int argc, char **argv)
 {
        mode_t mode;
@@ -47,7 +48,7 @@ int makedevs_main(int argc, char **argv)
                int sz;
 
                sz = snprintf(buf, sizeof(buf), "%s%d", basedev, S);
-               if(sz<0 || sz>=sizeof(buf))  /* libc different */
+               if (sz < 0 || sz >= sizeof(buf))  /* libc different */
                        bb_error_msg_and_die("%s too large", basedev);
 
        /* if mode != S_IFCHR and != S_IFBLK third param in mknod() ignored */
@@ -64,10 +65,11 @@ int makedevs_main(int argc, char **argv)
        return 0;
 }
 
-#elif defined CONFIG_FEATURE_MAKEDEVS_TABLE
+#elif ENABLE_FEATURE_MAKEDEVS_TABLE
 
 /* Licensed under the GPL v2 or later, see the file LICENSE in this tarball. */
 
+int makedevs_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int makedevs_main(int argc, char **argv)
 {
        FILE *table = stdin;
@@ -76,7 +78,7 @@ int makedevs_main(int argc, char **argv)
        int linenum = 0;
        int ret = EXIT_SUCCESS;
 
-       getopt32(argc, argv, "d:", &line);
+       getopt32(argv, "d:", &line);
        if (line)
                table = xfopen(line, "r");
 
@@ -127,8 +129,8 @@ int makedevs_main(int argc, char **argv)
                        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, xgroup2gid) : getgid();
+               uid = (*user) ? get_ug_id(user, xuname2uid) : getuid();
                full_name = concat_path_file(rootdir, name);
 
                if (type == 'd') {
@@ -160,8 +162,7 @@ int makedevs_main(int argc, char **argv)
                                ret = EXIT_FAILURE;
                                goto loop;
                        }
-               } else
-               {
+               } else {
                        dev_t rdev;
 
                        if (type == 'p') {
@@ -185,7 +186,7 @@ int makedevs_main(int argc, char **argv)
                                full_name_inc = xmalloc(strlen(full_name) + 4);
                                for (i = start; i < count; i++) {
                                        sprintf(full_name_inc, "%s%d", full_name, i);
-                                       rdev = (major << 8) + minor + (i * increment - start);
+                                       rdev = makedev(major, minor + (i * increment - start));
                                        if (mknod(full_name_inc, mode, rdev) == -1) {
                                                bb_perror_msg("line %d: cannot create node %s", linenum, full_name_inc);
                                                ret = EXIT_FAILURE;
@@ -201,7 +202,7 @@ int makedevs_main(int argc, char **argv)
                                }
                                free(full_name_inc);
                        } else {
-                               rdev = (major << 8) + minor;
+                               rdev = makedev(major, minor);
                                if (mknod(full_name, mode, rdev) == -1) {
                                        bb_perror_msg("line %d: cannot create node %s", linenum, full_name);
                                        ret = EXIT_FAILURE;