On Friday, January 15, 2016, Jeff King <peff@xxxxxxxx> wrote: > The original git-shortlog could read both the normal "git > log" output as well as "git log --format=raw". However, when it was > converted to C by b8ec592 (Build in shortlog, 2006-10-22), > the trailing colon became mandatory, and we no longer > matched the raw output. > > Given the amount of intervening time without any bug > reports, it's probable that nobody cares. But given that > it's easy to fix, and that the end result is hopefully more > obvious and flexible (it could now easily accomodate matching > "Committer"), let's just make it work. > > Signed-off-by: Jeff King <peff@xxxxxxxx> > --- > diff --git a/builtin/shortlog.c b/builtin/shortlog.c > @@ -89,13 +89,34 @@ static void insert_one_record(struct shortlog *log, > +/* > + * If header is "author", match candidate against the regex /[Aa]uthor:? /, > + * and return a pointer to the remainder of the string in out_value. > + */ > +static int match_ident_header(const char *candidate, const char *header, > + const char **out_value) > +{ > + const char *v; > + > + if (tolower(*candidate++) != tolower(*header++)) > + return 0; Presumably, this will never be invoked as match_ident_header("", "", ...) so we don't have to worry about it accessing beyond end-of-string when it gets past this conditional. Does it deserve an assert(*candidate) at the top of the function, though, or is that overkill? > + if (!skip_prefix(candidate, header, &v)) > + return 0; > + if (*v == ':') > + v++; > + if (*v++ != ' ') > + return 0; > + *out_value = v; > + return 1; > +} -- 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