diff options
-rw-r--r-- | utils.c | 18 | ||||
-rw-r--r-- | utils.h | 2 |
2 files changed, 20 insertions, 0 deletions
@@ -3930,6 +3930,24 @@ void clean_args_no_options(int argc, char *argv[], const char * const *usagestr) } } +/* + * Same as clean_args_no_options but pass through arguments that could look + * like short options. Eg. reisze which takes a negative resize argument like + * '-123M' . + * + * This accepts only two forms: + * - "-- option1 option2 ..." + * - "option1 option2 ..." + */ +void clean_args_no_options_relaxed(int argc, char *argv[], const char * const *usagestr) +{ + if (argc <= 1) + return; + + if (strcmp(argv[1], "--") == 0) + optind = 2; +} + /* Subvolume helper functions */ /* * test if name is a correct subvolume name @@ -303,6 +303,8 @@ const char *get_argv0_buf(void); unsigned int get_unit_mode_from_arg(int *argc, char *argv[], int df_mode); void clean_args_no_options(int argc, char *argv[], const char * const *usage); +void clean_args_no_options_relaxed(int argc, char *argv[], + const char * const *usagestr); int string_is_numerical(const char *str); __attribute__ ((format (printf, 1, 2))) |