[PATCH] format-patch: Make sure the subject is always a one-liner
- From
Miklos Vajna <vmiklos@frugalware.org>
- Date
- Apr 16, 2008, 01:06 UTC
- Message-ID
- <20080416010605.GG8387@genesis.frugalware.org>
- In-Reply-To
- <20080416003725.GF8387@genesis.frugalware.org>
If the commit message has no empty line after the first line, we need to insert a newline after the first, so that the newlines won't be removed from the commit message for example when they are applied using git-am.
Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> ---
On Wed, Apr 16, 2008 at 02:37:25AM +0200, Miklos Vajna <vmiklos@frugalware.org> wrote:
Show 12 quoted lines
> If we are at it, I had a similar bugreport: If one doesn't use an > empty > line after the first line in the commit message, a git-format-patch + > git-am combo will strip newlines from the commit message: > > http://article.gmane.org/gmane.comp.version-control.git/73755 > > There, you suggested to modify git-format-patch, but I haven't come up > with such a patch nor anybody else. > > Actually I recently tried to make one but I got lost in pretty.c and > log-tree.c. :-)
Ok, here is a try. It does the trick for me, but this it the first time I touch pretty.c so feel free to point out if I did something wrong ;-)
Thanks.
pretty.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/pretty.c b/pretty.c index 6c04176..45a5679 100644 --- a/pretty.c +++ b/pretty.c @@ -653,6 +653,7 @@ void pp_title_line(enum cmit_fmt fmt, strbuf_init(&title, 80); + int check_empty = 1; for (;;) { const char *line = *msg_p; int linelen = get_one_line(line); @@ -666,7 +667,10 @@ void pp_title_line(enum cmit_fmt fmt, if (fmt == CMIT_FMT_EMAIL) { strbuf_addch(&title, '\n'); } - strbuf_addch(&title, ' '); + if (check_empty && strcmp(line, "\n")) { + check_empty = 0; + strbuf_addch(&title, '\n'); + } } strbuf_add(&title, line, linelen); }
-- 1.5.5