btrfs-progs: subvol show: handle options by getopt
authorDavid Sterba <dsterba@suse.com>
Wed, 13 Jan 2016 14:38:28 +0000 (15:38 +0100)
committerDavid Sterba <dsterba@suse.com>
Wed, 13 Jan 2016 15:43:48 +0000 (16:43 +0100)
The subvolume show command does not take any optios but at least it
should honor "--", as reported.

Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=110181
Reported-by: <moviuro+kernel@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.com>
cmds-subvolume.c

index 424b00b..26af0a7 100644 (file)
@@ -921,13 +921,28 @@ static int cmd_subvol_show(int argc, char **argv)
        int ret = 1;
        DIR *dirstream1 = NULL, *dirstream2 = NULL;
 
-       if (check_argc_exact(argc, 2))
+       while (1) {
+               static const struct option long_options[] = {
+                       {NULL, 0, NULL, 0}
+               };
+               int c = getopt_long(argc, argv, "", long_options, NULL);
+
+               if (c < 0)
+                       break;
+
+               switch (c) {
+               default:
+                       usage(cmd_subvol_show_usage);
+               }
+       }
+
+       if (check_argc_exact(argc - optind, 1))
                usage(cmd_subvol_show_usage);
 
-       fullpath = realpath(argv[1], NULL);
+       fullpath = realpath(argv[optind], NULL);
        if (!fullpath) {
                error("cannot find real path for '%s': %s",
-                       argv[1], strerror(errno));
+                       argv[optind], strerror(errno));
                goto out;
        }