Browse Source
We truncate hunk-header line at 80 bytes, but that 80th byte could be in the middle of a character, which is bad. This uses pick_one_utf8_char() function to make sure we do not cut a character in the middle. This assumes that the internal representation of the text is UTF-8. This needs to be extended in the future but the optimal direction has not been decided yet. Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
Junio C Hamano
17 years ago
committed by
Junio C Hamano
2 changed files with 69 additions and 0 deletions
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
#!/bin/sh |
||||
|
||||
test_description='diff hunk header truncation' |
||||
|
||||
. ./test-lib.sh |
||||
|
||||
N='日本語' |
||||
N1='日' |
||||
N2='日本' |
||||
NS="$N$N$N$N$N$N$N$N$N$N$N$N$N" |
||||
|
||||
test_expect_success setup ' |
||||
|
||||
( |
||||
echo "A $NS" |
||||
for c in B C D E F G H I J K |
||||
do |
||||
echo " $c" |
||||
done |
||||
echo "L $NS" |
||||
for c in M N O P Q R S T U V |
||||
do |
||||
echo " $c" |
||||
done |
||||
) >file && |
||||
git add file && |
||||
|
||||
sed -e "/^ [EP]/s/$/ modified/" <file >file+ && |
||||
mv file+ file |
||||
|
||||
' |
||||
|
||||
test_expect_success 'hunk header truncation with an overly long line' ' |
||||
|
||||
git diff | sed -n -e "s/^.*@@//p" >actual && |
||||
( |
||||
echo " A $N$N$N$N$N$N$N$N$N2" |
||||
echo " L $N$N$N$N$N$N$N$N$N1" |
||||
) >expected && |
||||
diff -u actual expected |
||||
|
||||
' |
||||
|
||||
test_done |
Loading…
Reference in new issue