mailinfo: ignore blanks after in-body headers.
[jc: this is based on Eric's patch but also fixes up the parsed subject headers]. Signed-off-by: Junio C Hamano <junkio@cox.net>maint
parent
2662dbfa58
commit
ae448e3854
22
mailinfo.c
22
mailinfo.c
|
@ -243,11 +243,20 @@ static int eatspace(char *line)
|
||||||
#define SEEN_BOGUS_UNIX_FROM 010
|
#define SEEN_BOGUS_UNIX_FROM 010
|
||||||
#define SEEN_PREFIX 020
|
#define SEEN_PREFIX 020
|
||||||
|
|
||||||
/* First lines of body can have From:, Date:, and Subject: */
|
/* First lines of body can have From:, Date:, and Subject: or empty */
|
||||||
static void handle_inbody_header(int *seen, char *line)
|
static void handle_inbody_header(int *seen, char *line)
|
||||||
{
|
{
|
||||||
if (*seen & SEEN_PREFIX)
|
if (*seen & SEEN_PREFIX)
|
||||||
return;
|
return;
|
||||||
|
if (isspace(*line)) {
|
||||||
|
char *cp;
|
||||||
|
for (cp = line + 1; *cp; cp++) {
|
||||||
|
if (!isspace(*cp))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!*cp)
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (!memcmp(">From", line, 5) && isspace(line[5])) {
|
if (!memcmp(">From", line, 5) && isspace(line[5])) {
|
||||||
if (!(*seen & SEEN_BOGUS_UNIX_FROM)) {
|
if (!(*seen & SEEN_BOGUS_UNIX_FROM)) {
|
||||||
*seen |= SEEN_BOGUS_UNIX_FROM;
|
*seen |= SEEN_BOGUS_UNIX_FROM;
|
||||||
|
@ -316,6 +325,7 @@ static char *cleanup_subject(char *subject)
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
eatspace(subject);
|
||||||
return subject;
|
return subject;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -422,9 +432,7 @@ static int read_one_header_line(char *line, int sz, FILE *in)
|
||||||
if (fgets(line + ofs, sz - ofs, in) == NULL)
|
if (fgets(line + ofs, sz - ofs, in) == NULL)
|
||||||
break;
|
break;
|
||||||
len = eatspace(line + ofs);
|
len = eatspace(line + ofs);
|
||||||
if (len == 0)
|
if ((len == 0) || !is_rfc2822_header(line)) {
|
||||||
break;
|
|
||||||
if (!is_rfc2822_header(line)) {
|
|
||||||
/* Re-add the newline */
|
/* Re-add the newline */
|
||||||
line[ofs + len] = '\n';
|
line[ofs + len] = '\n';
|
||||||
line[ofs + len + 1] = '\0';
|
line[ofs + len + 1] = '\0';
|
||||||
|
@ -764,10 +772,8 @@ static void handle_body(void)
|
||||||
{
|
{
|
||||||
int seen = 0;
|
int seen = 0;
|
||||||
|
|
||||||
if (line[0] || fgets(line, sizeof(line), stdin) != NULL) {
|
handle_commit_msg(&seen);
|
||||||
handle_commit_msg(&seen);
|
handle_patch();
|
||||||
handle_patch();
|
|
||||||
}
|
|
||||||
fclose(patchfile);
|
fclose(patchfile);
|
||||||
if (!patch_lines) {
|
if (!patch_lines) {
|
||||||
fprintf(stderr, "No patch found\n");
|
fprintf(stderr, "No patch found\n");
|
||||||
|
|
Loading…
Reference in New Issue