summaryrefslogtreecommitdiff
path: root/mailinfo.c
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2006-05-23 19:58:36 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-05-23 21:11:03 (GMT)
commit2dec02b1ecafc47d4031d0a68a94c775a6a9ff9e (patch)
treed10c679b706fe1babd1ccc5e52e144c4d62982c5 /mailinfo.c
parentf30b20282babcd77bcadef70b4e36e24cd1f6d59 (diff)
downloadgit-2dec02b1ecafc47d4031d0a68a94c775a6a9ff9e.zip
git-2dec02b1ecafc47d4031d0a68a94c775a6a9ff9e.tar.gz
git-2dec02b1ecafc47d4031d0a68a94c775a6a9ff9e.tar.bz2
Allow in body headers beyond the in body header prefix.
- handle_from is fixed to not mangle it's input line. - Then handle_inbody_header is allowed to look in the body of a commit message for additional headers that we haven't already seen. This allows patches with all of the right information in unfortunate places to be imported. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'mailinfo.c')
-rw-r--r--mailinfo.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/mailinfo.c b/mailinfo.c
index a2b15e2..241bfb9 100644
--- a/mailinfo.c
+++ b/mailinfo.c
@@ -72,11 +72,14 @@ static int bogus_from(char *line)
return 1;
}
-static int handle_from(char *line)
+static int handle_from(char *in_line)
{
- char *at = strchr(line, '@');
+ char line[1000];
+ char *at;
char *dst;
+ strcpy(line, in_line);
+ at = strchr(line, '@');
if (!at)
return bogus_from(line);
@@ -242,8 +245,6 @@ static int eatspace(char *line)
/* First lines of body can have From:, Date:, and Subject: */
static void handle_inbody_header(int *seen, char *line)
{
- if (*seen & SEEN_PREFIX)
- return;
if (!memcmp("From:", line, 5) && isspace(line[5])) {
if (!(*seen & SEEN_FROM) && handle_from(line+6)) {
*seen |= SEEN_FROM;