Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- .. so that "git log :/" works, not so sure this is correct though setup.c | 16 +++++++--------- 1 files changed, 7 insertions(+), 9 deletions(-) diff --git a/setup.c b/setup.c index 27c1d47..08f605b 100644 --- a/setup.c +++ b/setup.c @@ -58,15 +58,8 @@ static void NORETURN die_verify_filename(const char *prefix, const char *arg) unsigned char sha1[20]; unsigned mode; - /* - * Saying "'(icase)foo' does not exist in the index" when the - * user gave us ":(icase)foo" is just stupid. A magic pathspec - * begins with a colon and is followed by a non-alnum; do not - * let get_sha1_with_mode_1(only_to_die=1) to even trigger. - */ - if (!(arg[0] == ':' && !isalnum(arg[1]))) - /* try a detailed diagnostic ... */ - get_sha1_with_mode_1(arg, sha1, &mode, 1, prefix); + /* try a detailed diagnostic ... */ + get_sha1_with_mode_1(arg, sha1, &mode, 1, prefix); /* ... or fall back the most general message. */ die("ambiguous argument '%s': unknown revision or path not in the working tree.\n" @@ -85,6 +78,11 @@ void verify_filename(const char *prefix, const char *arg) { if (*arg == '-') die("bad flag '%s' used after filename", arg); + + /* If it's magic pathspec, just assume it's file name */ + if (arg[0] == ':' && is_pathspec_magic(arg[1])) + return; + if (check_filename(prefix, arg)) return; die_verify_filename(prefix, arg); -- 1.7.3.1.256.g2539c.dirty -- 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