X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=parse-options.c;h=fd08bb425c241a0861588ec0aedd15041095a95f;hb=1e2bba92d21d9c72d4a6816c3a98a22779856f9e;hp=987b0157192b9fe4c7451d94f5948bdbd7f524bb;hpb=1f8dc671557a7330eaee9c0296bfad669d26a1b8;p=git.git diff --git a/parse-options.c b/parse-options.c index 987b01571..fd08bb425 100644 --- a/parse-options.c +++ b/parse-options.c @@ -22,7 +22,7 @@ static int get_arg(struct parse_opt_ctx_t *p, const struct option *opt, p->opt = NULL; } else if (p->argc == 1 && (opt->flags & PARSE_OPT_LASTARG_DEFAULT)) { *arg = (const char *)opt->defval; - } else if (p->argc) { + } else if (p->argc > 1) { p->argc--; *arg = *++p->argv; } else @@ -483,3 +483,15 @@ int parse_opt_approxidate_cb(const struct option *opt, const char *arg, *(unsigned long *)(opt->value) = approxidate(arg); return 0; } + +/* + * This should really be OPTION_FILENAME type as a part of + * parse_options that take prefix to do this while parsing. + */ +extern const char *parse_options_fix_filename(const char *prefix, const char *file) +{ + if (!file || !prefix || is_absolute_path(file) || !strcmp("-", file)) + return file; + return prefix_filename(prefix, strlen(prefix), file); +} +