aboutsummaryrefslogtreecommitdiffstats
path: root/dump
diff options
context:
space:
mode:
Diffstat (limited to 'dump')
-rw-r--r--dump/main.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/dump/main.c b/dump/main.c
index b4fad19..8650d51 100644
--- a/dump/main.c
+++ b/dump/main.c
@@ -146,7 +146,7 @@ static void usage(const char* prog)
int main(int argc, char* argv[])
{
- char** pp;
+ int opt;
const char* spec = NULL;
bool sb_only = false;
bool used_sectors = false;
@@ -154,24 +154,26 @@ int main(int argc, char* argv[])
printf("dumpexfat %u.%u.%u\n",
EXFAT_VERSION_MAJOR, EXFAT_VERSION_MINOR, EXFAT_VERSION_PATCH);
- for (pp = argv + 1; *pp; pp++)
+ while ((opt = getopt(argc, argv, "suV")) != -1)
{
- if (strcmp(*pp, "-s") == 0)
+ switch (opt)
+ {
+ case 's':
sb_only = true;
- else if (strcmp(*pp, "-u") == 0)
+ break;
+ case 'u':
used_sectors = true;
- else if (strcmp(*pp, "-V") == 0)
- {
+ break;
+ case 'V':
puts("Copyright (C) 2011-2013 Andrew Nayenko");
return 0;
- }
- else if (spec == NULL)
- spec = *pp;
- else
+ default:
usage(argv[0]);
+ }
}
- if (spec == NULL)
+ if (argc - optind != 1)
usage(argv[0]);
+ spec = argv[optind];
if (sb_only)
return dump_sb(spec);