b8aac3c9bc
Add secondary_cursors field to Editor with insert_char_multi, delete_back_multi, delete_forward_multi methods. Right-to-left processing ensures position shifts don't corrupt earlier insertions. 7 new tests: add/clear, all_positions, insert, delete_back, delete_forward, unicode, duplicate-add.
62 lines
1023 B
Bash
Executable File
62 lines
1023 B
Bash
Executable File
#!/bin/sh
|
|
# filename quoting
|
|
|
|
. "${srcdir=.}/init.sh"; path_prepend_ ../src
|
|
|
|
fail=0
|
|
|
|
cat <<EOF > exp- || fail=1
|
|
diff -N -r "a/ " "b/ "
|
|
0a1
|
|
> space
|
|
EOF
|
|
|
|
cat <<EOF > exp--u || fail=1
|
|
diff -N -r -u "a/ " "b/ "
|
|
--- "a/ "
|
|
+++ "b/ "
|
|
@@ -0,0 +1 @@
|
|
+space
|
|
EOF
|
|
|
|
cat <<EOF > exp--c || fail=1
|
|
diff -N -r -c "a/ " "b/ "
|
|
*** "a/ "
|
|
--- "b/ "
|
|
***************
|
|
*** 0 ****
|
|
--- 1 ----
|
|
+ space
|
|
EOF
|
|
|
|
mkdir a b
|
|
echo space > "b/ " || fail=1
|
|
for opt in '' -u -c; do
|
|
returns_ 1 diff -N -r $opt a b > out 2> err || fail=1
|
|
# Remove date and time.
|
|
sed -e 's/^\([-+*][-+*][-+*] [^ ]*\) .*/\1/' out > k; mv k out
|
|
compare exp-$(echo $opt|tr ' ' _) out || fail=1
|
|
done
|
|
|
|
rm -f "b/ "
|
|
|
|
cat <<EOF > exp || fail=1
|
|
--- "a/\t"
|
|
+++ "b/\001"
|
|
@@ -1 +1 @@
|
|
-tab
|
|
+one
|
|
EOF
|
|
|
|
tab=$(printf '\t')
|
|
x01=$(printf '\001')
|
|
|
|
echo tab > "a/$tab" || fail=1
|
|
echo one > "b/$x01" || fail=1
|
|
returns_ 1 diff -u "a/$tab" "b/$x01" > out 2> err || fail=1
|
|
# Remove date and time.
|
|
sed -e 's/^\([-+*][-+*][-+*] [^ ]*\) .*/\1/' out > k; mv k out
|
|
compare exp out || fail=1
|
|
|
|
Exit $fail
|