Giuseppe Bilotta <giuseppe.bilotta@xxxxxxxxx> writes: > So, is this a known bug (I would call it a bug, yes) in rev-list? > Are there any ideas around on how to fix it? It depends on what you are trying to do. An obvious thing to do is to accept the fact that it has always been a regexp match, and quotemeta your input string. Because we allow you to give "-F" and "--author=foo" in any order, looking at the options we have seen already and adjusting the pattern depending on the fixed-string option in the code would not be workable. You would have to instead queue up all the --grep/--author/--committer options until the very end and _then_ compile them at the end, after you saw all the other grep related options such as -i/-F/-E I am not interested in helping people with attitude very much ;-), but one somewhat related thing I have been wanting to add was the change in the attached patch. It allows you to anchor not just at the beginning but at the end. revision.c | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git c/revision.c w/revision.c index 36291b6..83478ef 100644 --- c/revision.c +++ w/revision.c @@ -956,18 +956,24 @@ static void add_grep(struct rev_info *revs, const char *ptn, enum grep_pat_token static void add_header_grep(struct rev_info *revs, const char *field, const char *pattern) { char *pat; - const char *prefix; + const char *prefix, *suffix; int patlen, fldlen; fldlen = strlen(field); patlen = strlen(pattern); - pat = xmalloc(patlen + fldlen + 10); - prefix = ".*"; + pat = xmalloc(patlen + fldlen + 64); + suffix = prefix = ".*"; if (*pattern == '^') { prefix = ""; pattern++; + patlen--; } - sprintf(pat, "^%s %s%s", field, prefix, pattern); + if (pattern[patlen-1] == '$') { + suffix = ""; + patlen--; + } + sprintf(pat, "^%s %s%.*s%s [1-9][0-9]* [-+][0-1][0-9][0-9][0-9]$", + field, prefix, patlen, pattern, suffix); add_grep(revs, pat, GREP_PATTERN_HEAD); } -- 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