convert report_path_error to take struct pathspec
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
18e4f40599
commit
17ddc66e70
@ -346,15 +346,16 @@ void overlay_tree_on_cache(const char *tree_name, const char *prefix)
|
||||
}
|
||||
}
|
||||
|
||||
int report_path_error(const char *ps_matched, const char **pathspec, const char *prefix)
|
||||
int report_path_error(const char *ps_matched,
|
||||
const struct pathspec *pathspec,
|
||||
const char *prefix)
|
||||
{
|
||||
/*
|
||||
* Make sure all pathspec matched; otherwise it is an error.
|
||||
*/
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
const char *name;
|
||||
int num, errors = 0;
|
||||
for (num = 0; pathspec[num]; num++) {
|
||||
for (num = 0; num < pathspec->nr; num++) {
|
||||
int other, found_dup;
|
||||
|
||||
if (ps_matched[num])
|
||||
@ -362,13 +363,16 @@ int report_path_error(const char *ps_matched, const char **pathspec, const char
|
||||
/*
|
||||
* The caller might have fed identical pathspec
|
||||
* twice. Do not barf on such a mistake.
|
||||
* FIXME: parse_pathspec should have eliminated
|
||||
* duplicate pathspec.
|
||||
*/
|
||||
for (found_dup = other = 0;
|
||||
!found_dup && pathspec[other];
|
||||
!found_dup && other < pathspec->nr;
|
||||
other++) {
|
||||
if (other == num || !ps_matched[other])
|
||||
continue;
|
||||
if (!strcmp(pathspec[other], pathspec[num]))
|
||||
if (!strcmp(pathspec->items[other].original,
|
||||
pathspec->items[num].original))
|
||||
/*
|
||||
* Ok, we have a match already.
|
||||
*/
|
||||
@ -377,9 +381,8 @@ int report_path_error(const char *ps_matched, const char **pathspec, const char
|
||||
if (found_dup)
|
||||
continue;
|
||||
|
||||
name = quote_path_relative(pathspec[num], -1, &sb, prefix);
|
||||
error("pathspec '%s' did not match any file(s) known to git.",
|
||||
name);
|
||||
pathspec->items[num].original);
|
||||
errors++;
|
||||
}
|
||||
strbuf_release(&sb);
|
||||
@ -575,7 +578,7 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
|
||||
|
||||
if (ps_matched) {
|
||||
int bad;
|
||||
bad = report_path_error(ps_matched, pathspec.raw, prefix);
|
||||
bad = report_path_error(ps_matched, &pathspec, prefix);
|
||||
if (bad)
|
||||
fprintf(stderr, "Did you forget to 'git add'?\n");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user