Nguyễn Thái Ngọc Duy  <[email protected]> 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 <[email protected]>
> ---
>  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to