alloc_ref_from_str(): factor out a common pattern of alloc_ref from string
[gitweb.git] / builtin-mailinfo.c
index fb12248f825807b085f4e5ed761002c30925ead5..11f154b31fcbd5c788299855e7d69f54ae8c7e70 100644 (file)
@@ -818,6 +818,7 @@ static void handle_body(void)
 
                switch (transfer_encoding) {
                case TE_BASE64:
+               case TE_QP:
                {
                        char *op = line;
 
@@ -915,6 +916,7 @@ static void handle_info(void)
 static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding,
                    const char *msg, const char *patch)
 {
+       int peek;
        keep_subject = ks;
        metainfo_charset = encoding;
        fin = in;
@@ -935,6 +937,11 @@ static int mailinfo(FILE *in, FILE *out, int ks, const char *encoding,
        p_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(char *));
        s_hdr_data = xcalloc(MAX_HDR_PARSED, sizeof(char *));
 
+       do {
+               peek = fgetc(in);
+       } while (isspace(peek));
+       ungetc(peek, in);
+
        /* process the email header */
        while (read_one_header_line(line, sizeof(line), fin))
                check_header(line, sizeof(line), p_hdr_data, 1);