Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> writes: > This will be important later when diff_opt_parse() accepts paths as > arguments. Paths must be prefixed before access because setup code > moves cwd but does not (and cannot) update command line options. The above sounds like a sensible thing to do (note: I didn't read the patch or remainder of the series), but makes me wonder how the existing --orderfile option works without this support. Perhaps it is not working and needs to be updated to take advantage of this change, too? > > Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> > --- > builtin/am.c | 2 +- > diff-no-index.c | 3 ++- > diff.c | 3 ++- > diff.h | 2 +- > revision.c | 2 +- > 5 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/builtin/am.c b/builtin/am.c > index 9fb42fd..f009b6c 100644 > --- a/builtin/am.c > +++ b/builtin/am.c > @@ -1657,7 +1657,7 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa > > init_revisions(&rev_info, NULL); > rev_info.diffopt.output_format = DIFF_FORMAT_NAME_STATUS; > - diff_opt_parse(&rev_info.diffopt, &diff_filter_str, 1); > + diff_opt_parse(&rev_info.diffopt, &diff_filter_str, 1, rev_info.prefix); > add_pending_sha1(&rev_info, "HEAD", our_tree, 0); > diff_setup_done(&rev_info.diffopt); > run_diff_index(&rev_info, 1); > diff --git a/diff-no-index.c b/diff-no-index.c > index 491e842..03daadb 100644 > --- a/diff-no-index.c > +++ b/diff-no-index.c > @@ -252,7 +252,8 @@ void diff_no_index(struct rev_info *revs, > else if (!strcmp(argv[i], "--")) > i++; > else { > - j = diff_opt_parse(&revs->diffopt, argv + i, argc - i); > + j = diff_opt_parse(&revs->diffopt, argv + i, argc - i, > + revs->prefix); > if (j <= 0) > die("invalid diff option/value: %s", argv[i]); > i += j; > diff --git a/diff.c b/diff.c > index 80eb0c2..8d38fe8 100644 > --- a/diff.c > +++ b/diff.c > @@ -3693,7 +3693,8 @@ static int parse_ws_error_highlight(struct diff_options *opt, const char *arg) > return 1; > } > > -int diff_opt_parse(struct diff_options *options, const char **av, int ac) > +int diff_opt_parse(struct diff_options *options, > + const char **av, int ac, const char *prefix) > { > const char *arg = av[0]; > const char *optarg; > diff --git a/diff.h b/diff.h > index f61ee54..76b5536 100644 > --- a/diff.h > +++ b/diff.h > @@ -268,7 +268,7 @@ extern int parse_long_opt(const char *opt, const char **argv, > extern int git_diff_basic_config(const char *var, const char *value, void *cb); > extern int git_diff_ui_config(const char *var, const char *value, void *cb); > extern void diff_setup(struct diff_options *); > -extern int diff_opt_parse(struct diff_options *, const char **, int); > +extern int diff_opt_parse(struct diff_options *, const char **, int, const char *); > extern void diff_setup_done(struct diff_options *); > > #define DIFF_DETECT_RENAME 1 > diff --git a/revision.c b/revision.c > index 0a282f5..14daefb 100644 > --- a/revision.c > +++ b/revision.c > @@ -2049,7 +2049,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg > } else if (!strcmp(arg, "--ignore-missing")) { > revs->ignore_missing = 1; > } else { > - int opts = diff_opt_parse(&revs->diffopt, argv, argc); > + int opts = diff_opt_parse(&revs->diffopt, argv, argc, revs->prefix); > if (!opts) > unkv[(*unkc)++] = arg; > return opts; -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html