aboutsummaryrefslogtreecommitdiffstats
path: root/fsck
diff options
context:
space:
mode:
authorrelan <relan@users.noreply.github.com>2011-03-01 05:35:14 +0000
committerrelan <relan@users.noreply.github.com>2015-08-24 08:26:13 +0300
commit9c76a44a67600cec24adab79dc2e0880ac7d7658 (patch)
tree42a266d14e766e26fa85dd8f024f64232f109062 /fsck
parentce2a4075037f9d78209c2e5a5a53bcd34c478aa2 (diff)
downloadandroid_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.c32
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",