mailinfo: feed only one line to handle_filter() for QP input
The function is intended to be fed one logical line at a time to inspect, but a QP encoded raw input line can have more than one lines, just like BASE64 encoded one. Quoting LF as =0A may be unusual but RFC2045 allows it. The issue was noticed and fixed by Jay Soffian. JC added a test to protect the fix from regressing later. Signed-off-by: Jay Soffian <jaysoffian@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b20a60d0c0
commit
87f1b8849b
@ -818,6 +818,7 @@ static void handle_body(void)
|
|||||||
|
|
||||||
switch (transfer_encoding) {
|
switch (transfer_encoding) {
|
||||||
case TE_BASE64:
|
case TE_BASE64:
|
||||||
|
case TE_QP:
|
||||||
{
|
{
|
||||||
char *op = line;
|
char *op = line;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ test_expect_success 'split sample box' \
|
|||||||
'git mailsplit -o. ../t5100/sample.mbox >last &&
|
'git mailsplit -o. ../t5100/sample.mbox >last &&
|
||||||
last=`cat last` &&
|
last=`cat last` &&
|
||||||
echo total is $last &&
|
echo total is $last &&
|
||||||
test `cat last` = 8'
|
test `cat last` = 9'
|
||||||
|
|
||||||
for mail in `echo 00*`
|
for mail in `echo 00*`
|
||||||
do
|
do
|
||||||
|
5
t/t5100/info0009
Normal file
5
t/t5100/info0009
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Author: F U Bar
|
||||||
|
Email: f.u.bar@example.com
|
||||||
|
Subject: updates
|
||||||
|
Date: Mon, 17 Sep 2001 00:00:00 +0900
|
||||||
|
|
2
t/t5100/msg0009
Normal file
2
t/t5100/msg0009
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
This is to fix diff-format documentation.
|
||||||
|
|
13
t/t5100/patch0009
Normal file
13
t/t5100/patch0009
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt
|
||||||
|
index b426a14..97756ec 100644
|
||||||
|
--- a/Documentation/diff-format.txt
|
||||||
|
+++ b/Documentation/diff-format.txt
|
||||||
|
@@ -81,7 +81,7 @@ The "diff" formatting options can be customized via the
|
||||||
|
environment variable 'GIT_DIFF_OPTS'. For example, if you
|
||||||
|
prefer context diff:
|
||||||
|
|
||||||
|
- GIT_DIFF_OPTS=-c git-diff-index -p $(cat .git/HEAD)
|
||||||
|
+ GIT_DIFF_OPTS=-c git-diff-index -p HEAD
|
||||||
|
|
||||||
|
|
||||||
|
2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
|
@ -407,3 +407,26 @@ Subject: [PATCH] another patch
|
|||||||
|
|
||||||
Hey you forgot the patch!
|
Hey you forgot the patch!
|
||||||
|
|
||||||
|
From nobody Mon Sep 17 00:00:00 2001
|
||||||
|
From: A U Thor <a.u.thor@example.com>
|
||||||
|
Date: Mon, 17 Sep 2001 00:00:00 +0900
|
||||||
|
Mime-Version: 1.0
|
||||||
|
Content-Type: Text/Plain; charset=us-ascii
|
||||||
|
Content-Transfer-Encoding: Quoted-Printable
|
||||||
|
|
||||||
|
=0A=0AFrom: F U Bar <f.u.bar@example.com>
|
||||||
|
Subject: [PATCH] updates=0A=0AThis is to fix diff-format documentation.
|
||||||
|
|
||||||
|
diff --git a/Documentation/diff-format.txt b/Documentation/diff-format.txt
|
||||||
|
index b426a14..97756ec 100644
|
||||||
|
--- a/Documentation/diff-format.txt
|
||||||
|
+++ b/Documentation/diff-format.txt
|
||||||
|
@@ -81,7 +81,7 @@ The "diff" formatting options can be customized via the
|
||||||
|
environment variable 'GIT_DIFF_OPTS'. For example, if you
|
||||||
|
prefer context diff:
|
||||||
|
=20
|
||||||
|
- GIT_DIFF_OPTS=3D-c git-diff-index -p $(cat .git/HEAD)
|
||||||
|
+ GIT_DIFF_OPTS=3D-c git-diff-index -p HEAD
|
||||||
|
=20
|
||||||
|
=20
|
||||||
|
2. When the environment variable 'GIT_EXTERNAL_DIFF' is set, the
|
||||||
|
Loading…
Reference in New Issue
Block a user