From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 7/6] pretty: trim trailing spaces due to padding
Date: Sat, 22 Sep 2012 11:26:40 +0700 [thread overview]
Message-ID: <1348288000-12485-1-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1348287739-12128-1-git-send-email-pclouds@gmail.com>
TODO: should only be enabled explicitly to avoid unexpected trimming
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
And I did not remember I was in interactive rebase mode when I made
the series. This patch is for discussion only. My screen seems to
flash (I think) printing trailing spaces.
pretty.c | 1 +
strbuf.c | 29 +++++++++++++++++++++++++++++
strbuf.h | 1 +
t/t9010-svn-fe.sh | 2 +-
4 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/pretty.c b/pretty.c
index 6662f52..70f776b 100644
--- a/pretty.c
+++ b/pretty.c
@@ -1327,6 +1327,7 @@ void format_commit_message(const struct commit *commit,
strbuf_expand(sb, format, format_commit_item, &context);
rewrap_message_tail(sb, &context, 0, 0, 0);
+ delete_trailing_whitespace(sb);
if (context.message != commit->buffer)
free(context.message);
diff --git a/strbuf.c b/strbuf.c
index 0510f76..e001175 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -488,3 +488,32 @@ int fprintf_ln(FILE *fp, const char *fmt, ...)
return -1;
return ret + 1;
}
+
+void delete_trailing_whitespace(struct strbuf *sb)
+{
+ char *src = sb->buf, *dst = sb->buf;
+ char *end = src + sb->len, *anchor = NULL;
+ while (src < end) {
+ if (*src == ' ') {
+ if (anchor)
+ src++;
+ else
+ anchor = src++;
+ } else if (*src == '\n') {
+ if (anchor) {
+ *dst++ = *src++;
+ anchor = NULL;
+ } else
+ *dst++ = *src++;
+ } else {
+ if (anchor) {
+ memcpy(dst, anchor, src - anchor);
+ dst += src - anchor;
+ anchor = NULL;
+ }
+ *dst++ = *src++;
+ }
+ }
+ sb->len = dst - sb->buf;
+ sb->buf[sb->len] = '\0';
+}
diff --git a/strbuf.h b/strbuf.h
index be941ee..75a8908 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -42,6 +42,7 @@ static inline void strbuf_setlen(struct strbuf *sb, size_t len) {
extern void strbuf_trim(struct strbuf *);
extern void strbuf_rtrim(struct strbuf *);
extern void strbuf_ltrim(struct strbuf *);
+extern void delete_trailing_whitespace(struct strbuf *);
extern int strbuf_cmp(const struct strbuf *, const struct strbuf *);
extern struct strbuf **strbuf_split_buf(const char *, size_t,
diff --git a/t/t9010-svn-fe.sh b/t/t9010-svn-fe.sh
index b7eed24..b603e70 100755
--- a/t/t9010-svn-fe.sh
+++ b/t/t9010-svn-fe.sh
@@ -96,7 +96,7 @@ test_expect_failure PIPE 'empty revision' '
test_expect_success PIPE 'empty properties' '
reinit_git &&
- printf "rev <nobody, nobody@local>: %s\n" "" "" >expect &&
+ printf "rev <nobody, nobody@local>: %s\n" "" "" | sed "s/ *$//" >expect &&
cat >emptyprop.dump <<-\EOF &&
SVN-fs-dump-format-version: 3
--
1.7.12.1.384.g7b808e7
next prev parent reply other threads:[~2012-09-22 4:26 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-22 4:22 [PATCH 0/6] Advanced --oneline layout Nguyễn Thái Ngọc Duy
2012-09-22 4:22 ` [PATCH 1/6] pretty: share code between format_decoration and show_decorations Nguyễn Thái Ngọc Duy
2012-09-22 4:22 ` [PATCH 2/6] pretty: split parsing %C into a separate function Nguyễn Thái Ngọc Duy
2012-09-22 4:22 ` [PATCH 3/6] pretty: support %C(auto[,N]) to turn on coloring on next placeholder(s) Nguyễn Thái Ngọc Duy
2012-09-22 4:22 ` [PATCH 4/6] utf8.c: move display_mode_esc_sequence_len() for use by other functions Nguyễn Thái Ngọc Duy
2012-09-22 4:22 ` [PATCH 5/6] utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences Nguyễn Thái Ngọc Duy
2012-09-22 4:22 ` [PATCH 6/6] pretty: support padding placeholders, %< %> and %<> Nguyễn Thái Ngọc Duy
2012-09-22 4:26 ` Nguyễn Thái Ngọc Duy [this message]
2012-09-23 9:10 ` [PATCH v2 0/9] Advanced --oneline layout Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 1/9] pretty: share code between format_decoration and show_decorations Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 2/9] pretty: split parsing %C into a separate function Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 3/9] pretty: support %C(auto[,N]) to turn on coloring on next placeholder(s) Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 4/9] utf8.c: move display_mode_esc_sequence_len() for use by other functions Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 5/9] utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 6/9] pretty: two phase conversion for non utf-8 commits Nguyễn Thái Ngọc Duy
2012-09-23 13:54 ` Robin Rosenberg
2012-09-24 1:21 ` Nguyen Thai Ngoc Duy
2012-09-23 9:10 ` [PATCH 7/9] pretty: support padding placeholders, %< %> and %>< Nguyễn Thái Ngọc Duy
2012-10-24 8:25 ` Jeff King
2012-09-23 9:10 ` [PATCH 8/9] pretty: support truncating in %>, %< " Nguyễn Thái Ngọc Duy
2012-09-23 9:10 ` [PATCH 9/9] pretty: support %>> that steal trailing spaces Nguyễn Thái Ngọc Duy
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=1348288000-12485-1-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--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.
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).