On 2013-02-20 Wednesday at 19:27 +0100 Bram Moolenaar wrote:
> Patch 7.3.830
> Problem:    :mksession confuses bytes, columns and characters when positioning
>           the cursor.
> Solution:   Use w_virtcol with "|" instead of w_cursor.col with "l".
> Files:            src/ex_docmd.c

Hi Bram,

here are my test{91,92} scripts updated to test your patch.

-- 
Regards
Roland Eggner

---
src/testdir/Make_amiga.mak |   4 +++-
src/testdir/Make_dos.mak   |   2 +-
src/testdir/Make_ming.mak  |   2 +-
src/testdir/Make_os2.mak   |   2 +-
src/testdir/Make_vms.mms   |   2 +-
src/testdir/Makefile       |   8 ++++----
src/testdir/test91.in      |  45 +++++++++++++++++++++++++++++++++++++++++++++
src/testdir/test91.ok      |   9 +++++++++
src/testdir/test92.in      |  45 +++++++++++++++++++++++++++++++++++++++++++++
src/testdir/test92.ok      |   9 +++++++++
10 files changed, 119 insertions(+), 9 deletions(-)
diff --git a/src/testdir/Make_amiga.mak b/src/testdir/Make_amiga.mak
--- a/src/testdir/Make_amiga.mak
+++ b/src/testdir/Make_amiga.mak
@@ -32,7 +32,7 @@ SCRIPTS = test1.out test3.out test4.out 
                test71.out test72.out test73.out test74.out test75.out \
                test76.out test77.out test78.out test79.out test80.out \
                test81.out test82.out test83.out test84.out test88.out \
-               test89.out test90.out
+               test89.out test90.out test91.out test92.out
 
 .SUFFIXES: .in .out
 
@@ -139,3 +139,5 @@ test84.out: test84.in
 test88.out: test88.in
 test89.out: test89.in
 test90.out: test90.in
+test91.out: test91.in
+test92.out: test92.in
diff --git a/src/testdir/Make_dos.mak b/src/testdir/Make_dos.mak
--- a/src/testdir/Make_dos.mak
+++ b/src/testdir/Make_dos.mak
@@ -31,7 +31,7 @@ SCRIPTS =     test3.out test4.out test5.out 
                test74.out test75.out test76.out test77.out test78.out \
                test79.out test80.out test81.out test82.out test83.out \
                test84.out test85.out test86.out test87.out test88.out \
-               test89.out test90.out
+               test89.out test90.out test91.out test92.out
 
 SCRIPTS32 =    test50.out test70.out
 
diff --git a/src/testdir/Make_ming.mak b/src/testdir/Make_ming.mak
--- a/src/testdir/Make_ming.mak
+++ b/src/testdir/Make_ming.mak
@@ -51,7 +51,7 @@ SCRIPTS =     test3.out test4.out test5.out 
                test74.out test75.out test76.out test77.out test78.out \
                test79.out test80.out test81.out test82.out test83.out \
                test84.out test85.out test86.out test87.out test88.out \
-               test89.out test90.out
+               test89.out test90.out test91.out test92.out
 
 SCRIPTS32 =    test50.out test70.out
 
diff --git a/src/testdir/Make_os2.mak b/src/testdir/Make_os2.mak
--- a/src/testdir/Make_os2.mak
+++ b/src/testdir/Make_os2.mak
@@ -32,7 +32,7 @@ SCRIPTS = test1.out test3.out test4.out 
                test71.out test72.out test73.out test74.out test75.out \
                test76.out test77.out test78.out test79.out test80.out \
                test81.out test82.out test83.out test84.out test88.out \
-               test89.out test90.out
+               test89.out test90.out test91.out test92.out
 
 .SUFFIXES: .in .out
 
diff --git a/src/testdir/Make_vms.mms b/src/testdir/Make_vms.mms
--- a/src/testdir/Make_vms.mms
+++ b/src/testdir/Make_vms.mms
@@ -77,7 +77,7 @@ SCRIPT = test1.out  test2.out  test3.out
         test71.out test72.out test74.out test75.out test76.out \
         test77.out test78.out test79.out test80.out test81.out \
         test82.out test83.out test84.out test88.out test89.out \
-        test90.out
+        test90.out test91.out test92.out
 
 # Known problems:
 # Test 30: a problem around mac format - unknown reason
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -28,7 +28,7 @@ SCRIPTS = test1.out test2.out test3.out 
                test74.out test75.out test76.out test77.out test78.out \
                test79.out test80.out test81.out test82.out test83.out \
                test84.out test85.out test86.out test87.out test88.out \
