Skip to content

Commit 4916c8f

Browse files
artagnongitster
authored andcommitted
imap-send: Remove limitation on message body
There is a documented limitation on the body of any email not being able to contain lines starting with "From ". This patch removes that limitation by improving the parser to search for "From", "Date", and "Subject" fields in the email before considering it to be an email. Signed-off-by: Ramkumar Ramachandra <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 0b3dcfe commit 4916c8f

File tree

2 files changed

+10
-8
lines changed

2 files changed

+10
-8
lines changed

Documentation/git-imap-send.txt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ DESCRIPTION
1616
This command uploads a mailbox generated with 'git format-patch'
1717
into an IMAP drafts folder. This allows patches to be sent as
1818
other email is when using mail clients that cannot read mailbox
19-
files directly.
19+
files directly. The command also works with any general mailbox
20+
in which emails have the fields "From", "Date", and "Subject" in
21+
that order.
2022

2123
Typical usage is something like:
2224

@@ -118,12 +120,6 @@ Thunderbird in particular is known to be problematic. Thunderbird
118120
users may wish to visit this web page for more information:
119121
http://kb.mozillazine.org/Plain_text_e-mail_-_Thunderbird#Completely_plain_email
120122

121-
122-
BUGS
123-
----
124-
Doesn't handle lines starting with "From " in the message body.
125-
126-
127123
Author
128124
------
129125
Derived from isync 1.0.1 by Mike McCormack.

imap-send.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1306,8 +1306,14 @@ static int count_messages(struct msg_data *msg)
13061306

13071307
while (1) {
13081308
if (!prefixcmp(p, "From ")) {
1309+
p = strstr(p+5, "\nFrom: ");
1310+
if (!p) break;
1311+
p = strstr(p+7, "\nDate: ");
1312+
if (!p) break;
1313+
p = strstr(p+7, "\nSubject: ");
1314+
if (!p) break;
1315+
p += 10;
13091316
count++;
1310-
p += 5;
13111317
}
13121318
p = strstr(p+5, "\nFrom ");
13131319
if (!p)

0 commit comments

Comments
 (0)