diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-10-14 15:33:44 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-10-18 22:13:27 -0700 |
commit | 3a8fcdaf844910578d91ff225bcb1587ddb4d062 (patch) | |
tree | c55d5c82b2dc39e8f7733321bd84dd16e0f06c94 /builtin | |
parent | mailinfo: remove a no-op call convert_to_utf8(it, "") (diff) | |
download | tgif-3a8fcdaf844910578d91ff225bcb1587ddb4d062.tar.xz |
mailinfo: fold decode_header_bq() into decode_header()
In olden days we might have wanted to behave differently in
decode_header() if the header line was encoded with RFC2047, but we
apparently do not do so, hence this helper function can go, together
with its return value.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/mailinfo.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/builtin/mailinfo.c b/builtin/mailinfo.c index 5a4ed75a2d..addc0e00a6 100644 --- a/builtin/mailinfo.c +++ b/builtin/mailinfo.c @@ -525,19 +525,17 @@ static void convert_to_utf8(struct strbuf *line, const char *charset) strbuf_attach(line, out, strlen(out), strlen(out)); } -static int decode_header_bq(struct strbuf *it) +static void decode_header(struct strbuf *it) { char *in, *ep, *cp; struct strbuf outbuf = STRBUF_INIT, *dec; struct strbuf charset_q = STRBUF_INIT, piecebuf = STRBUF_INIT; - int rfc2047 = 0; in = it->buf; while (in - it->buf <= it->len && (ep = strstr(in, "=?")) != NULL) { int encoding; strbuf_reset(&charset_q); strbuf_reset(&piecebuf); - rfc2047 = 1; if (in != ep) { /* @@ -567,22 +565,22 @@ static int decode_header_bq(struct strbuf *it) ep += 2; if (ep - it->buf >= it->len || !(cp = strchr(ep, '?'))) - goto decode_header_bq_out; + goto release_return; if (cp + 3 - it->buf > it->len) - goto decode_header_bq_out; + goto release_return; strbuf_add(&charset_q, ep, cp - ep); encoding = cp[1]; if (!encoding || cp[2] != '?') - goto decode_header_bq_out; + goto release_return; ep = strstr(cp + 3, "?="); if (!ep) - goto decode_header_bq_out; + goto release_return; strbuf_add(&piecebuf, cp + 3, ep - cp - 3); switch (tolower(encoding)) { default: - goto decode_header_bq_out; + goto release_return; case 'b': dec = decode_b_segment(&piecebuf); break; @@ -601,17 +599,10 @@ static int decode_header_bq(struct strbuf *it) strbuf_addstr(&outbuf, in); strbuf_reset(it); strbuf_addbuf(it, &outbuf); -decode_header_bq_out: +release_return: strbuf_release(&outbuf); strbuf_release(&charset_q); strbuf_release(&piecebuf); - return rfc2047; -} - -static void decode_header(struct strbuf *it) -{ - if (decode_header_bq(it)) - return; } static void decode_transfer_encoding(struct strbuf *line) |