mailinfo: do not concatenate charset= attribute values from mime headers
"Content-type: text/plain; charset=UTF-8" header should not appear twice in the input, but it is always better to gracefully deal with such a case. The current code concatenates the value to the values we have seen previously, producing nonsense such as "utf8UTF-8". Instead of concatenating, forget the previous value and use the last value we see. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
785ee4960c
commit
176943b965
@ -160,10 +160,9 @@ static int slurp_attr(const char *line, const char *name, struct strbuf *attr)
|
|||||||
const char *ends, *ap = strcasestr(line, name);
|
const char *ends, *ap = strcasestr(line, name);
|
||||||
size_t sz;
|
size_t sz;
|
||||||
|
|
||||||
if (!ap) {
|
strbuf_setlen(attr, 0);
|
||||||
strbuf_setlen(attr, 0);
|
if (!ap)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
|
||||||
ap += strlen(name);
|
ap += strlen(name);
|
||||||
if (*ap == '"') {
|
if (*ap == '"') {
|
||||||
ap++;
|
ap++;
|
||||||
|
@ -11,7 +11,7 @@ test_expect_success 'split sample box' \
|
|||||||
'git mailsplit -o. "$TEST_DIRECTORY"/t5100/sample.mbox >last &&
|
'git mailsplit -o. "$TEST_DIRECTORY"/t5100/sample.mbox >last &&
|
||||||
last=`cat last` &&
|
last=`cat last` &&
|
||||||
echo total is $last &&
|
echo total is $last &&
|
||||||
test `cat last` = 16'
|
test `cat last` = 17'
|
||||||
|
|
||||||
check_mailinfo () {
|
check_mailinfo () {
|
||||||
mail=$1 opt=$2
|
mail=$1 opt=$2
|
||||||
|
5
t/t5100/info0017
Normal file
5
t/t5100/info0017
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
Author: A U Thor
|
||||||
|
Email: a.u.thor@example.com
|
||||||
|
Subject: A E I O U
|
||||||
|
Date: Mon, 17 Sep 2012 14:23:44 -0700
|
||||||
|
|
2
t/t5100/msg0017
Normal file
2
t/t5100/msg0017
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
New content here
|
||||||
|
|
6
t/t5100/patch0017
Normal file
6
t/t5100/patch0017
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
diff --git a/foo b/foo
|
||||||
|
index e69de29..d95f3ad 100644
|
||||||
|
--- a/foo
|
||||||
|
+++ b/foo
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+New content
|
@ -683,3 +683,19 @@ index e69de29..d95f3ad 100644
|
|||||||
@@ -0,0 +1 @@
|
@@ -0,0 +1 @@
|
||||||
+content
|
+content
|
||||||
|
|
||||||
|
From nobody Mon Sep 17 00:00:00 2001
|
||||||
|
From: A U Thor <a.u.thor@example.com>
|
||||||
|
Subject: A E I O U
|
||||||
|
Date: Mon, 17 Sep 2012 14:23:44 -0700
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset="iso-2022-jp"
|
||||||
|
Content-type: text/plain; charset="UTF-8"
|
||||||
|
|
||||||
|
New content here
|
||||||
|
|
||||||
|
diff --git a/foo b/foo
|
||||||
|
index e69de29..d95f3ad 100644
|
||||||
|
--- a/foo
|
||||||
|
+++ b/foo
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+New content
|
||||||
|
Loading…
Reference in New Issue
Block a user