Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
mailinfo: fold decode_header_bq() into decode_header()
author
Junio C Hamano
<gitster@pobox.com>
Wed, 14 Oct 2015 22:33:44 +0000
(15:33 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Mon, 19 Oct 2015 05:13:27 +0000
(22:13 -0700)
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>
builtin/mailinfo.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
2a5ce7c
)
diff --git
a/builtin/mailinfo.c
b/builtin/mailinfo.c
index 5a4ed75a2d26b9ca0495563ac0fb8c08f576873e..addc0e00a6098a764ec94214f5f8743f146f3426 100644
(file)
--- 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));
}
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;
{
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);
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) {
/*
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, '?')))
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)
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] != '?')
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)
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:
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;
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);
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);
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)
}
static void decode_transfer_encoding(struct strbuf *line)