git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git Mailing List <git@vger.kernel.org>
Subject: Re: [PATCH] pretty-print: de-tabify indented logs to make things line up properly
Date: Wed, 16 Mar 2016 12:50:20 -0700	[thread overview]
Message-ID: <CA+55aFxLyMaur8Kd_uyewEeehPeuZXu=Hn11SSbTYd9O6FdDBA@mail.gmail.com> (raw)
In-Reply-To: <xmqqwpp243sb.fsf@gitster.mtv.corp.google.com>

[-- Attachment #1: Type: text/plain, Size: 1144 bytes --]

On Wed, Mar 16, 2016 at 12:32 PM, Junio C Hamano <gitster@pobox.com> wrote:
>
> may give us a better structure if we are going to give users a knob
> to disable this tab expansion, i.e. move the addition of 4 spaces to
> the caller, name the body of such a function strbuf_expand_add(),
> and then make the caller do something like this perhaps?

I'd suggest just putting that knob into the "pp_handle_indent()"
function, and passing it the "pp" pointer.

In fact, maybe it should just be renamed as "pp_add_line()", and
handle every case, and keep "pp_remainder()" as just the "loop over
each line and handle the empty line and PP_SHORT special case" thing.

That makes it easty to add that CMIT_FMT_EXPAND_TABS kind of code later.

Here's an incremental patch that could be just smushed into my
previous one. It doesn't change the behavior of "pp_handle_indent()",
but I think it clarifies the code and makes future changes much easier
(partly because now nobody has to worry about the continue case and
the newline at the end of the line, so you can just print whatever you
want and then return).

What do you think?

                 Linus

[-- Attachment #2: patch.diff --]
[-- Type: text/plain, Size: 1030 bytes --]

 pretty.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/pretty.c b/pretty.c
index 0b40457f99f0..b9374a1708d1 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1699,6 +1699,18 @@ static int pp_handle_indent(struct strbuf *sb, int indent,
 	return 1;
 }
 
+static void pp_add_line(struct pretty_print_context *pp,
+			struct strbuf *sb, int indent,
+			const char *line, int linelen)
+{
+	strbuf_grow(sb, linelen + indent + 20);
+	if (indent) {
+		if (pp_handle_indent(sb, indent, line, linelen))
+			return;
+	}
+	strbuf_add(sb, line, linelen);
+}
+
 void pp_remainder(struct pretty_print_context *pp,
 		  const char **msg_p,
 		  struct strbuf *sb,
@@ -1721,12 +1733,7 @@ void pp_remainder(struct pretty_print_context *pp,
 		}
 		first = 0;
 
-		strbuf_grow(sb, linelen + indent + 20);
-		if (indent) {
-			if (pp_handle_indent(sb, indent, line, linelen))
-				linelen = 0;
-		}
-		strbuf_add(sb, line, linelen);
+		pp_add_line(pp, sb, indent, line, linelen);
 		strbuf_addch(sb, '\n');
 	}
 }

  parent reply	other threads:[~2016-03-16 19:50 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-16 16:29 [PATCH] pretty-print: de-tabify indented logs to make things line up properly Linus Torvalds
2016-03-16 16:52 ` Linus Torvalds
2016-03-16 18:01 ` Junio C Hamano
2016-03-16 18:21   ` Linus Torvalds
2016-03-16 19:32     ` Junio C Hamano
2016-03-16 19:47       ` Junio C Hamano
2016-03-16 19:59         ` Linus Torvalds
2016-03-16 21:37           ` Junio C Hamano
2016-03-16 22:04             ` Linus Torvalds
2016-03-17 23:13               ` [PATCH v2 1/4] " Junio C Hamano
2016-03-17 23:15                 ` [PATCH v2 2/4] pretty-print: simplify the interaction between pp_handle_indent() and its caller Junio C Hamano
2016-03-17 23:15                 ` [PATCH v2 3/4] pretty-print: further abstract out pp_handle_indent() Junio C Hamano
2016-03-17 23:16                 ` [PATCH 4/4] pretty-print: add --pretty=noexpand Junio C Hamano
2016-03-17 23:23                   ` Linus Torvalds
2016-03-17 23:40                     ` Junio C Hamano
2016-03-18  5:08                   ` Jeff King
2016-03-18  5:36                     ` Linus Torvalds
2016-03-18  5:55                       ` Jeff King
2016-03-18  5:44                     ` Junio C Hamano
2016-03-23 23:23                       ` [PATCH v3 0/5] Expanding tabs in "git log" output Junio C Hamano
2016-03-23 23:23                         ` [PATCH v3 1/5] pretty-print: de-tabify indented logs to make things line up properly Junio C Hamano
2016-03-23 23:23                         ` [PATCH v3 2/5] pretty-print: simplify the interaction between pp_handle_indent() and its caller Junio C Hamano
2016-03-23 23:23                         ` [PATCH v3 3/5] pretty-print: further abstract out pp_handle_indent() Junio C Hamano
2016-03-23 23:23                         ` [PATCH v3 4/5] pretty-print: limit expand-tabs to selected --pretty formats Junio C Hamano
2016-03-23 23:23                         ` [PATCH v3 5/5] pretty-print: teach "--no-expand-tabs" option to "git log" Junio C Hamano
2016-03-23 23:47                         ` [PATCH v3 0/5] Expanding tabs in "git log" output Linus Torvalds
2016-03-24  0:58                         ` Jeff King
2016-03-24  5:17                           ` Junio C Hamano
2016-03-24  7:05                         ` Torsten Bögershausen
2016-03-24 15:37                           ` Junio C Hamano
2016-03-24 18:22                           ` Junio C Hamano
2016-03-25  9:34                             ` Torsten Bögershausen
2016-03-25 14:13                               ` Torsten Bögershausen
2016-03-25 16:41                                 ` Junio C Hamano
2016-03-25 16:25                               ` Junio C Hamano
2016-03-29 23:15                         ` [PATCH v4 0/3] " Junio C Hamano
2016-03-29 23:15                           ` [PATCH v4 1/3] pretty: expand tabs in indented logs to make things line up properly Junio C Hamano
2016-03-30  0:17                             ` Eric Sunshine
2016-03-30 18:20                               ` Junio C Hamano
2016-03-29 23:15                           ` [PATCH v4 2/3] pretty: enable --expand-tabs by default for selected pretty formats Junio C Hamano
2016-03-30  1:38                             ` Jeff King
2016-03-30 19:18                               ` Junio C Hamano
2016-03-29 23:15                           ` [PATCH v4 3/3] pretty: allow tweaking tabwidth in --expand-tabs Junio C Hamano
2016-04-05  0:58                           ` [PATCH v5 0/4] Expanding tabs in "git log" output Junio C Hamano
2016-04-05  0:58                             ` [PATCH v5 1/4] pretty: expand tabs in indented logs to make things line up properly Junio C Hamano
2016-04-05  0:58                             ` [PATCH v5 2/4] pretty: enable --expand-tabs by default for selected pretty formats Junio C Hamano
2016-04-05  0:58                             ` [PATCH v5 3/4] pretty: allow tweaking tabwidth in --expand-tabs Junio C Hamano
2016-04-05  0:58                             ` [PATCH v5 4/4] pretty: test --expand-tabs Junio C Hamano
2016-04-05  1:10                               ` Eric Sunshine
2016-04-05  1:47                                 ` Jeff King
2016-04-05  6:25                                   ` Junio C Hamano
2016-04-05  1:52                               ` Jeff King
2016-04-05  6:32                                 ` Junio C Hamano
2016-04-05  7:13                                 ` Perry Hutchison
2016-04-05  1:53                             ` [PATCH v5 0/4] Expanding tabs in "git log" output Jeff King
2016-03-16 19:50       ` Linus Torvalds [this message]
2016-03-16 21:55         ` [PATCH] pretty-print: de-tabify indented logs to make things line up properly Junio C Hamano

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to='CA+55aFxLyMaur8Kd_uyewEeehPeuZXu=Hn11SSbTYd9O6FdDBA@mail.gmail.com' \
    --to=torvalds@linux-foundation.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).