]> granicus.if.org Git - git/commitdiff
mailinfo: move transfer_encoding to struct mailinfo
authorJunio C Hamano <gitster@pobox.com>
Wed, 14 Oct 2015 23:16:05 +0000 (16:16 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Oct 2015 22:53:25 +0000 (15:53 -0700)
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/mailinfo.c

index 1048a46e40aa2cf51f84606abf8ea5655e65c0d6..f74973ea0d248b0ecb5eb250a808115ae105dfca 100644 (file)
@@ -23,14 +23,14 @@ struct mailinfo {
        const char *metainfo_charset;
 
        char *message_id;
+       enum  {
+               TE_DONTCARE, TE_QP, TE_BASE64
+       } transfer_encoding;
        int patch_lines;
        int filter_stage; /* still reading log or are we copying patch? */
        int header_stage; /* still checking in-body headers? */
 };
 
-static enum  {
-       TE_DONTCARE, TE_QP, TE_BASE64
-} transfer_encoding;
 
 static struct strbuf charset = STRBUF_INIT;
 static struct strbuf **p_hdr_data, **s_hdr_data;
@@ -221,14 +221,15 @@ static void handle_message_id(struct mailinfo *mi, const struct strbuf *line)
                mi->message_id = strdup(line->buf);
 }
 
-static void handle_content_transfer_encoding(const struct strbuf *line)
+static void handle_content_transfer_encoding(struct mailinfo *mi,
+                                            const struct strbuf *line)
 {
        if (strcasestr(line->buf, "base64"))
-               transfer_encoding = TE_BASE64;
+               mi->transfer_encoding = TE_BASE64;
        else if (strcasestr(line->buf, "quoted-printable"))
-               transfer_encoding = TE_QP;
+               mi->transfer_encoding = TE_QP;
        else
-               transfer_encoding = TE_DONTCARE;
+               mi->transfer_encoding = TE_DONTCARE;
 }
 
 static int is_multipart_boundary(const struct strbuf *line)
@@ -511,7 +512,7 @@ static int check_header(struct mailinfo *mi,
                len = strlen("Content-Transfer-Encoding: ");
                strbuf_add(&sb, line->buf + len, line->len - len);
                decode_header(mi, &sb);
-               handle_content_transfer_encoding(&sb);
+               handle_content_transfer_encoding(mi, &sb);
                ret = 1;
                goto check_header_out;
        }
@@ -544,11 +545,11 @@ check_header_out:
        return ret;
 }
 
-static void decode_transfer_encoding(struct strbuf *line)
+static void decode_transfer_encoding(struct mailinfo *mi, struct strbuf *line)
 {
        struct strbuf *ret;
 
-       switch (transfer_encoding) {
+       switch (mi->transfer_encoding) {
        case TE_QP:
                ret = decode_q_segment(line, 0);
                break;
@@ -835,7 +836,7 @@ again:
        }
 
        /* set some defaults */
-       transfer_encoding = TE_DONTCARE;
+       mi->transfer_encoding = TE_DONTCARE;
        strbuf_reset(&charset);
 
        /* slurp in this section's info */
@@ -873,9 +874,9 @@ static void handle_body(struct mailinfo *mi, struct strbuf *line)
                }
 
                /* Unwrap transfer encoding */
-               decode_transfer_encoding(line);
+               decode_transfer_encoding(mi, line);
 
-               switch (transfer_encoding) {
+               switch (mi->transfer_encoding) {
                case TE_BASE64:
                case TE_QP:
                {