Hi Bram!

On Mi, 06 Nov 2013, Bram Moolenaar wrote:

> 
> Christian Brabandt wrote:
> 
> > On Wed, November 6, 2013 05:26, Bram Moolenaar wrote:
> > >
> > > Patch 7.4.073
> > > Problem:    Setting undolevels for one buffer changes undo in another.
> > > Solution:   Make 'undolevels' a global-local option. (Christian Brabandt)
> > > Files:      runtime/doc/options.txt, src/buffer.c, src/option.c,
> > > src/option.h
> > >             src/structs.h, src/undo.c
> > >
> > 
> > Now this time, I was too slow, with adding some tests to that patch ;(
> > 
> > But this is mainly, because I discovered a problem with the undo tree,
> > that I haven't completly debugged yet.
> 
> Yes, tests were missing.  I also fixed a few problems relative to your
> patch (which was old).

Here is the missing test.

Best,
Christian
-- 
Betrachte alles von der guten Seite.
                -- Thomas Jefferson

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
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
@@ -34,7 +34,7 @@
 		test81.out test82.out test83.out test84.out test88.out \
 		test89.out test90.out test91.out test92.out test93.out \
 		test94.out test95.out test96.out test97.out test98.out \
-		test99.out
+		test99.out test_ul_setting.out
 
 .SUFFIXES: .in .out
 
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
@@ -32,7 +32,8 @@
 		test79.out test80.out test81.out test82.out test83.out \
 		test84.out test85.out test86.out test87.out test88.out \
 		test89.out test90.out test91.out test92.out test93.out \
-		test94.out test95.out test96.out test98.out test99.out
+		test94.out test95.out test96.out test98.out test99.out \
+		test_ul_setting.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
@@ -52,7 +52,8 @@
 		test79.out test80.out test81.out test82.out test83.out \
 		test84.out test85.out test86.out test87.out test88.out \
 		test89.out test90.out test91.out test92.out test93.out \
-		test94.out test95.out test96.out test98.out test99.out
+		test94.out test95.out test96.out test98.out test99.out \
+		test_ul_setting.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
@@ -34,7 +34,8 @@
 		test76.out test77.out test78.out test79.out test80.out \
 		test81.out test82.out test83.out test84.out test88.out \
 		test89.out test90.out test91.out test92.out test93.out \
-		test94.out test95.out test96.out test98.out test99.out
+		test94.out test95.out test96.out test98.out test99.out \
+		test_ul_setting
 
 .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
@@ -78,7 +78,8 @@
 	 test77.out test78.out test79.out test80.out test81.out \
 	 test82.out test83.out test84.out test88.out test89.out \
 	 test90.out test91.out test92.out test93.out test94.out \
-	 test95.out test96.out test97.out test98.out test99.out
+	 test95.out test96.out test97.out test98.out test99.out \
+	 test_ul_setting.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
@@ -30,7 +30,7 @@
 		test84.out test85.out test86.out test87.out test88.out \
 		test89.out test90.out test91.out test92.out test93.out \
 		test94.out test95.out test96.out test97.out test98.out \
-		test99.out
+		test99.out test_ul_setting.out
 
 SCRIPTS_GUI = test16.out
 
diff --git a/src/testdir/test_ul_setting.in b/src/testdir/test_ul_setting.in
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_ul_setting.in
@@ -0,0 +1,54 @@
+Tests for 'undolevel' setting being global-local
+
+STARTTEST
+:set nocompatible viminfo+=nviminfo ul=5
+:if !has("eval") || !has("windows")
+    :so tiny.vim
+    :q
+:endif
+:fu! FillBuffer()
+    :exe ":norm! o1\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o2\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o3\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o4\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o5\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o6\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o7\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o8\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o9\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o10\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o11\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o12\<esc>:setg ul=".&g:ul."\<cr>"
+    :exe ":norm! o13\<esc>:setg ul=".&g:ul."\<cr>"
+:endfu
+:fu! UndoLevel()
+    :redir @a | setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |redir end
+    :$put a
+:endfu
+:new one
+:0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'
+:call FillBuffer()
+:call feedkeys(":earlier 10\n", 't')
+:call UndoLevel()
+:%w! test.out
+:new two
+:0put ='TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)'
+:setlocal ul=2
+:call FillBuffer()
+:call feedkeys(":earlier 10\n", 't')
+:call UndoLevel()
+:setlocal ul=10
+:call UndoLevel()
+:%w >> test.out
+:wincmd p
+:redir >>test.out | echo "global value shouldn't be changed and still be 5!" | echo 'ONE: expecting global undolevels: 5, local undolevels: -123456 (default)'|:setglobal undolevels? | echon ' global' | setlocal undolevels? | echon ' local' |echo "" |redir end
+:new three
+:setglobal ul=50
+:1put ='global value should be changed to 50'
+:2put ='THREE: expecting global undolevels: 50, local undolevels: -123456 (default)'
+:call UndoLevel()
+:%w >> test.out
+:"sleep 10
+:qa!
+ENDTEST
+
diff --git a/src/testdir/test_ul_setting.ok b/src/testdir/test_ul_setting.ok
new file mode 100644
--- /dev/null
+++ b/src/testdir/test_ul_setting.ok
@@ -0,0 +1,41 @@
+ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
+1
+2
+3
+4
+5
+6
+7
+
+
+  undolevels=5 global
+  undolevels=-123456 local
+TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+
+
+  undolevels=5 global
+  undolevels=2 local
+
+  undolevels=5 global
+  undolevels=10 local
+
+global value shouldn't be changed and still be 5!
+ONE: expecting global undolevels: 5, local undolevels: -123456 (default)
+  undolevels=5 global
+  undolevels=-123456 local
+
+global value should be changed to 50
+THREE: expecting global undolevels: 50, local undolevels: -123456 (default)
+
+  undolevels=50 global
+  undolevels=-123456 local

Raspunde prin e-mail lui