summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.3.516
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.516')
-rw-r--r--source/ap/vim/patches/7.3.51694
1 files changed, 94 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.516 b/source/ap/vim/patches/7.3.516
new file mode 100644
index 000000000..d43be5a09
--- /dev/null
+++ b/source/ap/vim/patches/7.3.516
@@ -0,0 +1,94 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.516
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.516
+Problem: extend(o, o) may crash Vim.
+Solution: Fix crash and add test. (Thinca and Hirohito Higashi)
+Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok
+
+
+*** ../vim-7.3.515/src/eval.c 2012-04-30 17:35:44.000000000 +0200
+--- src/eval.c 2012-05-18 12:02:44.000000000 +0200
+***************
+*** 10191,10197 ****
+ EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+ break;
+ }
+! else if (*action == 'f')
+ {
+ clear_tv(&di1->di_tv);
+ copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+--- 10191,10197 ----
+ EMSG2(_("E737: Key already exists: %s"), hi2->hi_key);
+ break;
+ }
+! else if (*action == 'f' && HI2DI(hi2) != di1)
+ {
+ clear_tv(&di1->di_tv);
+ copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv);
+*** ../vim-7.3.515/src/testdir/test55.in 2010-11-10 20:31:24.000000000 +0100
+--- src/testdir/test55.in 2012-05-18 11:57:23.000000000 +0200
+***************
+*** 352,357 ****
+--- 352,375 ----
+ :let dict4copy = deepcopy(dict4)
+ :$put =(l == lcopy)
+ :$put =(dict4 == dict4copy)
++ :"
++ :" Pass the same List to extend()
++ :let l = [1, 2, 3, 4, 5]
++ :call extend(l, l)
++ :$put =string(l)
++ :"
++ :" Pass the same Dict to extend()
++ :let d = { 'a': {'b': 'B'}}
++ :call extend(d, d)
++ :$put =string(d)
++ :"
++ :" Pass the same Dict to extend() with "error"
++ :try
++ : call extend(d, d, "error")
++ :catch
++ : $put =v:exception[:15] . v:exception[-1:-1]
++ :endtry
++ :$put =string(d)
+ :endfun
+ :"
+ :call Test(1, 2, [3, 4], {5: 6}) " This may take a while
+*** ../vim-7.3.515/src/testdir/test55.ok 2010-11-10 20:31:24.000000000 +0100
+--- src/testdir/test55.ok 2012-05-18 11:57:01.000000000 +0200
+***************
+*** 111,113 ****
+--- 111,117 ----
+ 0
+ 1
+ 1
++ [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
++ {'a': {'b': 'B'}}
++ Vim(call):E737: a
++ {'a': {'b': 'B'}}
+*** ../vim-7.3.515/src/version.c 2012-04-30 21:09:38.000000000 +0200
+--- src/version.c 2012-05-18 12:04:54.000000000 +0200
+***************
+*** 716,717 ****
+--- 716,719 ----
+ { /* Add new patch number below this line */
++ /**/
++ 516,
+ /**/
+
+--
+I used to wonder about the meaning of life. But I looked it
+up in the dictionary under "L" and there it was - the meaning
+of life. It was less than I expected. - Dogbert
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///