git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: git@vger.kernel.org
Subject: [PATCH 04/14] shortlog: use skip_prefix_icase to parse "Author" lines
Date: Tue, 29 Dec 2015 02:27:46 -0500	[thread overview]
Message-ID: <20151229072746.GD8842@sigill.intra.peff.net> (raw)
In-Reply-To: <20151229071847.GA8726@sigill.intra.peff.net>

Because we must match both "Author" and "author" here, we
could not use skip_prefix, and had to hand-code a partial
case-insensitive match. Now that we have skip_prefix_case,
we can use it. This is technically more liberal in what it
matches (e.g., it will match AUTHOR), but in this particular
case that that's OK (we are matching git-log output, so we
expect arbitrary data like commit headers to be indented).

In addition to being easier to read, this will make the code
easier to adapt for matching other lines.

Signed-off-by: Jeff King <peff@peff.net>
---
To be honest, I'm not sure what the original was trying for. I assumed
it was to match "log --raw" output, but because we always expect the
colon, it doesn't. I think this may actually have broken in b8ec592
(Build in shortlog, 2006-10-22); the original perl script looked for:

  /^[Aa]uthor:?\s*/

We could re-fix that, I guess, but it seems clear that nobody actually
cares (and anybody sane uses the builtin traversal these days anyway).

We could similarly drop the case-insensitivity, as I don't think it is
helping anyone in practice (though that is less easy to know).

 builtin/shortlog.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/builtin/shortlog.c b/builtin/shortlog.c
index 35ebd17..86e277a 100644
--- a/builtin/shortlog.c
+++ b/builtin/shortlog.c
@@ -94,8 +94,8 @@ static void read_from_stdin(struct shortlog *log)
 	char author[1024], oneline[1024];
 
 	while (fgets(author, sizeof(author), stdin) != NULL) {
-		if (!(author[0] == 'A' || author[0] == 'a') ||
-		    !starts_with(author + 1, "uthor: "))
+		const char *v;
+		if (!skip_prefix_icase(author, "Author: ", &v))
 			continue;
 		while (fgets(oneline, sizeof(oneline), stdin) &&
 		       oneline[0] != '\n')
@@ -103,7 +103,7 @@ static void read_from_stdin(struct shortlog *log)
 		while (fgets(oneline, sizeof(oneline), stdin) &&
 		       oneline[0] == '\n')
 			; /* discard blanks */
-		insert_one_record(log, author + 8, oneline);
+		insert_one_record(log, v, oneline);
 	}
 }
 
-- 
2.7.0.rc3.367.g09631da

  parent reply	other threads:[~2015-12-29  7:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-29  7:18 [PATCH 0/14] counting trailers with shortlogs Jeff King
2015-12-29  7:19 ` [PATCH 01/14] move string functions out of git-compat-util Jeff King
2015-12-29  7:20 ` [PATCH 02/14] log: refactor add_header to drop some magic numbers Jeff King
2015-12-31  6:21   ` Eric Sunshine
2016-01-01  8:42     ` Jeff King
2016-01-01  8:46       ` Jeff King
2015-12-29  7:22 ` [PATCH 03/14] strutil: add skip_prefix_icase Jeff King
2015-12-31  6:40   ` Eric Sunshine
2016-01-01  8:50     ` Jeff King
2015-12-29  7:27 ` Jeff King [this message]
2015-12-31  6:47   ` [PATCH 04/14] shortlog: use skip_prefix_icase to parse "Author" lines Eric Sunshine
2016-01-01  8:53     ` Jeff King
2015-12-29  7:28 ` [PATCH 05/14] shortlog: use strbufs to read from stdin Jeff King
2015-12-29  7:29 ` [PATCH 06/14] shortlog: replace hand-parsing of author with pretty-printer Jeff King
2016-01-04  9:43   ` Eric Sunshine
2016-01-04 10:17     ` Jeff King
2015-12-29  7:30 ` [PATCH 07/14] shortlog: optimize "--summary" mode Jeff King
2015-12-29  7:31 ` [PATCH 08/14] shortlog: optimize out useless "<none>" normalization Jeff King
2015-12-29  7:32 ` [PATCH 09/14] shortlog: optimize out useless string list Jeff King
2015-12-29  7:32 ` [PATCH 10/14] shortlog: change "author" variables to "ident" Jeff King
2015-12-29  7:35 ` [PATCH 11/14] shortlog: allow grouping by committer ident Jeff King
2016-01-04  9:44   ` Eric Sunshine
2016-01-04 10:23     ` Jeff King
2015-12-29  7:35 ` [PATCH 12/14] trailer: factor out config reading Jeff King
2015-12-29  7:36 ` [PATCH 13/14] trailer: add interface for parsing commit trailers Jeff King
2015-12-29  7:38 ` [PATCH 14/14] shortlog: match commit trailers with --ident Jeff King
2015-12-29  7:50   ` Jeff King
2016-01-04  9:44     ` Eric Sunshine
2016-01-04 10:31       ` Jeff King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151229072746.GD8842@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).