TODO: should only be enabled explicitly to avoid unexpected trimming
Signed-off-by: Nguyễn Thái Ngọc Duy <[email protected]>
---
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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html