Browse Source

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>
maint
Junio C Hamano 12 years ago
parent
commit
176943b965
  1. 5
      builtin/mailinfo.c
  2. 2
      t/t5100-mailinfo.sh
  3. 5
      t/t5100/info0017
  4. 2
      t/t5100/msg0017
  5. 6
      t/t5100/patch0017
  6. 16
      t/t5100/sample.mbox

5
builtin/mailinfo.c

@ -160,10 +160,9 @@ static int slurp_attr(const char *line, const char *name, struct strbuf *attr) @@ -160,10 +160,9 @@ static int slurp_attr(const char *line, const char *name, struct strbuf *attr)
const char *ends, *ap = strcasestr(line, name);
size_t sz;

if (!ap) {
strbuf_setlen(attr, 0);
strbuf_setlen(attr, 0);
if (!ap)
return 0;
}
ap += strlen(name);
if (*ap == '"') {
ap++;

2
t/t5100-mailinfo.sh

@ -11,7 +11,7 @@ test_expect_success 'split sample box' \ @@ -11,7 +11,7 @@ test_expect_success 'split sample box' \
'git mailsplit -o. "$TEST_DIRECTORY"/t5100/sample.mbox >last &&
last=`cat last` &&
echo total is $last &&
test `cat last` = 16'
test `cat last` = 17'

check_mailinfo () {
mail=$1 opt=$2

5
t/t5100/info0017

@ -0,0 +1,5 @@ @@ -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

@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
New content here

6
t/t5100/patch0017

@ -0,0 +1,6 @@ @@ -0,0 +1,6 @@
diff --git a/foo b/foo
index e69de29..d95f3ad 100644
--- a/foo
+++ b/foo
@@ -0,0 +1 @@
+New content

16
t/t5100/sample.mbox

@ -683,3 +683,19 @@ index e69de29..d95f3ad 100644 @@ -683,3 +683,19 @@ index e69de29..d95f3ad 100644
@@ -0,0 +1 @@
+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…
Cancel
Save