diff options
author | relan <relan@users.noreply.github.com> | 2011-03-01 05:35:14 +0000 |
---|---|---|
committer | relan <relan@users.noreply.github.com> | 2015-08-24 08:26:13 +0300 |
commit | 9c76a44a67600cec24adab79dc2e0880ac7d7658 (patch) | |
tree | 42a266d14e766e26fa85dd8f024f64232f109062 /fsck | |
parent | ce2a4075037f9d78209c2e5a5a53bcd34c478aa2 (diff) | |
download | android_external_exfat-9c76a44a67600cec24adab79dc2e0880ac7d7658.tar.gz android_external_exfat-9c76a44a67600cec24adab79dc2e0880ac7d7658.tar.bz2 android_external_exfat-9c76a44a67600cec24adab79dc2e0880ac7d7658.zip |
Add -v option that prints version and copyright.
Diffstat (limited to 'fsck')
-rw-r--r-- | fsck/main.c | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/fsck/main.c b/fsck/main.c index b0d8f3c..8eac2af 100644 --- a/fsck/main.c +++ b/fsck/main.c @@ -113,22 +113,40 @@ static void fsck(struct exfat* ef) dirck(ef, ""); } +static void usage(const char* prog) +{ + fprintf(stderr, "Usage: %s [-v] <device>\n", prog); + exit(1); +} + int main(int argc, char* argv[]) { + char** pp; + const char* spec = NULL; struct exfat ef; - if (argc != 2) - { - fprintf(stderr, "Usage: %s <device>\n", argv[0]); - return 1; - } printf("exfatfsck %u.%u.%u\n", EXFAT_VERSION_MAJOR, EXFAT_VERSION_MINOR, EXFAT_VERSION_PATCH); - if (exfat_mount(&ef, argv[1], "ro") != 0) + for (pp = argv + 1; *pp; pp++) + { + if (strcmp(*pp, "-v") == 0) + { + puts("Copyright (C) 2009 Andrew Nayenko"); + return 0; + } + else if (spec == NULL) + spec = *pp; + else + usage(argv[0]); + } + if (spec == NULL) + usage(argv[0]); + + if (exfat_mount(&ef, spec, "ro") != 0) return 1; - printf("Checking file system on %s.\n", argv[1]); + printf("Checking file system on %s.\n", spec); fsck(&ef); exfat_unmount(&ef); printf("Totally %"PRIu64" directories and %"PRIu64" files.\n", |