summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar René Scharfe <rene.scharfe@lsrfire.ath.cx>2013-04-25 21:43:56 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2013-04-25 15:02:54 -0700
commita0511b3934287d0dbffdb28ff6f00a220f794e06 (patch)
treec7d5518954f497a3deb09d30f7500319260e55b5
parentpretty: simplify output line length calculation in pp_user_info() (diff)
downloadtgif-a0511b3934287d0dbffdb28ff6f00a220f794e06.tar.xz
pretty: remove intermediate strbufs from pp_user_info()
Use namebuf/namelen and mailbuf/maillen directly instead of copying their contents into strbufs first. Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--pretty.c29
1 files changed, 9 insertions, 20 deletions
diff --git a/pretty.c b/pretty.c
index 2031c77f15..0530abfa72 100644
--- a/pretty.c
+++ b/pretty.c
@@ -410,8 +410,6 @@ void pp_user_info(const struct pretty_print_context *pp,
const char *what, struct strbuf *sb,
const char *line, const char *encoding)
{
- struct strbuf name;
- struct strbuf mail;
struct ident_split ident;
char *line_end;
const char *mailbuf, *namebuf;
@@ -433,42 +431,33 @@ void pp_user_info(const struct pretty_print_context *pp,
if (pp->mailmap)
map_user(pp->mailmap, &mailbuf, &maillen, &namebuf, &namelen);
- strbuf_init(&mail, 0);
- strbuf_init(&name, 0);
-
- strbuf_add(&mail, mailbuf, maillen);
- strbuf_add(&name, namebuf, namelen);
-
if (pp->fmt == CMIT_FMT_EMAIL) {
strbuf_addstr(sb, "From: ");
- if (needs_rfc2047_encoding(name.buf, name.len, RFC2047_ADDRESS)) {
- add_rfc2047(sb, name.buf, name.len,
+ if (needs_rfc2047_encoding(namebuf, namelen, RFC2047_ADDRESS)) {
+ add_rfc2047(sb, namebuf, namelen,
encoding, RFC2047_ADDRESS);
max_length = 76; /* per rfc2047 */
- } else if (needs_rfc822_quoting(name.buf, name.len)) {
+ } else if (needs_rfc822_quoting(namebuf, namelen)) {
struct strbuf quoted = STRBUF_INIT;
- add_rfc822_quoted(&quoted, name.buf, name.len);
+ add_rfc822_quoted(&quoted, namebuf, namelen);
strbuf_add_wrapped_bytes(sb, quoted.buf, quoted.len,
-6, 1, max_length);
strbuf_release(&quoted);
} else {
- strbuf_add_wrapped_bytes(sb, name.buf, name.len,
+ strbuf_add_wrapped_bytes(sb, namebuf, namelen,
-6, 1, max_length);
}
if (max_length <
last_line_length(sb) + strlen(" <") + maillen + strlen(">"))
strbuf_addch(sb, '\n');
- strbuf_addf(sb, " <%s>\n", mail.buf);
+ strbuf_addf(sb, " <%.*s>\n", (int)maillen, mailbuf);
} else {
- strbuf_addf(sb, "%s: %.*s%s <%s>\n", what,
- (pp->fmt == CMIT_FMT_FULLER) ? 4 : 0,
- " ", name.buf, mail.buf);
+ strbuf_addf(sb, "%s: %.*s%.*s <%.*s>\n", what,
+ (pp->fmt == CMIT_FMT_FULLER) ? 4 : 0, " ",
+ (int)namelen, namebuf, (int)maillen, mailbuf);
}
- strbuf_release(&mail);
- strbuf_release(&name);
-
switch (pp->fmt) {
case CMIT_FMT_MEDIUM:
strbuf_addf(sb, "Date: %s\n",