mirror of
https://github.com/git/git.git
synced 2024-10-20 08:48:12 +02:00
353aaf2fa1
When native language (RU) is in use, subject header usually contains several parts, e.g. Subject: [Navy-patches] [PATCH] =?utf-8?b?0JjQt9C80LXQvdGR0L0g0YHQv9C40YHQvtC6INC/0LA=?= =?utf-8?b?0LrQtdGC0L7QsiDQvdC10L7QsdGF0L7QtNC40LzRi9GFINC00LvRjyA=?= =?utf-8?b?0YHQsdC+0YDQutC4?= This exposes several bugs in builtin-mailinfo.c: 1. decode_b_segment: do not append explicit NUL -- explicit NUL was preventing correct header construction on parts concatenation via strbuf_addbuf in decode_header_bq. Fixes: -Subject: Изменён список пакетов необходимых для сборки +Subject: Изменён список па Then 2. Do not emit '\n' between "encoded-word" where RFC2046 says that linear white space between them are ignored when displaying. Fixes: -Subject: Изменён список пакетов необходимых для сборки +Subject: Изменён список па кетов необходимых для сборки Signed-off-by: Kirill Smelkov <kirr@mns.spb.ru> Signed-off-by: Junio C Hamano <gitster@pobox.com>
58 lines
1.3 KiB
Bash
Executable File
58 lines
1.3 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright (c) 2005 Junio C Hamano
|
|
#
|
|
|
|
test_description='git mailinfo and git mailsplit test'
|
|
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'split sample box' \
|
|
'git mailsplit -o. ../t5100/sample.mbox >last &&
|
|
last=`cat last` &&
|
|
echo total is $last &&
|
|
test `cat last` = 12'
|
|
|
|
for mail in `echo 00*`
|
|
do
|
|
test_expect_success "mailinfo $mail" \
|
|
"git mailinfo -u msg$mail patch$mail <$mail >info$mail &&
|
|
echo msg &&
|
|
diff ../t5100/msg$mail msg$mail &&
|
|
echo patch &&
|
|
diff ../t5100/patch$mail patch$mail &&
|
|
echo info &&
|
|
diff ../t5100/info$mail info$mail"
|
|
done
|
|
|
|
test_expect_success 'respect NULs' '
|
|
|
|
git mailsplit -d3 -o. ../t5100/nul-plain &&
|
|
cmp ../t5100/nul-plain 001 &&
|
|
(cat 001 | git mailinfo msg patch) &&
|
|
test 4 = $(wc -l < patch)
|
|
|
|
'
|
|
|
|
test_expect_success 'Preserve NULs out of MIME encoded message' '
|
|
|
|
git mailsplit -d5 -o. ../t5100/nul-b64.in &&
|
|
cmp ../t5100/nul-b64.in 00001 &&
|
|
git mailinfo msg patch <00001 &&
|
|
cmp ../t5100/nul-b64.expect patch
|
|
|
|
'
|
|
|
|
test_expect_success 'mailinfo on from header without name works' '
|
|
|
|
mkdir info-from &&
|
|
git mailsplit -oinfo-from "$TEST_DIRECTORY"/t5100/info-from.in &&
|
|
test_cmp "$TEST_DIRECTORY"/t5100/info-from.in info-from/0001 &&
|
|
git mailinfo info-from/msg info-from/patch \
|
|
<info-from/0001 >info-from/out &&
|
|
test_cmp "$TEST_DIRECTORY"/t5100/info-from.expect info-from/out
|
|
|
|
'
|
|
|
|
test_done
|