accept unlimited number of swap arguments like the real swap{on,off} and shrink do_em...
authorMike Frysinger <vapier@gentoo.org>
Fri, 16 Sep 2005 04:41:20 +0000 (04:41 -0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 16 Sep 2005 04:41:20 +0000 (04:41 -0000)
util-linux/swaponoff.c

index 0080ff294691762925c7fa18c3b9f9a8eecd9ad8..c624e74e312f7b0e924891eb26247b1d061a8d18 100644 (file)
@@ -38,10 +38,10 @@ static int swap_enable_disable(const char *device)
 
        if (status != 0) {
                bb_perror_msg("%s", device);
-               return EXIT_FAILURE;
+               return 1;
        }
 
-       return EXIT_SUCCESS;
+       return 0;
 }
 
 static int do_em_all(void)
@@ -57,8 +57,7 @@ static int do_em_all(void)
        err = 0;
        while ((m = getmntent(f)) != NULL)
                if (strcmp(m->mnt_type, MNTTYPE_SWAP) == 0)
-                       if (swap_enable_disable(m->mnt_fsname) == EXIT_FAILURE)
-                               ++err;
+                       err += swap_enable_disable(m->mnt_fsname);
 
        endmntent(f);
 
@@ -69,13 +68,17 @@ static int do_em_all(void)
 
 extern int swap_on_off_main(int argc, char **argv)
 {
-       unsigned long opt = bb_getopt_ulflags(argc, argv, "a");
+       int ret;
 
-       if (argc != 2)
+       if (argc == 1)
                bb_show_usage();
 
-       if (opt & DO_ALL)
+       ret = bb_getopt_ulflags(argc, argv, "a");
+       if (ret & DO_ALL)
                return do_em_all();
 
-       return swap_enable_disable(argv[1]);
+       ret = 0;
+       while (*++argv)
+               ret += swap_enable_disable(*argv);
+       return ret;
 }