From: Junio C Hamano Date: Wed, 15 Feb 2006 09:58:26 +0000 (-0800) Subject: Merge branch 'jc/add' X-Git-Tag: v1.3.0-rc1~54^2~70 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/abd54c2c39e80c1a273913d81d22deb5c278d303?hp=-c Merge branch 'jc/add' * jc/add: Detect misspelled pathspec to git-add ls-files --error-unmatch pathspec error reporting fix. --- abd54c2c39e80c1a273913d81d22deb5c278d303 diff --combined ls-files.c index 52bbfdc805,df93cf2263..c533059d0a --- a/ls-files.c +++ b/ls-files.c @@@ -20,7 -20,6 +20,7 @@@ static int show_unmerged = 0 static int show_modified = 0; static int show_killed = 0; static int show_other_directories = 0; +static int show_valid_bit = 0; static int line_terminator = '\n'; static int prefix_len = 0, prefix_offset = 0; @@@ -458,23 -457,6 +458,23 @@@ static void show_ce_entry(const char *t if (pathspec && !match(pathspec, ps_matched, ce->name, len)) return; + if (tag && *tag && show_valid_bit && + (ce->ce_flags & htons(CE_VALID))) { + static char alttag[4]; + memcpy(alttag, tag, 3); + if (isalpha(tag[0])) + alttag[0] = tolower(tag[0]); + else if (tag[0] == '?') + alttag[0] = '!'; + else { + alttag[0] = 'v'; + alttag[1] = tag[0]; + alttag[2] = ' '; + alttag[3] = 0; + } + tag = alttag; + } + if (!show_stage) { fputs(tag, stdout); write_name_quoted("", 0, ce->name + offset, @@@ -551,7 -533,7 +551,7 @@@ static void show_files(void err = lstat(ce->name, &st); if (show_deleted && err) show_ce_entry(tag_removed, ce); - if (show_modified && ce_modified(ce, &st)) + if (show_modified && ce_modified(ce, &st, 0)) show_ce_entry(tag_modified, ce); } } @@@ -624,7 -606,7 +624,7 @@@ static void verify_pathspec(void } static const char ls_files_usage[] = - "git-ls-files [-z] [-t] (--[cached|deleted|others|stage|unmerged|killed|modified])* " + "git-ls-files [-z] [-t] [-v] (--[cached|deleted|others|stage|unmerged|killed|modified])* " "[ --ignored ] [--exclude=] [--exclude-from=] " "[ --exclude-per-directory= ] [--full-name] [--] []*"; @@@ -649,15 -631,13 +649,15 @@@ int main(int argc, const char **argv line_terminator = 0; continue; } - if (!strcmp(arg, "-t")) { + if (!strcmp(arg, "-t") || !strcmp(arg, "-v")) { tag_cached = "H "; tag_unmerged = "M "; tag_removed = "R "; tag_modified = "C "; tag_other = "? "; tag_killed = "K "; + if (arg[1] == 'v') + show_valid_bit = 1; continue; } if (!strcmp(arg, "-c") || !strcmp(arg, "--cached")) { @@@ -777,7 -757,7 +777,7 @@@ if (ps_matched[num]) continue; error("pathspec '%s' did not match any.", - pathspec[num] + prefix_len); + pathspec[num] + prefix_offset); } return errors ? 1 : 0; }