-               test89.out test90.out
+               test89.out test90.out test91.out test92.out
 
 SCRIPTS_GUI = test16.out
 
@@ -58,7 +58,7 @@ clean:
 test1.out: test1.in
        -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START)
        $(RUN_VIM) $*.in
-       @/bin/sh -c "if diff test.out $*.ok; \
+       @/bin/sh -c "if diff -u test.out $*.ok; \
                then mv -f test.out $*.out; \
                else echo; \
                echo test1 FAILED - Something basic is wrong; \
@@ -74,7 +74,7 @@ test1.out: test1.in
 
        # For flaky tests retry one time.
        @/bin/sh -c "if test -f test.out -a $* = test61; then \
-                 if diff test.out $*.ok; \
+                 if diff -u test.out $*.ok; \
                  then echo flaky test ok first time; \
                  else rm -rf $*.failed $(RM_ON_RUN); \
                        $(RUN_VIM) $*.in; \
@@ -83,7 +83,7 @@ test1.out: test1.in
 
        # Check if the test.out file matches test.ok.
        @/bin/sh -c "if test -f test.out; then\
-                 if diff test.out $*.ok; \
+                 if diff -u test.out $*.ok; \
                  then mv -f test.out $*.out; \
                  else echo $* FAILED >>test.log; mv -f test.out $*.failed; \
                  fi \
diff --git a/src/testdir/test91.in b/src/testdir/test91.in
new file mode 100644
--- /dev/null
+++ b/src/testdir/test91.in
@@ -0,0 +1,45 @@
+vim: set ft=vim fenc=utf-8:
+
+Tests if :mksession saves cursor columns correctly in presence of tab and 
+multibyte characters when fileencoding=utf-8.
+
+STARTTEST
+:so mbyte.vim
+:if !has('mksession')
+   e! test.ok
+   wq! test.out
+:endif
+:set sessionoptions=buffers splitbelow fileencoding=utf-8
+/^start:
+:split
+:normal! j16|
+:split
+:normal! j16|
+:split
+:normal! j16|
+:split
+:normal! j8|
+:split
+:normal! j8|
+:split
+:normal! j16|
+:split
+:normal! j16|
+:split
+:normal! j16|
+:mksession! test.out
+:new test.out
+:v/^normal! 0/d
+:w
+:qa!
+ENDTEST
+
+start:
+no multibyte chAracter
+       one leaDing tab
+    four leadinG spaces
+two            consecutive tabs
+two    tabs    in one line
+one … multibyteCharacter
+a “b” two multiByte characters
+“c”1€ three mulTibyte characters
diff --git a/src/testdir/test91.ok b/src/testdir/test91.ok
new file mode 100644
--- /dev/null
+++ b/src/testdir/test91.ok
@@ -0,0 +1,9 @@
+normal! 0
+normal! 016|
+normal! 016|
+normal! 016|
+normal! 08|
+normal! 08|
+normal! 016|
+normal! 016|
+normal! 016|
diff --git a/src/testdir/test92.in b/src/testdir/test92.in
new file mode 100644
--- /dev/null
+++ b/src/testdir/test92.in
@@ -0,0 +1,45 @@
+vim: set ft=vim fenc=latin1:
+
+Tests if :mksession saves cursor columns correctly in presence of tab and 
+multibyte characters when fileencoding=latin1.
+
+STARTTEST
+:so mbyte.vim
+:if !has('mksession')
+   e! test.ok
+   wq! test.out
+:endif
+:set sessionoptions=buffers splitbelow fileencoding=latin1
+/^start:
+:split
+:normal! j16|
+:split
+:normal! j16|
+:split
+:normal! j16|
+:split
+:normal! j8|
+:split
+:normal! j8|
+:split
+:normal! j16|
+:split
+:normal! j16|
+:split
+:normal! j16|
+:mksession! test.out
+:new test.out
+:v/^normal! 0/d
+:w
+:qa!
+ENDTEST
+
+start:
+no multibyte chAracter
+       one leaDing tab
+    four leadinG spaces
+two            consecutive tabs
+two    tabs    in one line
+one � multibyteCharacter
+a� �  two multiByte characters
+A���  three mulTibyte characters
diff --git a/src/testdir/test92.ok b/src/testdir/test92.ok
new file mode 100644
--- /dev/null
+++ b/src/testdir/test92.ok
@@ -0,0 +1,9 @@
+normal! 0
+normal! 016|
+normal! 016|
+normal! 016|
+normal! 08|
+normal! 08|
+normal! 016|
+normal! 016|
+normal! 016|

Attachment: pgpnxdTcfBD4U.pgp
Description: PGP signature

Raspunde prin e-mail lui