accept unlimited number of swap arguments like the real swap{on,off} and shrink do_em_all a little

This commit is contained in:
Mike Frysinger 2005-09-16 04:41:20 +00:00
parent 0ec71bf4b8
commit 2d5e4f6b05

View File

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