From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff King Subject: [PATCH 1/6] shortlog: match both "Author:" and "author" on stdin Date: Mon, 18 Jan 2016 15:02:40 -0500 Message-ID: <20160118200240.GA15836@sigill.intra.peff.net> References: <20160118200136.GA9514@sigill.intra.peff.net> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Cc: git@vger.kernel.org, Eric Sunshine To: Junio C Hamano X-From: git-owner@vger.kernel.org Mon Jan 18 21:02:47 2016 Return-path: Envelope-to: gcvg-git-2@plane.gmane.org Received: from vger.kernel.org ([209.132.180.67]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1aLG0k-0002yu-Oa for gcvg-git-2@plane.gmane.org; Mon, 18 Jan 2016 21:02:47 +0100 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756417AbcARUCo (ORCPT ); Mon, 18 Jan 2016 15:02:44 -0500 Received: from cloud.peff.net ([50.56.180.127]:55636 "HELO cloud.peff.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1756326AbcARUCm (ORCPT ); Mon, 18 Jan 2016 15:02:42 -0500 Received: (qmail 32025 invoked by uid 102); 18 Jan 2016 20:02:42 -0000 Received: from Unknown (HELO peff.net) (10.0.1.1) by cloud.peff.net (qpsmtpd/0.84) with SMTP; Mon, 18 Jan 2016 15:02:42 -0500 Received: (qmail 13415 invoked by uid 107); 18 Jan 2016 20:03:02 -0000 Received: from sigill.intra.peff.net (HELO sigill.intra.peff.net) (10.0.0.7) by peff.net (qpsmtpd/0.84) with SMTP; Mon, 18 Jan 2016 15:03:02 -0500 Received: by sigill.intra.peff.net (sSMTP sendmail emulation); Mon, 18 Jan 2016 15:02:40 -0500 Content-Disposition: inline In-Reply-To: <20160118200136.GA9514@sigill.intra.peff.net> Sender: git-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Archived-At: 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 it's relatively easy to fix, and the end result is hopefully more readable than the original. Note that this no longer matches "author: ", which we did before, but that has never been a format generated by git. Signed-off-by: Jeff King --- builtin/shortlog.c | 7 ++++--- t/t4201-shortlog.sh | 6 ++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/builtin/shortlog.c b/builtin/shortlog.c index 35ebd17..ab25b44 100644 --- a/builtin/shortlog.c +++ b/builtin/shortlog.c @@ -94,8 +94,9 @@ 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(author, "Author: ", &v) && + !skip_prefix(author, "author ", &v)) continue; while (fgets(oneline, sizeof(oneline), stdin) && oneline[0] != '\n') @@ -103,7 +104,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); } } diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh index 7600a3e..82b2314 100755 --- a/t/t4201-shortlog.sh +++ b/t/t4201-shortlog.sh @@ -120,6 +120,12 @@ test_expect_success !MINGW 'shortlog from non-git directory' ' test_cmp expect out ' +test_expect_success !MINGW 'shortlog can read --format=raw output' ' + git log --format=raw HEAD >log && + GIT_DIR=non-existing git shortlog -w out && + test_cmp expect out +' + test_expect_success 'shortlog should add newline when input line matches wraplen' ' cat >expect <<\EOF && A U Thor (2): -- 2.7.0.248.g5eafd77