shortlog: take the first populated line of the description
[gitweb.git] / builtin-mailinfo.c
index d7cb11dc0d6339dbea51c89f3cd4966e8f6b4c3d..11f154b31fcbd5c788299855e7d69f54ae8c7e70 100644 (file)
@@ -288,7 +288,7 @@ static void cleanup_space(char *buf)
 }
 
 static void decode_header(char *it, unsigned itsize);
-static char *header[MAX_HDR_PARSED] = {
+static const char *header[MAX_HDR_PARSED] = {
        "From","Subject","Date",
 };
 
@@ -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);