summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmds-subvolume.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index 424b00b4..26af0a71 100644
--- a/cmds-subvolume.c
+++ b/cmds-subvolume.c
@@ -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;
}