From 9218a9dcae8ecd0d1d9c55d2618c1960440e2aa1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 18 Jan 2015 18:00:04 +0100 Subject: [PATCH 0001/1407] - patchlevel 581 --- 7.4.581 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.4.581 diff --git a/7.4.581 b/7.4.581 new file mode 100644 index 00000000..390f8408 --- /dev/null +++ b/7.4.581 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.581 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.581 +Problem: Compiler warnings for unitinialized variables. (John Little) +Solution: Initialize the variables. +Files: src/ops.c + + +*** ../vim-7.4.580/src/ops.c 2014-12-17 21:00:44.989871256 +0100 +--- src/ops.c 2015-01-18 14:06:49.480786101 +0100 +*************** +*** 5663,5670 **** + int set_prev = FALSE; + char_u *str; + char_u **array = NULL; +! int new_type; +! colnr_T new_width; + + /* We only get here (hopefully) if line[0] == '"' */ + str = virp->vir_line + 1; +--- 5663,5670 ---- + int set_prev = FALSE; + char_u *str; + char_u **array = NULL; +! int new_type = MCHAR; /* init to shut up compiler */ +! colnr_T new_width = 0; /* init to shut up compiler */ + + /* We only get here (hopefully) if line[0] == '"' */ + str = virp->vir_line + 1; +*************** +*** 5747,5752 **** +--- 5747,5753 ---- + do_it = FALSE; + } + } ++ + if (do_it) + { + /* free y_array[] */ +*** ../vim-7.4.580/src/version.c 2015-01-14 21:21:56.924743601 +0100 +--- src/version.c 2015-01-18 14:07:36.712268926 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 581, + /**/ + +-- +From "know your smileys": + :-D Big smile + + /// 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 /// From c63678dc877130771d67f4bf75c63bf10d3e5799 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 18 Jan 2015 18:00:05 +0100 Subject: [PATCH 0002/1407] - patchlevel 582 --- 7.4.582 | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 7.4.582 diff --git a/7.4.582 b/7.4.582 new file mode 100644 index 00000000..cf66c484 --- /dev/null +++ b/7.4.582 @@ -0,0 +1,117 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.582 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.582 (after 7.4.577) +Problem: Can't match "%>80v" properly. (Axel Bender) +Solution: Correctly handle ">". (Christian Brabandt) +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.4.581/src/regexp_nfa.c 2015-01-14 18:40:23.083769507 +0100 +--- src/regexp_nfa.c 2015-01-18 16:38:05.437339384 +0100 +*************** +*** 6441,6456 **** + { + int op = t->state->c - NFA_VCOL; + colnr_T col = (colnr_T)(reginput - regline); + + /* Bail out quickly when there can't be a match, avoid the + * overhead of win_linetabsize() on long lines. */ +! if ((col > t->state->val && op != 1) +! || (col - 1 > t->state->val && op == 1)) + break; +! result = nfa_re_num_cmp(t->state->val, op, +! (long_u)win_linetabsize( +! reg_win == NULL ? curwin : reg_win, +! regline, col) + 1); + if (result) + { + add_here = TRUE; +--- 6441,6466 ---- + { + int op = t->state->c - NFA_VCOL; + colnr_T col = (colnr_T)(reginput - regline); ++ win_T *wp = reg_win == NULL ? curwin : reg_win; + + /* Bail out quickly when there can't be a match, avoid the + * overhead of win_linetabsize() on long lines. */ +! if (op != 1 && col > t->state->val) + break; +! result = FALSE; +! if (op == 1 && col - 1 > t->state->val && col > 100) +! { +! int ts = wp->w_buffer->b_p_ts; +! +! /* Guess that a character won't use more columns than +! * 'tabstop', with a minimum of 4. */ +! if (ts < 4) +! ts = 4; +! result = col > t->state->val * ts; +! } +! if (!result) +! result = nfa_re_num_cmp(t->state->val, op, +! (long_u)win_linetabsize(wp, regline, col) + 1); + if (result) + { + add_here = TRUE; +*** ../vim-7.4.581/src/testdir/test64.in 2014-08-29 11:56:21.350422045 +0200 +--- src/testdir/test64.in 2015-01-18 16:09:31.852099488 +0100 +*************** +*** 7,12 **** +--- 7,13 ---- + STARTTEST + :so small.vim + :" tl is a List of Lists with: ++ :" regexp engine + :" regexp pattern + :" text to test the pattern on + :" expected match (optional) +*************** +*** 451,456 **** +--- 452,460 ---- + :"""" Skip adding state twice + :call add(tl, [2, '^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@=', "#if FOO", "#if", ' FOO']) + :" ++ :""" Test \%V atom ++ :call add(tl, [2, '\%>70vGesamt', 'Jean-Michel Charlier & Victor Hubinon\Gesamtausgabe [Salleck] Buck Danny {Jean-Michel Charlier & Victor Hubinon}\Gesamtausgabe', 'Gesamt']) ++ :" + :"""" Run the tests + :" + :for t in tl +*** ../vim-7.4.581/src/testdir/test64.ok 2014-08-29 11:56:21.350422045 +0200 +--- src/testdir/test64.ok 2015-01-18 16:09:31.852099488 +0100 +*************** +*** 1030,1035 **** +--- 1030,1038 ---- + OK 0 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= + OK 1 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= + OK 2 - ^\%(\%(^\s*#\s*if\>\|#\s*if\)\)\(\%>1c.*$\)\@= ++ OK 0 - \%>70vGesamt ++ OK 1 - \%>70vGesamt ++ OK 2 - \%>70vGesamt + multi-line tests + OK 0 - ^.\(.\).\_..\1. + OK 1 - ^.\(.\).\_..\1. +*** ../vim-7.4.581/src/version.c 2015-01-18 14:08:52.699436994 +0100 +--- src/version.c 2015-01-18 16:12:32.682119256 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 582, + /**/ + +-- +There's no place like $(HOME)! + + /// 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 /// From 8f9eca6a24bbbe61108d6936764e2a92d18ab7f6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 18 Jan 2015 18:00:06 +0100 Subject: [PATCH 0003/1407] - patchlevel 582 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6c7be20d..662cb538 100644 --- a/README.patches +++ b/README.patches @@ -602,3 +602,5 @@ Individual patches for Vim 7.4: 1647 7.4.578 after "$" in an empty line getcurpos() returns negative number 5369 7.4.579 wrong cursor positioning when 'linebreak' set and lines wrap 1513 7.4.580 ":52wincmd v" still gives an invalid range error + 1773 7.4.581 compiler warnings for unitinialized variables + 3876 7.4.582 (after 7.4.577) can't match "%>80v" properly diff --git a/vim.spec b/vim.spec index 6f4cf3b9..33157b9c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 580 +%define patchlevel 582 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -627,6 +627,8 @@ Patch577: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.577 Patch578: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.578 Patch579: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.579 Patch580: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.580 +Patch581: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.581 +Patch582: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.582 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1356,6 +1358,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch578 -p0 %patch579 -p0 %patch580 -p0 +%patch581 -p0 +%patch582 -p0 # install spell files %if %{withvimspell} @@ -1873,6 +1877,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Jan 18 2015 Karsten Hopp 7.4.582-1 +- patchlevel 582 + * Thu Jan 15 2015 Karsten Hopp 7.4.580-1 - patchlevel 580 From c8003ccc920491d4c127b63fc5327b88770ab1d1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Jan 2015 18:00:05 +0100 Subject: [PATCH 0004/1407] - patchlevel 583 --- 7.4.583 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.583 diff --git a/7.4.583 b/7.4.583 new file mode 100644 index 00000000..037e77b7 --- /dev/null +++ b/7.4.583 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.583 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.583 +Problem: With tiny features test 16 may fail. +Solution: Source small.vim. (Christian Brabandt) +Files: src/testdir/test16.in + + +*** ../vim-7.4.582/src/testdir/test16.in 2012-10-11 04:02:11.000000000 +0200 +--- src/testdir/test16.in 2015-01-20 12:01:28.895462263 +0100 +*************** +*** 2,7 **** +--- 2,8 ---- + For KDE set a font, empty 'guifont' may cause a hang. + + STARTTEST ++ :so small.vim + :if $DISPLAY == "" | e! test.ok | wq! test.out | endif + :set exrc secure + :if has("gui_kde") +*** ../vim-7.4.582/src/version.c 2015-01-18 16:46:28.987828395 +0100 +--- src/version.c 2015-01-20 12:02:13.234978619 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 583, + /**/ + +-- +I AM THANKFUL... +...for the mess to clean after a party because it means I have +been surrounded by friends. + + /// 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 /// From 2ff7444d5b5dd3ab7401a0a1dd0ebe11d3832cfd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Jan 2015 18:00:06 +0100 Subject: [PATCH 0005/1407] - patchlevel 584 --- 7.4.584 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.584 diff --git a/7.4.584 b/7.4.584 new file mode 100644 index 00000000..3e116e29 --- /dev/null +++ b/7.4.584 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.584 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.584 +Problem: With tiny features test_command_count may fail. +Solution: Source small.vim. (Christian Brabandt) +Files: src/testdir/test_command_count.in + + +*** ../vim-7.4.583/src/testdir/test_command_count.in 2015-01-07 16:52:53.506792420 +0100 +--- src/testdir/test_command_count.in 2015-01-20 12:39:27.630490602 +0100 +*************** +*** 1,7 **** + Test for user command counts vim: set ft=vim : + + STARTTEST +! :so tiny.vim + :let g:lines = [] + :com -range=% RangeLines :call add(g:lines, 'RangeLines '..' '.) + :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) +--- 1,7 ---- + Test for user command counts vim: set ft=vim : + + STARTTEST +! :so small.vim + :let g:lines = [] + :com -range=% RangeLines :call add(g:lines, 'RangeLines '..' '.) + :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) +*** ../vim-7.4.583/src/version.c 2015-01-20 12:13:56.975270382 +0100 +--- src/version.c 2015-01-20 12:36:04.068720526 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 584, + /**/ + +-- +The primary purpose of the DATA statement is to give names to constants; +instead of referring to pi as 3.141592653589793 at every appearance, the +variable PI can be given that value with a DATA statement and used instead +of the longer form of the constant. This also simplifies modifying the +program, should the value of pi change. + -- FORTRAN manual for Xerox Computers + + /// 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 /// From c57dc2f3125767c29549cd1386781ed886ee661e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Jan 2015 18:00:06 +0100 Subject: [PATCH 0006/1407] - patchlevel 585 --- 7.4.585 | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 7.4.585 diff --git a/7.4.585 b/7.4.585 new file mode 100644 index 00000000..d28714c4 --- /dev/null +++ b/7.4.585 @@ -0,0 +1,131 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.585 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.585 +Problem: Range for :bdelete does not work. (Ronald Schild) +Solution: Also allow unloaded buffers. +Files: src/ex_cmds.h, src/testdir/test_command_count.in, + src/testdir/test_command_count.ok + + +*** ../vim-7.4.584/src/ex_cmds.h 2015-01-07 16:52:53.506792420 +0100 +--- src/ex_cmds.h 2015-01-20 13:22:16.778245812 +0100 +*************** +*** 173,179 **** + ADDR_LINES), + EX(CMD_bdelete, "bdelete", ex_bunload, + BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR, +! ADDR_LOADED_BUFFERS), + EX(CMD_behave, "behave", ex_behave, + NEEDARG|WORD1|TRLBAR|CMDWIN, + ADDR_LINES), +--- 173,179 ---- + ADDR_LINES), + EX(CMD_bdelete, "bdelete", ex_bunload, + BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR, +! ADDR_BUFFERS), + EX(CMD_behave, "behave", ex_behave, + NEEDARG|WORD1|TRLBAR|CMDWIN, + ADDR_LINES), +*** ../vim-7.4.584/src/testdir/test_command_count.in 2015-01-20 12:39:35.918399822 +0100 +--- src/testdir/test_command_count.in 2015-01-20 13:21:55.510479070 +0100 +*************** +*** 92,102 **** + :call append(0, g:lines) + :unlet g:lines + :w|bd +- :se hidden + :b1 + ENDTEST + + STARTTEST + :only! + :let g:lines = [] + :%argd +--- 92,128 ---- + :call append(0, g:lines) + :unlet g:lines + :w|bd + :b1 + ENDTEST + + STARTTEST ++ :let g:lines = [] ++ :func BufStatus() ++ : call add(g:lines, 'aaa: ' . buflisted(g:buf_aaa) . ' bbb: ' . buflisted(g:buf_bbb) . ' ccc: ' . buflisted(g:buf_ccc)) ++ :endfunc ++ :se nohidden ++ :e aaa ++ :let buf_aaa = bufnr('%') ++ :e bbb ++ :let buf_bbb = bufnr('%') ++ :e ccc ++ :let buf_ccc = bufnr('%') ++ :b1 ++ :call BufStatus() ++ :exe buf_bbb . "," . buf_ccc . "bdelete" ++ :call BufStatus() ++ :exe buf_aaa . "bdelete" ++ :call BufStatus() ++ :e! test.out ++ :call append('$', g:lines) ++ :unlet g:lines ++ :delfunc BufStatus ++ :w|bd ++ :b1 ++ ENDTEST ++ ++ STARTTEST ++ :se hidden + :only! + :let g:lines = [] + :%argd +*** ../vim-7.4.584/src/testdir/test_command_count.ok 2015-01-14 11:24:51.851582151 +0100 +--- src/testdir/test_command_count.ok 2015-01-20 13:16:03.358341733 +0100 +*************** +*** 28,35 **** + $+tabe E16: Invalid range + 0tabm x + + argdo: c d e + windo: 2 3 4 +! bufdo: 2 3 4 5 6 7 8 9 10 12 + bufdo: 3 4 5 6 7 + tabdo: 2 3 4 +--- 28,38 ---- + $+tabe E16: Invalid range + 0tabm x + ++ aaa: 1 bbb: 1 ccc: 1 ++ aaa: 1 bbb: 0 ccc: 0 ++ aaa: 0 bbb: 0 ccc: 0 + argdo: c d e + windo: 2 3 4 +! bufdo: 2 3 4 5 6 7 8 9 10 15 + bufdo: 3 4 5 6 7 + tabdo: 2 3 4 +*** ../vim-7.4.584/src/version.c 2015-01-20 12:39:35.918399822 +0100 +--- src/version.c 2015-01-20 13:27:49.438597595 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 585, + /**/ + +-- +I AM THANKFUL... +...for a lawn that needs mowing, windows that need cleaning +and gutters that need fixing because it means I have a home. + + /// 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 /// From c29dc77767286e9b4e62c497c6cbb7b74750d959 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Jan 2015 18:00:07 +0100 Subject: [PATCH 0007/1407] - patchlevel 586 --- 7.4.586 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.586 diff --git a/7.4.586 b/7.4.586 new file mode 100644 index 00000000..3fb001ff --- /dev/null +++ b/7.4.586 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.586 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.586 +Problem: Parallel building of the documentation html files is not reliable. +Solution: Remove a cyclic dependency. (Reiner Herrmann) +Files: runtime/doc/Makefile + + +*** ../vim-7.4.585/runtime/doc/Makefile 2010-07-21 20:38:06.000000000 +0200 +--- runtime/doc/Makefile 2015-01-20 17:24:26.743888063 +0100 +*************** +*** 229,235 **** + starting.html \ + syntax.html \ + tabpage.html \ +- tags.html \ + tagsrch.html \ + term.html \ + tips.html \ +--- 229,234 ---- +*** ../vim-7.4.585/src/version.c 2015-01-20 13:29:46.397315064 +0100 +--- src/version.c 2015-01-20 17:25:55.974918912 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 586, + /**/ + +-- +From "know your smileys": + |-( Contact lenses, but has lost them + + /// 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 /// From e3608f3343ecfd31003c6f182e03bb2e26aed072 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 20 Jan 2015 18:00:08 +0100 Subject: [PATCH 0008/1407] - patchlevel 586 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 662cb538..cc3d75b0 100644 --- a/README.patches +++ b/README.patches @@ -604,3 +604,7 @@ Individual patches for Vim 7.4: 1513 7.4.580 ":52wincmd v" still gives an invalid range error 1773 7.4.581 compiler warnings for unitinialized variables 3876 7.4.582 (after 7.4.577) can't match "%>80v" properly + 1391 7.4.583 with tiny features test 16 may fail + 2093 7.4.584 with tiny features test_command_count may fail + 3336 7.4.585 range for :bdelete does not work + 1324 7.4.586 parallel building of documentation html files is not reliable diff --git a/vim.spec b/vim.spec index 33157b9c..daca4fd2 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 582 +%define patchlevel 586 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -629,6 +629,10 @@ Patch579: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.579 Patch580: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.580 Patch581: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.581 Patch582: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.582 +Patch583: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.583 +Patch584: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.584 +Patch585: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.585 +Patch586: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.586 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1360,6 +1364,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch580 -p0 %patch581 -p0 %patch582 -p0 +%patch583 -p0 +%patch584 -p0 +%patch585 -p0 +%patch586 -p0 # install spell files %if %{withvimspell} @@ -1877,6 +1885,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Jan 20 2015 Karsten Hopp 7.4.586-1 +- patchlevel 586 + * Sun Jan 18 2015 Karsten Hopp 7.4.582-1 - patchlevel 582 From 9fa511db6ed5351d5f4dfcc494cb0739079ef97f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 21 Jan 2015 16:18:14 +0100 Subject: [PATCH 0009/1407] - patchlevel 587 --- 7.4.587 | 225 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) create mode 100644 7.4.587 diff --git a/7.4.587 b/7.4.587 new file mode 100644 index 00000000..ff97be12 --- /dev/null +++ b/7.4.587 @@ -0,0 +1,225 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.587 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.587 +Problem: Conceal does not work properly with 'linebreak'. (cs86661) +Solution: Save and restore boguscols. (Christian Brabandt) +Files: src/screen.c, src/testdir/test_listlbr_utf8.in, + src/testdir/test_listlbr_utf8.ok + + +*** ../vim-7.4.586/src/screen.c 2015-01-14 19:35:10.967756099 +0100 +--- src/screen.c 2015-01-20 18:57:39.114986010 +0100 +*************** +*** 3003,3008 **** +--- 3003,3009 ---- + wrapping */ + int vcol_off = 0; /* offset for concealed characters */ + int did_wcol = FALSE; ++ int old_boguscols = 0; + # define VCOL_HLC (vcol - vcol_off) + # define FIX_FOR_BOGUSCOLS \ + { \ +*************** +*** 3010,3015 **** +--- 3011,3017 ---- + vcol -= vcol_off; \ + vcol_off = 0; \ + col -= boguscols; \ ++ old_boguscols = boguscols; \ + boguscols = 0; \ + } + #else +*************** +*** 4545,4554 **** + int saved_nextra = n_extra; + + #ifdef FEAT_CONCEAL +! if (is_concealing && vcol_off > 0) + /* there are characters to conceal */ + tab_len += vcol_off; + #endif + /* if n_extra > 0, it gives the number of chars, to + * use for a tab, else we need to calculate the width + * for a tab */ +--- 4547,4562 ---- + int saved_nextra = n_extra; + + #ifdef FEAT_CONCEAL +! if ((is_concealing || boguscols > 0) && vcol_off > 0) + /* there are characters to conceal */ + tab_len += vcol_off; ++ /* boguscols before FIX_FOR_BOGUSCOLS macro from above ++ */ ++ if (wp->w_p_list && lcs_tab1 && old_boguscols > 0 ++ && n_extra > tab_len) ++ tab_len += n_extra - tab_len; + #endif ++ + /* if n_extra > 0, it gives the number of chars, to + * use for a tab, else we need to calculate the width + * for a tab */ +*************** +*** 4577,4583 **** + #ifdef FEAT_CONCEAL + /* n_extra will be increased by FIX_FOX_BOGUSCOLS + * macro below, so need to adjust for that here */ +! if (is_concealing && vcol_off > 0) + n_extra -= vcol_off; + #endif + } +--- 4585,4591 ---- + #ifdef FEAT_CONCEAL + /* n_extra will be increased by FIX_FOX_BOGUSCOLS + * macro below, so need to adjust for that here */ +! if ((is_concealing || boguscols > 0) && vcol_off > 0) + n_extra -= vcol_off; + #endif + } +*************** +*** 4590,4595 **** +--- 4598,4609 ---- + * the tab can be longer than 'tabstop' when there + * are concealed characters. */ + FIX_FOR_BOGUSCOLS; ++ /* Make sure, the highlighting for the tab char will be ++ * correctly set further below (effectively reverts the ++ * FIX_FOR_BOGSUCOLS macro */ ++ if (old_boguscols > 0 && n_extra > tab_len && wp->w_p_list ++ && lcs_tab1) ++ tab_len += n_extra - tab_len; + #endif + #ifdef FEAT_MBYTE + mb_utf8 = FALSE; /* don't draw as UTF-8 */ +*** ../vim-7.4.586/src/testdir/test_listlbr_utf8.in 2014-07-30 16:44:17.499534723 +0200 +--- src/testdir/test_listlbr_utf8.in 2015-01-20 18:55:32.060370459 +0100 +*************** +*** 9,17 **** + :put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \" + :norm! zt + :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap +! :fu! ScreenChar(width) + : let c='' +! : for j in range(1,4) + : for i in range(1,a:width) + : let c.=nr2char(screenchar(j, i)) + : endfor +--- 9,17 ---- + :put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \" + :norm! zt + :set ts=4 sw=4 sts=4 linebreak sbr=+ wrap +! :fu! ScreenChar(width, lines) + : let c='' +! : for j in range(1,a:lines) + : for i in range(1,a:width) + : let c.=nr2char(screenchar(j, i)) + : endfor +*************** +*** 28,40 **** + :let g:test ="Test 1: set linebreak + set list + fancy listchars" + :exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6" + :redraw! +! :let line=ScreenChar(winwidth(0)) + :call DoRecordScreen() + :" + :let g:test ="Test 2: set nolinebreak list" + :set list nolinebreak + :redraw! +! :let line=ScreenChar(winwidth(0)) + :call DoRecordScreen() + :" + :let g:test ="Test 3: set linebreak nolist" +--- 28,40 ---- + :let g:test ="Test 1: set linebreak + set list + fancy listchars" + :exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6" + :redraw! +! :let line=ScreenChar(winwidth(0),4) + :call DoRecordScreen() + :" + :let g:test ="Test 2: set nolinebreak list" + :set list nolinebreak + :redraw! +! :let line=ScreenChar(winwidth(0),4) + :call DoRecordScreen() + :" + :let g:test ="Test 3: set linebreak nolist" +*************** +*** 43,51 **** + :norm! zt + :set nolist linebreak + :redraw! +! :let line=ScreenChar(winwidth(0)) + :call DoRecordScreen() +- :" + :%w! test.out + :qa! + ENDTEST +--- 43,61 ---- + :norm! zt + :set nolist linebreak + :redraw! +! :let line=ScreenChar(winwidth(0),4) +! :call DoRecordScreen() +! :let g:test ="Test 4: set linebreak list listchars and concealing" +! :let c_defines=['#define ABCDE 1','#define ABCDEF 1','#define ABCDEFG 1','#define ABCDEFGH 1', '#define MSG_MODE_FILE 1','#define MSG_MODE_CONSOLE 2','#define MSG_MODE_FILE_AND_CONSOLE 3','#define MSG_MODE_FILE_THEN_CONSOLE 4'] +! :call append('$', c_defines) +! :vert resize 40 +! :$-7 +! :norm! zt +! :set list linebreak listchars=tab:>- cole=1 +! :syn match Conceal conceal cchar=>'AB\|MSG_MODE' +! :redraw! +! :let line=ScreenChar(winwidth(0),7) + :call DoRecordScreen() + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.586/src/testdir/test_listlbr_utf8.ok 2014-07-30 16:44:17.499534723 +0200 +--- src/testdir/test_listlbr_utf8.ok 2015-01-20 18:55:32.060370459 +0100 +*************** +*** 19,21 **** +--- 19,38 ---- + ~ + ~ + ~ ++ #define ABCDE 1 ++ #define ABCDEF 1 ++ #define ABCDEFG 1 ++ #define ABCDEFGH 1 ++ #define MSG_MODE_FILE 1 ++ #define MSG_MODE_CONSOLE 2 ++ #define MSG_MODE_FILE_AND_CONSOLE 3 ++ #define MSG_MODE_FILE_THEN_CONSOLE 4 ++ ++ Test 4: set linebreak list listchars and concealing ++ #define ABCDE>-->---1 ++ #define >CDEF>-->---1 ++ #define >CDEFG>->---1 ++ #define >CDEFGH>----1 ++ #define >_FILE>--------->--->---1 ++ #define >_CONSOLE>---------->---2 ++ #define >_FILE_AND_CONSOLE>---------3 +*** ../vim-7.4.586/src/version.c 2015-01-20 17:27:18.154026317 +0100 +--- src/version.c 2015-01-20 19:01:11.448672365 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 587, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +93. New mail alarm on your palmtop annoys other churchgoers. + + /// 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 /// From 452e0b9766e4711f5dc81ed44116e1d1e2fa0d7e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 21 Jan 2015 16:18:15 +0100 Subject: [PATCH 0010/1407] - patchlevel 588 --- 7.4.588 | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 7.4.588 diff --git a/7.4.588 b/7.4.588 new file mode 100644 index 00000000..10448c8a --- /dev/null +++ b/7.4.588 @@ -0,0 +1,183 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.588 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.588 +Problem: ":0argedit foo" puts the new argument in the second place instead + of the first. +Solution: Adjust the range type. (Ingo Karkat) +Files: src/ex_cmds.h, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_argument_0count.in, + src/testdir/test_argument_0count.ok + + +*** ../vim-7.4.587/src/ex_cmds.h 2015-01-20 13:29:46.397315064 +0100 +--- src/ex_cmds.h 2015-01-20 19:23:58.901739397 +0100 +*************** +*** 136,142 **** + BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, + ADDR_ARGUMENTS), + EX(CMD_argedit, "argedit", ex_argedit, +! BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR, + ADDR_ARGUMENTS), + EX(CMD_argglobal, "argglobal", ex_args, + BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +--- 136,142 ---- + BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, + ADDR_ARGUMENTS), + EX(CMD_argedit, "argedit", ex_argedit, +! BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILE1|EDITCMD|ARGOPT|TRLBAR, + ADDR_ARGUMENTS), + EX(CMD_argglobal, "argglobal", ex_args, + BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +*** ../vim-7.4.587/src/testdir/Make_amiga.mak 2014-12-13 21:00:52.059036480 +0100 +--- src/testdir/Make_amiga.mak 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 36,41 **** +--- 36,42 ---- + test94.out test95.out test96.out test97.out test98.out \ + test99.out test100.out test101.out test102.out test103.out \ + test104.out test105.out test106.out test107.out \ ++ test_argument_0count.out \ + test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ +*************** +*** 175,180 **** +--- 176,182 ---- + test105.out: test105.in + test106.out: test106.in + test107.out: test107.in ++ test_argument_0count.out: test_argument_0count.in + test_argument_count.out: test_argument_count.in + test_autoformat_join.out: test_autoformat_join.in + test_breakindent.out: test_breakindent.in +*** ../vim-7.4.587/src/testdir/Make_dos.mak 2014-12-13 21:00:52.059036480 +0100 +--- src/testdir/Make_dos.mak 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 35,40 **** +--- 35,41 ---- + test94.out test95.out test96.out test98.out test99.out \ + test100.out test101.out test102.out test103.out test104.out \ + test105.out test106.out test107.out\ ++ test_argument_0count.out \ + test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ +*** ../vim-7.4.587/src/testdir/Make_ming.mak 2014-12-13 21:00:52.059036480 +0100 +--- src/testdir/Make_ming.mak 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 57,62 **** +--- 57,63 ---- + test94.out test95.out test96.out test98.out test99.out \ + test100.out test101.out test102.out test103.out test104.out \ + test105.out test106.out test107.out \ ++ test_argument_0count.out \ + test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ +*** ../vim-7.4.587/src/testdir/Make_os2.mak 2014-12-13 21:00:52.059036480 +0100 +--- src/testdir/Make_os2.mak 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 37,42 **** +--- 37,43 ---- + test94.out test95.out test96.out test98.out test99.out \ + test100.out test101.out test102.out test103.out test104.out \ + test105.out test106.out test107.out \ ++ test_argument_0count.out \ + test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ +*** ../vim-7.4.587/src/testdir/Make_vms.mms 2014-12-13 21:00:52.059036480 +0100 +--- src/testdir/Make_vms.mms 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 96,101 **** +--- 96,102 ---- + test95.out test96.out test98.out test99.out \ + test100.out test101.out test103.out test104.out \ + test105.out test106.out test107.out \ ++ test_argument_0count.out \ + test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ +*** ../vim-7.4.587/src/testdir/Makefile 2014-12-13 21:00:52.059036480 +0100 +--- src/testdir/Makefile 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 33,38 **** +--- 33,39 ---- + test94.out test95.out test96.out test97.out test98.out \ + test99.out test100.out test101.out test102.out test103.out \ + test104.out test105.out test106.out test107.out \ ++ test_argument_0count.out \ + test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ +*** ../vim-7.4.587/src/testdir/test_argument_0count.in 2015-01-20 19:30:28.969469550 +0100 +--- src/testdir/test_argument_0count.in 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 0 **** +--- 1,28 ---- ++ Tests for :0argadd and :0argedit vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :let arglists = [] ++ :%argd ++ :arga a b c d ++ :2argu ++ :0arga added ++ :call add(arglists, argv()) ++ :2argu ++ :arga third ++ :call add(arglists, argv()) ++ :%argd ++ :arga a b c d ++ :2argu ++ :0arge edited ++ :call add(arglists, argv()) ++ :2argu ++ :arga third ++ :call add(arglists, argv()) ++ :e! test.out ++ :call append(0, map(copy(arglists), 'join(v:val, " ")')) ++ :w ++ :qa! ++ ENDTEST ++ ++ +*** ../vim-7.4.587/src/testdir/test_argument_0count.ok 2015-01-20 19:30:28.973469506 +0100 +--- src/testdir/test_argument_0count.ok 2015-01-20 19:22:46.050535656 +0100 +*************** +*** 0 **** +--- 1,5 ---- ++ added a b c d ++ added a third b c d ++ edited a b c d ++ edited a third b c d ++ +*** ../vim-7.4.587/src/version.c 2015-01-20 19:01:32.384444246 +0100 +--- src/version.c 2015-01-20 19:21:15.335527208 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 588, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +94. Now admit it... How many of you have made "modem noises" into + the phone just to see if it was possible? :-) + + /// 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 /// From 2694bd33bd0842dc2aa0154e597911387c34dd04 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 21 Jan 2015 16:18:16 +0100 Subject: [PATCH 0011/1407] - patchlevel 589 --- 7.4.589 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 7.4.589 diff --git a/7.4.589 b/7.4.589 new file mode 100644 index 00000000..f869902b --- /dev/null +++ b/7.4.589 @@ -0,0 +1,79 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.589 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.589 +Problem: In the MS-Windows console Vim can't handle greek characters when + encoding is utf-8. +Solution: Escape K_NUL. (Yasuhiro Matsumoto) +Files: src/os_win32.c + + +*** ../vim-7.4.588/src/os_win32.c 2014-11-12 16:10:44.254085193 +0100 +--- src/os_win32.c 2015-01-20 19:36:59.725188180 +0100 +*************** +*** 1814,1831 **** + if (conv) + { + char_u *p = typeahead + typeaheadlen; +- char_u *e = typeahead + TYPEAHEADLEN; + +! while (*p && p < e) + { +! if (*p == K_NUL) + { + ++p; +- mch_memmove(p + 1, p, ((size_t)(e - p)) - 1); +- *p = 3; +- ++n; + } +- ++p; + } + } + +--- 1814,1835 ---- + if (conv) + { + char_u *p = typeahead + typeaheadlen; + +! if (*p != K_NUL) + { +! char_u *e = typeahead + TYPEAHEADLEN; +! +! while (*p && p < e) + { ++ if (*p == K_NUL) ++ { ++ ++p; ++ mch_memmove(p + 1, p, ((size_t)(e - p)) - 1); ++ *p = 3; ++ ++n; ++ } + ++p; + } + } + } + +*** ../vim-7.4.588/src/version.c 2015-01-20 19:30:46.669275579 +0100 +--- src/version.c 2015-01-20 19:35:35.774107846 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 589, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +95. Only communication in your household is through email. + + /// 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 /// From 5aa1bb4fffb54aa931094bfb6fcdefb6a4b9e24a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 21 Jan 2015 16:18:17 +0100 Subject: [PATCH 0012/1407] - patchlevel 589 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index cc3d75b0..545deb00 100644 --- a/README.patches +++ b/README.patches @@ -608,3 +608,6 @@ Individual patches for Vim 7.4: 2093 7.4.584 with tiny features test_command_count may fail 3336 7.4.585 range for :bdelete does not work 1324 7.4.586 parallel building of documentation html files is not reliable + 7106 7.4.587 conceal does not work properly with 'linebreak' + 6287 7.4.588 ":0argedit foo" puts the new argument in the second place + 1927 7.4.589 MS-Windows console: Vim can't handle greek utf-8 characters diff --git a/vim.spec b/vim.spec index daca4fd2..87c6ca2d 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 586 +%define patchlevel 589 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -633,6 +633,9 @@ Patch583: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.583 Patch584: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.584 Patch585: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.585 Patch586: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.586 +Patch587: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.587 +Patch588: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.588 +Patch589: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.589 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1368,6 +1371,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch584 -p0 %patch585 -p0 %patch586 -p0 +%patch587 -p0 +%patch588 -p0 +%patch589 -p0 # install spell files %if %{withvimspell} @@ -1885,6 +1891,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jan 21 2015 Karsten Hopp 7.4.589-1 +- patchlevel 589 + * Tue Jan 20 2015 Karsten Hopp 7.4.586-1 - patchlevel 586 From e84b07dbfd1e1c22acb9f3f57ecf837dccee72d8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 21 Jan 2015 16:50:26 +0100 Subject: [PATCH 0013/1407] disable lua for now --- vim.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index 87c6ca2d..4f6f9cb7 100644 --- a/vim.spec +++ b/vim.spec @@ -12,7 +12,7 @@ %define withvimspell 0 %define withhunspell 0 %define withruby 1 -%define withlua 1 +%define withlua 0 %define baseversion 7.4 %define vimdir vim74 From bdb93b5d0f4fcb62086c7ac96b1f42ce1008c0e4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 23 Jan 2015 18:00:04 +0100 Subject: [PATCH 0014/1407] - patchlevel 590 --- 7.4.590 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.590 diff --git a/7.4.590 b/7.4.590 new file mode 100644 index 00000000..b8afcf96 --- /dev/null +++ b/7.4.590 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.590 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.590 +Problem: Using ctrl_x_mode as if it contains flags. +Solution: Don't use AND with CTRL_X_OMNI. (Hirohito Higashi) +Files: src/edit.c + + +*** ../vim-7.4.589/src/edit.c 2014-11-12 18:59:17.602000656 +0100 +--- src/edit.c 2015-01-20 19:43:45.376745467 +0100 +*************** +*** 3394,3400 **** + * allow the word to be deleted, we won't match everything. */ + if ((int)(p - line) - (int)compl_col < 0 + || ((int)(p - line) - (int)compl_col == 0 +! && (ctrl_x_mode & CTRL_X_OMNI) == 0)) + return K_BS; + + /* Deleted more than what was used to find matches or didn't finish +--- 3394,3400 ---- + * allow the word to be deleted, we won't match everything. */ + if ((int)(p - line) - (int)compl_col < 0 + || ((int)(p - line) - (int)compl_col == 0 +! && ctrl_x_mode != CTRL_X_OMNI)) + return K_BS; + + /* Deleted more than what was used to find matches or didn't finish +*** ../vim-7.4.589/src/version.c 2015-01-20 19:39:31.655524020 +0100 +--- src/version.c 2015-01-22 22:40:04.297786215 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 590, + /**/ + +-- +Laughing helps. It's like jogging on the inside. + + /// 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 /// From 763db9d0fe39f03ffcf5c7efcc30e6fb69c27d97 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 23 Jan 2015 18:00:05 +0100 Subject: [PATCH 0015/1407] - patchlevel 591 --- 7.4.591 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.591 diff --git a/7.4.591 b/7.4.591 new file mode 100644 index 00000000..ab6871a5 --- /dev/null +++ b/7.4.591 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.591 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.591 (after 7.4.587) +Problem: test_listlbr_utf8 fails when the conceal feature is not available. +Solution: Check for the conceal feature. (Kazunobu Kuriyama) +Files: src/testdir/test_listlbr_utf8.in + + +*** ../vim-7.4.590/src/testdir/test_listlbr_utf8.in 2015-01-20 19:01:32.380444290 +0100 +--- src/testdir/test_listlbr_utf8.in 2015-01-22 22:37:43.523361845 +0100 +*************** +*** 2,8 **** + + STARTTEST + :so small.vim +! :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif + :so mbyte.vim + :if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif + :10new|:vsp|:vert resize 20 +--- 2,8 ---- + + STARTTEST + :so small.vim +! :if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! | endif + :so mbyte.vim + :if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif + :10new|:vsp|:vert resize 20 +*** ../vim-7.4.590/src/version.c 2015-01-22 22:40:16.345651420 +0100 +--- src/version.c 2015-01-22 22:41:26.464867079 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 591, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +107. When using your phone you forget that you don't have to use your + keyboard. + + /// 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 /// From ff26a84c3ccc9783d0767871b693e4fa7e577272 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 23 Jan 2015 18:00:06 +0100 Subject: [PATCH 0016/1407] - patchlevel 591 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 545deb00..f66891c1 100644 --- a/README.patches +++ b/README.patches @@ -611,3 +611,5 @@ Individual patches for Vim 7.4: 7106 7.4.587 conceal does not work properly with 'linebreak' 6287 7.4.588 ":0argedit foo" puts the new argument in the second place 1927 7.4.589 MS-Windows console: Vim can't handle greek utf-8 characters + 1739 7.4.590 using ctrl_x_mode as if it contains flags + 1756 7.4.591 test_listlbr_utf8 fails when conceal feature is not available diff --git a/vim.spec b/vim.spec index 4f6f9cb7..066e9fd5 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 589 +%define patchlevel 591 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -636,6 +636,8 @@ Patch586: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.586 Patch587: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.587 Patch588: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.588 Patch589: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.589 +Patch590: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.590 +Patch591: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.591 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1374,6 +1376,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch587 -p0 %patch588 -p0 %patch589 -p0 +%patch590 -p0 +%patch591 -p0 # install spell files %if %{withvimspell} @@ -1891,6 +1895,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Jan 23 2015 Karsten Hopp 7.4.591-1 +- patchlevel 591 + * Wed Jan 21 2015 Karsten Hopp 7.4.589-1 - patchlevel 589 From 549e3fdbcfb96676c0baa50ed4dd5c838836d9c3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:04 +0100 Subject: [PATCH 0017/1407] - patchlevel 592 --- 7.4.592 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.592 diff --git a/7.4.592 b/7.4.592 new file mode 100644 index 00000000..39e4cd05 --- /dev/null +++ b/7.4.592 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.592 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.592 +Problem: When doing ":e foobar" when already editing "foobar" and 'buftype' + is "nofile" the buffer is cleared. (Xavier de Gaye) +Solution: Do no clear the buffer. +Files: src/ex_cmds.c + + +*** ../vim-7.4.591/src/ex_cmds.c 2014-12-13 03:17:07.461046575 +0100 +--- src/ex_cmds.c 2015-01-27 11:21:14.752434647 +0100 +*************** +*** 3529,3534 **** +--- 3529,3541 ---- + #endif + check_fname() == FAIL) + goto theend; ++ ++ /* ":e foobar" when already editing "foobar" will reload the file. ++ * But when 'buftype' is "nofile" there is no file to load, so don't ++ * do anything. */ ++ if (curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f') ++ goto theend; ++ + oldbuf = (flags & ECMD_OLDBUF); + } + +*** ../vim-7.4.591/src/version.c 2015-01-22 22:41:51.864583029 +0100 +--- src/version.c 2015-01-27 11:24:32.466265106 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 592, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun." + + /// 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 /// From 25bd860ac76fcf9d6f38e1afdae27b2c6016f4cf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:05 +0100 Subject: [PATCH 0018/1407] - patchlevel 593 --- 7.4.593 | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 7.4.593 diff --git a/7.4.593 b/7.4.593 new file mode 100644 index 00000000..e30ef06c --- /dev/null +++ b/7.4.593 @@ -0,0 +1,161 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.593 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.593 +Problem: Crash when searching for "x\{0,90000}". (Dominique Pelle) +Solution: Bail out from the NFA engine when the max limit is much higher + than the min limit. +Files: src/regexp_nfa.c, src/regexp.c, src/vim.h + + +*** ../vim-7.4.592/src/regexp_nfa.c 2015-01-18 16:46:28.983828439 +0100 +--- src/regexp_nfa.c 2015-01-27 12:47:42.515592198 +0100 +*************** +*** 244,249 **** +--- 244,252 ---- + static char_u e_misplaced[] = N_("E866: (NFA regexp) Misplaced %c"); + static char_u e_ill_char_class[] = N_("E877: (NFA regexp) Invalid character class: %ld"); + ++ /* re_flags passed to nfa_regcomp() */ ++ static int nfa_re_flags; ++ + /* NFA regexp \ze operator encountered. */ + static int nfa_has_zend; + +*************** +*** 2011,2020 **** + * * */ + if (minval == 0 && maxval == MAX_LIMIT) + { +! if (greedy) + /* \{}, \{0,} */ + EMIT(NFA_STAR); +! else + /* \{-}, \{-0,} */ + EMIT(NFA_STAR_NONGREEDY); + break; +--- 2014,2023 ---- + * * */ + if (minval == 0 && maxval == MAX_LIMIT) + { +! if (greedy) /* { { (match the braces) */ + /* \{}, \{0,} */ + EMIT(NFA_STAR); +! else /* { { (match the braces) */ + /* \{-}, \{-0,} */ + EMIT(NFA_STAR_NONGREEDY); + break; +*************** +*** 2030,2035 **** +--- 2033,2044 ---- + return OK; + } + ++ /* The engine is very inefficient (uses too many states) when the ++ * maximum is much larger than the minimum. Bail out if we can ++ * use the other engine. */ ++ if ((nfa_re_flags & RE_AUTO) && maxval > minval + 200) ++ return FAIL; ++ + /* Ignore previous call to nfa_regatom() */ + post_ptr = post_start + my_post_start; + /* Save parse state after the repeated atom and the \{} */ +*************** +*** 7046,7051 **** +--- 7055,7061 ---- + return NULL; + + nfa_regengine.expr = expr; ++ nfa_re_flags = re_flags; + + init_class_tab(); + +*** ../vim-7.4.592/src/regexp.c 2014-11-20 23:07:00.515474686 +0100 +--- src/regexp.c 2015-01-27 12:49:02.170719494 +0100 +*************** +*** 8081,8087 **** + * First try the NFA engine, unless backtracking was requested. + */ + if (regexp_engine != BACKTRACKING_ENGINE) +! prog = nfa_regengine.regcomp(expr, re_flags); + else + prog = bt_regengine.regcomp(expr, re_flags); + +--- 8081,8088 ---- + * First try the NFA engine, unless backtracking was requested. + */ + if (regexp_engine != BACKTRACKING_ENGINE) +! prog = nfa_regengine.regcomp(expr, +! re_flags + (regexp_engine == AUTOMATIC_ENGINE ? RE_AUTO : 0)); + else + prog = bt_regengine.regcomp(expr, re_flags); + +*************** +*** 8105,8120 **** + #endif + /* + * If the NFA engine failed, try the backtracking engine. +! * Disabled for now, both engines fail on the same patterns. +! * Re-enable when regcomp() fails when the pattern would work better +! * with the other engine. +! * + if (regexp_engine == AUTOMATIC_ENGINE) + { + prog = bt_regengine.regcomp(expr, re_flags); +- regexp_engine == BACKTRACKING_ENGINE; + } +- */ + } + + if (prog != NULL) +--- 8106,8119 ---- + #endif + /* + * If the NFA engine failed, try the backtracking engine. +! * The NFA engine also fails for patterns that it can't handle well +! * but are still valid patterns, thus a retry should work. +! */ + if (regexp_engine == AUTOMATIC_ENGINE) + { ++ regexp_engine = BACKTRACKING_ENGINE; + prog = bt_regengine.regcomp(expr, re_flags); + } + } + + if (prog != NULL) +*** ../vim-7.4.592/src/vim.h 2014-12-08 04:16:26.269702835 +0100 +--- src/vim.h 2015-01-27 12:41:57.483371986 +0100 +*************** +*** 1020,1025 **** +--- 1020,1026 ---- + #define RE_MAGIC 1 /* 'magic' option */ + #define RE_STRING 2 /* match in string instead of buffer text */ + #define RE_STRICT 4 /* don't allow [abc] without ] */ ++ #define RE_AUTO 8 /* automatic engine selection */ + + #ifdef FEAT_SYN_HL + /* values for reg_do_extmatch */ +*** ../vim-7.4.592/src/version.c 2015-01-27 11:26:11.041183653 +0100 +--- src/version.c 2015-01-27 12:52:44.720281369 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 593, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +121. You ask for e-mail adresses instead of telephone numbers. + + /// 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 /// From de596c8983c4c55077560192670c552a5ccb6363 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:06 +0100 Subject: [PATCH 0019/1407] - patchlevel 594 --- 7.4.594 | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 7.4.594 diff --git a/7.4.594 b/7.4.594 new file mode 100644 index 00000000..65bab4c6 --- /dev/null +++ b/7.4.594 @@ -0,0 +1,105 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.594 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.594 +Problem: Using a block delete while 'breakindent' is set does not work + properly. +Solution: Use "line" instead of "prev_pend" as the first argument to + lbr_chartabsize_adv(). (Hirohito Higashi) +Files: src/ops.c, src/testdir/test_breakindent.in, + src/testdir/test_breakindent.ok + + +*** ../vim-7.4.593/src/ops.c 2015-01-18 14:08:52.699436994 +0100 +--- src/ops.c 2015-01-27 13:07:11.518790582 +0100 +*************** +*** 5308,5317 **** + { + /* Count a tab for what it's worth (if list mode not on) */ + prev_pend = pend; +! /* TODO: is passing prev_pend for start of the line OK? +! * perhaps it should be "line". */ +! incr = lbr_chartabsize_adv(prev_pend, &pend, +! (colnr_T)bdp->end_vcol); + bdp->end_vcol += incr; + } + if (bdp->end_vcol <= oap->end_vcol +--- 5308,5314 ---- + { + /* Count a tab for what it's worth (if list mode not on) */ + prev_pend = pend; +! incr = lbr_chartabsize_adv(line, &pend, (colnr_T)bdp->end_vcol); + bdp->end_vcol += incr; + } + if (bdp->end_vcol <= oap->end_vcol +*** ../vim-7.4.593/src/testdir/test_breakindent.in 2014-11-27 14:09:09.490354943 +0100 +--- src/testdir/test_breakindent.in 2015-01-27 13:06:51.067014258 +0100 +*************** +*** 99,104 **** +--- 99,121 ---- + :$put =line1 + :$put =line2 + :" ++ :let g:test="Test 14: breakindent + visual blockwise delete #1" ++ :set all& breakindent ++ :30vnew ++ :normal! 3a1234567890 ++ :normal! a abcde ++ :exec "normal! 0\tex" ++ :let line1=ScreenChar(line('.'),8) ++ :call DoRecordScreen() ++ :" ++ :let g:test="Test 15: breakindent + visual blockwise delete #2" ++ :%d ++ :normal! 4a1234567890 ++ :exec "normal! >>\3f0x" ++ :let line1=ScreenChar(line('.'),20) ++ :call DoRecordScreen() ++ :quit! ++ :" + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.593/src/testdir/test_breakindent.ok 2014-11-27 14:09:09.490354943 +0100 +--- src/testdir/test_breakindent.ok 2015-01-27 13:06:51.067014258 +0100 +*************** +*** 62,64 **** +--- 62,74 ---- + Test 13: breakindent with wrapping Tab + d + w ++ ++ Test 14: breakindent + visual blockwise delete #1 ++ e ++ ~ ++ ~ ++ ++ Test 15: breakindent + visual blockwise delete #2 ++ 1234567890 ++ ~ ++ ~ +*** ../vim-7.4.593/src/version.c 2015-01-27 12:59:51.859602392 +0100 +--- src/version.c 2015-01-27 13:10:18.260748209 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 594, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +122. You ask if the Netaholics Anonymous t-shirt you ordered can be + sent to you via e-mail. + + /// 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 /// From f36fe750fadfb09245bbc9ee13150bab86a6ad9d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:06 +0100 Subject: [PATCH 0020/1407] - patchlevel 595 --- 7.4.595 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.595 diff --git a/7.4.595 b/7.4.595 new file mode 100644 index 00000000..39fc057f --- /dev/null +++ b/7.4.595 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.595 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.595 +Problem: The test_command_count test fails when using Japanese. +Solution: Force the language to C. (Hirohito Higashi) +Files: src/testdir/test_command_count.in + + +*** ../vim-7.4.594/src/testdir/test_command_count.in 2015-01-20 13:29:46.397315064 +0100 +--- src/testdir/test_command_count.in 2015-01-27 13:27:02.409765684 +0100 +*************** +*** 2,7 **** +--- 2,8 ---- + + STARTTEST + :so small.vim ++ :lang C + :let g:lines = [] + :com -range=% RangeLines :call add(g:lines, 'RangeLines '..' '.) + :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) +*** ../vim-7.4.594/src/version.c 2015-01-27 13:22:17.176885347 +0100 +--- src/version.c 2015-01-27 13:26:28.846132779 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 595, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +124. You begin conversations with, "Who is your internet service provider?" + + /// 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 /// From 47ad211c4fea92ffc5489a01f7d09d8913187bd3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:07 +0100 Subject: [PATCH 0021/1407] - patchlevel 596 --- 7.4.596 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.596 diff --git a/7.4.596 b/7.4.596 new file mode 100644 index 00000000..e7def0bf --- /dev/null +++ b/7.4.596 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.596 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.596 (after 7.4.592) +Problem: Tiny build doesn't compile. (Ike Devolder) +Solution: Add #ifdef. +Files: src/ex_cmds.c + + +*** ../vim-7.4.595/src/ex_cmds.c 2015-01-27 11:26:11.041183653 +0100 +--- src/ex_cmds.c 2015-01-27 13:31:22.542920506 +0100 +*************** +*** 3530,3540 **** +--- 3530,3542 ---- + check_fname() == FAIL) + goto theend; + ++ #ifdef FEAT_QUICKFIX + /* ":e foobar" when already editing "foobar" will reload the file. + * But when 'buftype' is "nofile" there is no file to load, so don't + * do anything. */ + if (curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f') + goto theend; ++ #endif + + oldbuf = (flags & ECMD_OLDBUF); + } +*** ../vim-7.4.595/src/version.c 2015-01-27 13:28:42.472671261 +0100 +--- src/version.c 2015-01-27 13:32:15.966336190 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 596, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +125. You begin to wonder how often it REALLY is necessary to get up + and shower or bathe. + + /// 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 /// From f6f62b6c311f5ad57ddcc7fee847f718ba18de9d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:08 +0100 Subject: [PATCH 0022/1407] - patchlevel 598 --- 7.4.598 | Bin 0 -> 7175 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.4.598 diff --git a/7.4.598 b/7.4.598 new file mode 100644 index 0000000000000000000000000000000000000000..1a29452664409180c46930e758139aa47185dc29 GIT binary patch literal 7175 zcmd5>ZExc?65g-TubB7_>o-}JY|Af7T{O))ZGg>ov2lXpnnIu@+UBi98X{#UNc-Op zL&>%j=k2yV;P}BW;&3>_dFJ7enhForEcQdX{$U}+BBF~#q$_C!A~vql*}rL^Jorph zu!Motv)s|pI1d63M5<=u&Nxp*?7@!-iQ!U+h;l*__zwU75O4omoT~4QOBU1C4NW8y z+ylq5jWfX&<*GHkUr`Sfy;JQ~L>NDTU`Y~5)%bdP-Wu-Z62j%2Cann%M9BEUgW-%R zqg7~zQMUDSB4!bdJph1;r^qZ6uwgtDK!c@#>XKC}5Rg<-36%yUbit&e32>o637Ao| zg)eAm8Aqt2c15C?aQK--EUp_@B1)BZ2;fW$!cuG?h}g;xS?Eiud`Tl3pb#(#siYwg z9s&u&Oe4z91W7`lQyNM?U4=wZEwhNkj6{BBfggyJD+{1@woI5*jPOjsj|rI(9;&)= z&LS#3ZKq6vc1#$z0#pA^+4h&BQiUwh-#%TF$YR{gG~uAbZt>MHj7FmYmepRfxRt?R z(B4mR)Ulmj%W+yx2OQUPT(8@+M#JuK*s%u#Xxff#W0VS3;SjfFJFU(DoUZ4NJhyMT zPTv_g9eX>ZQEu9ZkvlR+0~fH%z=!~_In-7@h6CUT7txoBB+6%8(nQ4~q%el*m+Q%i z0bsP?A8a1dIh;>Ur~cW;i_bs)a{A?i(c0JAQT!HVoj4x!W0F0 zFBOgVF@(*MMHKY>j4vQvL8HA_@eD4;&~i@DFv>$VH=tzU>GkxNv&#>;uVl4~?tPLf z5yYXaO>QQirvA;v<>b?J^2LNt*B?J_KhIA;UQJ90(qxv->smj&#q&eleg}489iDX} zTjCb{1Gau(n_gT_{L8DKYLy!nPdFx*HebXs;i0V5F)BOHHB5Aj`+dN?ehzsE=pBfh z9yoo^9(tXT)p6|Jpx5d49^tMu08!WT?5@}8TJC5tvU_f?n-3_1E<@d*YYv7P<`Bn& zt~sIsSCVl+d9oT(#6v!r#&MqJz9efJ!npKM)5UR_77ml+drS^3q%|KE z)xtQ-Le!LX9FE_KAh6tlW4go67FyU|cc-~CvDqy7n{65JJveov2}cQ4X~NMKY(+bt zaX(YM14Ma)+Sv{8>LUF;3-nZCy2GB?w@ceWzF?GxPe=dNh>mmD>YDSh63_|Nax$!9 zLkvA1(CuFH7z>9>eqtQM5$<2bE_e^PE&11)VMfD2f#-kOR>_-!Q-b`Q!Cf9R*)EVil$GjYj0607rl3i2O6(D2r>cL#E!%5W6UC zU}Um{8IH`pGkhXp-Vpy*>*;i{wYP072ZJ<`Y)vup$NLQ0L+Dr=dyv(KfIko^)Ff}j z$xG`}fYD(wSw;|UK0LYysYF6SikPY;)+&sHTGD;Go2XQyy@6D|p|B)t3ipJ6)ivyW zHcSa%DqkOzeihBRRt=`ir(vIq6crtIZ1Q%cY-0{1B* zb9#e;>GX#E;#Q_0fE3Wt#0KJ*3q4X$dMWCpwsaFeVM`XtS$3c zw&psuaDBGB(J>s+NYV^9Ma@WPZ_`}Y052-V-`R>6i~V2s)jmL}82;({Leq)U8`-Ag z+D?&B{y(EoD=pSHh2iLrKcKAUzghFcE#Z)PiX>NzPqWDS<@3(VL3-vKdU$GOJUf-z zZmTndj_q|FuRE|@+wP1yL)(R>-6@<(pHomgqq<(#wT7dS-RX{;(F>;q$J`a9Q!29} ze@zl5QVDqChB+lFO{lc6zGJb6bu!G=c+Fz)vV!W9P}Dn2XPK^6B2jpipsy&XR5Y~U zVtX`2PW}pn-_JyN4;vOm$P)Z3)@U)+$Bj6riw#rDJ=-ah4utekg;#-7zLX*Wl*%!bRVJBvkKGuUq#drFJ@|)5(u*00D_2xT5L{UDT@W zstLbU$Si2z^2+bXAEoXwc2{+OrTR>FK6{iE(zR6qE=G)k=SJo-MEZJ)jmX5(sp>O;~*cRc4F zKTp3v6Th=tLNB`}^z=PpWyvbo)h!94ZKzM%Csqn2bZqdWR?UK3HFx%7u!~FkHzDNB zoG8BjMNZ5V>^QOK*?q6uwOn^J?6_U~r5lv4(>J>vXMcy1J?L#QJ@x=Y2;Df3KTB?^cNiSyEz0F+Cq19y;5sDrWDyJbj;5|8A@Q-Qx+~?PthTG;s>& zARCM(G;_;uc9wqw>1#{AVO+uPZy5a-W_{A}XEv=@xLsTEZ9@z0f1858HaFfT?Wx`X znB37I)s=dQ<_*BIyN1u|-o$Z69-0f3i*&IBk}T4gawYZlJWsiPTcC@Agf5;-?{)Sn zrEm+HU8VO%UT0tphh4ij>W=!4Zb6?L<&He3YxR0|zt8k!LBfP z$gavyL%cxTz)HV5;%Pji3Cw6DHdv!bh#1$W>L#=s`ce^_I~tn$Y~N@bMymzJMKuPz zX~*LYfte6rEr5&an!*BK&@3se$b#nTC4_=g%P^qbZa;n})oSS{KkVL8;ae$ux>RcA zwcDG`#wzy#+}_?As48!ACAbs`hSG$!P+2*(t>qr+x?!;;l0`co)Yi&wZ*Ktz2YMG| zKIs)o#3CVaj6Oz$FH-cVY}mh8JWEmC)|7U;ZJ@^Oe{4${t+2+^-=`NJu3*gq#p0r6 T7iVYZt)E2{5gu;!p|1Y`&GtFE literal 0 HcmV?d00001 From 916558b10599c810a38473132909edcedac80d97 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:09 +0100 Subject: [PATCH 0023/1407] - patchlevel 599 --- 7.4.599 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.599 diff --git a/7.4.599 b/7.4.599 new file mode 100644 index 00000000..bf9e341a --- /dev/null +++ b/7.4.599 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.599 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.599 +Problem: Out-of-memory error. +Solution: Avoid trying to allocate a negative amount of memory, use size_t + instead of int. (Dominique Pelle) +Files: src/regexp_nfa.c + + +*** ../vim-7.4.598/src/regexp_nfa.c 2015-01-27 12:59:51.855602435 +0100 +--- src/regexp_nfa.c 2015-01-27 14:33:25.798181195 +0100 +*************** +*** 5408,5414 **** + regsubs_T *m; + { + int result; +! int size = 0; + int flag = 0; + int go_to_nextline = FALSE; + nfa_thread_T *t; +--- 5408,5414 ---- + regsubs_T *m; + { + int result; +! size_t size = 0; + int flag = 0; + int go_to_nextline = FALSE; + nfa_thread_T *t; +*** ../vim-7.4.598/src/version.c 2015-01-27 14:09:29.625898193 +0100 +--- src/version.c 2015-01-27 14:29:06.733017025 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 599, + /**/ + +-- +You cannot have a baby in one month by getting nine women pregnant. + + /// 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 /// From a4509a4388822a8c7c7e198c96953ded4bde7deb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:10 +0100 Subject: [PATCH 0024/1407] - patchlevel 600 --- 7.4.600 | 546 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 546 insertions(+) create mode 100644 7.4.600 diff --git a/7.4.600 b/7.4.600 new file mode 100644 index 00000000..96da4517 --- /dev/null +++ b/7.4.600 @@ -0,0 +1,546 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.600 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.600 +Problem: Memory wasted in struct because of aligning. +Solution: Split pos in lnum and col. (Dominique Pelle) +Files: src/regexp_nfa.c + + +*** ../vim-7.4.599/src/regexp_nfa.c 2015-01-27 14:39:55.661913204 +0100 +--- src/regexp_nfa.c 2015-01-27 14:43:04.323847916 +0100 +*************** +*** 1456,1462 **** + * matched an unlimited number of times. NFA_NOPEN is + * added only once at a position, while NFA_SPLIT is + * added multiple times. This is more efficient than +! * not allowsing NFA_SPLIT multiple times, it is used + * a lot. */ + EMIT(NFA_NOPEN); + break; +--- 1456,1462 ---- + * matched an unlimited number of times. NFA_NOPEN is + * added only once at a position, while NFA_SPLIT is + * added multiple times. This is more efficient than +! * not allowing NFA_SPLIT multiple times, it is used + * a lot. */ + EMIT(NFA_NOPEN); + break; +*************** +*** 3726,3733 **** + { + struct multipos + { +! lpos_T start; +! lpos_T end; + } multi[NSUBEXP]; + struct linepos + { +--- 3726,3735 ---- + { + struct multipos + { +! linenr_T start_lnum; +! linenr_T end_lnum; +! colnr_T start_col; +! colnr_T end_col; + } multi[NSUBEXP]; + struct linepos + { +*************** +*** 3812,3821 **** + if (REG_MULTI) + fprintf(log_fd, "*** group %d, start: c=%d, l=%d, end: c=%d, l=%d\n", + j, +! sub->list.multi[j].start.col, +! (int)sub->list.multi[j].start.lnum, +! sub->list.multi[j].end.col, +! (int)sub->list.multi[j].end.lnum); + else + { + char *s = (char *)sub->list.line[j].start; +--- 3814,3823 ---- + if (REG_MULTI) + fprintf(log_fd, "*** group %d, start: c=%d, l=%d, end: c=%d, l=%d\n", + j, +! sub->list.multi[j].start_col, +! (int)sub->list.multi[j].start_lnum, +! sub->list.multi[j].end_col, +! (int)sub->list.multi[j].end_lnum); + else + { + char *s = (char *)sub->list.line[j].start; +*************** +*** 3952,3959 **** + { + if (REG_MULTI) + { +! if (from->list.multi[0].end.lnum >= 0) +! to->list.multi[0].end = from->list.multi[0].end; + } + else + { +--- 3954,3964 ---- + { + if (REG_MULTI) + { +! if (from->list.multi[0].end_lnum >= 0) +! { +! to->list.multi[0].end_lnum = from->list.multi[0].end_lnum; +! to->list.multi[0].end_col = from->list.multi[0].end_col; +! } + } + else + { +*************** +*** 3985,4017 **** + for (i = 0; i < todo; ++i) + { + if (i < sub1->in_use) +! s1 = sub1->list.multi[i].start.lnum; + else + s1 = -1; + if (i < sub2->in_use) +! s2 = sub2->list.multi[i].start.lnum; + else + s2 = -1; + if (s1 != s2) + return FALSE; +! if (s1 != -1 && sub1->list.multi[i].start.col +! != sub2->list.multi[i].start.col) + return FALSE; + + if (nfa_has_backref) + { + if (i < sub1->in_use) +! s1 = sub1->list.multi[i].end.lnum; + else + s1 = -1; + if (i < sub2->in_use) +! s2 = sub2->list.multi[i].end.lnum; + else + s2 = -1; + if (s1 != s2) + return FALSE; +! if (s1 != -1 && sub1->list.multi[i].end.col +! != sub2->list.multi[i].end.col) + return FALSE; + } + } +--- 3990,4022 ---- + for (i = 0; i < todo; ++i) + { + if (i < sub1->in_use) +! s1 = sub1->list.multi[i].start_lnum; + else + s1 = -1; + if (i < sub2->in_use) +! s2 = sub2->list.multi[i].start_lnum; + else + s2 = -1; + if (s1 != s2) + return FALSE; +! if (s1 != -1 && sub1->list.multi[i].start_col +! != sub2->list.multi[i].start_col) + return FALSE; + + if (nfa_has_backref) + { + if (i < sub1->in_use) +! s1 = sub1->list.multi[i].end_lnum; + else + s1 = -1; + if (i < sub2->in_use) +! s2 = sub2->list.multi[i].end_lnum; + else + s2 = -1; + if (s1 != s2) + return FALSE; +! if (s1 != -1 && sub1->list.multi[i].end_col +! != sub2->list.multi[i].end_col) + return FALSE; + } + } +*************** +*** 4062,4068 **** + if (sub->in_use <= 0) + col = -1; + else if (REG_MULTI) +! col = sub->list.multi[0].start.col; + else + col = (int)(sub->list.line[0].start - regline); + nfa_set_code(state->c); +--- 4067,4073 ---- + if (sub->in_use <= 0) + col = -1; + else if (REG_MULTI) +! col = sub->list.multi[0].start_col; + else + col = (int)(sub->list.line[0].start - regline); + nfa_set_code(state->c); +*************** +*** 4482,4488 **** + { + if (subidx < sub->in_use) + { +! save_lpos = sub->list.multi[subidx].start; + save_in_use = -1; + } + else +--- 4487,4494 ---- + { + if (subidx < sub->in_use) + { +! save_lpos.lnum = sub->list.multi[subidx].start_lnum; +! save_lpos.col = sub->list.multi[subidx].start_col; + save_in_use = -1; + } + else +*************** +*** 4490,4509 **** + save_in_use = sub->in_use; + for (i = sub->in_use; i < subidx; ++i) + { +! sub->list.multi[i].start.lnum = -1; +! sub->list.multi[i].end.lnum = -1; + } + sub->in_use = subidx + 1; + } + if (off == -1) + { +! sub->list.multi[subidx].start.lnum = reglnum + 1; +! sub->list.multi[subidx].start.col = 0; + } + else + { +! sub->list.multi[subidx].start.lnum = reglnum; +! sub->list.multi[subidx].start.col = + (colnr_T)(reginput - regline + off); + } + } +--- 4496,4515 ---- + save_in_use = sub->in_use; + for (i = sub->in_use; i < subidx; ++i) + { +! sub->list.multi[i].start_lnum = -1; +! sub->list.multi[i].end_lnum = -1; + } + sub->in_use = subidx + 1; + } + if (off == -1) + { +! sub->list.multi[subidx].start_lnum = reglnum + 1; +! sub->list.multi[subidx].start_col = 0; + } + else + { +! sub->list.multi[subidx].start_lnum = reglnum; +! sub->list.multi[subidx].start_col = + (colnr_T)(reginput - regline + off); + } + } +*************** +*** 4539,4545 **** + if (save_in_use == -1) + { + if (REG_MULTI) +! sub->list.multi[subidx].start = save_lpos; + else + sub->list.line[subidx].start = save_ptr; + } +--- 4545,4554 ---- + if (save_in_use == -1) + { + if (REG_MULTI) +! { +! sub->list.multi[subidx].start_lnum = save_lpos.lnum; +! sub->list.multi[subidx].start_col = save_lpos.col; +! } + else + sub->list.line[subidx].start = save_ptr; + } +*************** +*** 4549,4555 **** + + case NFA_MCLOSE: + if (nfa_has_zend && (REG_MULTI +! ? subs->norm.list.multi[0].end.lnum >= 0 + : subs->norm.list.line[0].end != NULL)) + { + /* Do not overwrite the position set by \ze. */ +--- 4558,4564 ---- + + case NFA_MCLOSE: + if (nfa_has_zend && (REG_MULTI +! ? subs->norm.list.multi[0].end_lnum >= 0 + : subs->norm.list.line[0].end != NULL)) + { + /* Do not overwrite the position set by \ze. */ +*************** +*** 4603,4618 **** + sub->in_use = subidx + 1; + if (REG_MULTI) + { +! save_lpos = sub->list.multi[subidx].end; + if (off == -1) + { +! sub->list.multi[subidx].end.lnum = reglnum + 1; +! sub->list.multi[subidx].end.col = 0; + } + else + { +! sub->list.multi[subidx].end.lnum = reglnum; +! sub->list.multi[subidx].end.col = + (colnr_T)(reginput - regline + off); + } + /* avoid compiler warnings */ +--- 4612,4628 ---- + sub->in_use = subidx + 1; + if (REG_MULTI) + { +! save_lpos.lnum = sub->list.multi[subidx].end_lnum; +! save_lpos.col = sub->list.multi[subidx].end_col; + if (off == -1) + { +! sub->list.multi[subidx].end_lnum = reglnum + 1; +! sub->list.multi[subidx].end_col = 0; + } + else + { +! sub->list.multi[subidx].end_lnum = reglnum; +! sub->list.multi[subidx].end_col = + (colnr_T)(reginput - regline + off); + } + /* avoid compiler warnings */ +*************** +*** 4637,4643 **** + sub = &subs->norm; + + if (REG_MULTI) +! sub->list.multi[subidx].end = save_lpos; + else + sub->list.line[subidx].end = save_ptr; + sub->in_use = save_in_use; +--- 4647,4656 ---- + sub = &subs->norm; + + if (REG_MULTI) +! { +! sub->list.multi[subidx].end_lnum = save_lpos.lnum; +! sub->list.multi[subidx].end_col = save_lpos.col; +! } + else + sub->list.line[subidx].end = save_ptr; + sub->in_use = save_in_use; +*************** +*** 4825,4839 **** + + if (REG_MULTI) + { +! if (sub->list.multi[subidx].start.lnum < 0 +! || sub->list.multi[subidx].end.lnum < 0) + goto retempty; +! if (sub->list.multi[subidx].start.lnum == reglnum +! && sub->list.multi[subidx].end.lnum == reglnum) + { +! len = sub->list.multi[subidx].end.col +! - sub->list.multi[subidx].start.col; +! if (cstrncmp(regline + sub->list.multi[subidx].start.col, + reginput, &len) == 0) + { + *bytelen = len; +--- 4838,4852 ---- + + if (REG_MULTI) + { +! if (sub->list.multi[subidx].start_lnum < 0 +! || sub->list.multi[subidx].end_lnum < 0) + goto retempty; +! if (sub->list.multi[subidx].start_lnum == reglnum +! && sub->list.multi[subidx].end_lnum == reglnum) + { +! len = sub->list.multi[subidx].end_col +! - sub->list.multi[subidx].start_col; +! if (cstrncmp(regline + sub->list.multi[subidx].start_col, + reginput, &len) == 0) + { + *bytelen = len; +*************** +*** 4843,4852 **** + else + { + if (match_with_backref( +! sub->list.multi[subidx].start.lnum, +! sub->list.multi[subidx].start.col, +! sub->list.multi[subidx].end.lnum, +! sub->list.multi[subidx].end.col, + bytelen) == RA_MATCH) + return TRUE; + } +--- 4856,4865 ---- + else + { + if (match_with_backref( +! sub->list.multi[subidx].start_lnum, +! sub->list.multi[subidx].start_col, +! sub->list.multi[subidx].end_lnum, +! sub->list.multi[subidx].end_col, + bytelen) == RA_MATCH) + return TRUE; + } +*************** +*** 5441,5446 **** +--- 5454,5460 ---- + + /* Allocate memory for the lists of nodes. */ + size = (nstate + 1) * sizeof(nfa_thread_T); ++ + list[0].t = (nfa_thread_T *)lalloc(size, TRUE); + list[0].len = nstate + 1; + list[1].t = (nfa_thread_T *)lalloc(size, TRUE); +*************** +*** 5482,5489 **** + { + if (REG_MULTI) + { +! m->norm.list.multi[0].start.lnum = reglnum; +! m->norm.list.multi[0].start.col = (colnr_T)(reginput - regline); + } + else + m->norm.list.line[0].start = reginput; +--- 5496,5503 ---- + { + if (REG_MULTI) + { +! m->norm.list.multi[0].start_lnum = reglnum; +! m->norm.list.multi[0].start_col = (colnr_T)(reginput - regline); + } + else + m->norm.list.line[0].start = reginput; +*************** +*** 5580,5586 **** + if (t->subs.norm.in_use <= 0) + col = -1; + else if (REG_MULTI) +! col = t->subs.norm.list.multi[0].start.col; + else + col = (int)(t->subs.norm.list.line[0].start - regline); + nfa_set_code(t->state->c); +--- 5594,5600 ---- + if (t->subs.norm.in_use <= 0) + col = -1; + else if (REG_MULTI) +! col = t->subs.norm.list.multi[0].start_col; + else + col = (int)(t->subs.norm.list.line[0].start - regline); + nfa_set_code(t->state->c); +*************** +*** 5861,5867 **** + * continue with what follows. */ + if (REG_MULTI) + /* TODO: multi-line match */ +! bytelen = m->norm.list.multi[0].end.col + - (int)(reginput - regline); + else + bytelen = (int)(m->norm.list.line[0].end - reginput); +--- 5875,5881 ---- + * continue with what follows. */ + if (REG_MULTI) + /* TODO: multi-line match */ +! bytelen = m->norm.list.multi[0].end_col + - (int)(reginput - regline); + else + bytelen = (int)(m->norm.list.line[0].end - reginput); +*************** +*** 6741,6747 **** + if (add) + { + if (REG_MULTI) +! m->norm.list.multi[0].start.col = + (colnr_T)(reginput - regline) + clen; + else + m->norm.list.line[0].start = reginput + clen; +--- 6755,6761 ---- + if (add) + { + if (REG_MULTI) +! m->norm.list.multi[0].start_col = + (colnr_T)(reginput - regline) + clen; + else + m->norm.list.line[0].start = reginput + clen; +*************** +*** 6854,6861 **** + { + for (i = 0; i < subs.norm.in_use; i++) + { +! reg_startpos[i] = subs.norm.list.multi[i].start; +! reg_endpos[i] = subs.norm.list.multi[i].end; + } + + if (reg_startpos[0].lnum < 0) +--- 6868,6878 ---- + { + for (i = 0; i < subs.norm.in_use; i++) + { +! reg_startpos[i].lnum = subs.norm.list.multi[i].start_lnum; +! reg_startpos[i].col = subs.norm.list.multi[i].start_col; +! +! reg_endpos[i].lnum = subs.norm.list.multi[i].end_lnum; +! reg_endpos[i].col = subs.norm.list.multi[i].end_col; + } + + if (reg_startpos[0].lnum < 0) +*************** +*** 6903,6915 **** + struct multipos *mpos = &subs.synt.list.multi[i]; + + /* Only accept single line matches that are valid. */ +! if (mpos->start.lnum >= 0 +! && mpos->start.lnum == mpos->end.lnum +! && mpos->end.col >= mpos->start.col) + re_extmatch_out->matches[i] = +! vim_strnsave(reg_getline(mpos->start.lnum) +! + mpos->start.col, +! mpos->end.col - mpos->start.col); + } + else + { +--- 6920,6932 ---- + struct multipos *mpos = &subs.synt.list.multi[i]; + + /* Only accept single line matches that are valid. */ +! if (mpos->start_lnum >= 0 +! && mpos->start_lnum == mpos->end_lnum +! && mpos->end_col >= mpos->start_col) + re_extmatch_out->matches[i] = +! vim_strnsave(reg_getline(mpos->start_lnum) +! + mpos->start_col, +! mpos->end_col - mpos->start_col); + } + else + { +*** ../vim-7.4.599/src/version.c 2015-01-27 14:39:55.661913204 +0100 +--- src/version.c 2015-01-27 14:44:06.739164665 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 600, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +126. You brag to all of your friends about your date Saturday night...but + you don't tell them it was only in a chat room. + + /// 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 /// From b71e5532c1dfda14ed5092c9e2da9a108bbf13a9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:11 +0100 Subject: [PATCH 0025/1407] - patchlevel 601 --- 7.4.601 | 108 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 7.4.601 diff --git a/7.4.601 b/7.4.601 new file mode 100644 index 00000000..950222e7 --- /dev/null +++ b/7.4.601 @@ -0,0 +1,108 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.601 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.601 +Problem: It is not possible to have feedkeys() insert characters. +Solution: Add the 'i' flag. +Files: src/eval.c, runtime/doc/eval.txt + + +*** ../vim-7.4.600/src/eval.c 2015-01-27 13:49:27.883049396 +0100 +--- src/eval.c 2015-01-27 15:13:01.928187370 +0100 +*************** +*** 10500,10505 **** +--- 10500,10506 ---- + typval_T *rettv UNUSED; + { + int remap = TRUE; ++ int insert = FALSE; + char_u *keys, *flags; + char_u nbuf[NUMBUFLEN]; + int typed = FALSE; +*************** +*** 10524,10529 **** +--- 10525,10531 ---- + case 'n': remap = FALSE; break; + case 'm': remap = TRUE; break; + case 't': typed = TRUE; break; ++ case 'i': insert = TRUE; break; + } + } + } +*************** +*** 10534,10540 **** + if (keys_esc != NULL) + { + ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE), +! typebuf.tb_len, !typed, FALSE); + vim_free(keys_esc); + if (vgetc_busy) + typebuf_was_filled = TRUE; +--- 10536,10542 ---- + if (keys_esc != NULL) + { + ins_typebuf(keys_esc, (remap ? REMAP_YES : REMAP_NONE), +! insert ? 0 : typebuf.tb_len, !typed, FALSE); + vim_free(keys_esc); + if (vgetc_busy) + typebuf_was_filled = TRUE; +*** ../vim-7.4.600/runtime/doc/eval.txt 2014-11-27 19:14:45.080940970 +0100 +--- runtime/doc/eval.txt 2015-01-27 15:12:52.908285780 +0100 +*************** +*** 2957,2965 **** + + feedkeys({string} [, {mode}]) *feedkeys()* + Characters in {string} are queued for processing as if they +! come from a mapping or were typed by the user. They are added +! to the end of the typeahead buffer, thus if a mapping is still +! being executed these characters come after them. + The function does not wait for processing of keys contained in + {string}. + To include special keys into {string}, use double-quotes +--- 2965,2976 ---- + + feedkeys({string} [, {mode}]) *feedkeys()* + Characters in {string} are queued for processing as if they +! come from a mapping or were typed by the user. +! By default the string is added to the end of the typeahead +! buffer, thus if a mapping is still being executed the +! characters come after them. Use the 'i' flag to insert before +! other characters, they will be executed next, before any +! characters from a mapping. + The function does not wait for processing of keys contained in + {string}. + To include special keys into {string}, use double-quotes +*************** +*** 2973,2978 **** +--- 2984,2990 ---- + 't' Handle keys as if typed; otherwise they are handled as + if coming from a mapping. This matters for undo, + opening folds, etc. ++ 'i' Insert the string instead of appending (see above). + Return value is always 0. + + filereadable({file}) *filereadable()* +*** ../vim-7.4.600/src/version.c 2015-01-27 14:54:07.944583588 +0100 +--- src/version.c 2015-01-27 15:15:35.290514092 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 601, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +127. You bring your laptop and cellular phone to church. + + /// 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 /// From a4d8731aa2c9257858dc59acd0e351d2467896f6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:11 +0100 Subject: [PATCH 0026/1407] - patchlevel 602 --- 7.4.602 | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 7.4.602 diff --git a/7.4.602 b/7.4.602 new file mode 100644 index 00000000..79ec89a2 --- /dev/null +++ b/7.4.602 @@ -0,0 +1,91 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.602 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.602 +Problem: ":set" does not accept hex numbers as documented. +Solution: Use vim_str2nr(). (ZyX) +Files: src/option.c, runtime/doc/options.txt + + +*** ../vim-7.4.601/src/option.c 2014-11-30 13:34:16.885626772 +0100 +--- src/option.c 2015-01-27 15:51:01.455344467 +0100 +*************** +*** 4540,4560 **** + goto skip; + } + } +- /* allow negative numbers (for 'undolevels') */ + else if (*arg == '-' || VIM_ISDIGIT(*arg)) + { +! i = 0; +! if (*arg == '-') +! i = 1; +! #ifdef HAVE_STRTOL +! value = strtol((char *)arg, NULL, 0); +! if (arg[i] == '0' && TOLOWER_ASC(arg[i + 1]) == 'x') +! i += 2; +! #else +! value = atol((char *)arg); +! #endif +! while (VIM_ISDIGIT(arg[i])) +! ++i; + if (arg[i] != NUL && !vim_iswhite(arg[i])) + { + errmsg = e_invarg; +--- 4540,4550 ---- + goto skip; + } + } + else if (*arg == '-' || VIM_ISDIGIT(*arg)) + { +! /* Allow negative (for 'undolevels'), octal and +! * hex numbers. */ +! vim_str2nr(arg, NULL, &i, TRUE, TRUE, &value, NULL); + if (arg[i] != NUL && !vim_iswhite(arg[i])) + { + errmsg = e_invarg; +*** ../vim-7.4.601/runtime/doc/options.txt 2014-11-05 17:44:47.676471691 +0100 +--- runtime/doc/options.txt 2015-01-27 15:47:53.873380762 +0100 +*************** +*** 59,67 **** + :se[t] {option}:{value} + Set string or number option to {value}. + For numeric options the value can be given in decimal, +! hex (preceded with 0x) or octal (preceded with '0') +! (hex and octal are only available for machines which +! have the strtol() function). + The old value can be inserted by typing 'wildchar' (by + default this is a or CTRL-E if 'compatible' is + set). See |cmdline-completion|. +--- 59,65 ---- + :se[t] {option}:{value} + Set string or number option to {value}. + For numeric options the value can be given in decimal, +! hex (preceded with 0x) or octal (preceded with '0'). + The old value can be inserted by typing 'wildchar' (by + default this is a or CTRL-E if 'compatible' is + set). See |cmdline-completion|. +*** ../vim-7.4.601/src/version.c 2015-01-27 15:18:55.156333265 +0100 +--- src/version.c 2015-01-27 15:49:28.840349899 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 602, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +128. You can access the Net -- via your portable and cellular phone. + + /// 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 /// From 41d017724fc6d7cfb70abd8d6c9a292bd29fbbbc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:12 +0100 Subject: [PATCH 0027/1407] - patchlevel 603 --- 7.4.603 | 262 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 262 insertions(+) create mode 100644 7.4.603 diff --git a/7.4.603 b/7.4.603 new file mode 100644 index 00000000..b52c8f38 --- /dev/null +++ b/7.4.603 @@ -0,0 +1,262 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.603 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.603 +Problem: 'foldcolumn' may be set such that it fills the whole window, not + leaving space for text. +Solution: Reduce the foldcolumn width when there is not sufficient room. + (idea by Christian Brabandt) +Files: src/srcreen.c + + +*** ../vim-7.4.602/src/screen.c 2015-01-20 19:01:32.380444290 +0100 +--- src/screen.c 2015-01-27 16:25:47.264690419 +0100 +*************** +*** 109,114 **** +--- 109,115 ---- + + #ifdef FEAT_FOLDING + static foldinfo_T win_foldinfo; /* info for 'foldcolumn' */ ++ static int compute_foldcolumn __ARGS((win_T *wp, int col)); + #endif + + /* +*************** +*** 1202,1208 **** + lnumb = wp->w_lines[i].wl_lnum; + /* When there is a fold column it might need updating + * in the next line ("J" just above an open fold). */ +! if (wp->w_p_fdc > 0) + ++lnumb; + } + } +--- 1203,1209 ---- + lnumb = wp->w_lines[i].wl_lnum; + /* When there is a fold column it might need updating + * in the next line ("J" just above an open fold). */ +! if (compute_foldcolumn(wp, 0) > 0) + ++lnumb; + } + } +*************** +*** 2238,2250 **** + #else + # define FDC_OFF 0 + #endif + + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) + { + /* No check for cmdline window: should never be right-left. */ + # ifdef FEAT_FOLDING +! n = wp->w_p_fdc; + + if (n > 0) + { +--- 2239,2254 ---- + #else + # define FDC_OFF 0 + #endif ++ #ifdef FEAT_FOLDING ++ int fdc = compute_foldcolumn(wp, 0); ++ #endif + + #ifdef FEAT_RIGHTLEFT + if (wp->w_p_rl) + { + /* No check for cmdline window: should never be right-left. */ + # ifdef FEAT_FOLDING +! n = fdc; + + if (n > 0) + { +*************** +*** 2293,2301 **** + } + #endif + #ifdef FEAT_FOLDING +! if (wp->w_p_fdc > 0) + { +! int nn = n + wp->w_p_fdc; + + /* draw the fold column at the left */ + if (nn > W_WIDTH(wp)) +--- 2297,2305 ---- + } + #endif + #ifdef FEAT_FOLDING +! if (fdc > 0) + { +! int nn = n + fdc; + + /* draw the fold column at the left */ + if (nn > W_WIDTH(wp)) +*************** +*** 2346,2351 **** +--- 2350,2373 ---- + + #ifdef FEAT_FOLDING + /* ++ * Compute the width of the foldcolumn. Based on 'foldcolumn' and how much ++ * space is available for window "wp", minus "col". ++ */ ++ static int ++ compute_foldcolumn(wp, col) ++ win_T *wp; ++ int col; ++ { ++ int fdc = wp->w_p_fdc; ++ int wmw = wp == curwin && p_wmw == 0 ? 1 : p_wmw; ++ int wwidth = W_WIDTH(wp); ++ ++ if (fdc > wwidth - (col + wmw)) ++ fdc = wwidth - (col + wmw); ++ return fdc; ++ } ++ ++ /* + * Display one folded line. + */ + static void +*************** +*** 2396,2405 **** + + /* + * 2. Add the 'foldcolumn' + */ +! fdc = wp->w_p_fdc; +! if (fdc > W_WIDTH(wp) - col) +! fdc = W_WIDTH(wp) - col; + if (fdc > 0) + { + fill_foldcolumn(buf, wp, TRUE, lnum); +--- 2418,2426 ---- + + /* + * 2. Add the 'foldcolumn' ++ * Reduce the width when there is not enough space. + */ +! fdc = compute_foldcolumn(wp, col); + if (fdc > 0) + { + fill_foldcolumn(buf, wp, TRUE, lnum); +*************** +*** 2787,2809 **** + int level; + int first_level; + int empty; + + /* Init to all spaces. */ +! copy_spaces(p, (size_t)wp->w_p_fdc); + + level = win_foldinfo.fi_level; + if (level > 0) + { + /* If there is only one column put more info in it. */ +! empty = (wp->w_p_fdc == 1) ? 0 : 1; + + /* If the column is too narrow, we start at the lowest level that + * fits and use numbers to indicated the depth. */ +! first_level = level - wp->w_p_fdc - closed + 1 + empty; + if (first_level < 1) + first_level = 1; + +! for (i = 0; i + empty < wp->w_p_fdc; ++i) + { + if (win_foldinfo.fi_lnum == lnum + && first_level + i >= win_foldinfo.fi_low_level) +--- 2808,2831 ---- + int level; + int first_level; + int empty; ++ int fdc = compute_foldcolumn(wp, 0); + + /* Init to all spaces. */ +! copy_spaces(p, (size_t)fdc); + + level = win_foldinfo.fi_level; + if (level > 0) + { + /* If there is only one column put more info in it. */ +! empty = (fdc == 1) ? 0 : 1; + + /* If the column is too narrow, we start at the lowest level that + * fits and use numbers to indicated the depth. */ +! first_level = level - fdc - closed + 1 + empty; + if (first_level < 1) + first_level = 1; + +! for (i = 0; i + empty < fdc; ++i) + { + if (win_foldinfo.fi_lnum == lnum + && first_level + i >= win_foldinfo.fi_low_level) +*************** +*** 2819,2825 **** + } + } + if (closed) +! p[i >= wp->w_p_fdc ? i - 1 : i] = '+'; + } + #endif /* FEAT_FOLDING */ + +--- 2841,2847 ---- + } + } + if (closed) +! p[i >= fdc ? i - 1 : i] = '+'; + } + #endif /* FEAT_FOLDING */ + +*************** +*** 3556,3567 **** + #ifdef FEAT_FOLDING + if (draw_state == WL_FOLD - 1 && n_extra == 0) + { + draw_state = WL_FOLD; +! if (wp->w_p_fdc > 0) + { + /* Draw the 'foldcolumn'. */ + fill_foldcolumn(extra, wp, FALSE, lnum); +! n_extra = wp->w_p_fdc; + p_extra = extra; + p_extra[n_extra] = NUL; + c_extra = NUL; +--- 3578,3591 ---- + #ifdef FEAT_FOLDING + if (draw_state == WL_FOLD - 1 && n_extra == 0) + { ++ int fdc = compute_foldcolumn(wp, 0); ++ + draw_state = WL_FOLD; +! if (fdc > 0) + { + /* Draw the 'foldcolumn'. */ + fill_foldcolumn(extra, wp, FALSE, lnum); +! n_extra = fdc; + p_extra = extra; + p_extra[n_extra] = NUL; + c_extra = NUL; +*** ../vim-7.4.602/src/version.c 2015-01-27 15:58:37.202395482 +0100 +--- src/version.c 2015-01-27 16:14:45.703878550 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 603, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +129. You cancel your newspaper subscription. + + /// 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 /// From 6ad73babdb254b0514596f7dc385281b70a7276e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:13 +0100 Subject: [PATCH 0028/1407] - patchlevel 604 --- 7.4.604 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.604 diff --git a/7.4.604 b/7.4.604 new file mode 100644 index 00000000..ad8ba502 --- /dev/null +++ b/7.4.604 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.604 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.604 +Problem: Running tests changes viminfo. +Solution: Disable viminfo. +Files: src/testdir/test_breakindent.in + + +*** ../vim-7.4.603/src/testdir/test_breakindent.in 2015-01-27 13:22:17.176885347 +0100 +--- src/testdir/test_breakindent.in 2015-01-27 17:07:20.549557451 +0100 +*************** +*** 100,106 **** + :$put =line2 + :" + :let g:test="Test 14: breakindent + visual blockwise delete #1" +! :set all& breakindent + :30vnew + :normal! 3a1234567890 + :normal! a abcde +--- 100,106 ---- + :$put =line2 + :" + :let g:test="Test 14: breakindent + visual blockwise delete #1" +! :set all& breakindent viminfo+=nviminfo + :30vnew + :normal! 3a1234567890 + :normal! a abcde +*** ../vim-7.4.603/src/version.c 2015-01-27 16:39:24.691804113 +0100 +--- src/version.c 2015-01-27 17:11:46.746656291 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 604, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +130. You can't get out of your desk even if it's time to eat or time + to go to the bathroom. + + /// 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 /// From 76fa9d19f8c775793811ae809cb50ae284a480b5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 27 Jan 2015 18:00:14 +0100 Subject: [PATCH 0029/1407] - patchlevel 604 --- README.patches | 13 +++++++++++++ vim.spec | 31 ++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index f66891c1..d40fe64e 100644 --- a/README.patches +++ b/README.patches @@ -613,3 +613,16 @@ Individual patches for Vim 7.4: 1927 7.4.589 MS-Windows console: Vim can't handle greek utf-8 characters 1739 7.4.590 using ctrl_x_mode as if it contains flags 1756 7.4.591 test_listlbr_utf8 fails when conceal feature is not available + 1645 7.4.592 buffer with 'buftype' "nofile" is cleared on re-edit + 4914 7.4.593 crash when searching for "x\{0,90000}" + 3194 7.4.594 using block delete with 'breakindent' does not work properly + 1533 7.4.595 the test_command_count test fails when using Japanese + 1604 7.4.596 (after 7.4.592) tiny build doesn't compile + 1729 7.4.597 cannot change the result of systemlist() + 7175 7.4.598 ":tabdo windo echo 'hi'" causes "* register not to be changed + 1503 7.4.599 out-of-memory error for complicated search pattern + 14844 7.4.600 memory wasted in struct because of aligning + 3684 7.4.601 it is not possible to have feedkeys() insert characters + 3058 7.4.602 ":set" does not accept hex numbers as documented + 6468 7.4.603 'foldcolumn' may fill the whole window + 1610 7.4.604 running tests changes viminfo diff --git a/vim.spec b/vim.spec index 066e9fd5..efa9c5c9 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 591 +%define patchlevel 604 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -638,6 +638,19 @@ Patch588: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.588 Patch589: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.589 Patch590: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.590 Patch591: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.591 +Patch592: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.592 +Patch593: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.593 +Patch594: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.594 +Patch595: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.595 +Patch596: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.596 +Patch597: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.597 +Patch598: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.598 +Patch599: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.599 +Patch600: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.600 +Patch601: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.601 +Patch602: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.602 +Patch603: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.603 +Patch604: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.604 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1378,6 +1391,19 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch589 -p0 %patch590 -p0 %patch591 -p0 +%patch592 -p0 +%patch593 -p0 +%patch594 -p0 +%patch595 -p0 +%patch596 -p0 +%patch597 -p0 +%patch598 -p0 +%patch599 -p0 +%patch600 -p0 +%patch601 -p0 +%patch602 -p0 +%patch603 -p0 +%patch604 -p0 # install spell files %if %{withvimspell} @@ -1895,6 +1921,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Jan 27 2015 Karsten Hopp 7.4.604-1 +- patchlevel 604 + * Fri Jan 23 2015 Karsten Hopp 7.4.591-1 - patchlevel 591 From 97b1274e8660a701e50acef6f12e962a783d6f29 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 28 Jan 2015 18:00:05 +0100 Subject: [PATCH 0030/1407] - patchlevel 605 --- 7.4.605 | 267 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 267 insertions(+) create mode 100644 7.4.605 diff --git a/7.4.605 b/7.4.605 new file mode 100644 index 00000000..89f472f3 --- /dev/null +++ b/7.4.605 @@ -0,0 +1,267 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.605 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.605 +Problem: The # register is not writable, it cannot be restored after + jumping around. +Solution: Make the # register writable. (Marcin Szamotulski) +Files: runtime/doc/change.txt, src/ops.c, src/buffer.c, src/globals.h + + +*** ../vim-7.4.604/runtime/doc/change.txt 2014-03-25 18:23:27.046087691 +0100 +--- runtime/doc/change.txt 2015-01-27 18:41:27.840005417 +0100 +*************** +*** 1100,1110 **** + 2. 10 numbered registers "0 to "9 + 3. The small delete register "- + 4. 26 named registers "a to "z or "A to "Z +! 5. four read-only registers ":, "., "% and "# +! 6. the expression register "= +! 7. The selection and drop registers "*, "+ and "~ +! 8. The black hole register "_ +! 9. Last search pattern register "/ + + 1. Unnamed register "" *quote_quote* *quotequote* + Vim fills this register with text deleted with the "d", "c", "s", "x" commands +--- 1103,1114 ---- + 2. 10 numbered registers "0 to "9 + 3. The small delete register "- + 4. 26 named registers "a to "z or "A to "Z +! 5. three read-only registers ":, "., "% +! 7. alternate buffer register "# +! 7. the expression register "= +! 8. The selection and drop registers "*, "+ and "~ +! 9. The black hole register "_ +! 10. Last search pattern register "/ + + 1. Unnamed register "" *quote_quote* *quotequote* + Vim fills this register with text deleted with the "d", "c", "s", "x" commands +*************** +*** 1131,1136 **** +--- 1135,1142 ---- + made for the delete operator with these movement commands: |%|, |(|, |)|, |`|, + |/|, |?|, |n|, |N|, |{| and |}|. Register "1 is always used then (this is Vi + compatible). The "- register is used as well if the delete is within a line. ++ Note that these characters may be mapped. E.g. |%| is mapped by the matchit ++ plugin. + With each successive deletion or change, Vim shifts the previous contents + of register 1 into register 2, 2 into 3, and so forth, losing the previous + contents of register 9. +*************** +*** 1148,1154 **** + to their previous contents. When the '>' flag is present in 'cpoptions' then + a line break is inserted before the appended text. + +! 5. Read-only registers ":, "., "% and "# + These are '%', '#', ':' and '.'. You can use them only with the "p", "P", + and ":put" commands and with CTRL-R. {not in Vi} + *quote_.* *quote.* *E29* +--- 1154,1160 ---- + to their previous contents. When the '>' flag is present in 'cpoptions' then + a line break is inserted before the appended text. + +! 5. Read-only registers ":, ". and "% + These are '%', '#', ':' and '.'. You can use them only with the "p", "P", + and ":put" commands and with CTRL-R. {not in Vi} + *quote_.* *quote.* *E29* +*************** +*** 1159,1166 **** + ('textwidth' and other options affect what is inserted). + *quote_%* *quote%* + "% Contains the name of the current file. +- *quote_#* *quote#* +- "# Contains the name of the alternate file. + *quote_:* *quote:* *E30* + ": Contains the most recent executed command-line. Example: Use + "@:" to repeat the previous command-line command. +--- 1165,1170 ---- +*************** +*** 1169,1176 **** + the command was completely from a mapping. + {not available when compiled without the |+cmdline_hist| + feature} + +! 6. Expression register "= *quote_=* *quote=* *@=* + This is not really a register that stores text, but is a way to use an + expression in commands which use a register. The expression register is + read-only; you cannot put text into it. After the '=', the cursor moves to +--- 1173,1195 ---- + the command was completely from a mapping. + {not available when compiled without the |+cmdline_hist| + feature} ++ *quote_#* *quote#* ++ 6. Alternate file register "# ++ Contains the name of the alternate file for the current window. It will ++ change how the |CTRL-^| command works. ++ This register is writable, mainly to allow for restoring it after a plugin has ++ changed it. It accepts buffer number: > ++ let altbuf = bufnr(@#) ++ ... ++ let @# = altbuf ++ It will give error |E86| if you pass buffer number and this buffer does not ++ exist. ++ It can also accept a match with an existing buffer name: > ++ let @# = 'buffer_name' ++ Error |E93| if there is more than one buffer matching the given name or |E94| ++ if none of buffers matches the given name. + +! 7. Expression register "= *quote_=* *quote=* *@=* + This is not really a register that stores text, but is a way to use an + expression in commands which use a register. The expression register is + read-only; you cannot put text into it. After the '=', the cursor moves to +*************** +*** 1191,1197 **** + characters. If the String ends in a , it is regarded as a linewise + register. {not in Vi} + +! 7. Selection and drop registers "*, "+ and "~ + Use these registers for storing and retrieving the selected text for the GUI. + See |quotestar| and |quoteplus|. When the clipboard is not available or not + working, the unnamed register is used instead. For Unix systems the clipboard +--- 1210,1216 ---- + characters. If the String ends in a , it is regarded as a linewise + register. {not in Vi} + +! 8. Selection and drop registers "*, "+ and "~ + Use these registers for storing and retrieving the selected text for the GUI. + See |quotestar| and |quoteplus|. When the clipboard is not available or not + working, the unnamed register is used instead. For Unix systems the clipboard +*************** +*** 1213,1224 **** + Note: The "~ register is only used when dropping plain text onto Vim. + Drag'n'drop of URI lists is handled internally. + +! 8. Black hole register "_ *quote_* + When writing to this register, nothing happens. This can be used to delete + text without affecting the normal registers. When reading from this register, + nothing is returned. {not in Vi} + +! 9. Last search pattern register "/ *quote_/* *quote/* + Contains the most recent search-pattern. This is used for "n" and 'hlsearch'. + It is writable with `:let`, you can change it to have 'hlsearch' highlight + other matches without actually searching. You can't yank or delete into this +--- 1232,1243 ---- + Note: The "~ register is only used when dropping plain text onto Vim. + Drag'n'drop of URI lists is handled internally. + +! 9. Black hole register "_ *quote_* + When writing to this register, nothing happens. This can be used to delete + text without affecting the normal registers. When reading from this register, + nothing is returned. {not in Vi} + +! 10. Last search pattern register "/ *quote_/* *quote/* + Contains the most recent search-pattern. This is used for "n" and 'hlsearch'. + It is writable with `:let`, you can change it to have 'hlsearch' highlight + other matches without actually searching. You can't yank or delete into this +*** ../vim-7.4.604/src/ops.c 2015-01-27 13:22:17.176885347 +0100 +--- src/ops.c 2015-01-27 18:33:06.813476985 +0100 +*************** +*** 856,866 **** + if ( (regname > 0 && ASCII_ISALNUM(regname)) + || (!writing && vim_strchr((char_u *) + #ifdef FEAT_EVAL +! "/.%#:=" + #else +! "/.%#:" + #endif + , regname) != NULL) + || regname == '"' + || regname == '-' + || regname == '_' +--- 856,867 ---- + if ( (regname > 0 && ASCII_ISALNUM(regname)) + || (!writing && vim_strchr((char_u *) + #ifdef FEAT_EVAL +! "/.%:=" + #else +! "/.%:" + #endif + , regname) != NULL) ++ || regname == '#' + || regname == '"' + || regname == '-' + || regname == '_' +*************** +*** 6514,6519 **** +--- 6515,6541 ---- + return; + } + ++ if (name == '#') ++ { ++ buf_T *buf; ++ ++ if (VIM_ISDIGIT(*str)) ++ { ++ int num = atoi((char *)str); ++ ++ buf = buflist_findnr(num); ++ if (buf == NULL) ++ EMSGN(_(e_nobufnr), (long)num); ++ } ++ else ++ buf = buflist_findnr(buflist_findpat(str, str + STRLEN(str), ++ TRUE, FALSE, FALSE)); ++ if (buf == NULL) ++ return; ++ curwin->w_alt_fnum = buf->b_fnum; ++ return; ++ } ++ + #ifdef FEAT_EVAL + if (name == '=') + { +*** ../vim-7.4.604/src/buffer.c 2015-01-07 13:31:48.886661739 +0100 +--- src/buffer.c 2015-01-27 18:19:29.334392632 +0100 +*************** +*** 1150,1156 **** + { + /* don't warn when deleting */ + if (!unload) +! EMSGN(_("E86: Buffer %ld does not exist"), count); + } + else if (dir == FORWARD) + EMSG(_("E87: Cannot go beyond last buffer")); +--- 1150,1156 ---- + { + /* don't warn when deleting */ + if (!unload) +! EMSGN(_(e_nobufnr), count); + } + else if (dir == FORWARD) + EMSG(_("E87: Cannot go beyond last buffer")); +*** ../vim-7.4.604/src/globals.h 2015-01-14 12:44:38.407422077 +0100 +--- src/globals.h 2015-01-27 18:19:24.294447531 +0100 +*************** +*** 1571,1576 **** +--- 1571,1577 ---- + EXTERN char_u e_intern2[] INIT(= N_("E685: Internal error: %s")); + EXTERN char_u e_maxmempat[] INIT(= N_("E363: pattern uses more memory than 'maxmempattern'")); + EXTERN char_u e_emptybuf[] INIT(= N_("E749: empty buffer")); ++ EXTERN char_u e_nobufnr[] INIT(= N_("E86: Buffer %ld does not exist")); + + #ifdef FEAT_EX_EXTRA + EXTERN char_u e_invalpat[] INIT(= N_("E682: Invalid search pattern or delimiter")); +*** ../vim-7.4.604/src/version.c 2015-01-27 17:11:55.690558815 +0100 +--- src/version.c 2015-01-27 17:15:24.132287083 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 605, + /**/ + +-- +All true wisdom is found on T-shirts. + + /// 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 /// From fe25ea9e65ad5b41b4f8f34026e827ae4b64f6f3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 28 Jan 2015 18:00:06 +0100 Subject: [PATCH 0031/1407] - patchlevel 606 --- 7.4.606 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.606 diff --git a/7.4.606 b/7.4.606 new file mode 100644 index 00000000..e5315c31 --- /dev/null +++ b/7.4.606 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.606 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.606 +Problem: May crash when using a small window. +Solution: Avoid dividing by zero. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.4.605/src/normal.c 2015-01-14 17:52:26.603094340 +0100 +--- src/normal.c 2015-01-27 20:59:18.721057793 +0100 +*************** +*** 4457,4462 **** +--- 4457,4464 ---- + col_off2 = col_off1 - curwin_col_off2(); + width1 = W_WIDTH(curwin) - col_off1; + width2 = W_WIDTH(curwin) - col_off2; ++ if (width2 == 0) ++ width2 = 1; /* avoid divide by zero */ + + #ifdef FEAT_VERTSPLIT + if (curwin->w_width != 0) +*** ../vim-7.4.605/src/version.c 2015-01-27 18:43:42.138535469 +0100 +--- src/version.c 2015-01-27 20:41:07.697066323 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 606, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +132. You come back and check this list every half-hour. + + /// 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 /// From 524284f74d3170d3fe8722ed8e486fa2df07c4aa Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 28 Jan 2015 18:00:06 +0100 Subject: [PATCH 0032/1407] - patchlevel 607 --- 7.4.607 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.607 diff --git a/7.4.607 b/7.4.607 new file mode 100644 index 00000000..357124a6 --- /dev/null +++ b/7.4.607 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.607 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.607 (after 7.4.598) +Problem: Compiler warnings for unused variables. +Solution: Move them inside #ifdef. (Kazunobu Kuriyama) +Files: src/ui.c + + +*** ../vim-7.4.606/src/ui.c 2015-01-27 14:09:29.625898193 +0100 +--- src/ui.c 2015-01-27 21:29:44.528861744 +0100 +*************** +*** 73,80 **** + static char_u *ta_str = NULL; + static int ta_off; /* offset for next char to use when ta_str != NULL */ + static int ta_len; /* length of ta_str when it's not NULL*/ +- static int clipboard_needs_update; /* clipboard needs to be updated */ +- static int global_change_count = 0; /* if set, inside a start_global_changes */ + + void + ui_inchar_undo(s, len) +--- 73,78 ---- +*************** +*** 564,569 **** +--- 562,569 ---- + * prevents accessing the clipboard very often which might slow down Vim + * considerably. + */ ++ static int global_change_count = 0; /* if set, inside a start_global_changes */ ++ static int clipboard_needs_update; /* clipboard needs to be updated */ + + /* + * Save clip_unnamed and reset it. +*** ../vim-7.4.606/src/version.c 2015-01-27 20:59:26.496971751 +0100 +--- src/version.c 2015-01-27 21:31:22.247780991 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 607, + /**/ + +-- +Never eat yellow snow. + + /// 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 /// From d23a82868975fabf0905e4ce3bd5a4d400f9e75e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 28 Jan 2015 18:00:07 +0100 Subject: [PATCH 0033/1407] - patchlevel 608 --- 7.4.608 | Bin 0 -> 5034 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.4.608 diff --git a/7.4.608 b/7.4.608 new file mode 100644 index 0000000000000000000000000000000000000000..2e4471fcfb3914fbd854bb92edadf20db25c6856 GIT binary patch literal 5034 zcmd5=ZFAc;63*A+SFANnDOnULQZJU+suwr4=klR98O!InxhRu?$Q6l(1b6@_+v7jq z0Z6fuE#KTZm(1~lC@gjti`@qgKwOImwygM+;Py=_M4DqNMO7*<76n;W>)$cf5xl25 z&fv@&d(+{JT*h$(qS9+|M=qr(BKSqp0)7)BM^34PpG^Brv1@xA_0QxtR^Z?UrDB3d z5O_oKR&b4653cV^j6ma^_RE|y{v*U0l?wIZ@7I@u*`Iona|vMsTO0QkZz;lI5tP@66Cj#=cQa zn6z&jhR3-3Opo|X2su4H1<&)htQgd#IP;(L^IbR$CWB!x2+trGN5gp(&b?_knayXx zd<6YrFdUk^Ju@6Ta1e%3IE{uQFPu-p$ut~~8waO{j}0(%gE1I60U!W>6B;8>_ex{2 zmsh4h(JdyfDK$?q0m>7QsI-tKRn~TSeSUR)eX+bI0Fe@)3YzEMmKC;*8nD5^BBz@1 zU?=86-O_Tyax{{h@)X{hf18TKd08S)t}t!Dr@9i;9yu{ZftcnwP^-~(zIR+GCF6S2 zbzZ9o^nHo&TKx!HnpYUXYX#lcs^OzWIVrs0qR?^#v+NRQy@w8hj z)>0RSE(ENROg;yk%2X}>0_Rr{*~vYf{!jlJ7^R<$ z2b-ZK>MKmUp6B%}LP9qjf>~i-TG0Mp{o{J+E7Aug3e*|nDPXRU^bKmhapezF^PWnr zcIEh{RU{`6HB~%$1lKw!3oHXE*JjXS!lbfp25md25&b{KGmYwjX;hC$Bc+?cYf)gJ z-^hZmg~&t3sVOH2LpK=BcdTP)-JsZ6I4*o}I&>ZT9p|F~`P1&s%J#4Ls?)J5-maE8J<@NNTKm{M_!&6WXLz&{2{lv|XB152S4Tj%K7 zeFIb`syqQz#W5NdJb@@j4WG<@Br$~rd~o_s%Og(TX^Fz}j1hc1uo9()1^f`NchVo? z^}?w*rv)ZuUMa_P1o!6m{0jQ!t?4=u5Zy9vUKnQrIvMMjuF-*_iOu-4@rhC!4Vzu_ z({+?3K*w$4H`(7$?S+&=Dw9xabs^=&9d;etsExZlr!CpB?!fe$Z7c|9ZZK(i%DVW9 z5aS zSxqx4@`P=^&dT_Y4~*jT7akZ79fV;NjG|!ZjfZEm*>zmf~H7X4o zAz@1;6P1GcYoY!qP#%E!c8W~6u+fVxDdG(_NSC-lloM=SFER<&)XbD+96X~<3rKjV22&Yb-zg^pCQ(5 zeY@es`)nEp(P$nG18;sdoX%&%@%+)}_i?K*8qcF(b;Alz z$kcC)eCuqrS^-cFco#Ff{%yvjNF^-_!w2R*p`s~1a`sPFtSjSg7mDxu#CY7b&68nX kLSeF&mvH{>*ClLOtXZ)i*}J!IF9&}Wc}{t<^Jjeh0f!a=UjP6A literal 0 HcmV?d00001 From 1f6fbc66c4c90ddc386c115a0c520b19b9ee5350 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 28 Jan 2015 18:00:09 +0100 Subject: [PATCH 0034/1407] - patchlevel 608 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index d40fe64e..611db8f8 100644 --- a/README.patches +++ b/README.patches @@ -626,3 +626,7 @@ Individual patches for Vim 7.4: 3058 7.4.602 ":set" does not accept hex numbers as documented 6468 7.4.603 'foldcolumn' may fill the whole window 1610 7.4.604 running tests changes viminfo + 10078 7.4.605 the # register cannot be restored after jumping around + 1457 7.4.606 may crash when using a small window + 1825 7.4.607 (after 7.4.598) compiler warnings for unused variables + 5034 7.4.608 (after 7.4.598) test_eval fails without the clipboard feature diff --git a/vim.spec b/vim.spec index efa9c5c9..3ddbdc80 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 604 +%define patchlevel 608 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -651,6 +651,10 @@ Patch601: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.601 Patch602: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.602 Patch603: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.603 Patch604: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.604 +Patch605: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.605 +Patch606: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.606 +Patch607: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.607 +Patch608: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.608 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1404,6 +1408,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch602 -p0 %patch603 -p0 %patch604 -p0 +%patch605 -p0 +%patch606 -p0 +%patch607 -p0 +%patch608 -p0 # install spell files %if %{withvimspell} @@ -1921,6 +1929,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jan 28 2015 Karsten Hopp 7.4.608-1 +- patchlevel 608 + * Tue Jan 27 2015 Karsten Hopp 7.4.604-1 - patchlevel 604 From 512818b7c2eec72028c2dc6af13cb299d5a196a4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:04 +0100 Subject: [PATCH 0035/1407] - patchlevel 609 --- 7.4.609 | 782 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 782 insertions(+) create mode 100644 7.4.609 diff --git a/7.4.609 b/7.4.609 new file mode 100644 index 00000000..bd96014d --- /dev/null +++ b/7.4.609 @@ -0,0 +1,782 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.609 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.609 +Problem: For complicated list and dict use the garbage collector can run + out of stack space. +Solution: Use a stack of dicts and lists to be marked, thus making it + iterative instead of recursive. (Ben Fritz) +Files: src/eval.c, src/if_lua.c, src/if_py_both.h, src/if_python.c, + src/if_python3.c, src/proto/eval.pro, src/proto/if_lua.pro, + src/proto/if_python.pro, src/proto/if_python3.pro, src/structs.h + + +*** ../vim-7.4.608/src/eval.c 2015-01-27 15:18:55.152333309 +0100 +--- src/eval.c 2015-02-03 12:41:59.468525906 +0100 +*************** +*** 93,99 **** + char_u *ll_newkey; /* New key for Dict in alloc. mem or NULL. */ + } lval_T; + +- + static char *e_letunexp = N_("E18: Unexpected characters in :let"); + static char *e_listidx = N_("E684: list index out of range: %ld"); + static char *e_undefvar = N_("E121: Undefined variable: %s"); +--- 93,98 ---- +*************** +*** 6811,6816 **** +--- 6810,6816 ---- + garbage_collect() + { + int copyID; ++ int abort = FALSE; + buf_T *buf; + win_T *wp; + int i; +*************** +*** 6841,6922 **** + * the item is referenced elsewhere the funccal must not be freed. */ + for (fc = previous_funccal; fc != NULL; fc = fc->caller) + { +! set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1); +! set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID + 1); + } + + /* script-local variables */ + for (i = 1; i <= ga_scripts.ga_len; ++i) +! set_ref_in_ht(&SCRIPT_VARS(i), copyID); + + /* buffer-local variables */ + for (buf = firstbuf; buf != NULL; buf = buf->b_next) +! set_ref_in_item(&buf->b_bufvar.di_tv, copyID); + + /* window-local variables */ + FOR_ALL_TAB_WINDOWS(tp, wp) +! set_ref_in_item(&wp->w_winvar.di_tv, copyID); + #ifdef FEAT_AUTOCMD + if (aucmd_win != NULL) +! set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID); + #endif + + #ifdef FEAT_WINDOWS + /* tabpage-local variables */ + for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! set_ref_in_item(&tp->tp_winvar.di_tv, copyID); + #endif + + /* global variables */ +! set_ref_in_ht(&globvarht, copyID); + + /* function-local variables */ + for (fc = current_funccal; fc != NULL; fc = fc->caller) + { +! set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID); +! set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID); + } + + /* v: vars */ +! set_ref_in_ht(&vimvarht, copyID); + + #ifdef FEAT_LUA +! set_ref_in_lua(copyID); + #endif + + #ifdef FEAT_PYTHON +! set_ref_in_python(copyID); + #endif + + #ifdef FEAT_PYTHON3 +! set_ref_in_python3(copyID); + #endif + +! /* +! * 2. Free lists and dictionaries that are not referenced. +! */ +! did_free = free_unref_items(copyID); +! +! /* +! * 3. Check if any funccal can be freed now. +! */ +! for (pfc = &previous_funccal; *pfc != NULL; ) + { +! if (can_free_funccal(*pfc, copyID)) + { +! fc = *pfc; +! *pfc = fc->caller; +! free_funccal(fc, TRUE); +! did_free = TRUE; +! did_free_funccal = TRUE; + } +! else +! pfc = &(*pfc)->caller; + } +- if (did_free_funccal) +- /* When a funccal was freed some more items might be garbage +- * collected, so run again. */ +- (void)garbage_collect(); + + return did_free; + } +--- 6841,6935 ---- + * the item is referenced elsewhere the funccal must not be freed. */ + for (fc = previous_funccal; fc != NULL; fc = fc->caller) + { +! abort = abort || set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID + 1, +! NULL); +! abort = abort || set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID + 1, +! NULL); + } + + /* script-local variables */ + for (i = 1; i <= ga_scripts.ga_len; ++i) +! abort = abort || set_ref_in_ht(&SCRIPT_VARS(i), copyID, NULL); + + /* buffer-local variables */ + for (buf = firstbuf; buf != NULL; buf = buf->b_next) +! abort = abort || set_ref_in_item(&buf->b_bufvar.di_tv, copyID, +! NULL, NULL); + + /* window-local variables */ + FOR_ALL_TAB_WINDOWS(tp, wp) +! abort = abort || set_ref_in_item(&wp->w_winvar.di_tv, copyID, +! NULL, NULL); + #ifdef FEAT_AUTOCMD + if (aucmd_win != NULL) +! abort = abort || set_ref_in_item(&aucmd_win->w_winvar.di_tv, copyID, +! NULL, NULL); + #endif + + #ifdef FEAT_WINDOWS + /* tabpage-local variables */ + for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! abort = abort || set_ref_in_item(&tp->tp_winvar.di_tv, copyID, +! NULL, NULL); + #endif + + /* global variables */ +! abort = abort || set_ref_in_ht(&globvarht, copyID, NULL); + + /* function-local variables */ + for (fc = current_funccal; fc != NULL; fc = fc->caller) + { +! abort = abort || set_ref_in_ht(&fc->l_vars.dv_hashtab, copyID, NULL); +! abort = abort || set_ref_in_ht(&fc->l_avars.dv_hashtab, copyID, NULL); + } + + /* v: vars */ +! abort = abort || set_ref_in_ht(&vimvarht, copyID, NULL); + + #ifdef FEAT_LUA +! abort = abort || set_ref_in_lua(copyID); + #endif + + #ifdef FEAT_PYTHON +! abort = abort || set_ref_in_python(copyID); + #endif + + #ifdef FEAT_PYTHON3 +! abort = abort || set_ref_in_python3(copyID); + #endif + +! if (!abort) + { +! /* +! * 2. Free lists and dictionaries that are not referenced. +! */ +! did_free = free_unref_items(copyID); +! +! /* +! * 3. Check if any funccal can be freed now. +! */ +! for (pfc = &previous_funccal; *pfc != NULL; ) + { +! if (can_free_funccal(*pfc, copyID)) +! { +! fc = *pfc; +! *pfc = fc->caller; +! free_funccal(fc, TRUE); +! did_free = TRUE; +! did_free_funccal = TRUE; +! } +! else +! pfc = &(*pfc)->caller; + } +! if (did_free_funccal) +! /* When a funccal was freed some more items might be garbage +! * collected, so run again. */ +! (void)garbage_collect(); +! } +! else if (p_verbose > 0) +! { +! verb_msg((char_u *)_("Not enough memory to set references, garbage collection aborted!")); + } + + return did_free; + } +*************** +*** 6976,7023 **** + + /* + * Mark all lists and dicts referenced through hashtab "ht" with "copyID". + */ +! void +! set_ref_in_ht(ht, copyID) +! hashtab_T *ht; +! int copyID; + { + int todo; + hashitem_T *hi; + +! todo = (int)ht->ht_used; +! for (hi = ht->ht_array; todo > 0; ++hi) +! if (!HASHITEM_EMPTY(hi)) + { +! --todo; +! set_ref_in_item(&HI2DI(hi)->di_tv, copyID); + } + } + + /* + * Mark all lists and dicts referenced through list "l" with "copyID". + */ +! void +! set_ref_in_list(l, copyID) + list_T *l; + int copyID; + { +! listitem_T *li; + +! for (li = l->lv_first; li != NULL; li = li->li_next) +! set_ref_in_item(&li->li_tv, copyID); + } + + /* + * Mark all lists and dicts referenced through typval "tv" with "copyID". + */ +! void +! set_ref_in_item(tv, copyID) +! typval_T *tv; +! int copyID; + { + dict_T *dd; + list_T *ll; + + switch (tv->v_type) + { +--- 6989,7100 ---- + + /* + * Mark all lists and dicts referenced through hashtab "ht" with "copyID". ++ * "list_stack" is used to add lists to be marked. Can be NULL. ++ * ++ * Returns TRUE if setting references failed somehow. + */ +! int +! set_ref_in_ht(ht, copyID, list_stack) +! hashtab_T *ht; +! int copyID; +! list_stack_T **list_stack; + { + int todo; ++ int abort = FALSE; + hashitem_T *hi; ++ hashtab_T *cur_ht; ++ ht_stack_T *ht_stack = NULL; ++ ht_stack_T *tempitem; + +! cur_ht = ht; +! for (;;) +! { +! if (!abort) + { +! /* Mark each item in the hashtab. If the item contains a hashtab +! * it is added to ht_stack, if it contains a list it is added to +! * list_stack. */ +! todo = (int)cur_ht->ht_used; +! for (hi = cur_ht->ht_array; todo > 0; ++hi) +! if (!HASHITEM_EMPTY(hi)) +! { +! --todo; +! abort = abort || set_ref_in_item(&HI2DI(hi)->di_tv, copyID, +! &ht_stack, list_stack); +! } + } ++ ++ if (ht_stack == NULL) ++ break; ++ ++ /* take an item from the stack */ ++ cur_ht = ht_stack->ht; ++ tempitem = ht_stack; ++ ht_stack = ht_stack->prev; ++ free(tempitem); ++ } ++ ++ return abort; + } + + /* + * Mark all lists and dicts referenced through list "l" with "copyID". ++ * "ht_stack" is used to add hashtabs to be marked. Can be NULL. ++ * ++ * Returns TRUE if setting references failed somehow. + */ +! int +! set_ref_in_list(l, copyID, ht_stack) + list_T *l; + int copyID; ++ ht_stack_T **ht_stack; + { +! listitem_T *li; +! int abort = FALSE; +! list_T *cur_l; +! list_stack_T *list_stack = NULL; +! list_stack_T *tempitem; +! +! cur_l = l; +! for (;;) +! { +! if (!abort) +! /* Mark each item in the list. If the item contains a hashtab +! * it is added to ht_stack, if it contains a list it is added to +! * list_stack. */ +! for (li = cur_l->lv_first; !abort && li != NULL; li = li->li_next) +! abort = abort || set_ref_in_item(&li->li_tv, copyID, +! ht_stack, &list_stack); +! if (list_stack == NULL) +! break; +! +! /* take an item from the stack */ +! cur_l = list_stack->list; +! tempitem = list_stack; +! list_stack = list_stack->prev; +! free(tempitem); +! } + +! return abort; + } + + /* + * Mark all lists and dicts referenced through typval "tv" with "copyID". ++ * "list_stack" is used to add lists to be marked. Can be NULL. ++ * "ht_stack" is used to add hashtabs to be marked. Can be NULL. ++ * ++ * Returns TRUE if setting references failed somehow. + */ +! int +! set_ref_in_item(tv, copyID, ht_stack, list_stack) +! typval_T *tv; +! int copyID; +! ht_stack_T **ht_stack; +! list_stack_T **list_stack; + { + dict_T *dd; + list_T *ll; ++ int abort = FALSE; + + switch (tv->v_type) + { +*************** +*** 7027,7033 **** + { + /* Didn't see this dict yet. */ + dd->dv_copyID = copyID; +! set_ref_in_ht(&dd->dv_hashtab, copyID); + } + break; + +--- 7104,7126 ---- + { + /* Didn't see this dict yet. */ + dd->dv_copyID = copyID; +! if (ht_stack == NULL) +! { +! abort = set_ref_in_ht(&dd->dv_hashtab, copyID, list_stack); +! } +! else +! { +! ht_stack_T *newitem = (ht_stack_T*)malloc( +! sizeof(ht_stack_T)); +! if (newitem == NULL) +! abort = TRUE; +! else +! { +! newitem->ht = &dd->dv_hashtab; +! newitem->prev = *ht_stack; +! *ht_stack = newitem; +! } +! } + } + break; + +*************** +*** 7037,7047 **** + { + /* Didn't see this list yet. */ + ll->lv_copyID = copyID; +! set_ref_in_list(ll, copyID); + } + break; + } +! return; + } + + /* +--- 7130,7156 ---- + { + /* Didn't see this list yet. */ + ll->lv_copyID = copyID; +! if (list_stack == NULL) +! { +! abort = set_ref_in_list(ll, copyID, ht_stack); +! } +! else +! { +! list_stack_T *newitem = (list_stack_T*)malloc( +! sizeof(list_stack_T)); +! if (newitem == NULL) +! abort = TRUE; +! else +! { +! newitem->list = ll; +! newitem->prev = *list_stack; +! *list_stack = newitem; +! } +! } + } + break; + } +! return abort; + } + + /* +*** ../vim-7.4.608/src/if_lua.c 2014-05-07 17:31:32.473182497 +0200 +--- src/if_lua.c 2015-02-03 12:45:41.978204997 +0100 +*************** +*** 1523,1534 **** + static int + luaV_setref (lua_State *L) + { +! int copyID = lua_tointeger(L, 1); +! typval_T tv; + luaV_getfield(L, LUAVIM_LIST); + luaV_getfield(L, LUAVIM_DICT); + lua_pushnil(L); +! while (lua_next(L, lua_upvalueindex(1)) != 0) /* traverse cache table */ + { + lua_getmetatable(L, -1); + if (lua_rawequal(L, -1, 2)) /* list? */ +--- 1523,1536 ---- + static int + luaV_setref (lua_State *L) + { +! int copyID = lua_tointeger(L, 1); +! int abort = FALSE; +! typval_T tv; +! + luaV_getfield(L, LUAVIM_LIST); + luaV_getfield(L, LUAVIM_DICT); + lua_pushnil(L); +! while (!abort && lua_next(L, lua_upvalueindex(1)) != 0) /* traverse cache table */ + { + lua_getmetatable(L, -1); + if (lua_rawequal(L, -1, 2)) /* list? */ +*************** +*** 1542,1550 **** + tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */ + } + lua_pop(L, 2); /* metatable and value */ +! set_ref_in_item(&tv, copyID); + } +! return 0; + } + + static int +--- 1544,1552 ---- + tv.vval.v_dict = (dict_T *) lua_touserdata(L, 4); /* key */ + } + lua_pop(L, 2); /* metatable and value */ +! abort = set_ref_in_item(&tv, copyID, NULL, NULL); + } +! lua_pushinteger(L, abort); + } + + static int +*************** +*** 1770,1782 **** + lua_call(L, 3, 0); + } + +! void + set_ref_in_lua (int copyID) + { +! if (!lua_isopen()) return; +! luaV_getfield(L, LUAVIM_SETREF); +! lua_pushinteger(L, copyID); +! lua_call(L, 1, 0); + } + + #endif +--- 1772,1794 ---- + lua_call(L, 3, 0); + } + +! int + set_ref_in_lua (int copyID) + { +! int aborted = 0; +! +! if (lua_isopen()) +! { +! luaV_getfield(L, LUAVIM_SETREF); +! /* call the function with 1 arg, getting 1 result back */ +! lua_pushinteger(L, copyID); +! lua_call(L, 1, 1); +! /* get the result */ +! aborted = lua_tointeger(L, -1); +! /* pop result off the stack */ +! lua_pop(L, 1); +! } +! return aborted; + } + + #endif +*** ../vim-7.4.608/src/if_py_both.h 2014-12-17 14:45:56.095854545 +0100 +--- src/if_py_both.h 2015-02-03 12:46:46.629530177 +0100 +*************** +*** 5502,5535 **** + PyErr_Clear(); + } + +! static void + set_ref_in_py(const int copyID) + { + pylinkedlist_T *cur; + dict_T *dd; + list_T *ll; + + if (lastdict != NULL) +! for(cur = lastdict ; cur != NULL ; cur = cur->pll_prev) + { + dd = ((DictionaryObject *) (cur->pll_obj))->dict; + if (dd->dv_copyID != copyID) + { + dd->dv_copyID = copyID; +! set_ref_in_ht(&dd->dv_hashtab, copyID); + } + } + + if (lastlist != NULL) +! for(cur = lastlist ; cur != NULL ; cur = cur->pll_prev) + { + ll = ((ListObject *) (cur->pll_obj))->list; + if (ll->lv_copyID != copyID) + { + ll->lv_copyID = copyID; +! set_ref_in_list(ll, copyID); + } + } + } + + static int +--- 5502,5542 ---- + PyErr_Clear(); + } + +! static int + set_ref_in_py(const int copyID) + { + pylinkedlist_T *cur; + dict_T *dd; + list_T *ll; ++ int abort = FALSE; + + if (lastdict != NULL) +! { +! for(cur = lastdict ; !abort && cur != NULL ; cur = cur->pll_prev) + { + dd = ((DictionaryObject *) (cur->pll_obj))->dict; + if (dd->dv_copyID != copyID) + { + dd->dv_copyID = copyID; +! abort = abort || set_ref_in_ht(&dd->dv_hashtab, copyID, NULL); + } + } ++ } + + if (lastlist != NULL) +! { +! for(cur = lastlist ; !abort && cur != NULL ; cur = cur->pll_prev) + { + ll = ((ListObject *) (cur->pll_obj))->list; + if (ll->lv_copyID != copyID) + { + ll->lv_copyID = copyID; +! abort = abort || set_ref_in_list(ll, copyID, NULL); + } + } ++ } ++ ++ return abort; + } + + static int +*** ../vim-7.4.608/src/if_python.c 2014-07-23 16:56:56.587876204 +0200 +--- src/if_python.c 2015-02-03 12:05:13.471422753 +0100 +*************** +*** 1567,1574 **** + } + #endif /* Python 1.4 */ + +! void + set_ref_in_python (int copyID) + { +! set_ref_in_py(copyID); + } +--- 1567,1574 ---- + } + #endif /* Python 1.4 */ + +! int + set_ref_in_python (int copyID) + { +! return set_ref_in_py(copyID); + } +*** ../vim-7.4.608/src/if_python3.c 2014-03-30 16:11:37.180530823 +0200 +--- src/if_python3.c 2015-02-03 12:05:13.471422753 +0100 +*************** +*** 1649,1656 **** + } + } + +! void + set_ref_in_python3 (int copyID) + { +! set_ref_in_py(copyID); + } +--- 1649,1656 ---- + } + } + +! int + set_ref_in_python3 (int copyID) + { +! int set_ref_in_py(copyID); + } +*** ../vim-7.4.608/src/proto/eval.pro 2014-12-17 14:36:10.363090985 +0100 +--- src/proto/eval.pro 2015-02-03 12:47:58.472780049 +0100 +*************** +*** 62,70 **** + void list_insert __ARGS((list_T *l, listitem_T *ni, listitem_T *item)); + void vimlist_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2)); + int garbage_collect __ARGS((void)); +! void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID)); +! void set_ref_in_list __ARGS((list_T *l, int copyID)); +! void set_ref_in_item __ARGS((typval_T *tv, int copyID)); + dict_T *dict_alloc __ARGS((void)); + void dict_unref __ARGS((dict_T *d)); + void dict_free __ARGS((dict_T *d, int recurse)); +--- 62,70 ---- + void list_insert __ARGS((list_T *l, listitem_T *ni, listitem_T *item)); + void vimlist_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2)); + int garbage_collect __ARGS((void)); +! int set_ref_in_ht __ARGS((hashtab_T *ht, int copyID, list_stack_T **list_stack)); +! int set_ref_in_list __ARGS((list_T *l, int copyID, ht_stack_T **ht_stack)); +! int set_ref_in_item __ARGS((typval_T *tv, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack)); + dict_T *dict_alloc __ARGS((void)); + void dict_unref __ARGS((dict_T *d)); + void dict_free __ARGS((dict_T *d, int recurse)); +*** ../vim-7.4.608/src/proto/if_lua.pro 2012-04-05 16:41:35.000000000 +0200 +--- src/proto/if_lua.pro 2015-02-03 12:05:13.475422711 +0100 +*************** +*** 7,11 **** + void lua_buffer_free __ARGS((buf_T *buf)); + void lua_window_free __ARGS((win_T *win)); + void do_luaeval __ARGS((char_u *str, typval_T *arg, typval_T *rettv)); +! void set_ref_in_lua __ARGS((int copyID)); + /* vim: set ft=c : */ +--- 7,11 ---- + void lua_buffer_free __ARGS((buf_T *buf)); + void lua_window_free __ARGS((win_T *win)); + void do_luaeval __ARGS((char_u *str, typval_T *arg, typval_T *rettv)); +! int set_ref_in_lua __ARGS((int copyID)); + /* vim: set ft=c : */ +*** ../vim-7.4.608/src/proto/if_python.pro 2013-08-10 13:37:15.000000000 +0200 +--- src/proto/if_python.pro 2015-02-03 12:48:02.936733431 +0100 +*************** +*** 9,13 **** + void python_window_free __ARGS((win_T *win)); + void python_tabpage_free __ARGS((tabpage_T *tab)); + void do_pyeval __ARGS((char_u *str, typval_T *rettv)); +! void set_ref_in_python __ARGS((int copyID)); + /* vim: set ft=c : */ +--- 9,13 ---- + void python_window_free __ARGS((win_T *win)); + void python_tabpage_free __ARGS((tabpage_T *tab)); + void do_pyeval __ARGS((char_u *str, typval_T *rettv)); +! int set_ref_in_python __ARGS((int copyID)); + /* vim: set ft=c : */ +*** ../vim-7.4.608/src/proto/if_python3.pro 2013-08-10 13:37:16.000000000 +0200 +--- src/proto/if_python3.pro 2015-02-03 12:48:03.292729714 +0100 +*************** +*** 9,13 **** + void python3_window_free __ARGS((win_T *win)); + void python3_tabpage_free __ARGS((tabpage_T *tab)); + void do_py3eval __ARGS((char_u *str, typval_T *rettv)); +! void set_ref_in_python3 __ARGS((int copyID)); + /* vim: set ft=c : */ +--- 9,13 ---- + void python3_window_free __ARGS((win_T *win)); + void python3_tabpage_free __ARGS((tabpage_T *tab)); + void do_py3eval __ARGS((char_u *str, typval_T *rettv)); +! int set_ref_in_python3 __ARGS((int copyID)); + /* vim: set ft=c : */ +*** ../vim-7.4.608/src/structs.h 2015-01-14 12:44:38.407422077 +0100 +--- src/structs.h 2015-02-03 12:05:13.475422711 +0100 +*************** +*** 1223,1228 **** +--- 1223,1242 ---- + dict_T *dv_used_prev; /* previous dict in used dicts list */ + }; + ++ /* structure used for explicit stack while garbage collecting hash tables */ ++ typedef struct ht_stack_S ++ { ++ hashtab_T *ht; ++ struct ht_stack_S *prev; ++ } ht_stack_T; ++ ++ /* structure used for explicit stack while garbage collecting lists */ ++ typedef struct list_stack_S ++ { ++ list_T *list; ++ struct list_stack_S *prev; ++ } list_stack_T; ++ + /* values for b_syn_spell: what to do with toplevel text */ + #define SYNSPL_DEFAULT 0 /* spell check if @Spell not defined */ + #define SYNSPL_TOP 1 /* spell check toplevel text */ +*** ../vim-7.4.608/src/version.c 2015-01-27 22:52:10.713524965 +0100 +--- src/version.c 2015-02-03 12:09:19.324876918 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 609, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +167. You have more than 200 websites bookmarked. + + /// 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 /// From 26ef6e477e471bc4051b11977454f1541a63c003 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:04 +0100 Subject: [PATCH 0036/1407] - patchlevel 610 --- 7.4.610 | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 7.4.610 diff --git a/7.4.610 b/7.4.610 new file mode 100644 index 00000000..76094029 --- /dev/null +++ b/7.4.610 @@ -0,0 +1,89 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.610 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.610 +Problem: Some function headers may be missing from generated .pro files. +Solution: Add PROTO to the #ifdef. +Files: src/option.c, src/syntax.c + + +*** ../vim-7.4.609/src/option.c 2015-01-27 15:58:37.198395525 +0100 +--- src/option.c 2015-02-03 12:57:39.718500650 +0100 +*************** +*** 11212,11218 **** + return FALSE; + } + +! #ifdef FEAT_LANGMAP + /* + * Any character has an equivalent 'langmap' character. This is used for + * keyboards that have a special language mode that sends characters above +--- 11212,11218 ---- + return FALSE; + } + +! #if defined(FEAT_LANGMAP) || defined(PROTO) + /* + * Any character has an equivalent 'langmap' character. This is used for + * keyboards that have a special language mode that sends characters above +*************** +*** 11226,11232 **** + * langmap_entry_T. This does the same as langmap_mapchar[] for characters >= + * 256. + */ +! # ifdef FEAT_MBYTE + /* + * With multi-byte support use growarray for 'langmap' chars >= 256 + */ +--- 11226,11232 ---- + * langmap_entry_T. This does the same as langmap_mapchar[] for characters >= + * 256. + */ +! # if defined(FEAT_MBYTE) || defined(PROTO) + /* + * With multi-byte support use growarray for 'langmap' chars >= 256 + */ +*** ../vim-7.4.609/src/syntax.c 2014-11-19 19:33:13.369532180 +0100 +--- src/syntax.c 2015-02-03 12:59:13.377443499 +0100 +*************** +*** 6537,6543 **** + } + #endif + +! #ifdef FEAT_PROFILE + /* + * ":syntime". + */ +--- 6537,6543 ---- + } + #endif + +! #if defined(FEAT_PROFILE) || defined(PROTO) + /* + * ":syntime". + */ +*** ../vim-7.4.609/src/version.c 2015-02-03 12:55:11.140179551 +0100 +--- src/version.c 2015-02-03 12:58:24.829991354 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 610, + /**/ + +-- +Microsoft says that MS-Windows is much better for you than Linux. +That's like the Pope saying that catholicism is much better for +you than protestantism. + + /// 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 /// From 59952b87002b1135a65d1f4ea700be57f3200f58 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:04 +0100 Subject: [PATCH 0037/1407] - patchlevel 611 --- 7.4.611 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.611 diff --git a/7.4.611 b/7.4.611 new file mode 100644 index 00000000..667d3225 --- /dev/null +++ b/7.4.611 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.611 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.611 (after 7.4.609) +Problem: Syntax error. +Solution: Change statement to return. +Files: src/if_python3.c + + +*** ../vim-7.4.610/src/if_python3.c 2015-02-03 12:55:11.140179551 +0100 +--- src/if_python3.c 2015-02-03 13:13:34.407743645 +0100 +*************** +*** 1652,1656 **** + int + set_ref_in_python3 (int copyID) + { +! int set_ref_in_py(copyID); + } +--- 1652,1656 ---- + int + set_ref_in_python3 (int copyID) + { +! return set_ref_in_py(copyID); + } +*** ../vim-7.4.610/src/version.c 2015-02-03 13:00:34.404529640 +0100 +--- src/version.c 2015-02-03 13:14:20.463222408 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 611, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +168. You have your own domain name. + + /// 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 /// From efd93a1ec4ed89cd793643c6b75cea8f9618031c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:05 +0100 Subject: [PATCH 0038/1407] - patchlevel 612 --- 7.4.612 | Bin 0 -> 3589 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.4.612 diff --git a/7.4.612 b/7.4.612 new file mode 100644 index 0000000000000000000000000000000000000000..0138823f73c8490bc85ce9bfde4b6b38797092f2 GIT binary patch literal 3589 zcmd54FS3EI>%64qM_%+d%ty!C(9nhg@(qLFp6tr}fxk#iyQci;W`GN9F z?4;>3bXdm^mU(x4?sRv2M4qY`b5VRsY5pQpD$6O;sw$12sDhnTlRqi3G2U^T%rN!` z{wV6P<0OfpDmziv>{zQJ#xI%|c&k)Sl5>q8-TXzdn){OMPwcHIsC!1*2qj}ge#l-b zX-V4d=}k#7EM426%(;+1AenJ($R2z+J?`$^*=a7#lyvtxO+qqc|KofT%a_jiS+D ze+kgu9(90GKk7t-eK-{Z#1u1bnqHENa-z6Sy%qx+IN@^wmnk$Et2Dvf7)u4#c7AR4 zW(uj0C@Cp%HGoz4y?a7>?lNysDr3YXr%qixn3<~b6sAfNqSR+Q$jRc91J#t_0O#JW z*Fi>BQ`Yo$z1C`CZ%V2K9~tfzsnX&A&y&d#>3K3a@G2>JL1~#+#$&+nhV9_+J$4yj z`6N|{uY`0DN@fa;nP@Ozv|;69a!7Sts7G3b59AAD!kOu4p|a3Zn|LGa<7&?o|Za z(uMbJ*`twp-$kD)<@UW^y@5{}ebUX0xd(v6`>pkh-=iB$>T@+93v<{wX`ISBSWHMKmUrFX` zfDJMq4E()exVP6IjrP7k=KW~g>GuXJGQYjO?XC8eci?q!?lt%%3BGH1A6+^QVmKbf z{0Gc=UQvu%i{`mk|M5PyI-u)P$5^g&sx63mTc6zf7O)-cE}_rX&<}~LcJxrZ;q{^N z@im`yy4^+f;%(7}vu(xaZ5bACydW|L99>gVSx22)B*uU>evIFg1xZz9 zGjN?%g(G`RmBzG^^|vx!ma3+|RVA17_YEuA{uY&d==3SoSvBiZZ2yx=K0+Gv#j)8> zmQ1nO=>0ev#>0Jo6b+&<3VW-KzB=}Oe$^-r2XTMT?+?bKa6BCKzd#S;LBBH|Ea}0) zE(D`>mjMXcI80MWx Date: Tue, 3 Feb 2015 18:00:05 +0100 Subject: [PATCH 0039/1407] - patchlevel 613 --- 7.4.613 | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 7.4.613 diff --git a/7.4.613 b/7.4.613 new file mode 100644 index 00000000..f6b52e86 --- /dev/null +++ b/7.4.613 @@ -0,0 +1,236 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.613 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.613 +Problem: The NFA engine does not implement the 'redrawtime' time limit. +Solution: Implement the time limit. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.612/src/regexp_nfa.c 2015-01-27 14:54:07.944583588 +0100 +--- src/regexp_nfa.c 2015-02-03 16:25:58.681726505 +0100 +*************** +*** 311,318 **** + static void nfa_save_listids __ARGS((nfa_regprog_T *prog, int *list)); + static void nfa_restore_listids __ARGS((nfa_regprog_T *prog, int *list)); + static int nfa_re_num_cmp __ARGS((long_u val, int op, long_u pos)); +! static long nfa_regtry __ARGS((nfa_regprog_T *prog, colnr_T col)); +! static long nfa_regexec_both __ARGS((char_u *line, colnr_T col)); + static regprog_T *nfa_regcomp __ARGS((char_u *expr, int re_flags)); + static void nfa_regfree __ARGS((regprog_T *prog)); + static int nfa_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col, int line_lbr)); +--- 311,318 ---- + static void nfa_save_listids __ARGS((nfa_regprog_T *prog, int *list)); + static void nfa_restore_listids __ARGS((nfa_regprog_T *prog, int *list)); + static int nfa_re_num_cmp __ARGS((long_u val, int op, long_u pos)); +! static long nfa_regtry __ARGS((nfa_regprog_T *prog, colnr_T col, proftime_T *tm)); +! static long nfa_regexec_both __ARGS((char_u *line, colnr_T col, proftime_T *tm)); + static regprog_T *nfa_regcomp __ARGS((char_u *expr, int re_flags)); + static void nfa_regfree __ARGS((regprog_T *prog)); + static int nfa_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col, int line_lbr)); +*************** +*** 3850,3855 **** +--- 3850,3859 ---- + + /* Used during execution: whether a match has been found. */ + static int nfa_match; ++ #ifdef FEAT_RELTIME ++ static proftime_T *nfa_time_limit; ++ static int nfa_time_count; ++ #endif + + static void copy_pim __ARGS((nfa_pim_T *to, nfa_pim_T *from)); + static void clear_sub __ARGS((regsub_T *sub)); +*************** +*** 5449,5454 **** +--- 5453,5462 ---- + fast_breakcheck(); + if (got_int) + return FALSE; ++ #ifdef FEAT_RELTIME ++ if (nfa_time_limit != NULL && profile_passed_limit(nfa_time_limit)) ++ return FALSE; ++ #endif + + nfa_match = FALSE; + +*************** +*** 6789,6797 **** + break; + + /* Allow interrupting with CTRL-C. */ +! fast_breakcheck(); + if (got_int) + break; + } + + #ifdef ENABLE_LOG +--- 6797,6814 ---- + break; + + /* Allow interrupting with CTRL-C. */ +! line_breakcheck(); + if (got_int) + break; ++ #ifdef FEAT_RELTIME ++ /* Check for timeout once in a twenty times to avoid overhead. */ ++ if (nfa_time_limit != NULL && ++nfa_time_count == 20) ++ { ++ nfa_time_count = 0; ++ if (profile_passed_limit(nfa_time_limit)) ++ break; ++ } ++ #endif + } + + #ifdef ENABLE_LOG +*************** +*** 6818,6826 **** + * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static long +! nfa_regtry(prog, col) + nfa_regprog_T *prog; + colnr_T col; + { + int i; + regsubs_T subs, m; +--- 6835,6844 ---- + * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static long +! nfa_regtry(prog, col, tm) + nfa_regprog_T *prog; + colnr_T col; ++ proftime_T *tm; /* timeout limit or NULL */ + { + int i; + regsubs_T subs, m; +*************** +*** 6831,6836 **** +--- 6849,6858 ---- + #endif + + reginput = regline + col; ++ #ifdef FEAT_RELTIME ++ nfa_time_limit = tm; ++ nfa_time_count = 0; ++ #endif + + #ifdef ENABLE_LOG + f = fopen(NFA_REGEXP_RUN_LOG, "a"); +*************** +*** 6951,6959 **** + * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static long +! nfa_regexec_both(line, startcol) + char_u *line; + colnr_T startcol; /* column to start looking for match */ + { + nfa_regprog_T *prog; + long retval = 0L; +--- 6973,6982 ---- + * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static long +! nfa_regexec_both(line, startcol, tm) + char_u *line; + colnr_T startcol; /* column to start looking for match */ ++ proftime_T *tm; /* timeout limit or NULL */ + { + nfa_regprog_T *prog; + long retval = 0L; +*************** +*** 7047,7053 **** + prog->state[i].lastlist[1] = 0; + } + +! retval = nfa_regtry(prog, col); + + nfa_regengine.expr = NULL; + +--- 7070,7076 ---- + prog->state[i].lastlist[1] = 0; + } + +! retval = nfa_regtry(prog, col, tm); + + nfa_regengine.expr = NULL; + +*************** +*** 7209,7215 **** + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return nfa_regexec_both(line, col); + } + + +--- 7232,7238 ---- + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return nfa_regexec_both(line, col, NULL); + } + + +*************** +*** 7245,7251 **** + buf_T *buf; /* buffer in which to search */ + linenr_T lnum; /* nr of line to start looking for match */ + colnr_T col; /* column to start looking for match */ +! proftime_T *tm UNUSED; /* timeout limit or NULL */ + { + reg_match = NULL; + reg_mmatch = rmp; +--- 7268,7274 ---- + buf_T *buf; /* buffer in which to search */ + linenr_T lnum; /* nr of line to start looking for match */ + colnr_T col; /* column to start looking for match */ +! proftime_T *tm; /* timeout limit or NULL */ + { + reg_match = NULL; + reg_mmatch = rmp; +*************** +*** 7260,7266 **** + #endif + ireg_maxcol = rmp->rmm_maxcol; + +! return nfa_regexec_both(NULL, col); + } + + #ifdef DEBUG +--- 7283,7289 ---- + #endif + ireg_maxcol = rmp->rmm_maxcol; + +! return nfa_regexec_both(NULL, col, tm); + } + + #ifdef DEBUG +*** ../vim-7.4.612/src/version.c 2015-02-03 16:07:44.193584399 +0100 +--- src/version.c 2015-02-03 16:48:54.770821421 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 613, + /**/ + +-- +In Joseph Heller's novel "Catch-22", the main character tries to get out of a +war by proving he is crazy. But the mere fact he wants to get out of the war +only shows he isn't crazy -- creating the original "Catch-22". + + /// 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 /// From 7a468bd42b0faed9fa0d8933d1f907ad400ff53a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:05 +0100 Subject: [PATCH 0040/1407] - patchlevel 614 --- 7.4.614 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 7.4.614 diff --git a/7.4.614 b/7.4.614 new file mode 100644 index 00000000..89b2a966 --- /dev/null +++ b/7.4.614 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.614 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.614 +Problem: There is no test for what patch 7.4.601 fixes. +Solution: Add a test. (Christian Brabandt) +Files: src/testdir/test_mapping.in, src/testdir/test_mapping.ok + + +*** ../vim-7.4.613/src/testdir/test_mapping.in 2015-01-14 16:08:29.210474234 +0100 +--- src/testdir/test_mapping.in 2015-02-03 16:52:28.828510717 +0100 +*************** +*** 31,36 **** +--- 31,41 ---- + : " expr mapping with langmap + :inoremap { "FAIL_iexplangmap" + o+ ++ :" issue #212 (feedkeys insert mapping at current position) ++ :nnoremap . :call feedkeys(".", "in") ++ :/^a b ++ 0qqdw.ifooqj0@q:unmap . ++ + + :/^test/,$w! test.out + :qa! +*************** +*** 38,40 **** +--- 43,48 ---- + + test starts here: + ++ a b c d ++ a b c d ++ +*** ../vim-7.4.613/src/testdir/test_mapping.ok 2015-01-14 16:08:29.210474234 +0100 +--- src/testdir/test_mapping.ok 2015-02-03 16:52:28.828510717 +0100 +*************** +*** 1,4 **** +--- 1,7 ---- + test starts here: ++ ++ fooc d ++ fooc d + vim + TEST2: CTRL-C |A| + +*** ../vim-7.4.613/src/version.c 2015-02-03 16:49:20.242545503 +0100 +--- src/version.c 2015-02-03 16:52:21.200592637 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 614, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +169. You hire a housekeeper for your home page. + + /// 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 /// From 4059399d0cc9c3cfcac8e8dd395e3a53be23ff6b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:06 +0100 Subject: [PATCH 0041/1407] - patchlevel 615 --- 7.4.615 | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 7.4.615 diff --git a/7.4.615 b/7.4.615 new file mode 100644 index 00000000..fffeeb18 --- /dev/null +++ b/7.4.615 @@ -0,0 +1,164 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.615 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.615 +Problem: Vim hangs when freeing a lot of objects. +Solution: Do not go back to the start of the list every time. (Yasuhiro + Matsumoto and Ariya Mizutani) +Files: src/eval.c + + +*** ../vim-7.4.614/src/eval.c 2015-02-03 12:55:11.136179596 +0100 +--- src/eval.c 2015-02-03 17:02:59.497727303 +0100 +*************** +*** 5974,5980 **** + } + + /* +! * Free a list, including all items it points to. + * Ignores the reference count. + */ + void +--- 5974,5980 ---- + } + + /* +! * Free a list, including all non-container items it points to. + * Ignores the reference count. + */ + void +*************** +*** 6941,6954 **** + free_unref_items(copyID) + int copyID; + { +! dict_T *dd; +! list_T *ll; + int did_free = FALSE; + + /* + * Go through the list of dicts and free items without the copyID. + */ + for (dd = first_dict; dd != NULL; ) + if ((dd->dv_copyID & COPYID_MASK) != (copyID & COPYID_MASK)) + { + /* Free the Dictionary and ordinary items it contains, but don't +--- 6941,6956 ---- + free_unref_items(copyID) + int copyID; + { +! dict_T *dd, *dd_next; +! list_T *ll, *ll_next; + int did_free = FALSE; + + /* + * Go through the list of dicts and free items without the copyID. + */ + for (dd = first_dict; dd != NULL; ) ++ { ++ dd_next = dd->dv_used_next; + if ((dd->dv_copyID & COPYID_MASK) != (copyID & COPYID_MASK)) + { + /* Free the Dictionary and ordinary items it contains, but don't +*************** +*** 6956,6967 **** + * of dicts or list of lists. */ + dict_free(dd, FALSE); + did_free = TRUE; +- +- /* restart, next dict may also have been freed */ +- dd = first_dict; + } +! else +! dd = dd->dv_used_next; + + /* + * Go through the list of lists and free items without the copyID. +--- 6958,6966 ---- + * of dicts or list of lists. */ + dict_free(dd, FALSE); + did_free = TRUE; + } +! dd = dd_next; +! } + + /* + * Go through the list of lists and free items without the copyID. +*************** +*** 6969,6974 **** +--- 6968,6975 ---- + * are not referenced anywhere. + */ + for (ll = first_list; ll != NULL; ) ++ { ++ ll_next = ll->lv_used_next; + if ((ll->lv_copyID & COPYID_MASK) != (copyID & COPYID_MASK) + && ll->lv_watch == NULL) + { +*************** +*** 6977,6989 **** + * or list of lists. */ + list_free(ll, FALSE); + did_free = TRUE; +- +- /* restart, next list may also have been freed */ +- ll = first_list; + } +! else +! ll = ll->lv_used_next; +! + return did_free; + } + +--- 6978,6986 ---- + * or list of lists. */ + list_free(ll, FALSE); + did_free = TRUE; + } +! ll = ll_next; +! } + return did_free; + } + +*************** +*** 7213,7219 **** + } + + /* +! * Free a Dictionary, including all items it contains. + * Ignores the reference count. + */ + void +--- 7210,7216 ---- + } + + /* +! * Free a Dictionary, including all non-container items it contains. + * Ignores the reference count. + */ + void +*** ../vim-7.4.614/src/version.c 2015-02-03 16:53:47.155669292 +0100 +--- src/version.c 2015-02-03 16:56:07.790157478 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 615, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +170. You introduce your wife as "my_lady@home.wife" and refer to your + children as "forked processes." + + /// 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 /// From 88d5f23a3c01e3d1a8ca9bd0e6ecfda0ea52a6ff Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Feb 2015 18:00:06 +0100 Subject: [PATCH 0042/1407] - patchlevel 615 --- README.patches | 7 +++++++ vim.spec | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 611db8f8..1c51bd2b 100644 --- a/README.patches +++ b/README.patches @@ -630,3 +630,10 @@ Individual patches for Vim 7.4: 1457 7.4.606 may crash when using a small window 1825 7.4.607 (after 7.4.598) compiler warnings for unused variables 5034 7.4.608 (after 7.4.598) test_eval fails without the clipboard feature + 20895 7.4.609 the garbage collector can run out of stack space + 2518 7.4.610 some function headers may be missing from generated .pro files + 1341 7.4.611 (after 7.4.609) syntax error + 3589 7.4.612 test_eval fails on Mac + 6713 7.4.613 the NFA engine does not implement the 'redrawtime' time limit + 1880 7.4.614 there is no test for what patch 7.4.601 fixes + 4050 7.4.615 Vim hangs when freeing a lot of objects diff --git a/vim.spec b/vim.spec index 3ddbdc80..8d7245f8 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 608 +%define patchlevel 615 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -655,6 +655,13 @@ Patch605: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.605 Patch606: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.606 Patch607: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.607 Patch608: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.608 +Patch609: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.609 +Patch610: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.610 +Patch611: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.611 +Patch612: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.612 +Patch613: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.613 +Patch614: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.614 +Patch615: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.615 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1412,6 +1419,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch606 -p0 %patch607 -p0 %patch608 -p0 +%patch609 -p0 +%patch610 -p0 +%patch611 -p0 +%patch612 -p0 +%patch613 -p0 +%patch614 -p0 +%patch615 -p0 # install spell files %if %{withvimspell} @@ -1929,6 +1943,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Feb 03 2015 Karsten Hopp 7.4.615-1 +- patchlevel 615 + * Wed Jan 28 2015 Karsten Hopp 7.4.608-1 - patchlevel 608 From 47265551303bfc2fd0985830e758dbbef83e6080 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Feb 2015 18:00:04 +0100 Subject: [PATCH 0043/1407] - patchlevel 616 --- 7.4.616 | Bin 0 -> 4582 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 7.4.616 diff --git a/7.4.616 b/7.4.616 new file mode 100644 index 0000000000000000000000000000000000000000..ba25f75c623b0406ed5ed985a2588f5bc9b1fcd0 GIT binary patch literal 4582 zcmdT|Yj4{)7TvGbuei+=)5OukdOKg9s-MTrZ+n_9X#udJ(P_7QWH!6i}o z5>hvE6F;%e@;n3Hs2Trkoe5rL@Jf&h-f&(bBSgRpU4B_@$}U57Y`visI@c&96NJe*3g?vNyr686!Ei>E!FOrlUgK#>_x26Mrg0zL-m-$Ea@DdtEpXnO6`Ll?RIk^g&#glPS93X?^m@wI?VYvP2P~-C zKhT4*1xip$D!~DPITr;`1#>Ro-R1P;^78cUYv_BO<*ab2oW42v8Ah<5H)2hhbG)AB zjgV`?6pTjj=H%z`yNiS850jAisU0Liv_nGT5A7fc!wm_&-@C!|yYoW%Fal0Ca@qK5 zymp%`_BCHjOeY69ZVLZPq##XD#sVU1;Jw}`xKDyDPJnLk)cG@>%dyq>Dt8nv?SwgW?j*<7@eOgChOo^`vcC2?p6Npcs^j}UqY zy&h!>w7Pb9c|?{P-ZnP9UN`tRdTRQNYdidCg#Tj6)b}%Q_N70O&4=Zh4D29D{Xbo< zTJT;U1WHt}t6RlQsI5rZpx(&dT~5#6UY)+5wCBQoksprqA)(Kz64_rU23n!q$$jhO z{RsKJlX$8ZVHj-AtiO=N|6j}ehvVkESKyI^?yHngr)rVo2aa!&yD-ke)Q#gXJ&KRw zO{%s@?jE#`ox4OYNV6z%(=-|eaTFYVE77ylo$SW;{f$T_C>2~&*^si$+}fim=T${m zAuWItordUMdmr|60@8KXCz=gJAAp>}PbezFKrV@>;Yy#7)*<{*;G8mqSMR1L7Z+v^ z8hjoM2LAoFS6ADn;C|Ei{nh(zW7MAOSCf+D?*)!LdHhoZJCN+-U6_p$fK`J?lK(0rcqb#!1Tk8;hs&!%4r}?1uDfoDP^Foo? z@y!d|c;@|EEzz@|uHpFDEV#=Xr9JzVJh1>y-@Z1Sf1l9#r~gIht@WTr``bx09Z>Y6xdrYovYxEddtM;Dk z-oLn|nLo$|f$PVip9aHl6VIF7;9;v_79?35yGLOh#$gzJi<~qH?KIlC=d=~cM*qJ7 z=o`sNQ2@g=)aJVYYpNLvm|@A++qAjO^}YUG%Afd&ZE5qqXIYN3Nx%WFQQX43VeHn1 ztDGx!>jJ#xYnUOapx|o;)h*;DS4)(xWr62;Uw(3M98>f1?jwZ$=%8ztO4XU?t=DV! zejC8e&5fm@x<}TWNiN`;RyM4-LUWy*BT`P5TvSfxg>1SkOh7L_D@>P8V$FZisyNjM% Date: Wed, 4 Feb 2015 18:00:05 +0100 Subject: [PATCH 0044/1407] - patchlevel 617 --- 7.4.617 | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 7.4.617 diff --git a/7.4.617 b/7.4.617 new file mode 100644 index 00000000..ce5da273 --- /dev/null +++ b/7.4.617 @@ -0,0 +1,101 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.617 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.617 +Problem: Wrong ":argdo" range does not cause an error. +Solution: Reset "cmd" to NULL. (Marcin Szamotulski, Ingo Karkat) +Files: src/ex_docmd.c + + +*** ../vim-7.4.616/src/ex_docmd.c 2015-01-14 21:21:56.920743646 +0100 +--- src/ex_docmd.c 2015-02-03 18:50:19.036177579 +0100 +*************** +*** 4405,4410 **** +--- 4405,4411 ---- + if (addr_type != ADDR_LINES) + { + EMSG(_(e_invaddr)); ++ cmd = NULL; + goto error; + } + if (skip) +*************** +*** 4436,4441 **** +--- 4437,4443 ---- + if (addr_type != ADDR_LINES) + { + EMSG(_(e_invaddr)); ++ cmd = NULL; + goto error; + } + if (skip) /* skip "/pat/" */ +*************** +*** 4484,4489 **** +--- 4486,4492 ---- + if (addr_type != ADDR_LINES) + { + EMSG(_(e_invaddr)); ++ cmd = NULL; + goto error; + } + if (*cmd == '&') +*************** +*** 4575,4581 **** + n = getdigits(&cmd); + if (addr_type == ADDR_LOADED_BUFFERS + || addr_type == ADDR_BUFFERS) +! lnum = compute_buffer_local_count(addr_type, lnum, (i == '-') ? -1 * n : n); + else if (i == '-') + lnum -= n; + else +--- 4578,4585 ---- + n = getdigits(&cmd); + if (addr_type == ADDR_LOADED_BUFFERS + || addr_type == ADDR_BUFFERS) +! lnum = compute_buffer_local_count( +! addr_type, lnum, (i == '-') ? -1 * n : n); + else if (i == '-') + lnum -= n; + else +*************** +*** 4662,4668 **** + return (char_u *)_(e_invrange); + break; + case ADDR_ARGUMENTS: +! if (eap->line2 > ARGCOUNT + (!ARGCOUNT)) // add 1 if ARCOUNT is 0 + return (char_u *)_(e_invrange); + break; + case ADDR_BUFFERS: +--- 4666,4673 ---- + return (char_u *)_(e_invrange); + break; + case ADDR_ARGUMENTS: +! /* add 1 if ARGCOUNT is 0 */ +! if (eap->line2 > ARGCOUNT + (!ARGCOUNT)) + return (char_u *)_(e_invrange); + break; + case ADDR_BUFFERS: +*** ../vim-7.4.616/src/version.c 2015-02-03 18:36:40.401033677 +0100 +--- src/version.c 2015-02-03 18:51:44.571251706 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 617, + /**/ + +-- +Living in Hollywood is like living in a bowl of granola. What ain't +fruits and nuts is flakes. + + /// 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 /// From 565146f5d400c8cea67578a1cfc34cd6c51fa6f5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Feb 2015 18:00:05 +0100 Subject: [PATCH 0045/1407] - patchlevel 618 --- 7.4.618 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.618 diff --git a/7.4.618 b/7.4.618 new file mode 100644 index 00000000..5731568c --- /dev/null +++ b/7.4.618 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.619 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.618 (after 7.4.609) +Problem: luaV_setref() is missing a return statement. (Ozaki Kiichi) +Solution: Put the return statement back. +Files: src/if_lua.c + + +*** ../vim-7.4.617/src/if_lua.c 2015-02-03 12:55:11.136179596 +0100 +--- src/if_lua.c 2015-02-03 23:07:59.892636921 +0100 +*************** +*** 1547,1552 **** +--- 1547,1553 ---- + abort = set_ref_in_item(&tv, copyID, NULL, NULL); + } + lua_pushinteger(L, abort); ++ return 0; + } + + static int +*** ../vim-7.4.617/src/version.c 2015-02-03 19:10:45.978888772 +0100 +--- src/version.c 2015-02-03 23:09:15.267493945 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 618, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +174. You know what a listserv is. + + /// 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 /// From 936c19333d4e9f508aaea6fce678543619139c3f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Feb 2015 18:00:05 +0100 Subject: [PATCH 0046/1407] - patchlevel 618 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 1c51bd2b..df81b445 100644 --- a/README.patches +++ b/README.patches @@ -637,3 +637,6 @@ Individual patches for Vim 7.4: 6713 7.4.613 the NFA engine does not implement the 'redrawtime' time limit 1880 7.4.614 there is no test for what patch 7.4.601 fixes 4050 7.4.615 Vim hangs when freeing a lot of objects + 4582 7.4.616 cannot insert a tab in front of a block + 2790 7.4.617 wrong ":argdo" range does not cause an error + 1337 7.4.618 (after 7.4.609) luaV_setref() is missing a return statement diff --git a/vim.spec b/vim.spec index 8d7245f8..711848f1 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 615 +%define patchlevel 618 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -662,6 +662,9 @@ Patch612: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.612 Patch613: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.613 Patch614: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.614 Patch615: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.615 +Patch616: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.616 +Patch617: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.617 +Patch618: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.618 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1426,6 +1429,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch613 -p0 %patch614 -p0 %patch615 -p0 +%patch616 -p0 +%patch617 -p0 +%patch618 -p0 # install spell files %if %{withvimspell} @@ -1943,6 +1949,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Feb 04 2015 Karsten Hopp 7.4.618-1 +- patchlevel 618 + * Tue Feb 03 2015 Karsten Hopp 7.4.615-1 - patchlevel 615 From 51b4560470f4996d91c7e926435628b6fbd479aa Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Feb 2015 18:00:04 +0100 Subject: [PATCH 0047/1407] - patchlevel 619 --- 7.4.619 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.4.619 diff --git a/7.4.619 b/7.4.619 new file mode 100644 index 00000000..b3156098 --- /dev/null +++ b/7.4.619 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.619 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.619 (after 7.4.618) +Problem: luaV_setref() not returning the correct value. +Solution: Return one. +Files: src/if_lua.c + + +*** ../vim-7.4.618/src/if_lua.c 2015-02-03 23:10:41.574348921 +0100 +--- src/if_lua.c 2015-02-04 22:01:19.649852981 +0100 +*************** +*** 1517,1523 **** + return 0; + } + luaV_totypval(L, -1, rettv); +! return 0; + } + + static int +--- 1517,1523 ---- + return 0; + } + luaV_totypval(L, -1, rettv); +! return 1; + } + + static int +*************** +*** 1530,1536 **** + luaV_getfield(L, LUAVIM_LIST); + luaV_getfield(L, LUAVIM_DICT); + lua_pushnil(L); +! while (!abort && lua_next(L, lua_upvalueindex(1)) != 0) /* traverse cache table */ + { + lua_getmetatable(L, -1); + if (lua_rawequal(L, -1, 2)) /* list? */ +--- 1530,1537 ---- + luaV_getfield(L, LUAVIM_LIST); + luaV_getfield(L, LUAVIM_DICT); + lua_pushnil(L); +! /* traverse cache table */ +! while (!abort && lua_next(L, lua_upvalueindex(1)) != 0) + { + lua_getmetatable(L, -1); + if (lua_rawequal(L, -1, 2)) /* list? */ +*** ../vim-7.4.618/src/version.c 2015-02-03 23:10:41.574348921 +0100 +--- src/version.c 2015-02-04 22:02:02.317286761 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 619, + /**/ + +-- +I'm so disorganized my keyboard isn't even in alphabetical order! + + /// 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 /// From abb989deb0e3fa8aab3c658169066a7b7c22ab0b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Feb 2015 18:00:04 +0100 Subject: [PATCH 0048/1407] - patchlevel 620 --- 7.4.620 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.620 diff --git a/7.4.620 b/7.4.620 new file mode 100644 index 00000000..23f1df7c --- /dev/null +++ b/7.4.620 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.620 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.620 +Problem: Compiler warning for unitinialized variable. (Tony Mechelynck) +Solution: Initialize "did_free". (Ben Fritz) +Files: src/eval.c + + +*** ../vim-7.4.619/src/eval.c 2015-02-03 17:10:02.149172883 +0100 +--- src/eval.c 2015-02-04 22:28:33.244066584 +0100 +*************** +*** 6815,6821 **** + win_T *wp; + int i; + funccall_T *fc, **pfc; +! int did_free; + int did_free_funccal = FALSE; + #ifdef FEAT_WINDOWS + tabpage_T *tp; +--- 6815,6821 ---- + win_T *wp; + int i; + funccall_T *fc, **pfc; +! int did_free = FALSE; + int did_free_funccal = FALSE; + #ifdef FEAT_WINDOWS + tabpage_T *tp; +*** ../vim-7.4.619/src/version.c 2015-02-04 22:02:33.184877183 +0100 +--- src/version.c 2015-02-04 23:06:08.637946730 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 620, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +177. You log off of your system because it's time to go to work. + + /// 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 /// From 6ff122d2c6acbf36c3de716a36613f24d8210728 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Feb 2015 18:00:04 +0100 Subject: [PATCH 0049/1407] - patchlevel 621 --- 7.4.621 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.4.621 diff --git a/7.4.621 b/7.4.621 new file mode 100644 index 00000000..4415521e --- /dev/null +++ b/7.4.621 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.621 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.621 (after 7.4.619) +Problem: Returning 1 in the wrong function. (Raymond Ko) +Solution: Return 1 in the right function (hopefully). +Files: src/if_lua.c + + +*** ../vim-7.4.620/src/if_lua.c 2015-02-04 22:02:33.184877183 +0100 +--- src/if_lua.c 2015-02-04 23:01:52.189364426 +0100 +*************** +*** 1517,1523 **** + return 0; + } + luaV_totypval(L, -1, rettv); +! return 1; + } + + static int +--- 1517,1523 ---- + return 0; + } + luaV_totypval(L, -1, rettv); +! return 0; + } + + static int +*************** +*** 1548,1554 **** + abort = set_ref_in_item(&tv, copyID, NULL, NULL); + } + lua_pushinteger(L, abort); +! return 0; + } + + static int +--- 1548,1554 ---- + abort = set_ref_in_item(&tv, copyID, NULL, NULL); + } + lua_pushinteger(L, abort); +! return 1; + } + + static int +*** ../vim-7.4.620/src/version.c 2015-02-04 23:06:39.453536117 +0100 +--- src/version.c 2015-02-04 23:07:28.484882812 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 621, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +178. You look for an icon to double-click to open your bedroom window. + + /// 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 /// From 0b470d0e5ac58874721aed367686ecc00374a87d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Feb 2015 18:00:05 +0100 Subject: [PATCH 0050/1407] - patchlevel 621 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index df81b445..72fbed72 100644 --- a/README.patches +++ b/README.patches @@ -640,3 +640,6 @@ Individual patches for Vim 7.4: 4582 7.4.616 cannot insert a tab in front of a block 2790 7.4.617 wrong ":argdo" range does not cause an error 1337 7.4.618 (after 7.4.609) luaV_setref() is missing a return statement + 1929 7.4.619 (after 7.4.618) luaV_setref() not returning the correct value + 1549 7.4.620 compiler warning for unitinialized variable + 1755 7.4.621 (after 7.4.619) returning 1 in the wrong function diff --git a/vim.spec b/vim.spec index 711848f1..cd28e03a 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 618 +%define patchlevel 621 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -665,6 +665,9 @@ Patch615: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.615 Patch616: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.616 Patch617: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.617 Patch618: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.618 +Patch619: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.619 +Patch620: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.620 +Patch621: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.621 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1432,6 +1435,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch616 -p0 %patch617 -p0 %patch618 -p0 +%patch619 -p0 +%patch620 -p0 +%patch621 -p0 # install spell files %if %{withvimspell} @@ -1949,6 +1955,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Feb 05 2015 Karsten Hopp 7.4.621-1 +- patchlevel 621 + * Wed Feb 04 2015 Karsten Hopp 7.4.618-1 - patchlevel 618 From 5549589ceb3c931f7e30905900bc258adda9bb2d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Feb 2015 18:00:03 +0100 Subject: [PATCH 0051/1407] - patchlevel 622 --- 7.4.622 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.622 diff --git a/7.4.622 b/7.4.622 new file mode 100644 index 00000000..db99935f --- /dev/null +++ b/7.4.622 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.622 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.622 +Problem: Compiler warning for unused argument. +Solution: Add UNUSED. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.621/src/regexp_nfa.c 2015-02-03 16:49:20.242545503 +0100 +--- src/regexp_nfa.c 2015-02-05 20:28:28.268349950 +0100 +*************** +*** 6838,6844 **** + nfa_regtry(prog, col, tm) + nfa_regprog_T *prog; + colnr_T col; +! proftime_T *tm; /* timeout limit or NULL */ + { + int i; + regsubs_T subs, m; +--- 6838,6844 ---- + nfa_regtry(prog, col, tm) + nfa_regprog_T *prog; + colnr_T col; +! proftime_T *tm UNUSED; /* timeout limit or NULL */ + { + int i; + regsubs_T subs, m; +*** ../vim-7.4.621/src/version.c 2015-02-04 23:07:55.932517109 +0100 +--- src/version.c 2015-02-05 20:29:00.379932874 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 622, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +181. You make up words that go with the "happy tune" your modem makes + while dialing your ISP. + + /// 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 /// From 571e051b28beffda1f2fbfa70ae578baa405957a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Feb 2015 18:00:04 +0100 Subject: [PATCH 0052/1407] - patchlevel 622 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 72fbed72..f7e520d2 100644 --- a/README.patches +++ b/README.patches @@ -643,3 +643,4 @@ Individual patches for Vim 7.4: 1929 7.4.619 (after 7.4.618) luaV_setref() not returning the correct value 1549 7.4.620 compiler warning for unitinialized variable 1755 7.4.621 (after 7.4.619) returning 1 in the wrong function + 1584 7.4.622 compiler warning for unused argument diff --git a/vim.spec b/vim.spec index cd28e03a..878ed44b 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 621 +%define patchlevel 622 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -668,6 +668,7 @@ Patch618: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.618 Patch619: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.619 Patch620: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.620 Patch621: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.621 +Patch622: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.622 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1438,6 +1439,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch619 -p0 %patch620 -p0 %patch621 -p0 +%patch622 -p0 # install spell files %if %{withvimspell} @@ -1955,6 +1957,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Feb 06 2015 Karsten Hopp 7.4.622-1 +- patchlevel 622 + * Thu Feb 05 2015 Karsten Hopp 7.4.621-1 - patchlevel 621 From 2a29cc5bea10ccf3465e0b1674516f1ff4ed0ac7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:49 +0100 Subject: [PATCH 0053/1407] - patchlevel 623 --- 7.4.623 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.4.623 diff --git a/7.4.623 b/7.4.623 new file mode 100644 index 00000000..269202ee --- /dev/null +++ b/7.4.623 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.623 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.623 +Problem: Crash with pattern: \(\)\{80000} (Dominique Pelle) +Solution: When the max limit is large fall back to the old engine. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.622/src/regexp_nfa.c 2015-02-05 20:29:55.071222529 +0100 +--- src/regexp_nfa.c 2015-02-10 18:09:53.878896813 +0100 +*************** +*** 2034,2042 **** + } + + /* The engine is very inefficient (uses too many states) when the +! * maximum is much larger than the minimum. Bail out if we can +! * use the other engine. */ +! if ((nfa_re_flags & RE_AUTO) && maxval > minval + 200) + return FAIL; + + /* Ignore previous call to nfa_regatom() */ +--- 2034,2043 ---- + } + + /* The engine is very inefficient (uses too many states) when the +! * maximum is much larger than the minimum and when the maximum is +! * large. Bail out if we can use the other engine. */ +! if ((nfa_re_flags & RE_AUTO) +! && (maxval > minval + 200 || maxval > 500)) + return FAIL; + + /* Ignore previous call to nfa_regatom() */ +*************** +*** 4254,4260 **** + * Add "state" and possibly what follows to state list ".". + * Returns "subs_arg", possibly copied into temp_subs. + */ +- + static regsubs_T * + addstate(l, state, subs_arg, pim, off) + nfa_list_T *l; /* runtime state list */ +--- 4255,4260 ---- +*************** +*** 4392,4397 **** +--- 4392,4398 ---- + subs = &temp_subs; + } + ++ /* TODO: check for vim_realloc() returning NULL. */ + l->t = vim_realloc(l->t, newlen * sizeof(nfa_thread_T)); + l->len = newlen; + } +*** ../vim-7.4.622/src/version.c 2015-02-05 20:29:55.071222529 +0100 +--- src/version.c 2015-02-10 18:14:05.287650419 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 623, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +210. When you get a divorce, you don't care about who gets the children, + but discuss endlessly who can use the email address. + + /// 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 /// From 9637f25a7cf54bdcd0700cf89c96ac1dd11f3717 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:49 +0100 Subject: [PATCH 0054/1407] - patchlevel 624 --- 7.4.624 | 204 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 204 insertions(+) create mode 100644 7.4.624 diff --git a/7.4.624 b/7.4.624 new file mode 100644 index 00000000..38efc8cc --- /dev/null +++ b/7.4.624 @@ -0,0 +1,204 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.624 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.624 +Problem: May leak memory or crash when vim_realloc() returns NULL. +Solution: Handle a NULL value properly. (Mike Williams) +Files: src/if_cscope.c, src/memline.c, src/misc1.c, src/netbeans.c + + +*** ../vim-7.4.623/src/if_cscope.c 2014-12-13 03:20:10.539067382 +0100 +--- src/if_cscope.c 2015-02-10 18:33:14.764816257 +0100 +*************** +*** 1507,1515 **** +--- 1507,1522 ---- + } + else + { ++ csinfo_T *t_csinfo = csinfo; ++ + /* Reallocate space for more connections. */ + csinfo_size *= 2; + csinfo = vim_realloc(csinfo, sizeof(csinfo_T)*csinfo_size); ++ if (csinfo == NULL) ++ { ++ vim_free(t_csinfo); ++ csinfo_size = 0; ++ } + } + if (csinfo == NULL) + return -1; +*************** +*** 2059,2064 **** +--- 2066,2072 ---- + int num_matches; + { + char *buf = NULL; ++ char *t_buf; + int bufsize = 0; /* Track available bufsize */ + int newsize = 0; + char *ptag; +*************** +*** 2120,2128 **** +--- 2128,2140 ---- + newsize = (int)(strlen(csfmt_str) + 16 + strlen(lno)); + if (bufsize < newsize) + { ++ t_buf = buf; + buf = (char *)vim_realloc(buf, newsize); + if (buf == NULL) ++ { + bufsize = 0; ++ vim_free(t_buf); ++ } + else + bufsize = newsize; + } +*************** +*** 2143,2151 **** +--- 2155,2167 ---- + + if (bufsize < newsize) + { ++ t_buf = buf; + buf = (char *)vim_realloc(buf, newsize); + if (buf == NULL) ++ { + bufsize = 0; ++ vim_free(t_buf); ++ } + else + bufsize = newsize; + } +*** ../vim-7.4.623/src/memline.c 2014-08-13 21:58:24.824885492 +0200 +--- src/memline.c 2015-02-10 18:26:23.158126542 +0100 +*************** +*** 5057,5062 **** +--- 5057,5064 ---- + /* May resize here so we don't have to do it in both cases below */ + if (buf->b_ml.ml_usedchunks + 1 >= buf->b_ml.ml_numchunks) + { ++ chunksize_T *t_chunksize = buf->b_ml.ml_chunksize; ++ + buf->b_ml.ml_numchunks = buf->b_ml.ml_numchunks * 3 / 2; + buf->b_ml.ml_chunksize = (chunksize_T *) + vim_realloc(buf->b_ml.ml_chunksize, +*************** +*** 5064,5069 **** +--- 5066,5072 ---- + if (buf->b_ml.ml_chunksize == NULL) + { + /* Hmmmm, Give up on offset for this buffer */ ++ vim_free(t_chunksize); + buf->b_ml.ml_usedchunks = -1; + return; + } +*** ../vim-7.4.623/src/misc1.c 2014-08-29 12:58:38.246430208 +0200 +--- src/misc1.c 2015-02-10 18:26:35.405968505 +0100 +*************** +*** 3431,3440 **** +--- 3431,3444 ---- + buf = alloc(buflen); + else if (maxlen < 10) + { ++ char_u *t_buf = buf; ++ + /* Need some more space. This might happen when receiving a long + * escape sequence. */ + buflen += 100; + buf = vim_realloc(buf, buflen); ++ if (buf == NULL) ++ vim_free(t_buf); + maxlen = (buflen - 6 - len) / 3; + } + if (buf == NULL) +*** ../vim-7.4.623/src/netbeans.c 2014-03-23 15:12:29.927264336 +0100 +--- src/netbeans.c 2015-02-10 18:27:18.693409965 +0100 +*************** +*** 1080,1089 **** +--- 1080,1097 ---- + { + if (bufno >= buf_list_size) /* grow list */ + { ++ nbbuf_T *t_buf_list = buf_list; ++ + incr = bufno - buf_list_size + 90; + buf_list_size += incr; + buf_list = (nbbuf_T *)vim_realloc( + buf_list, buf_list_size * sizeof(nbbuf_T)); ++ if (buf_list == NULL) ++ { ++ vim_free(t_buf_list); ++ buf_list_size = 0; ++ return NULL; ++ } + vim_memset(buf_list + buf_list_size - incr, 0, + incr * sizeof(nbbuf_T)); + } +*************** +*** 3678,3688 **** +--- 3686,3703 ---- + { + int incr; + int oldlen = globalsignmaplen; ++ char **t_globalsignmap = globalsignmap; + + globalsignmaplen *= 2; + incr = globalsignmaplen - oldlen; + globalsignmap = (char **)vim_realloc(globalsignmap, + globalsignmaplen * sizeof(char *)); ++ if (globalsignmap == NULL) ++ { ++ vim_free(t_globalsignmap); ++ globalsignmaplen = 0; ++ return; ++ } + vim_memset(globalsignmap + oldlen, 0, incr * sizeof(char *)); + } + } +*************** +*** 3708,3718 **** +--- 3723,3740 ---- + { + int incr; + int oldlen = buf->signmaplen; ++ int *t_signmap = buf->signmap; + + buf->signmaplen *= 2; + incr = buf->signmaplen - oldlen; + buf->signmap = (int *)vim_realloc(buf->signmap, + buf->signmaplen * sizeof(int)); ++ if (buf->signmap == NULL) ++ { ++ vim_free(t_signmap); ++ buf->signmaplen = 0; ++ return; ++ } + vim_memset(buf->signmap + oldlen, 0, incr * sizeof(int)); + } + } +*** ../vim-7.4.623/src/version.c 2015-02-10 18:18:13.004452406 +0100 +--- src/version.c 2015-02-10 18:21:29.697913596 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 624, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +211. Your husband leaves you...taking the computer with him and you + call him crying, and beg him to bring the computer back. + + /// 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 /// From 1ea0a1b1b777ad1fffacb9e605e1081fb60eeb81 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:49 +0100 Subject: [PATCH 0055/1407] - patchlevel 625 --- 7.4.625 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.4.625 diff --git a/7.4.625 b/7.4.625 new file mode 100644 index 00000000..0267302a --- /dev/null +++ b/7.4.625 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.625 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.625 +Problem: Possible NULL pointer dereference. +Solution: Check for NULL before using it. (Mike Williams) +Files: src/if_py_both.h + + +*** ../vim-7.4.624/src/if_py_both.h 2015-02-03 12:55:11.136179596 +0100 +--- src/if_py_both.h 2015-02-10 18:39:40.531839555 +0100 +*************** +*** 747,758 **** + else if (our_tv->v_type == VAR_DICT) + { + +! hashtab_T *ht = &our_tv->vval.v_dict->dv_hashtab; +! long_u todo = ht->ht_used; + hashitem_T *hi; + dictitem_T *di; + if (our_tv->vval.v_dict == NULL) + return NULL; + + if (!(ret = PyDict_New())) + return NULL; +--- 747,760 ---- + else if (our_tv->v_type == VAR_DICT) + { + +! hashtab_T *ht; +! long_u todo; + hashitem_T *hi; + dictitem_T *di; ++ + if (our_tv->vval.v_dict == NULL) + return NULL; ++ ht = &our_tv->vval.v_dict->dv_hashtab; + + if (!(ret = PyDict_New())) + return NULL; +*************** +*** 763,768 **** +--- 765,771 ---- + return NULL; + } + ++ todo = ht->ht_used; + for (hi = ht->ht_array; todo > 0; ++hi) + { + if (!HASHITEM_EMPTY(hi)) +*** ../vim-7.4.624/src/version.c 2015-02-10 18:33:53.240319951 +0100 +--- src/version.c 2015-02-10 18:38:37.364655345 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 625, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +212. Your Internet group window has more icons than your Accessories window. + + /// 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 /// From 0cac0f5b223f117563da79fcb3722f00a81f2363 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:49 +0100 Subject: [PATCH 0056/1407] - patchlevel 626 --- 7.4.626 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.626 diff --git a/7.4.626 b/7.4.626 new file mode 100644 index 00000000..a0298fd6 --- /dev/null +++ b/7.4.626 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.626 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.626 +Problem: MSVC with W4 gives useless warnings. +Solution: Disable more warnings. (Mike Williams) +Files: src/vim.h + + +*** ../vim-7.4.625/src/vim.h 2015-01-27 12:59:51.859602392 +0100 +--- src/vim.h 2015-02-10 18:46:02.294862211 +0100 +*************** +*** 2044,2049 **** +--- 2044,2063 ---- + #ifdef _MSC_VER + /* Avoid useless warning "conversion from X to Y of greater size". */ + #pragma warning(disable : 4312) ++ /* Avoid warning for old style function declarators */ ++ #pragma warning(disable : 4131) ++ /* Avoid warning for conversion to type with smaller range */ ++ #pragma warning(disable : 4244) ++ /* Avoid warning for conversion to larger size */ ++ #pragma warning(disable : 4306) ++ /* Avoid warning for unreferenced formal parameter */ ++ #pragma warning(disable : 4100) ++ /* Avoid warning for differs in indirection to slightly different base type */ ++ #pragma warning(disable : 4057) ++ /* Avoid warning for constant conditional expression */ ++ #pragma warning(disable : 4127) ++ /* Avoid warning for assignment within conditional */ ++ #pragma warning(disable : 4706) + #endif + + /* Note: a NULL argument for vim_realloc() is not portable, don't use it. */ +*** ../vim-7.4.625/src/version.c 2015-02-10 18:41:53.010111874 +0100 +--- src/version.c 2015-02-10 18:45:09.087555683 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 626, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +213. Your kids start referring to you as "that guy in front of the monitor." + + /// 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 /// From 9edd11ef79224e94e76721b9865a11a24e1656d5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:50 +0100 Subject: [PATCH 0057/1407] - patchlevel 627 --- 7.4.627 | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 7.4.627 diff --git a/7.4.627 b/7.4.627 new file mode 100644 index 00000000..5410c8e7 --- /dev/null +++ b/7.4.627 @@ -0,0 +1,186 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.627 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.627 +Problem: The last screen cell is not updated. +Solution: Respect the "tn" termcap feature. (Hayaki Saito) +Files: runtime/doc/term.txt, src/option.c, src/screen.c, src/term.c, + src/term.h + + +*** ../vim-7.4.626/runtime/doc/term.txt 2013-08-10 13:25:02.000000000 +0200 +--- runtime/doc/term.txt 2015-02-10 19:11:54.110597132 +0100 +*************** +*** 224,233 **** + the last two characters of the option name. Only one termcap code is + required: Cursor motion, 't_cm'. + +! The options 't_da', 't_db', 't_ms', 't_xs' represent flags in the termcap. +! When the termcap flag is present, the option will be set to "y". But any +! non-empty string means that the flag is set. An empty string means that the +! flag is not set. 't_CS' works like this too, but it isn't a termcap flag. + + OUTPUT CODES + option meaning ~ +--- 224,234 ---- + the last two characters of the option name. Only one termcap code is + required: Cursor motion, 't_cm'. + +! The options 't_da', 't_db', 't_ms', 't_xs', 't_xn' represent flags in the +! termcap. When the termcap flag is present, the option will be set to "y". +! But any non-empty string means that the flag is set. An empty string means +! that the flag is not set. 't_CS' works like this too, but it isn't a termcap +! flag. + + OUTPUT CODES + option meaning ~ +*************** +*** 281,286 **** +--- 282,290 ---- + t_vs cursor very visible *t_vs* *'t_vs'* + *t_xs* *'t_xs'* + t_xs if non-empty, standout not erased by overwriting (hpterm) ++ *t_xn* *'t_xn'* ++ t_xn if non-empty, character writing at the last cell of screen ++ didn't causes scrolling + t_ZH italics mode *t_ZH* *'t_ZH'* + t_ZR italics end *t_ZR* *'t_ZR'* + +*** ../vim-7.4.626/src/option.c 2015-02-03 13:00:34.400529686 +0100 +--- src/option.c 2015-02-10 19:13:36.997250501 +0100 +*************** +*** 2978,2983 **** +--- 2978,2984 ---- + p_term("t_WS", T_CWS) + p_term("t_SI", T_CSI) + p_term("t_EI", T_CEI) ++ p_term("t_xn", T_XN) + p_term("t_xs", T_XS) + p_term("t_ZH", T_CZH) + p_term("t_ZR", T_CZR) +*** ../vim-7.4.626/src/screen.c 2015-01-27 16:39:24.691804113 +0100 +--- src/screen.c 2015-02-10 19:18:43.913231114 +0100 +*************** +*** 7968,7976 **** + if (row >= screen_Rows || col >= screen_Columns) + return; + +! /* Outputting the last character on the screen may scrollup the screen. +! * Don't to it! Mark the character invalid (update it when scrolled up) */ +! if (row == screen_Rows - 1 && col == screen_Columns - 1 + #ifdef FEAT_RIGHTLEFT + /* account for first command-line character in rightleft mode */ + && !cmdmsg_rl +--- 7968,7978 ---- + if (row >= screen_Rows || col >= screen_Columns) + return; + +! /* Outputting a character in the last cell on the screen may scroll the +! * screen up. Only do it when the "xn" termcap property is set, otherwise +! * mark the character invalid (update it when scrolled up). */ +! if (*T_XN == NUL +! && row == screen_Rows - 1 && col == screen_Columns - 1 + #ifdef FEAT_RIGHTLEFT + /* account for first command-line character in rightleft mode */ + && !cmdmsg_rl +*** ../vim-7.4.626/src/term.c 2014-07-30 17:21:53.819518506 +0200 +--- src/term.c 2015-02-10 19:11:54.118597027 +0100 +*************** +*** 200,205 **** +--- 200,206 ---- + {(int)KS_VB, IF_EB("\033|f", ESC_STR "|f")}, + {(int)KS_MS, "y"}, + {(int)KS_UT, "y"}, ++ {(int)KS_XN, "y"}, + {(int)KS_LE, "\b"}, /* cursor-left = BS */ + {(int)KS_ND, "\014"}, /* cursor-right = CTRL-L */ + # ifdef TERMINFO +*************** +*** 658,663 **** +--- 659,665 ---- + + {(int)KS_MS, "y"}, /* save to move cur in reverse mode */ + {(int)KS_UT, "y"}, ++ {(int)KS_XN, "y"}, + {(int)KS_LE, "\b"}, + # ifdef TERMINFO + {(int)KS_CM, "\033|%i%p1%d;%p2%dH"},/* cursor motion */ +*************** +*** 772,777 **** +--- 774,780 ---- + {(int)KS_CSF, IF_EB("\033[101;%dm", ESC_STR "[101;%dm")}, /* set screen foreground color */ + {(int)KS_MS, "y"}, + {(int)KS_UT, "y"}, ++ {(int)KS_XN, "y"}, + {(int)KS_LE, "\b"}, + # ifdef TERMINFO + {(int)KS_CM, IF_EB("\033[%i%p1%d;%p2%dH", +*************** +*** 1207,1212 **** +--- 1210,1216 ---- + {(int)KS_UCS, "[UCS]"}, + {(int)KS_MS, "[MS]"}, + {(int)KS_UT, "[UT]"}, ++ {(int)KS_XN, "[XN]"}, + # ifdef TERMINFO + {(int)KS_CM, "[%p1%dCM%p2%d]"}, + # else +*************** +*** 1645,1650 **** +--- 1649,1657 ---- + if ((T_XS == NULL || T_XS == empty_option) + && tgetflag("xs") > 0) + T_XS = (char_u *)"y"; ++ if ((T_XN == NULL || T_XN == empty_option) ++ && tgetflag("xn") > 0) ++ T_XN = (char_u *)"y"; + if ((T_DB == NULL || T_DB == empty_option) + && tgetflag("db") > 0) + T_DB = (char_u *)"y"; +*** ../vim-7.4.626/src/term.h 2013-03-13 19:09:03.000000000 +0100 +--- src/term.h 2015-02-10 19:11:54.118597027 +0100 +*************** +*** 66,71 **** +--- 66,72 ---- + KS_CSF, /* set foreground color */ + KS_CSB, /* set background color */ + KS_XS, /* standout not erased by overwriting (hpterm) */ ++ KS_XN, /* newline glitch */ + KS_MB, /* blink mode */ + KS_CAF, /* set foreground color (ANSI) */ + KS_CAB, /* set background color (ANSI) */ +*************** +*** 144,149 **** +--- 145,151 ---- + #define T_CSF (term_str(KS_CSF)) /* set foreground color */ + #define T_CSB (term_str(KS_CSB)) /* set background color */ + #define T_XS (term_str(KS_XS)) /* standout not erased by overwriting */ ++ #define T_XN (term_str(KS_XN)) /* newline glitch */ + #define T_MB (term_str(KS_MB)) /* blink mode */ + #define T_CAF (term_str(KS_CAF)) /* set foreground color (ANSI) */ + #define T_CAB (term_str(KS_CAB)) /* set background color (ANSI) */ +*** ../vim-7.4.626/src/version.c 2015-02-10 18:47:55.225390610 +0100 +--- src/version.c 2015-02-10 19:12:50.525858691 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 627, + /**/ + +-- +msdn.microsoft.com: +ERROR_SUCCESS 0 (0x0) The operation completed successfully. +I have always suspected that for Microsoft success is an error. + + /// 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 /// From dbf8fd3177ca8a910902d4a038483024fe9deea8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:50 +0100 Subject: [PATCH 0058/1407] - patchlevel 628 --- 7.4.628 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.628 diff --git a/7.4.628 b/7.4.628 new file mode 100644 index 00000000..d11b7249 --- /dev/null +++ b/7.4.628 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.628 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.628 +Problem: Compiler warning for variable might be clobbered by longjmp. +Solution: Add volatile. (Michael Jarvis) +Files: src/main.c + + +*** ../vim-7.4.627/src/main.c 2015-01-27 14:09:29.621898236 +0100 +--- src/main.c 2015-02-10 19:24:34.032644963 +0100 +*************** +*** 1051,1057 **** + int noexmode; /* TRUE when return on entering Ex mode */ + { + oparg_T oa; /* operator arguments */ +! int previous_got_int = FALSE; /* "got_int" was TRUE */ + #ifdef FEAT_CONCEAL + linenr_T conceal_old_cursor_line = 0; + linenr_T conceal_new_cursor_line = 0; +--- 1051,1057 ---- + int noexmode; /* TRUE when return on entering Ex mode */ + { + oparg_T oa; /* operator arguments */ +! volatile int previous_got_int = FALSE; /* "got_int" was TRUE */ + #ifdef FEAT_CONCEAL + linenr_T conceal_old_cursor_line = 0; + linenr_T conceal_new_cursor_line = 0; +*** ../vim-7.4.627/src/version.c 2015-02-10 19:20:33.739791972 +0100 +--- src/version.c 2015-02-10 19:26:06.067440234 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 628, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +215. Your mouse-clicking forearm rivals Popeye's. + + /// 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 /// From 4dd43fe07abcdc4f6404e18b8dab0c77ea4ee785 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:50 +0100 Subject: [PATCH 0059/1407] - patchlevel 629 --- 7.4.629 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.629 diff --git a/7.4.629 b/7.4.629 new file mode 100644 index 00000000..dcbe5bc7 --- /dev/null +++ b/7.4.629 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.629 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.629 +Problem: Coverity warning for Out-of-bounds read. +Solution: Increase MAXWLEN to 254. (Eliseo Martínez) +Files: src/spell.c + + +*** ../vim-7.4.628/src/spell.c 2014-11-19 16:38:01.512679964 +0100 +--- src/spell.c 2015-02-10 20:00:22.188514910 +0100 +*************** +*** 311,319 **** + # include /* for time_t */ + #endif + +! #define MAXWLEN 250 /* Assume max. word len is this many bytes. + Some places assume a word length fits in a +! byte, thus it can't be above 255. */ + + /* Type used for indexes in the word tree need to be at least 4 bytes. If int + * is 8 bytes we could use something smaller, but what? */ +--- 311,320 ---- + # include /* for time_t */ + #endif + +! #define MAXWLEN 254 /* Assume max. word len is this many bytes. + Some places assume a word length fits in a +! byte, thus it can't be above 255. +! Must be >= PFD_NOTSPECIAL. */ + + /* Type used for indexes in the word tree need to be at least 4 bytes. If int + * is 8 bytes we could use something smaller, but what? */ +*** ../vim-7.4.628/src/version.c 2015-02-10 19:26:58.918748560 +0100 +--- src/version.c 2015-02-10 20:01:27.475662030 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 629, + /**/ + +-- +I noticed my daughter's Disney-net password on a sticky note: +"MickeyMinnieGoofyPluto". I asked her why it was so long. +"Because they say it has to have at least four characters." + + /// 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 /// From 702e992cfe1d0584950821282d0d74205e8338c3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 13:48:51 +0100 Subject: [PATCH 0060/1407] - patchlevel 629 --- README.patches | 7 +++++++ vim.spec | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index f7e520d2..7fdbeb80 100644 --- a/README.patches +++ b/README.patches @@ -644,3 +644,10 @@ Individual patches for Vim 7.4: 1549 7.4.620 compiler warning for unitinialized variable 1755 7.4.621 (after 7.4.619) returning 1 in the wrong function 1584 7.4.622 compiler warning for unused argument + 2555 7.4.623 crash with pattern: \(\)\{80000} + 5520 7.4.624 may leak memory or crash when vim_realloc() returns NULL + 1976 7.4.625 possible NULL pointer dereference + 2091 7.4.626 MSVC with W4 gives useless warnings + 6670 7.4.627 the last screen cell is not updated + 1782 7.4.628 compiler warning for variable might be clobbered by longjmp + 2023 7.4.629 Coverity warning for Out-of-bounds read diff --git a/vim.spec b/vim.spec index 878ed44b..d78f0aa5 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 622 +%define patchlevel 629 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -669,6 +669,13 @@ Patch619: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.619 Patch620: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.620 Patch621: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.621 Patch622: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.622 +Patch623: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.623 +Patch624: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.624 +Patch625: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.625 +Patch626: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.626 +Patch627: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.627 +Patch628: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.628 +Patch629: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.629 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1440,6 +1447,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch620 -p0 %patch621 -p0 %patch622 -p0 +%patch623 -p0 +%patch624 -p0 +%patch625 -p0 +%patch626 -p0 +%patch627 -p0 +%patch628 -p0 +%patch629 -p0 # install spell files %if %{withvimspell} @@ -1957,6 +1971,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Feb 11 2015 Karsten Hopp 7.4.629-1 +- patchlevel 629 + * Fri Feb 06 2015 Karsten Hopp 7.4.622-1 - patchlevel 622 From 2ee931a502914a88e11a9c0c721cb9ac02b11734 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 14:00:37 +0100 Subject: [PATCH 0061/1407] add missing patch --- 7.4.597 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.597 diff --git a/7.4.597 b/7.4.597 new file mode 100644 index 00000000..096aa53d --- /dev/null +++ b/7.4.597 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.597 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.597 +Problem: Cannot change the result of systemlist(). +Solution: Initialize v_lock. (Yukihiro Nakadaira) +Files: src/eval.c + + +*** ../vim-7.4.596/src/eval.c 2015-01-14 19:00:33.842522901 +0100 +--- src/eval.c 2015-01-27 13:49:22.123112397 +0100 +*************** +*** 6007,6012 **** +--- 6007,6013 ---- + + /* + * Allocate a list item. ++ * It is not initialized, don't forget to set v_lock. + */ + listitem_T * + listitem_alloc() +*************** +*** 18713,18718 **** +--- 18714,18720 ---- + goto errret; + } + li->li_tv.v_type = VAR_STRING; ++ li->li_tv.v_lock = 0; + li->li_tv.vval.v_string = s; + list_append(list, li); + } +*** ../vim-7.4.596/src/version.c 2015-01-27 13:33:18.737649629 +0100 +--- src/version.c 2015-01-27 13:48:25.883727538 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 597, + /**/ + +-- +"Microsoft is like Coke. It's a secret formula, all the money is from +distribution, and their goal is to get Coke everywhere. Open source is like +selling water. There are water companies like Perrier and Poland Spring, but +you're competing with something that's free." -- Carl Howe + + + /// 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 /// From 2cd588b9f74ebdbd0af2e626fd896efe978f2ec5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 11 Feb 2015 15:45:23 +0100 Subject: [PATCH 0062/1407] fix syntax highlighting for some ssh_config sshd_config keywords --- vim-7.4-ssh-keywords.patch | 126 +++++++++++++++++++++++++++++++++++++ vim.spec | 8 ++- 2 files changed, 132 insertions(+), 2 deletions(-) create mode 100644 vim-7.4-ssh-keywords.patch diff --git a/vim-7.4-ssh-keywords.patch b/vim-7.4-ssh-keywords.patch new file mode 100644 index 00000000..1a40a3d4 --- /dev/null +++ b/vim-7.4-ssh-keywords.patch @@ -0,0 +1,126 @@ +diff -urN vim74/runtime/syntax/sshconfig.vim vim74_work/runtime/syntax/sshconfig.vim +--- vim74/runtime/syntax/sshconfig.vim 2012-02-24 21:28:30.000000000 +0100 ++++ vim74_work/runtime/syntax/sshconfig.vim 2015-02-11 15:17:16.146626439 +0100 +@@ -68,8 +68,8 @@ + syn keyword sshconfigSysLogFacility LOCAL2 LOCAL3 LOCAL4 LOCAL5 LOCAL6 LOCAL7 + syn keyword sshconfigAddressFamily inet inet6 + +-syn match sshconfigIPQoS "af1[1234]" +-syn match sshconfigIPQoS "af2[23]" ++syn match sshconfigIPQoS "af1[123]" ++syn match sshconfigIPQoS "af2[123]" + syn match sshconfigIPQoS "af3[123]" + syn match sshconfigIPQoS "af4[123]" + syn match sshconfigIPQoS "cs[0-7]" +@@ -99,10 +99,15 @@ + + " Keywords + syn keyword sshconfigHostSect Host ++syn keyword sshconfigMatchSect Match + + syn keyword sshconfigKeyword AddressFamily + syn keyword sshconfigKeyword BatchMode + syn keyword sshconfigKeyword BindAddress ++syn keyword sshconfigKeyword CanonicalDomains ++syn keyword sshconfigKeyword CanonicalizeFallbackLocal ++syn keyword sshconfigKeyword CanonicalizeHostname ++syn keyword sshconfigKeyword CanonicalizeMaxDots + syn keyword sshconfigKeyword ChallengeResponseAuthentication + syn keyword sshconfigKeyword CheckHostIP + syn keyword sshconfigKeyword Cipher +@@ -141,6 +146,8 @@ + syn keyword sshconfigKeyword IPQoS + syn keyword sshconfigKeyword IdentitiesOnly + syn keyword sshconfigKeyword IdentityFile ++syn keyword sshconfigKeyword IgnoreUnknown ++syn keyword sshconfigKeyword IPQoS + syn keyword sshconfigKeyword KbdInteractiveAuthentication + syn keyword sshconfigKeyword KbdInteractiveDevices + syn keyword sshconfigKeyword KexAlgorithms +@@ -157,6 +164,7 @@ + syn keyword sshconfigKeyword PreferredAuthentications + syn keyword sshconfigKeyword Protocol + syn keyword sshconfigKeyword ProxyCommand ++syn keyword sshconfigKeyword ProxyUseFdpass + syn keyword sshconfigKeyword PubkeyAuthentication + syn keyword sshconfigKeyword RSAAuthentication + syn keyword sshconfigKeyword RekeyLimit +@@ -211,6 +219,7 @@ + HiLink sshconfigSpecial Special + HiLink sshconfigKeyword Keyword + HiLink sshconfigHostSect Type ++ HiLink sshconfigMatchSect Type + delcommand HiLink + endif + +diff -urN vim74/runtime/syntax/sshdconfig.vim vim74_work/runtime/syntax/sshdconfig.vim +--- vim74/runtime/syntax/sshdconfig.vim 2011-11-30 12:14:42.000000000 +0100 ++++ vim74_work/runtime/syntax/sshdconfig.vim 2015-02-11 15:40:38.082148329 +0100 +@@ -58,8 +58,8 @@ + + syn keyword sshdconfigCompression delayed + +-syn match sshdconfigIPQoS "af1[1234]" +-syn match sshdconfigIPQoS "af2[23]" ++syn match sshdconfigIPQoS "af1[123]" ++syn match sshdconfigIPQoS "af2[123]" + syn match sshdconfigIPQoS "af3[123]" + syn match sshdconfigIPQoS "af4[123]" + syn match sshdconfigIPQoS "cs[0-7]" +@@ -101,6 +101,9 @@ + syn keyword sshdconfigKeyword AllowGroups + syn keyword sshdconfigKeyword AllowTcpForwarding + syn keyword sshdconfigKeyword AllowUsers ++syn keyword sshdconfigKeyword AuthenticationMethods ++syn keyword sshdconfigKeyword AuthorizedKeysCommand ++syn keyword sshdconfigKeyword AuthorizedKeysCommandUser + syn keyword sshdconfigKeyword AuthorizedKeysFile + syn keyword sshdconfigKeyword AuthorizedPrincipalsFile + syn keyword sshdconfigKeyword Banner +@@ -116,12 +119,14 @@ + syn keyword sshdconfigKeyword ForceCommand + syn keyword sshdconfigKeyword GSSAPIAuthentication + syn keyword sshdconfigKeyword GSSAPICleanupCredentials ++syn keyword sshdconfigKeyword GSSAPIEnablek5users + syn keyword sshdconfigKeyword GSSAPIKeyExchange + syn keyword sshdconfigKeyword GSSAPIStoreCredentialsOnRekey + syn keyword sshdconfigKeyword GSSAPIStrictAcceptorCheck + syn keyword sshdconfigKeyword GatewayPorts + syn keyword sshdconfigKeyword HostCertificate + syn keyword sshdconfigKeyword HostKey ++syn keyword sshdconfigKeyword HostKeyAgent + syn keyword sshdconfigKeyword HostbasedAuthentication + syn keyword sshdconfigKeyword HostbasedUsesNameFromPacketOnly + syn keyword sshdconfigKeyword IPQoS +@@ -132,6 +137,7 @@ + syn keyword sshdconfigKeyword KerberosGetAFSToken + syn keyword sshdconfigKeyword KerberosOrLocalPasswd + syn keyword sshdconfigKeyword KerberosTicketCleanup ++syn keyword sshdconfigKeyword KerberosUseKuserok + syn keyword sshdconfigKeyword KexAlgorithms + syn keyword sshdconfigKeyword KeyRegenerationInterval + syn keyword sshdconfigKeyword ListenAddress +@@ -148,6 +154,7 @@ + syn keyword sshdconfigKeyword PermitOpen + syn keyword sshdconfigKeyword PermitRootLogin + syn keyword sshdconfigKeyword PermitTunnel ++syn keyword sshdconfigKeyword PermitTTY + syn keyword sshdconfigKeyword PermitUserEnvironment + syn keyword sshdconfigKeyword PidFile + syn keyword sshdconfigKeyword Port +@@ -156,6 +163,7 @@ + syn keyword sshdconfigKeyword Protocol + syn keyword sshdconfigKeyword PubkeyAuthentication + syn keyword sshdconfigKeyword RSAAuthentication ++syn keyword sshdconfigKeyword RekeyLimit + syn keyword sshdconfigKeyword RevokedKeys + syn keyword sshdconfigKeyword RhostsRSAAuthentication + syn keyword sshdconfigKeyword ServerKeyBits +@@ -169,6 +177,7 @@ + syn keyword sshdconfigKeyword UseLogin + syn keyword sshdconfigKeyword UsePAM + syn keyword sshdconfigKeyword UsePrivilegeSeparation ++syn keyword sshdconfigKeyword VersionAddendum + syn keyword sshdconfigKeyword X11DisplayOffset + syn keyword sshdconfigKeyword X11Forwarding + syn keyword sshdconfigKeyword X11UseLocalhost diff --git a/vim.spec b/vim.spec index d78f0aa5..a7ad986b 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -690,6 +690,7 @@ Patch3011: vim72-rh514717.patch Patch3012: vim-7.3-manpage-typo-668894-675480.patch Patch3013: vim-manpagefixes-948566.patch Patch3014: vim-7.4-licensemacro-1151450.patch +Patch3015: vim-7.4-ssh-keywords.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel ncurses-devel gettext perl-devel @@ -1472,7 +1473,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch3012 -p1 %patch3013 -p1 -%patch3014 -p1 +%patch3015 -p1 %build cp -f %{SOURCE5} . @@ -1971,6 +1972,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Feb 11 2015 Karsten Hopp 7.4.629-2 +- fix syntax highlighting for some ssh_config sshd_config keywords + * Wed Feb 11 2015 Karsten Hopp 7.4.629-1 - patchlevel 629 From 0e13d904eb503902ef9773d797cd791da7ce00bd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:04 +0100 Subject: [PATCH 0063/1407] - patchlevel 630 --- 7.4.630 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.4.630 diff --git a/7.4.630 b/7.4.630 new file mode 100644 index 00000000..c55c7c3a --- /dev/null +++ b/7.4.630 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.630 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.630 +Problem: When using Insert mode completion combined with autocommands the + redo command may not work. +Solution: Do not save the redo buffer when executing autocommands. (Yasuhiro + Matsumoto) +Files: src/fileio.c + + +*** ../vim-7.4.629/src/fileio.c 2015-01-07 14:43:35.728900384 +0100 +--- src/fileio.c 2015-02-17 10:49:42.478013159 +0100 +*************** +*** 9230,9235 **** +--- 9230,9236 ---- + #ifdef FEAT_PROFILE + proftime_T wait_time; + #endif ++ int did_save_redobuff = FALSE; + + /* + * Quickly return if there are no autocommands for this event or +*************** +*** 9430,9436 **** + if (!autocmd_busy) + { + save_search_patterns(); +! saveRedobuff(); + did_filetype = keep_filetype; + } + +--- 9431,9441 ---- + if (!autocmd_busy) + { + save_search_patterns(); +! if (!ins_compl_active()) +! { +! saveRedobuff(); +! did_save_redobuff = TRUE; +! } + did_filetype = keep_filetype; + } + +*************** +*** 9530,9536 **** + if (!autocmd_busy) + { + restore_search_patterns(); +! restoreRedobuff(); + did_filetype = FALSE; + while (au_pending_free_buf != NULL) + { +--- 9535,9542 ---- + if (!autocmd_busy) + { + restore_search_patterns(); +! if (did_save_redobuff) +! restoreRedobuff(); + did_filetype = FALSE; + while (au_pending_free_buf != NULL) + { +*** ../vim-7.4.629/src/version.c 2015-02-10 20:03:39.389939274 +0100 +--- src/version.c 2015-02-17 10:53:04.719391852 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 630, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +237. You tattoo your email address on your forehead. + + /// 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 /// From 7f7de616e05ca6469c4251860b1a049dd5bc3700 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:05 +0100 Subject: [PATCH 0064/1407] - patchlevel 631 --- 7.4.631 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.631 diff --git a/7.4.631 b/7.4.631 new file mode 100644 index 00000000..a58b68ad --- /dev/null +++ b/7.4.631 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.631 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.631 +Problem: The default conceal character is documented to be a space but it's + initially a dash. (Christian Brabandt) +Solution: Make the intial value a space. +Files: src/globals.h + + +*** ../vim-7.4.630/src/globals.h 2015-01-27 18:43:42.134535513 +0100 +--- src/globals.h 2015-02-17 11:05:40.401595004 +0100 +*************** +*** 1167,1173 **** + EXTERN int lcs_tab2 INIT(= NUL); + EXTERN int lcs_trail INIT(= NUL); + #ifdef FEAT_CONCEAL +! EXTERN int lcs_conceal INIT(= '-'); + #endif + + #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT) \ +--- 1167,1173 ---- + EXTERN int lcs_tab2 INIT(= NUL); + EXTERN int lcs_trail INIT(= NUL); + #ifdef FEAT_CONCEAL +! EXTERN int lcs_conceal INIT(= ' '); + #endif + + #if defined(FEAT_WINDOWS) || defined(FEAT_WILDMENU) || defined(FEAT_STL_OPT) \ +*** ../vim-7.4.630/src/version.c 2015-02-17 10:58:20.479298803 +0100 +--- src/version.c 2015-02-17 11:06:34.612890235 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 631, + /**/ + +-- +You can tune a file system, but you can't tuna fish + -- man tunefs + + /// 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 /// From 935c7e064955a872b8ac65307f82d9b9d2ab173a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:05 +0100 Subject: [PATCH 0065/1407] - patchlevel 632 --- 7.4.632 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.632 diff --git a/7.4.632 b/7.4.632 new file mode 100644 index 00000000..f91e3252 --- /dev/null +++ b/7.4.632 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.632 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.632 (after 7.4.592) +Problem: 7.4.592 breaks the netrw plugin, because the autocommands are + skipped. +Solution: Roll back the change. +Files: src/ex_cmds.c + + +*** ../vim-7.4.631/src/ex_cmds.c 2015-01-27 13:33:18.737649629 +0100 +--- src/ex_cmds.c 2015-02-17 12:08:56.732209558 +0100 +*************** +*** 3530,3543 **** + check_fname() == FAIL) + goto theend; + +- #ifdef FEAT_QUICKFIX +- /* ":e foobar" when already editing "foobar" will reload the file. +- * But when 'buftype' is "nofile" there is no file to load, so don't +- * do anything. */ +- if (curbuf->b_p_bt[0] == 'n' && curbuf->b_p_bt[2] == 'f') +- goto theend; +- #endif +- + oldbuf = (flags & ECMD_OLDBUF); + } + +--- 3530,3535 ---- +*** ../vim-7.4.631/src/version.c 2015-02-17 11:11:42.244891247 +0100 +--- src/version.c 2015-02-17 12:09:58.079410571 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 632, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +240. You think Webster's Dictionary is a directory of WEB sites. + + /// 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 /// From 76036afc993dc39f6524f82b92d60ed9cb4f2885 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:06 +0100 Subject: [PATCH 0066/1407] - patchlevel 633 --- 7.4.633 | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 7.4.633 diff --git a/7.4.633 b/7.4.633 new file mode 100644 index 00000000..27838b71 --- /dev/null +++ b/7.4.633 @@ -0,0 +1,89 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.633 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.633 +Problem: After 7.4.630 the problem persists. +Solution: Also skip redo when calling a user function. +Files: src/eval.c + + +*** ../vim-7.4.632/src/eval.c 2015-02-04 23:06:39.453536117 +0100 +--- src/eval.c 2015-02-17 12:37:35.321823749 +0100 +*************** +*** 8693,8705 **** + error = ERROR_DICT; + else + { + /* + * Call the user function. + * Save and restore search patterns, script variables and + * redo buffer. + */ + save_search_patterns(); +! saveRedobuff(); + ++fp->uf_calls; + call_user_func(fp, argcount, argvars, rettv, + firstline, lastline, +--- 8693,8711 ---- + error = ERROR_DICT; + else + { ++ int did_save_redo = FALSE; ++ + /* + * Call the user function. + * Save and restore search patterns, script variables and + * redo buffer. + */ + save_search_patterns(); +! if (!ins_compl_active()) +! { +! saveRedobuff(); +! did_save_redo = TRUE; +! } + ++fp->uf_calls; + call_user_func(fp, argcount, argvars, rettv, + firstline, lastline, +*************** +*** 8709,8715 **** + /* Function was unreferenced while being used, free it + * now. */ + func_free(fp); +! restoreRedobuff(); + restore_search_patterns(); + error = ERROR_NONE; + } +--- 8715,8722 ---- + /* Function was unreferenced while being used, free it + * now. */ + func_free(fp); +! if (did_save_redo) +! restoreRedobuff(); + restore_search_patterns(); + error = ERROR_NONE; + } +*** ../vim-7.4.632/src/version.c 2015-02-17 12:17:10.837775002 +0100 +--- src/version.c 2015-02-17 12:38:41.920954954 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 633, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +242. You turn down a better-paying job because it doesn't come with + a free e-mail account. + + /// 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 /// From 68e9e5eacc3f32a3cf813158ae3715d169c3a09a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:06 +0100 Subject: [PATCH 0067/1407] - patchlevel 634 --- 7.4.634 | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 7.4.634 diff --git a/7.4.634 b/7.4.634 new file mode 100644 index 00000000..d7ee581b --- /dev/null +++ b/7.4.634 @@ -0,0 +1,183 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.634 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.634 +Problem: Marks are not restored after redo + undo. +Solution: Fix the way marks are restored. (Olaf Dabrunz) +Files: src/undo.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile, + src/testdir/test_marks.in, src/testdir/test_marks.ok + + +*** ../vim-7.4.633/src/undo.c 2014-09-11 22:49:42.208961131 +0200 +--- src/undo.c 2015-02-17 13:35:48.520297460 +0100 +*************** +*** 2847,2857 **** + * restore marks from before undo/redo + */ + for (i = 0; i < NMARKS; ++i) + if (curhead->uh_namedm[i].lnum != 0) +- { + curbuf->b_namedm[i] = curhead->uh_namedm[i]; + curhead->uh_namedm[i] = namedm[i]; +! } + if (curhead->uh_visual.vi_start.lnum != 0) + { + curbuf->b_visual = curhead->uh_visual; +--- 2847,2860 ---- + * restore marks from before undo/redo + */ + for (i = 0; i < NMARKS; ++i) ++ { + if (curhead->uh_namedm[i].lnum != 0) + curbuf->b_namedm[i] = curhead->uh_namedm[i]; ++ if (namedm[i].lnum != 0) + curhead->uh_namedm[i] = namedm[i]; +! else +! curhead->uh_namedm[i].lnum = 0; +! } + if (curhead->uh_visual.vi_start.lnum != 0) + { + curbuf->b_visual = curhead->uh_visual; +*** ../vim-7.4.633/src/testdir/Make_amiga.mak 2015-01-20 19:30:46.665275623 +0100 +--- src/testdir/Make_amiga.mak 2015-02-17 13:31:58.339295211 +0100 +*************** +*** 48,53 **** +--- 48,54 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_marks.out \ + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ +*************** +*** 188,193 **** +--- 189,195 ---- + test_listlbr.out: test_listlbr.in + test_listlbr_utf8.out: test_listlbr_utf8.in + test_mapping.out: test_mapping.in ++ test_marks.out: test_marks.in + test_nested_function.out: test_nested_function.in + test_options.out: test_options.in + test_qf_title.out: test_qf_title.in +*** ../vim-7.4.633/src/testdir/Make_dos.mak 2015-01-20 19:30:46.665275623 +0100 +--- src/testdir/Make_dos.mak 2015-02-17 13:31:58.339295211 +0100 +*************** +*** 47,52 **** +--- 47,53 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_marks.out \ + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ +*** ../vim-7.4.633/src/testdir/Make_ming.mak 2015-01-20 19:30:46.665275623 +0100 +--- src/testdir/Make_ming.mak 2015-02-17 13:31:58.343295152 +0100 +*************** +*** 69,74 **** +--- 69,75 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_marks.out \ + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ +*** ../vim-7.4.633/src/testdir/Make_os2.mak 2015-01-20 19:30:46.665275623 +0100 +--- src/testdir/Make_os2.mak 2015-02-17 13:31:58.343295152 +0100 +*************** +*** 49,54 **** +--- 49,55 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_marks.out \ + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ +*** ../vim-7.4.633/src/testdir/Make_vms.mms 2015-01-20 19:30:46.669275579 +0100 +--- src/testdir/Make_vms.mms 2015-02-17 13:31:58.343295152 +0100 +*************** +*** 108,113 **** +--- 108,114 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_marks.out \ + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ +*** ../vim-7.4.633/src/testdir/Makefile 2015-01-20 19:30:46.669275579 +0100 +--- src/testdir/Makefile 2015-02-17 13:31:58.343295152 +0100 +*************** +*** 45,50 **** +--- 45,51 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_marks.out \ + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ +*** ../vim-7.4.633/src/testdir/test_marks.in 2015-02-17 13:42:37.010978266 +0100 +--- src/testdir/test_marks.in 2015-02-17 13:31:58.343295152 +0100 +*************** +*** 0 **** +--- 1,18 ---- ++ Tests for marks. ++ ++ STARTTEST ++ :so small.vim ++ :" test that a deleted mark is restored after delete-undo-redo-undo ++ :/^\t/+1 ++ :set nocp viminfo+=nviminfo ++ madduu ++ :let a = string(getpos("'a")) ++ :$put ='Mark after delete-undo-redo-undo: '.a ++ :/^\t/,$wq! test.out ++ ENDTEST ++ ++ textline A ++ textline B ++ textline C ++ ++ Results: +*** ../vim-7.4.633/src/testdir/test_marks.ok 2015-02-17 13:42:37.014978213 +0100 +--- src/testdir/test_marks.ok 2015-02-17 13:31:58.343295152 +0100 +*************** +*** 0 **** +--- 1,6 ---- ++ textline A ++ textline B ++ textline C ++ ++ Results: ++ Mark after delete-undo-redo-undo: [0, 15, 2, 0] +*** ../vim-7.4.633/src/version.c 2015-02-17 12:44:04.376749160 +0100 +--- src/version.c 2015-02-17 13:33:46.137891541 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 634, + /**/ + +-- +"Women marry men hoping they will change. Men marry women hoping +they will not. So each is inevitably disappointed." + - Einstein + + /// 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 /// From e226be66a1aff1360deb57a4d759c45f83fdce2b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:07 +0100 Subject: [PATCH 0068/1407] - patchlevel 635 --- 7.4.635 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.4.635 diff --git a/7.4.635 b/7.4.635 new file mode 100644 index 00000000..c4196c32 --- /dev/null +++ b/7.4.635 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.635 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.635 +Problem: If no NL or CR is found in the first block of a file then the + 'fileformat' may be set to "mac". (Issue 77) +Solution: Check if a CR was found. (eswald) +Files: src/fileio.c + + +*** ../vim-7.4.634/src/fileio.c 2015-02-17 10:58:20.479298803 +0100 +--- src/fileio.c 2015-02-17 14:06:53.660019143 +0100 +*************** +*** 2101,2106 **** +--- 2101,2110 ---- + { + for (p = ptr; p < ptr + size; ++p) + { ++ /* Reset the carriage return counter. */ ++ if (try_mac) ++ try_mac = 1; ++ + if (*p == NL) + { + if (!try_unix +*************** +*** 2110,2115 **** +--- 2114,2121 ---- + fileformat = EOL_UNIX; + break; + } ++ else if (*p == CAR && try_mac) ++ try_mac++; + } + + /* Don't give in to EOL_UNIX if EOL_MAC is more likely */ +*************** +*** 2133,2138 **** +--- 2139,2148 ---- + fileformat = EOL_MAC; + } + } ++ else if (fileformat == EOL_UNKNOWN && try_mac == 1) ++ /* Looking for CR but found no end-of-line markers at ++ * all: use the default format. */ ++ fileformat = default_fileformat(); + } + + /* No NL found: may use Mac format */ +*** ../vim-7.4.634/src/version.c 2015-02-17 13:43:35.562216149 +0100 +--- src/version.c 2015-02-17 14:00:48.312772284 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 635, + /**/ + +-- +"Marriage is a wonderful institution... +but who wants to live in an institution?" + - Groucho Marx + + /// 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 /// From b97b9ad9044a7d2ef4dc2946df5daba4f2222e9c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:08 +0100 Subject: [PATCH 0069/1407] - patchlevel 636 --- 7.4.636 | 166 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 7.4.636 diff --git a/7.4.636 b/7.4.636 new file mode 100644 index 00000000..b5926480 --- /dev/null +++ b/7.4.636 @@ -0,0 +1,166 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.636 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.636 +Problem: A search with end offset gets stuck at end of file. (Gary Johnson) +Solution: When a search doesn't move the cursor repeat it with a higher + count. (Christian Brabandt) +Files: src/normal.c, src/testdir/test44.in, src/testdir/test44.ok + + +*** ../vim-7.4.635/src/normal.c 2015-01-27 20:59:26.496971751 +0100 +--- src/normal.c 2015-02-17 15:43:29.216732977 +0100 +*************** +*** 100,106 **** + static void nv_dollar __ARGS((cmdarg_T *cap)); + static void nv_search __ARGS((cmdarg_T *cap)); + static void nv_next __ARGS((cmdarg_T *cap)); +! static void normal_search __ARGS((cmdarg_T *cap, int dir, char_u *pat, int opt)); + static void nv_csearch __ARGS((cmdarg_T *cap)); + static void nv_brackets __ARGS((cmdarg_T *cap)); + static void nv_percent __ARGS((cmdarg_T *cap)); +--- 100,106 ---- + static void nv_dollar __ARGS((cmdarg_T *cap)); + static void nv_search __ARGS((cmdarg_T *cap)); + static void nv_next __ARGS((cmdarg_T *cap)); +! static int normal_search __ARGS((cmdarg_T *cap, int dir, char_u *pat, int opt)); + static void nv_csearch __ARGS((cmdarg_T *cap)); + static void nv_brackets __ARGS((cmdarg_T *cap)); + static void nv_percent __ARGS((cmdarg_T *cap)); +*************** +*** 5765,5771 **** + init_history(); + add_to_history(HIST_SEARCH, buf, TRUE, NUL); + #endif +! normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0); + } + else + do_cmdline_cmd(buf); +--- 5765,5771 ---- + init_history(); + add_to_history(HIST_SEARCH, buf, TRUE, NUL); + #endif +! (void)normal_search(cap, cmdchar == '*' ? '/' : '?', buf, 0); + } + else + do_cmdline_cmd(buf); +*************** +*** 6301,6307 **** + return; + } + +! normal_search(cap, cap->cmdchar, cap->searchbuf, + (cap->arg ? 0 : SEARCH_MARK)); + } + +--- 6301,6307 ---- + return; + } + +! (void)normal_search(cap, cap->cmdchar, cap->searchbuf, + (cap->arg ? 0 : SEARCH_MARK)); + } + +*************** +*** 6313,6326 **** + nv_next(cap) + cmdarg_T *cap; + { +! normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg); + } + + /* + * Search for "pat" in direction "dir" ('/' or '?', 0 for repeat). + * Uses only cap->count1 and cap->oap from "cap". + */ +! static void + normal_search(cap, dir, pat, opt) + cmdarg_T *cap; + int dir; +--- 6313,6338 ---- + nv_next(cap) + cmdarg_T *cap; + { +! pos_T old = curwin->w_cursor; +! int i = normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg); +! +! if (i == 1 && equalpos(old, curwin->w_cursor)) +! { +! /* Avoid getting stuck on the current cursor position, which can +! * happen when an offset is given and the cursor is on the last char +! * in the buffer: Repeat with count + 1. */ +! cap->count1 += 1; +! (void)normal_search(cap, 0, NULL, SEARCH_MARK | cap->arg); +! cap->count1 -= 1; +! } + } + + /* + * Search for "pat" in direction "dir" ('/' or '?', 0 for repeat). + * Uses only cap->count1 and cap->oap from "cap". ++ * Return 0 for failure, 1 for found, 2 for found and line offset added. + */ +! static int + normal_search(cap, dir, pat, opt) + cmdarg_T *cap; + int dir; +*************** +*** 6354,6359 **** +--- 6366,6372 ---- + /* "/$" will put the cursor after the end of the line, may need to + * correct that here */ + check_cursor(); ++ return i; + } + + /* +*** ../vim-7.4.635/src/testdir/test44.in 2013-09-19 17:00:14.000000000 +0200 +--- src/testdir/test44.in 2015-02-17 15:39:42.387675976 +0100 +*************** +*** 42,47 **** +--- 42,53 ---- + :put =matchstr(\"×בגד\", \"..\", 0, 2) " בג + :put =matchstr(\"×בגד\", \".\", 0, 0) " × + :put =matchstr(\"×בגד\", \".\", 4, -1) " ×’ ++ :new ++ :$put =['dog(a', 'cat('] ++ /(/e+ ++ "ayn:bd! ++ :$put ='' ++ G"ap + :w! + :qa! + ENDTEST +*** ../vim-7.4.635/src/testdir/test44.ok 2013-05-26 14:16:28.000000000 +0200 +--- src/testdir/test44.ok 2015-02-17 15:31:20.586185997 +0100 +*************** +*** 22,24 **** +--- 22,26 ---- + בג + × + ×’ ++ a ++ cat( +*** ../vim-7.4.635/src/version.c 2015-02-17 14:15:13.005523167 +0100 +--- src/version.c 2015-02-17 15:32:53.024986843 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 636, + /**/ + +-- +Marriage isn't a word. It's a sentence. + + /// 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 /// From db5d422efccaf506fccf4a5e26c988371a7a3cfb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:09 +0100 Subject: [PATCH 0070/1407] - patchlevel 637 --- 7.4.637 | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 7.4.637 diff --git a/7.4.637 b/7.4.637 new file mode 100644 index 00000000..a575c541 --- /dev/null +++ b/7.4.637 @@ -0,0 +1,82 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.637 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.637 +Problem: Incorrectly read the number of buffer for which an autocommand + should be registered. +Solution: Reverse check for "". (Lech Lorens) +Files: src/fileio.c + + +*** ../vim-7.4.636/src/fileio.c 2015-02-17 14:15:13.005523167 +0100 +--- src/fileio.c 2015-02-17 16:00:42.039330110 +0100 +*************** +*** 8527,8547 **** + is_buflocal = FALSE; + buflocal_nr = 0; + +! if (patlen >= 7 && STRNCMP(pat, "') + { +! /* Error will be printed only for addition. printing and removing +! * will proceed silently. */ + is_buflocal = TRUE; + if (patlen == 8) + buflocal_nr = curbuf->b_fnum; + else if (patlen > 9 && pat[7] == '=') + { +! /* */ +! if (patlen == 13 && STRNICMP(pat, "", 13)) + buflocal_nr = autocmd_bufnr; +- /* */ + else if (skipdigits(pat + 8) == pat + patlen - 1) + buflocal_nr = atoi((char *)pat + 8); + } + } +--- 8527,8548 ---- + is_buflocal = FALSE; + buflocal_nr = 0; + +! if (patlen >= 8 && STRNCMP(pat, "') + { +! /* "": Error will be printed only for addition. +! * printing and removing will proceed silently. */ + is_buflocal = TRUE; + if (patlen == 8) ++ /* "" */ + buflocal_nr = curbuf->b_fnum; + else if (patlen > 9 && pat[7] == '=') + { +! if (patlen == 13 && STRNICMP(pat, "", 13) == 0) +! /* "" */ + buflocal_nr = autocmd_bufnr; + else if (skipdigits(pat + 8) == pat + patlen - 1) ++ /* "" */ + buflocal_nr = atoi((char *)pat + 8); + } + } +*** ../vim-7.4.636/src/version.c 2015-02-17 15:43:52.804426855 +0100 +--- src/version.c 2015-02-17 15:57:50.245559689 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 637, + /**/ + +-- +"Marriage is when a man and woman become as one; the trouble starts +when they try to decide which one" + + /// 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 /// From e70ba921b4c4d6fd3b14f22a7e64c2f94d65e2c7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:10 +0100 Subject: [PATCH 0071/1407] - patchlevel 638 --- 7.4.638 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.638 diff --git a/7.4.638 b/7.4.638 new file mode 100644 index 00000000..7946c82a --- /dev/null +++ b/7.4.638 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.638 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.638 +Problem: Can't build with Lua 5.3 on Windows. +Solution: use luaL_optinteger() instead of LuaL_optlong(). (Ken Takata) +Files: src/if_lua.c + + +*** ../vim-7.4.637/src/if_lua.c 2015-02-04 23:07:55.928517161 +0100 +--- src/if_lua.c 2015-02-17 16:26:47.003111497 +0100 +*************** +*** 774,780 **** + { + luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST); + list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis); +! long pos = luaL_optlong(L, 3, 0); + listitem_T *li = NULL; + typval_T v; + if (l->lv_lock) +--- 774,780 ---- + { + luaV_List *lis = luaV_checkudata(L, 1, LUAVIM_LIST); + list_T *l = (list_T *) luaV_checkcache(L, (void *) *lis); +! long pos = (long) luaL_optinteger(L, 3, 0); + listitem_T *li = NULL; + typval_T v; + if (l->lv_lock) +*** ../vim-7.4.637/src/version.c 2015-02-17 16:04:50.816104407 +0100 +--- src/version.c 2015-02-17 16:24:51.048605970 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 638, + /**/ + +-- +"Marriage is the process of finding out what kind of man your wife +would have preferred" + + /// 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 /// From 1f89326a5a7ec39f84ccfb719ed33607f34e3ad4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:10 +0100 Subject: [PATCH 0072/1407] - patchlevel 639 --- 7.4.639 | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 7.4.639 diff --git a/7.4.639 b/7.4.639 new file mode 100644 index 00000000..dcbf4f85 --- /dev/null +++ b/7.4.639 @@ -0,0 +1,208 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.639 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.639 +Problem: Combination of linebreak and conceal doesn't work well. +Solution: Fix the display problems. (Christian Brabandt) +Files: src/screen.c, src/testdir/test88.in, src/testdir/test88.ok, + src/testdir/test_listlbr_utf8.in, src/testdir/test_listlbr_utf8.ok + + +*** ../vim-7.4.638/src/screen.c 2015-02-10 19:20:33.735792024 +0100 +--- src/screen.c 2015-02-17 17:25:05.241891264 +0100 +*************** +*** 4571,4577 **** + int saved_nextra = n_extra; + + #ifdef FEAT_CONCEAL +! if ((is_concealing || boguscols > 0) && vcol_off > 0) + /* there are characters to conceal */ + tab_len += vcol_off; + /* boguscols before FIX_FOR_BOGUSCOLS macro from above +--- 4571,4577 ---- + int saved_nextra = n_extra; + + #ifdef FEAT_CONCEAL +! if (vcol_off > 0) + /* there are characters to conceal */ + tab_len += vcol_off; + /* boguscols before FIX_FOR_BOGUSCOLS macro from above +*************** +*** 4609,4633 **** + #ifdef FEAT_CONCEAL + /* n_extra will be increased by FIX_FOX_BOGUSCOLS + * macro below, so need to adjust for that here */ +! if ((is_concealing || boguscols > 0) && vcol_off > 0) + n_extra -= vcol_off; + #endif + } + #endif + #ifdef FEAT_CONCEAL +! /* Tab alignment should be identical regardless of +! * 'conceallevel' value. So tab compensates of all +! * previous concealed characters, and thus resets vcol_off +! * and boguscols accumulated so far in the line. Note that +! * the tab can be longer than 'tabstop' when there +! * are concealed characters. */ +! FIX_FOR_BOGUSCOLS; +! /* Make sure, the highlighting for the tab char will be +! * correctly set further below (effectively reverts the +! * FIX_FOR_BOGSUCOLS macro */ +! if (old_boguscols > 0 && n_extra > tab_len && wp->w_p_list + && lcs_tab1) +! tab_len += n_extra - tab_len; + #endif + #ifdef FEAT_MBYTE + mb_utf8 = FALSE; /* don't draw as UTF-8 */ +--- 4609,4638 ---- + #ifdef FEAT_CONCEAL + /* n_extra will be increased by FIX_FOX_BOGUSCOLS + * macro below, so need to adjust for that here */ +! if (vcol_off > 0) + n_extra -= vcol_off; + #endif + } + #endif + #ifdef FEAT_CONCEAL +! { +! int vc_saved = vcol_off; +! +! /* Tab alignment should be identical regardless of +! * 'conceallevel' value. So tab compensates of all +! * previous concealed characters, and thus resets +! * vcol_off and boguscols accumulated so far in the +! * line. Note that the tab can be longer than +! * 'tabstop' when there are concealed characters. */ +! FIX_FOR_BOGUSCOLS; +! +! /* Make sure, the highlighting for the tab char will be +! * correctly set further below (effectively reverts the +! * FIX_FOR_BOGSUCOLS macro */ +! if (n_extra == tab_len + vc_saved && wp->w_p_list + && lcs_tab1) +! tab_len += vc_saved; +! } + #endif + #ifdef FEAT_MBYTE + mb_utf8 = FALSE; /* don't draw as UTF-8 */ +*** ../vim-7.4.638/src/testdir/test88.in 2013-07-13 12:17:37.000000000 +0200 +--- src/testdir/test88.in 2015-02-17 17:17:40.903640757 +0100 +*************** +*** 71,76 **** +--- 71,87 ---- + :set lbr + :normal $ + GGk ++ :set list listchars=tab:>- ++ :normal 0 ++ GGk ++ :normal W ++ GGk ++ :normal W ++ GGk ++ :normal W ++ GGk ++ :normal $ ++ GGk + :" Display result. + :call append('$', 'end:') + :call append('$', positions) +*** ../vim-7.4.638/src/testdir/test88.ok 2013-07-13 12:18:55.000000000 +0200 +--- src/testdir/test88.ok 2015-02-17 17:17:40.903640757 +0100 +*************** +*** 22,24 **** +--- 22,29 ---- + 9:25 + 9:26 + 9:26 ++ 9:1 ++ 9:9 ++ 9:17 ++ 9:25 ++ 9:26 +*** ../vim-7.4.638/src/testdir/test_listlbr_utf8.in 2015-01-22 22:41:51.864583029 +0100 +--- src/testdir/test_listlbr_utf8.in 2015-02-17 17:17:40.903640757 +0100 +*************** +*** 56,61 **** +--- 56,96 ---- + :redraw! + :let line=ScreenChar(winwidth(0),7) + :call DoRecordScreen() ++ :let g:test ="Test 5: set linebreak list listchars and concealing part2" ++ :let c_defines=['bbeeeeee ; some text'] ++ :call append('$', c_defines) ++ :$ ++ :norm! zt ++ :set nowrap ts=2 list linebreak listchars=tab:>- cole=2 concealcursor=n ++ :syn clear ++ :syn match meaning /;\s*\zs.*/ ++ :syn match hasword /^\x\{8}/ contains=word ++ :syn match word /\<\x\{8}\>/ contains=beginword,endword contained ++ :syn match beginword /\<\x\x/ contained conceal ++ :syn match endword /\x\{6}\>/ contained ++ :hi meaning guibg=blue ++ :hi beginword guibg=green ++ :hi endword guibg=red ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call DoRecordScreen() ++ :let g:test ="Test 6: Screenattributes for comment" ++ :$put =g:test ++ :call append('$', ' /* and some more */') ++ :exe "set ft=c ts=7 linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6" ++ :syntax on ++ :hi SpecialKey term=underline ctermfg=red guifg=red ++ :let attr=[] ++ :nnoremap GG ":let attr += ['".screenattr(screenrow(),screencol())."']\n" ++ :$ ++ :norm! zt0 ++ GGlGGlGGlGGlGGlGGlGGlGGlGGlGGl ++ :call append('$', ['ScreenAttributes for test6:']) ++ :if attr[0] != attr[1] && attr[1] != attr[3] && attr[3] != attr[5] ++ : call append('$', "Attribut 0 and 1 and 3 and 5 are different!") ++ :else ++ : call append('$', "Not all attributes are different") ++ :endif + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.638/src/testdir/test_listlbr_utf8.ok 2015-01-20 19:01:32.380444290 +0100 +--- src/testdir/test_listlbr_utf8.ok 2015-02-17 17:17:40.903640757 +0100 +*************** +*** 36,38 **** +--- 36,46 ---- + #define >_FILE>--------->--->---1 + #define >_CONSOLE>---------->---2 + #define >_FILE_AND_CONSOLE>---------3 ++ bbeeeeee ; some text ++ ++ Test 5: set linebreak list listchars and concealing part2 ++ eeeeee>--->-;>some text ++ Test 6: Screenattributes for comment ++ /* and some more */ ++ ScreenAttributes for test6: ++ Attribut 0 and 1 and 3 and 5 are different! +*** ../vim-7.4.638/src/version.c 2015-02-17 16:28:51.369508298 +0100 +--- src/version.c 2015-02-17 17:16:55.980222281 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 639, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +244. You use more than 20 passwords. + + /// 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 /// From 71a728fd9958381244f54a9dbc356c33e99ce753 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:10 +0100 Subject: [PATCH 0073/1407] - patchlevel 640 --- 7.4.640 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.4.640 diff --git a/7.4.640 b/7.4.640 new file mode 100644 index 00000000..0a47c7c9 --- /dev/null +++ b/7.4.640 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.640 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.640 +Problem: After deleting characters in Insert mode such that lines are + joined undo does not work properly. (issue 324) +Solution: Use Insstart instead of Insstart_orig. (Christian Brabandt) +Files: src/edit.c + + +*** ../vim-7.4.639/src/edit.c 2015-01-22 22:40:16.341651464 +0100 +--- src/edit.c 2015-02-17 17:44:44.222631598 +0100 +*************** +*** 8842,8848 **** + */ + if (curwin->w_cursor.col == 0) + { +! lnum = Insstart_orig.lnum; + if (curwin->w_cursor.lnum == lnum + #ifdef FEAT_RIGHTLEFT + || revins_on +--- 8842,8848 ---- + */ + if (curwin->w_cursor.col == 0) + { +! lnum = Insstart.lnum; + if (curwin->w_cursor.lnum == lnum + #ifdef FEAT_RIGHTLEFT + || revins_on +*************** +*** 8852,8860 **** + if (u_save((linenr_T)(curwin->w_cursor.lnum - 2), + (linenr_T)(curwin->w_cursor.lnum + 1)) == FAIL) + return FALSE; +! --Insstart_orig.lnum; +! Insstart_orig.col = MAXCOL; +! Insstart = Insstart_orig; + } + /* + * In replace mode: +--- 8852,8859 ---- + if (u_save((linenr_T)(curwin->w_cursor.lnum - 2), + (linenr_T)(curwin->w_cursor.lnum + 1)) == FAIL) + return FALSE; +! --Insstart.lnum; +! Insstart.col = MAXCOL; + } + /* + * In replace mode: +*** ../vim-7.4.639/src/version.c 2015-02-17 17:26:04.565123636 +0100 +--- src/version.c 2015-02-17 17:49:06.787232425 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 640, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +245. You use Real Audio to listen to a radio station from a distant + city rather than turn on your stereo system. + + /// 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 /// From 17d598efdaaad91ef658ccb8d1a61d0b04e48a75 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 17 Feb 2015 18:00:11 +0100 Subject: [PATCH 0074/1407] - patchlevel 640 --- README.patches | 11 +++++++++++ vim.spec | 27 ++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 7fdbeb80..38708433 100644 --- a/README.patches +++ b/README.patches @@ -651,3 +651,14 @@ Individual patches for Vim 7.4: 6670 7.4.627 the last screen cell is not updated 1782 7.4.628 compiler warning for variable might be clobbered by longjmp 2023 7.4.629 Coverity warning for Out-of-bounds read + 2242 7.4.630 redo is wrong for insert mode completion with autocommands + 1674 7.4.631 the default conceal character is a dash instead of a space + 1620 7.4.632 (after 7.4.592) breaks the netrw plugin + 2528 7.4.633 after 7.4.630 the problem persists + 5527 7.4.634 marks are not restored after redo + undo + 2039 7.4.635 fileformat set to "mac" if a file starts with a very long line + 4780 7.4.636 a search with end offset gets stuck at end of file + 2612 7.4.637 buffer number for autocommand is wrong + 1674 7.4.638 can't build with Lua 5.3 on Windows + 6808 7.4.639 combination of linebreak and conceal doesn't work well + 2214 7.4.640 after joining lines in Insert mode undo does not work properly diff --git a/vim.spec b/vim.spec index d78f0aa5..fccc2bca 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 629 +%define patchlevel 640 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -676,6 +676,17 @@ Patch626: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.626 Patch627: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.627 Patch628: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.628 Patch629: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.629 +Patch630: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.630 +Patch631: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.631 +Patch632: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.632 +Patch633: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.633 +Patch634: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.634 +Patch635: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.635 +Patch636: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.636 +Patch637: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.637 +Patch638: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.638 +Patch639: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.639 +Patch640: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.640 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1454,6 +1465,17 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch627 -p0 %patch628 -p0 %patch629 -p0 +%patch630 -p0 +%patch631 -p0 +%patch632 -p0 +%patch633 -p0 +%patch634 -p0 +%patch635 -p0 +%patch636 -p0 +%patch637 -p0 +%patch638 -p0 +%patch639 -p0 +%patch640 -p0 # install spell files %if %{withvimspell} @@ -1971,6 +1993,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Feb 17 2015 Karsten Hopp 7.4.640-1 +- patchlevel 640 + * Wed Feb 11 2015 Karsten Hopp 7.4.629-1 - patchlevel 629 From e02c94b625fbcf74d7b04ecff6126d63a1a668f2 Mon Sep 17 00:00:00 2001 From: Till Maas Date: Sat, 21 Feb 2015 22:23:33 +0100 Subject: [PATCH 0075/1407] Rebuilt for Fedora 23 Change https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code --- vim.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index d78f0aa5..475fa571 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -1971,6 +1971,10 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Feb 21 2015 Till Maas - 2:7.4.629-2 +- Rebuilt for Fedora 23 Change + https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code + * Wed Feb 11 2015 Karsten Hopp 7.4.629-1 - patchlevel 629 From 772b89e834ec6eb27abebe180eec3aa740d388cb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 25 Feb 2015 10:12:34 +0100 Subject: [PATCH 0076/1407] add missing patch and fix changelog date --- 7.4.597 | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ vim.spec | 2 +- 2 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 7.4.597 diff --git a/7.4.597 b/7.4.597 new file mode 100644 index 00000000..096aa53d --- /dev/null +++ b/7.4.597 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.597 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.597 +Problem: Cannot change the result of systemlist(). +Solution: Initialize v_lock. (Yukihiro Nakadaira) +Files: src/eval.c + + +*** ../vim-7.4.596/src/eval.c 2015-01-14 19:00:33.842522901 +0100 +--- src/eval.c 2015-01-27 13:49:22.123112397 +0100 +*************** +*** 6007,6012 **** +--- 6007,6013 ---- + + /* + * Allocate a list item. ++ * It is not initialized, don't forget to set v_lock. + */ + listitem_T * + listitem_alloc() +*************** +*** 18713,18718 **** +--- 18714,18720 ---- + goto errret; + } + li->li_tv.v_type = VAR_STRING; ++ li->li_tv.v_lock = 0; + li->li_tv.vval.v_string = s; + list_append(list, li); + } +*** ../vim-7.4.596/src/version.c 2015-01-27 13:33:18.737649629 +0100 +--- src/version.c 2015-01-27 13:48:25.883727538 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 597, + /**/ + +-- +"Microsoft is like Coke. It's a secret formula, all the money is from +distribution, and their goal is to get Coke everywhere. Open source is like +selling water. There are water companies like Perrier and Poland Spring, but +you're competing with something that's free." -- Carl Howe + + + /// 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 /// diff --git a/vim.spec b/vim.spec index 75a1f904..0fc87ae6 100644 --- a/vim.spec +++ b/vim.spec @@ -1993,7 +1993,7 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog -* Tue Feb 17 2015 Karsten Hopp 7.4.640-1 +* Tue Feb 25 2015 Karsten Hopp 7.4.640-1 - patchlevel 640 * Sat Feb 21 2015 Till Maas - 2:7.4.629-2 From 7151b353789290c572505691a6f0f183fff05770 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 26 Feb 2015 13:40:07 +0100 Subject: [PATCH 0077/1407] set background to dark in gnome-terminal, rhbz#1159920 --- vim.spec | 3 +++ vimrc | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/vim.spec b/vim.spec index ca01e5c0..10b678c7 100644 --- a/vim.spec +++ b/vim.spec @@ -1994,6 +1994,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Feb 26 2015 Karsten Hopp 7.4.640-2 +- set background to dark in gnome-terminal, rhbz#1159920 + * Tue Feb 25 2015 Karsten Hopp 7.4.640-1 - patchlevel 640 diff --git a/vimrc b/vimrc index cf660612..64212895 100644 --- a/vimrc +++ b/vimrc @@ -59,6 +59,13 @@ if &term=="xterm" set t_Sf=[3%dm endif +# rhbz 1159920 +if $COLORTERM=="gnome-terminal" + set background=light +else + set background=dark +endif + " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0" From dc12b8058a70dca7759cee37523960575c12c09d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 26 Feb 2015 13:42:33 +0100 Subject: [PATCH 0078/1407] fix changlog date --- vim.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index 10b678c7..c593a48f 100644 --- a/vim.spec +++ b/vim.spec @@ -1997,7 +1997,7 @@ rm -rf %{buildroot} * Thu Feb 26 2015 Karsten Hopp 7.4.640-2 - set background to dark in gnome-terminal, rhbz#1159920 -* Tue Feb 25 2015 Karsten Hopp 7.4.640-1 +* Wed Feb 25 2015 Karsten Hopp 7.4.640-1 - patchlevel 640 * Sat Feb 21 2015 Till Maas - 2:7.4.629-2 From 687a2f4145515e042188042174efeef50ecf20d7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 26 Feb 2015 14:51:34 +0100 Subject: [PATCH 0079/1407] bump release --- vim.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index c593a48f..29e70bad 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 2%{?dist} +Release: 3%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -1994,6 +1994,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Feb 26 2015 Karsten Hopp 7.4.640-3 +- bump release + * Thu Feb 26 2015 Karsten Hopp 7.4.640-2 - set background to dark in gnome-terminal, rhbz#1159920 From 5a4685ffed7165b5f85cf752e009ec40b53a9926 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 27 Feb 2015 18:00:03 +0100 Subject: [PATCH 0080/1407] - patchlevel 641 --- 7.4.641 | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 7.4.641 diff --git a/7.4.641 b/7.4.641 new file mode 100644 index 00000000..1298db51 --- /dev/null +++ b/7.4.641 @@ -0,0 +1,81 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.641 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.641 +Problem: The tabline menu was using ":999tabnew" which is now invalid. +Solution: Use ":$tabnew" instead. (Florian Degner) +Files: src/normal.c + + +*** ../vim-7.4.640/src/normal.c 2015-02-17 15:43:52.800426905 +0100 +--- src/normal.c 2015-02-27 14:58:38.888264043 +0100 +*************** +*** 5302,5316 **** + break; + + case TABLINE_MENU_NEW: +! vim_snprintf((char *)IObuff, IOSIZE, "%dtabnew", +! current_tab > 0 ? current_tab - 1 : 999); +! do_cmdline_cmd(IObuff); + break; + + case TABLINE_MENU_OPEN: +! vim_snprintf((char *)IObuff, IOSIZE, "browse %dtabnew", +! current_tab > 0 ? current_tab - 1 : 999); +! do_cmdline_cmd(IObuff); + break; + } + } +--- 5302,5326 ---- + break; + + case TABLINE_MENU_NEW: +! if (current_tab == 0) +! do_cmdline_cmd((char_u *)"$tabnew"); +! else +! { +! vim_snprintf((char *)IObuff, IOSIZE, "%dtabnew", +! current_tab - 1); +! do_cmdline_cmd(IObuff); +! } + break; + + case TABLINE_MENU_OPEN: +! if (current_tab == 0) +! do_cmdline_cmd((char_u *)"browse $tabnew"); +! else +! { +! vim_snprintf((char *)IObuff, IOSIZE, "browse %dtabnew", +! current_tab - 1); +! do_cmdline_cmd(IObuff); +! } + break; + } + } +*** ../vim-7.4.640/src/version.c 2015-02-17 17:50:20.430274997 +0100 +--- src/version.c 2015-02-27 14:59:40.367571019 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 641, + /**/ + +-- + Bravely bold Sir Robin, rode forth from Camelot, + He was not afraid to die, Oh Brave Sir Robin, + He was not at all afraid to be killed in nasty ways + Brave, brave, brave, brave Sir Robin. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 80b82569025880730df2db5cf6d885da4c5e334b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 27 Feb 2015 18:00:04 +0100 Subject: [PATCH 0081/1407] - patchlevel 642 --- 7.4.642 | 163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 7.4.642 diff --git a/7.4.642 b/7.4.642 new file mode 100644 index 00000000..1b263675 --- /dev/null +++ b/7.4.642 @@ -0,0 +1,163 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.642 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.642 +Problem: When using "gf" escaped spaces are not handled. +Solution: Recognize escaped spaces. +Files: src/vim.h, src/normal.h, src/window.c, src/misc2.c + + +*** ../vim-7.4.641/src/vim.h 2015-02-10 18:47:55.225390610 +0100 +--- src/vim.h 2015-02-27 16:32:33.508503398 +0100 +*************** +*** 939,944 **** +--- 939,945 ---- + #define FNAME_INCL 8 /* apply 'includeexpr' */ + #define FNAME_REL 16 /* ".." and "./" are relative to the (current) + file instead of the current directory */ ++ #define FNAME_UNESC 32 /* remove backslashes used for escaping */ + + /* Values for buflist_getfile() */ + #define GETF_SETMARK 0x01 /* set pcmark before jumping */ +*** ../vim-7.4.641/src/window.c 2015-01-14 15:47:33.076036876 +0100 +--- src/window.c 2015-02-27 17:18:32.653331499 +0100 +*************** +*** 6219,6224 **** +--- 6219,6226 ---- + long count; + linenr_T *file_lnum; + { ++ int options = FNAME_MESS|FNAME_EXP|FNAME_REL|FNAME_UNESC; ++ + if (VIsual_active) + { + int len; +*************** +*** 6226,6236 **** + + if (get_visual_text(NULL, &ptr, &len) == FAIL) + return NULL; +! return find_file_name_in_path(ptr, len, +! FNAME_MESS|FNAME_EXP|FNAME_REL, count, curbuf->b_ffname); + } +! return file_name_at_cursor(FNAME_MESS|FNAME_HYP|FNAME_EXP|FNAME_REL, count, +! file_lnum); + + } + +--- 6228,6237 ---- + + if (get_visual_text(NULL, &ptr, &len) == FAIL) + return NULL; +! return find_file_name_in_path(ptr, len, options, +! count, curbuf->b_ffname); + } +! return file_name_at_cursor(options | FNAME_HYP, count, file_lnum); + + } + +*************** +*** 6310,6323 **** + * Also allow "://" when ':' is not in 'isfname'. + */ + len = 0; +! while (vim_isfilec(ptr[len]) + || ((options & FNAME_HYP) && path_is_url(ptr + len))) + #ifdef FEAT_MBYTE + if (has_mbyte) + len += (*mb_ptr2len)(ptr + len); + else + #endif + ++len; + + /* + * If there is trailing punctuation, remove it. +--- 6311,6329 ---- + * Also allow "://" when ':' is not in 'isfname'. + */ + len = 0; +! while (vim_isfilec(ptr[len]) || (ptr[len] == '\\' && ptr[len + 1] == ' ') + || ((options & FNAME_HYP) && path_is_url(ptr + len))) ++ { ++ if (ptr[len] == '\\') ++ /* Skip over the "\" in "\ ". */ ++ ++len; + #ifdef FEAT_MBYTE + if (has_mbyte) + len += (*mb_ptr2len)(ptr + len); + else + #endif + ++len; ++ } + + /* + * If there is trailing punctuation, remove it. +*** ../vim-7.4.641/src/misc2.c 2014-09-23 16:49:38.798809517 +0200 +--- src/misc2.c 2015-02-27 16:44:00.628733333 +0100 +*************** +*** 5474,5479 **** +--- 5474,5480 ---- + * + * options: + * FNAME_MESS give error message when not found ++ * FNAME_UNESC unescape backslashes. + * + * Uses NameBuff[]! + * +*************** +*** 5491,5497 **** + } + + char_u * +! find_file_in_path_option(ptr, len, options, first, path_option, find_what, rel_fname, suffixes) + char_u *ptr; /* file name */ + int len; /* length of file name */ + int options; +--- 5492,5499 ---- + } + + char_u * +! find_file_in_path_option(ptr, len, options, first, path_option, +! find_what, rel_fname, suffixes) + char_u *ptr; /* file name */ + int len; /* length of file name */ + int options; +*************** +*** 5530,5535 **** +--- 5532,5544 ---- + file_name = NULL; + goto theend; + } ++ if (options & FNAME_UNESC) ++ { ++ /* Change all "\ " to " ". */ ++ for (ptr = ff_file_to_find; *ptr != NUL; ++ptr) ++ if (ptr[0] == '\\' && ptr[1] == ' ') ++ mch_memmove(ptr, ptr + 1, STRLEN(ptr)); ++ } + } + + rel_to_curdir = (ff_file_to_find[0] == '.' +*** ../vim-7.4.641/src/version.c 2015-02-27 15:03:54.372707934 +0100 +--- src/version.c 2015-02-27 16:53:33.642257892 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 642, + /**/ + +-- +press CTRL-ALT-DEL for more information + + /// 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 /// From b040ab393ed973aa2a3bc96679db4fb249763cbf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 27 Feb 2015 18:00:04 +0100 Subject: [PATCH 0082/1407] - patchlevel 643 --- 7.4.643 | 324 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 324 insertions(+) create mode 100644 7.4.643 diff --git a/7.4.643 b/7.4.643 new file mode 100644 index 00000000..c7b79feb --- /dev/null +++ b/7.4.643 @@ -0,0 +1,324 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.643 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.643 +Problem: Using the default file format for Mac files. (Issue 77) +Solution: Reset the try_mac counter in the right place. (Oswald) +Files: src/fileio.c, src/testdir/test30.in, src/testdir/test30.ok + + +*** ../vim-7.4.642/src/fileio.c 2015-02-17 16:04:50.816104407 +0100 +--- src/fileio.c 2015-02-27 17:44:07.687994962 +0100 +*************** +*** 2099,2110 **** + /* First try finding a NL, for Dos and Unix */ + if (try_dos || try_unix) + { + for (p = ptr; p < ptr + size; ++p) + { +- /* Reset the carriage return counter. */ +- if (try_mac) +- try_mac = 1; +- + if (*p == NL) + { + if (!try_unix +--- 2099,2110 ---- + /* First try finding a NL, for Dos and Unix */ + if (try_dos || try_unix) + { ++ /* Reset the carriage return counter. */ ++ if (try_mac) ++ try_mac = 1; ++ + for (p = ptr; p < ptr + size; ++p) + { + if (*p == NL) + { + if (!try_unix +*** ../vim-7.4.642/src/testdir/test30.in 2010-08-04 16:07:46.000000000 +0200 +--- src/testdir/test30.in 2015-02-27 17:42:21.697191823 +0100 +*************** +*** 7,43 **** + :" first write three test files, one in each format + :set fileformat=unix + :set fileformats= +- :/^1/w! XX1 +- :/^2/w! XX2 +- :/^3/w! XX3 +- :/^4/w! XX4 +- :/^5/w! XX5 +- :/^6/w! XX6 +- :/^7/w! XX7 +- :/^8/w! XX8 +- :/^9/w! XX9 +- :/^10/w! XX10 + :/^unix/;/eof/-1w! XXUnix + :/^dos/;/eof/-1w! XXDos + :set bin noeol + :$w! XXMac + :set nobin eol + :bwipe XXUnix XXDos XXMac + :" create mixed format files + :if has("vms") + : !copy XXUnix,XXDos XXUxDs. + : !copy XXUnix,XXMac XXUxMac. + : !copy XXDos,XXMac XXDosMac. + : !copy XXUnix,XXDos,XXMac XXUxDsMc. + :elseif has("win32") + : !copy /b XXUnix+XXDos XXUxDs + : !copy /b XXUnix+XXMac XXUxMac + : !copy /b XXDos+XXMac XXDosMac + : !copy /b XXUnix+XXDos+XXMac XXUxDsMc + :else + : !cat XXUnix XXDos >XXUxDs + : !cat XXUnix XXMac >XXUxMac + : !cat XXDos XXMac >XXDosMac + : !cat XXUnix XXDos XXMac >XXUxDsMc + :endif + :" +--- 7,39 ---- + :" first write three test files, one in each format + :set fileformat=unix + :set fileformats= + :/^unix/;/eof/-1w! XXUnix + :/^dos/;/eof/-1w! XXDos + :set bin noeol + :$w! XXMac ++ Gonoeol ++ :$w! XXEol + :set nobin eol ++ :enew! + :bwipe XXUnix XXDos XXMac + :" create mixed format files + :if has("vms") + : !copy XXUnix,XXDos XXUxDs. + : !copy XXUnix,XXMac XXUxMac. + : !copy XXDos,XXMac XXDosMac. ++ : !copy XXMac,XXEol XXMacEol. + : !copy XXUnix,XXDos,XXMac XXUxDsMc. + :elseif has("win32") + : !copy /b XXUnix+XXDos XXUxDs + : !copy /b XXUnix+XXMac XXUxMac + : !copy /b XXDos+XXMac XXDosMac ++ : !copy /b XXMac+XXEol XXMacEol + : !copy /b XXUnix+XXDos+XXMac XXUxDsMc + :else + : !cat XXUnix XXDos >XXUxDs + : !cat XXUnix XXMac >XXUxMac + : !cat XXDos XXMac >XXDosMac ++ : !cat XXMac XXEol >XXMacEol + : !cat XXUnix XXDos XXMac >XXUxDsMc + :endif + :" +*************** +*** 102,127 **** + :e! XXDosMac + :w! XXtt53 + :bwipe XXDosMac + :set fileformats=dos,mac + :e! XXUxDs + :w! XXtt61 + :bwipe XXUxDs + :e! XXUxMac +! :w! XXtt62 + :bwipe XXUxMac + :e! XXUxDsMc + :w! XXtt63 + :bwipe XXUxDsMc + :" + :" try reading and writing with 'fileformats' set to three formats + :set fileformats=unix,dos,mac + :e! XXUxDsMc + :w! XXtt71 + :bwipe XXUxDsMc + :set fileformats=mac,dos,unix + :e! XXUxDsMc + :w! XXtt81 + :bwipe XXUxDsMc + :" try with 'binary' set + :set fileformats=mac,unix,dos + :set binary +--- 98,145 ---- + :e! XXDosMac + :w! XXtt53 + :bwipe XXDosMac ++ :e! XXEol ++ ggO=&ffs ++ :=&ff ++ :w! XXtt54 ++ :bwipe XXEol + :set fileformats=dos,mac + :e! XXUxDs + :w! XXtt61 + :bwipe XXUxDs + :e! XXUxMac +! ggO=&ffs +! :=&ff +! :w! XXtt62 + :bwipe XXUxMac + :e! XXUxDsMc + :w! XXtt63 + :bwipe XXUxDsMc ++ :e! XXMacEol ++ ggO=&ffs ++ :=&ff ++ :w! XXtt64 ++ :bwipe XXMacEol + :" + :" try reading and writing with 'fileformats' set to three formats + :set fileformats=unix,dos,mac + :e! XXUxDsMc + :w! XXtt71 + :bwipe XXUxDsMc ++ :e! XXEol ++ ggO=&ffs ++ :=&ff ++ :w! XXtt72 ++ :bwipe XXEol + :set fileformats=mac,dos,unix + :e! XXUxDsMc + :w! XXtt81 + :bwipe XXUxDsMc ++ :e! XXEol ++ ggO=&ffs ++ :=&ff ++ :w! XXtt82 ++ :bwipe XXEol + :" try with 'binary' set + :set fileformats=mac,unix,dos + :set binary +*************** +*** 155,165 **** +--- 173,187 ---- + :w >>XXtt51 + :w >>XXtt52 + :w >>XXtt53 ++ :w >>XXtt54 + :w >>XXtt61 + :w >>XXtt62 + :w >>XXtt63 ++ :w >>XXtt64 + :w >>XXtt71 ++ :w >>XXtt72 + :w >>XXtt81 ++ :w >>XXtt82 + :w >>XXtt91 + :w >>XXtt92 + :w >>XXtt93 +*************** +*** 186,196 **** +--- 208,222 ---- + Go5:$r XXtt51 + :$r XXtt52 + :$r XXtt53 ++ :$r XXtt54 + Go6:$r XXtt61 + :$r XXtt62 + :$r XXtt63 ++ :$r XXtt64 + Go7:$r XXtt71 ++ :$r XXtt72 + Go8:$r XXtt81 ++ :$r XXtt82 + Go9:$r XXtt91 + :$r XXtt92 + :$r XXtt93 +*************** +*** 200,216 **** + :qa! + ENDTEST + +- 1 +- 2 +- 3 +- 4 +- 5 +- 6 +- 7 +- 8 +- 9 +- 10 +- + unix + unix + eof +--- 226,231 ---- +*** ../vim-7.4.642/src/testdir/test30.ok 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test30.ok 2015-02-27 17:28:04.602871329 +0100 +*************** +*** 70,81 **** +--- 70,85 ---- + dos + dos + mac mac END ++ unix,mac:unix ++ noeol ++ END + 6 + unix + unix + dos + dos + END ++ dos,mac:dos + unix + unix + mac mac +*************** +*** 86,91 **** +--- 90,96 ---- + dos + mac mac + END ++ dos,mac:mac mac mac noeol END + 7 + unix + unix +*************** +*** 93,98 **** +--- 98,106 ---- + dos + mac mac + END ++ unix,dos,mac:unix ++ noeol ++ END + 8 + unix + unix +*************** +*** 100,105 **** +--- 108,114 ---- + dos + mac mac + END ++ mac,dos,unix:mac noeol END + 9 + unix + unix +*** ../vim-7.4.642/src/version.c 2015-02-27 17:19:07.104942344 +0100 +--- src/version.c 2015-02-27 17:45:08.927303273 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 643, + /**/ + +-- +Microsoft: "Windows NT 4.0 now has the same user-interface as Windows 95" + Windows 95: "Press CTRL-ALT-DEL to reboot" +Windows NT 4.0: "Press CTRL-ALT-DEL to login" + + /// 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 /// From 103c20ad0e5ccffcbdfccffd971902128003d6f2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 27 Feb 2015 18:00:04 +0100 Subject: [PATCH 0083/1407] - patchlevel 643 --- README.patches | 3 +++ vim.spec | 13 +++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index 38708433..342010af 100644 --- a/README.patches +++ b/README.patches @@ -662,3 +662,6 @@ Individual patches for Vim 7.4: 1674 7.4.638 can't build with Lua 5.3 on Windows 6808 7.4.639 combination of linebreak and conceal doesn't work well 2214 7.4.640 after joining lines in Insert mode undo does not work properly + 2356 7.4.641 the tabline menu was using ":999tabnew" which is now invalid + 4539 7.4.642 when using "gf" escaped spaces are not handled + 6487 7.4.643 using the default file format for Mac files (Issue 77) diff --git a/vim.spec b/vim.spec index 29e70bad..ffda8f07 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 640 +%define patchlevel 643 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 3%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -687,6 +687,9 @@ Patch637: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.637 Patch638: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.638 Patch639: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.639 Patch640: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.640 +Patch641: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.641 +Patch642: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.642 +Patch643: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.643 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1477,6 +1480,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch638 -p0 %patch639 -p0 %patch640 -p0 +%patch641 -p0 +%patch642 -p0 +%patch643 -p0 # install spell files %if %{withvimspell} @@ -1994,6 +2000,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Feb 27 2015 Karsten Hopp 7.4.643-1 +- patchlevel 643 + * Thu Feb 26 2015 Karsten Hopp 7.4.640-3 - bump release From 247b6e618375b2739b10dd13fdf69bead845ffc0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 28 Feb 2015 18:00:03 +0100 Subject: [PATCH 0084/1407] - patchlevel 644 --- 7.4.644 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.644 diff --git a/7.4.644 b/7.4.644 new file mode 100644 index 00000000..cd7d0018 --- /dev/null +++ b/7.4.644 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.644 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.644 +Problem: Stratus VOS doesn't have sync(). +Solution: Use fflush(). (Karli Aurelia) +Files: src/memfile.c + + +*** ../vim-7.4.643/src/memfile.c 2014-04-02 14:05:33.999887839 +0200 +--- src/memfile.c 2015-02-27 18:23:45.185146030 +0100 +*************** +*** 639,645 **** + # endif + /* OpenNT is strictly POSIX (Benzinger) */ + /* Tandem/Himalaya NSK-OSS doesn't have sync() */ +! # if defined(__OPENNT) || defined(__TANDEM) + fflush(NULL); + # else + sync(); +--- 639,646 ---- + # endif + /* OpenNT is strictly POSIX (Benzinger) */ + /* Tandem/Himalaya NSK-OSS doesn't have sync() */ +! /* No sync() on Stratus VOS */ +! # if defined(__OPENNT) || defined(__TANDEM) || defined(__VOS__) + fflush(NULL); + # else + sync(); +*** ../vim-7.4.643/src/version.c 2015-02-27 17:48:05.553308462 +0100 +--- src/version.c 2015-02-27 18:24:38.148547979 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 644, + /**/ + +-- +This is an airconditioned room, do not open Windows. + + /// 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 /// From 09dc617a97ed615c0b39d8fefd91952afc92cd64 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 28 Feb 2015 18:00:04 +0100 Subject: [PATCH 0085/1407] - patchlevel 645 --- 7.4.645 | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 7.4.645 diff --git a/7.4.645 b/7.4.645 new file mode 100644 index 00000000..58e8f053 --- /dev/null +++ b/7.4.645 @@ -0,0 +1,101 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.645 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.645 +Problem: When splitting the window in a BufAdd autocommand while still in + the first, empty buffer the window count is wrong. +Solution: Do not reset b_nwindows to zero and don't increment it. +Files: src/buffer.c, src/ex_cmds.c + + +*** ../vim-7.4.644/src/buffer.c 2015-01-27 18:43:42.134535513 +0100 +--- src/buffer.c 2015-02-27 19:33:51.325459521 +0100 +*************** +*** 1794,1800 **** + if (aborting()) /* autocmds may abort script processing */ + return NULL; + #endif +- /* buf->b_nwindows = 0; why was this here? */ + free_buffer_stuff(buf, FALSE); /* delete local variables et al. */ + + /* Init the options. */ +--- 1794,1799 ---- +*************** +*** 1872,1877 **** +--- 1871,1879 ---- + #ifdef FEAT_AUTOCMD + if (!(flags & BLN_DUMMY)) + { ++ /* Tricky: these autocommands may change the buffer list. They could ++ * also split the window with re-using the one empty buffer. This may ++ * result in unexpectedly losing the empty buffer. */ + apply_autocmds(EVENT_BUFNEW, NULL, NULL, FALSE, buf); + if (!buf_valid(buf)) + return NULL; +*** ../vim-7.4.644/src/ex_cmds.c 2015-02-17 12:17:10.837775002 +0100 +--- src/ex_cmds.c 2015-02-27 19:28:47.232909242 +0100 +*************** +*** 3375,3381 **** + if (buf->b_ml.ml_mfp == NULL) /* no memfile yet */ + { + oldbuf = FALSE; +- buf->b_nwindows = 0; + } + else /* existing memfile */ + { +--- 3375,3380 ---- +*************** +*** 3408,3414 **** + * Make the (new) buffer the one used by the current window. + * If the old buffer becomes unused, free it if ECMD_HIDE is FALSE. + * If the current buffer was empty and has no file name, curbuf +! * is returned by buflist_new(). + */ + if (buf != curbuf) + { +--- 3407,3413 ---- + * Make the (new) buffer the one used by the current window. + * If the old buffer becomes unused, free it if ECMD_HIDE is FALSE. + * If the current buffer was empty and has no file name, curbuf +! * is returned by buflist_new(), nothing to do here. + */ + if (buf != curbuf) + { +*************** +*** 3515,3522 **** + au_new_curbuf = NULL; + #endif + } +- else +- ++curbuf->b_nwindows; + + curwin->w_pcmark.lnum = 1; + curwin->w_pcmark.col = 0; +--- 3514,3519 ---- +*** ../vim-7.4.644/src/version.c 2015-02-27 18:25:10.820179062 +0100 +--- src/version.c 2015-02-27 19:33:06.153971911 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 645, + /**/ + +-- + He was not in the least bit scared to be mashed into a pulp + Or to have his eyes gouged out and his elbows broken; + To have his kneecaps split and his body burned away + And his limbs all hacked and mangled, brave Sir Robin. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 2b35239f2cce1e307603dbd5d6ecd62ac1f981be Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 28 Feb 2015 18:00:04 +0100 Subject: [PATCH 0086/1407] - patchlevel 646 --- 7.4.646 | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 7.4.646 diff --git a/7.4.646 b/7.4.646 new file mode 100644 index 00000000..824e492f --- /dev/null +++ b/7.4.646 @@ -0,0 +1,139 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.646 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.646 +Problem: ":bufdo" may start at a deleted buffer. +Solution: Find the first not deleted buffer. (Shane Harper) +Files: src/ex_cmds2.c, src/testdir/test_command_count.in, + src/testdir/test_command_count.ok + + +*** ../vim-7.4.645/src/ex_cmds2.c 2015-01-07 16:52:53.506792420 +0100 +--- src/ex_cmds2.c 2015-02-27 20:30:04.087096679 +0100 +*************** +*** 2440,2446 **** + win_T *wp; + tabpage_T *tp; + #endif +! buf_T *buf; + int next_fnum = 0; + #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) + char_u *save_ei = NULL; +--- 2440,2446 ---- + win_T *wp; + tabpage_T *tp; + #endif +! buf_T *buf = curbuf; + int next_fnum = 0; + #if defined(FEAT_AUTOCMD) && defined(FEAT_SYN_HL) + char_u *save_ei = NULL; +*************** +*** 2493,2512 **** + case CMD_argdo: + i = eap->line1 - 1; + break; +- case CMD_bufdo: +- i = eap->line1; +- break; + default: + break; + } + /* set pcmark now */ + if (eap->cmdidx == CMD_bufdo) +! goto_buffer(eap, DOBUF_FIRST, FORWARD, i); + else + setpcmark(); + listcmd_busy = TRUE; /* avoids setting pcmark below */ + +! while (!got_int) + { + if (eap->cmdidx == CMD_argdo) + { +--- 2493,2520 ---- + case CMD_argdo: + i = eap->line1 - 1; + break; + default: + break; + } + /* set pcmark now */ + if (eap->cmdidx == CMD_bufdo) +! { +! /* Advance to the first listed buffer after "eap->line1". */ +! for (buf = firstbuf; buf != NULL && (buf->b_fnum < eap->line1 +! || !buf->b_p_bl); buf = buf->b_next) +! if (buf->b_fnum > eap->line2) +! { +! buf = NULL; +! break; +! } +! if (buf != NULL) +! goto_buffer(eap, DOBUF_FIRST, FORWARD, buf->b_fnum); +! } + else + setpcmark(); + listcmd_busy = TRUE; /* avoids setting pcmark below */ + +! while (!got_int && buf != NULL) + { + if (eap->cmdidx == CMD_argdo) + { +*** ../vim-7.4.645/src/testdir/test_command_count.in 2015-01-27 13:28:42.472671261 +0100 +--- src/testdir/test_command_count.in 2015-02-27 20:03:15.981409267 +0100 +*************** +*** 141,146 **** +--- 141,147 ---- + :let buffers = '' + :.,$-bufdo let buffers .= ' '.bufnr('%') + :call add(g:lines, 'bufdo:' . buffers) ++ :3bd + :let buffers = '' + :3,7bufdo let buffers .= ' '.bufnr('%') + :call add(g:lines, 'bufdo:' . buffers) +*** ../vim-7.4.645/src/testdir/test_command_count.ok 2015-01-20 13:29:46.397315064 +0100 +--- src/testdir/test_command_count.ok 2015-02-27 20:03:15.981409267 +0100 +*************** +*** 34,38 **** + argdo: c d e + windo: 2 3 4 + bufdo: 2 3 4 5 6 7 8 9 10 15 +! bufdo: 3 4 5 6 7 + tabdo: 2 3 4 +--- 34,38 ---- + argdo: c d e + windo: 2 3 4 + bufdo: 2 3 4 5 6 7 8 9 10 15 +! bufdo: 4 5 6 7 + tabdo: 2 3 4 +*** ../vim-7.4.645/src/version.c 2015-02-27 19:34:51.464777369 +0100 +--- src/version.c 2015-02-27 20:04:24.336631611 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 646, + /**/ + +-- +The greatest lies of all time: + (1) The check is in the mail. + (2) We have a really challenging assignment for you. + (3) I love you. + (4) All bugs have been fixed. + (5) This won't hurt a bit. + (6) Honey, I just need to debug this program and be home in 5 minutes. + (7) I have just sent you an e-mail about that. + (8) Of course I'll respect you in the morning. + (9) I'm from the government, and I'm here to help you. + + /// 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 /// From d176780cc05ff6532ef4f8c443283fa5377f61cc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 28 Feb 2015 18:00:04 +0100 Subject: [PATCH 0087/1407] - patchlevel 647 --- 7.4.647 | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 7.4.647 diff --git a/7.4.647 b/7.4.647 new file mode 100644 index 00000000..4f9cc5da --- /dev/null +++ b/7.4.647 @@ -0,0 +1,179 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.647 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +[Note: this may break the tests on MS-Windows, please send me a fix if +you can] + +Patch 7.4.647 +Problem: After running the tests on MS-Windows many files differ from their + originals as they were checked out. +Solution: Use a temp directory for executing the tests. (Ken Takata, Taro + Muraoka) +Files: src/testdir/Make_dos.mak + + +*** ../vim-7.4.646/src/testdir/Make_dos.mak 2015-02-17 13:43:35.562216149 +0100 +--- src/testdir/Make_dos.mak 2015-02-27 21:09:13.380329915 +0100 +*************** +*** 56,87 **** + + SCRIPTS32 = test50.out test70.out + +! SCRIPTS_GUI = test16.out + + .SUFFIXES: .in .out + +! nongui: fixff $(SCRIPTS16) $(SCRIPTS) report + +! small: report + +! gui: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) report + +! win32: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) report + +! fixff: +! -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=dos|upd" +q *.in *.ok +! -$(VIMPROG) -u dos.vim --noplugin "+argdo set ff=unix|upd" +q \ +! dotest.in test60.ok test71.ok test74.ok test100.ok + + report: + @echo "" + @echo Test results: +! @IF EXIST test.log ( type test.log & echo TEST FAILURE & exit /b 1 ) \ +! ELSE ( ECHO ALL DONE ) + + clean: + -del *.out + -del *.failed + -if exist test.ok del test.ok + -if exist small.vim del small.vim + -if exist tiny.vim del tiny.vim +--- 56,119 ---- + + SCRIPTS32 = test50.out test70.out + +! SCRIPTS_GUI = test16.out +! +! TEST_OUTFILES = $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) $(SCRIPTS_GUI) +! DOSTMP = dostmp +! DOSTMP_OUTFILES = $(TEST_OUTFILES:test=dostmp\test) +! DOSTMP_INFILES = $(DOSTMP_OUTFILES:.out=.in) + + .SUFFIXES: .in .out + +! nongui: nolog $(SCRIPTS16) $(SCRIPTS) report + +! small: nolog report + +! gui: nolog $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) report + +! win32: nolog $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS32) report + +! # Copy the input files to dostmp, changing the fileformat to dos. +! $(DOSTMP_INFILES): $(*B).in +! if not exist $(DOSTMP)\NUL md $(DOSTMP) +! if exist $@ del $@ +! $(VIMPROG) -u dos.vim --noplugin "+set ff=dos|f $@|wq" $(*B).in +! +! # For each input file dostmp/test99.in run the tests. +! # This moves test99.in to test99.in.bak temporarily. +! $(TEST_OUTFILES): $(DOSTMP)\$(*B).in +! -@if exist test.out DEL test.out +! move $(*B).in $(*B).in.bak +! copy $*.in $(*B).in +! copy $(DOSTMP)\$(*B).in $(*B).in +! copy $(*B).ok test.ok +! $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $(*B).in +! -@if exist test.out MOVE /y test.out $(DOSTMP)\$(*B).out +! -@if exist $(*B).in.bak move /y $(*B).in.bak $(*B).in +! -@del X* +! -@if exist test.ok del test.ok +! -@if exist Xdir1 rd /s /q Xdir1 +! -@if exist Xfind rd /s /q Xfind +! -@if exist viminfo del viminfo +! $(VIMPROG) -u dos.vim --noplugin "+set ff=unix|f test.out|wq" \ +! $(DOSTMP)\$(*B).out +! @diff test.out $*.ok & if errorlevel 1 \ +! ( move /y test.out $*.failed \ +! & del $(DOSTMP)\$(*B).out \ +! & echo $* FAILED >> test.log ) \ +! else ( move /y test.out $*.out ) + + report: + @echo "" + @echo Test results: +! @if exist test.log ( type test.log & echo TEST FAILURE & exit /b 1 ) \ +! else ( echo ALL DONE ) + + clean: + -del *.out + -del *.failed ++ -if exist $(DOSTMP) rd /s /q $(DOSTMP) ++ -if exist test.in del test.in + -if exist test.ok del test.ok + -if exist small.vim del small.vim + -if exist tiny.vim del tiny.vim +*************** +*** 92,115 **** + -if exist Xdir1 rd /s /q Xdir1 + -if exist Xfind rd /s /q Xfind + -if exist viminfo del viminfo +! -del test.log + -if exist benchmark.out del benchmark.out + +- .in.out: +- -if exist $*.failed del $*.failed +- copy $*.ok test.ok +- $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $*.in +- @diff test.out $*.ok & if errorlevel 1 \ +- ( move /y test.out $*.failed & echo $* FAILED >> test.log ) \ +- else ( move /y test.out $*.out ) +- -del X* +- -del test.ok +- -if exist Xdir1 rd /s /q Xdir1 +- -if exist Xfind rd /s /q Xfind +- -if exist viminfo del viminfo +- + nolog: +! -del test.log + + benchmark: + bench_re_freeze.out +--- 124,134 ---- + -if exist Xdir1 rd /s /q Xdir1 + -if exist Xfind rd /s /q Xfind + -if exist viminfo del viminfo +! -if exist test.log del test.log + -if exist benchmark.out del benchmark.out + + nolog: +! -if exist test.log del test.log + + benchmark: + bench_re_freeze.out +*** ../vim-7.4.646/src/version.c 2015-02-27 20:33:27.452780646 +0100 +--- src/version.c 2015-02-27 21:09:26.648178876 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 647, + /**/ + +-- + They now pass three KNIGHTS impaled to a tree. With their feet off the + ground, with one lance through the lot of them, they are skewered up + like a barbecue. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From f4c9d14e100ac4180fafc1765fc384d0aeef7034 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 28 Feb 2015 18:00:04 +0100 Subject: [PATCH 0088/1407] - patchlevel 648 --- 7.4.648 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.648 diff --git a/7.4.648 b/7.4.648 new file mode 100644 index 00000000..1e4fa14e --- /dev/null +++ b/7.4.648 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.648 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.648 (after 7.4.647) +Problem: Tests broken on MS-Windows. +Solution: Delete wrong copy line. (Ken Takata) +Files: src/testdir/Make_dos.mak + + +*** ../vim-7.4.647/src/testdir/Make_dos.mak 2015-02-27 21:10:58.183136895 +0100 +--- src/testdir/Make_dos.mak 2015-02-27 22:10:38.706116994 +0100 +*************** +*** 84,90 **** + $(TEST_OUTFILES): $(DOSTMP)\$(*B).in + -@if exist test.out DEL test.out + move $(*B).in $(*B).in.bak +- copy $*.in $(*B).in + copy $(DOSTMP)\$(*B).in $(*B).in + copy $(*B).ok test.ok + $(VIMPROG) -u dos.vim -U NONE --noplugin -s dotest.in $(*B).in +--- 84,89 ---- +*** ../vim-7.4.647/src/version.c 2015-02-27 21:10:58.187136835 +0100 +--- src/version.c 2015-02-27 22:11:24.169591815 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 648, + /**/ + +-- +Facepalm statement #2: "If there is a country without immigrants I'm going to +move there" + + /// 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 /// From 62b5fe558a88c7f8dbffa2e9f597ef40206efe6f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 28 Feb 2015 18:00:05 +0100 Subject: [PATCH 0089/1407] - patchlevel 648 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 342010af..6c72d8c3 100644 --- a/README.patches +++ b/README.patches @@ -665,3 +665,8 @@ Individual patches for Vim 7.4: 2356 7.4.641 the tabline menu was using ":999tabnew" which is now invalid 4539 7.4.642 when using "gf" escaped spaces are not handled 6487 7.4.643 using the default file format for Mac files (Issue 77) + 1597 7.4.644 Stratus VOS doesn't have sync() + 3336 7.4.645 window count wrong when splitting window in BufAdd autocommand + 3961 7.4.646 ":bufdo" may start at a deleted buffer + 5305 7.4.647 files differ after running the tests on MS-Windows + 1462 7.4.648 (after 7.4.647) tests broken on MS-Windows diff --git a/vim.spec b/vim.spec index ffda8f07..82d0dee6 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 643 +%define patchlevel 648 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -690,6 +690,11 @@ Patch640: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.640 Patch641: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.641 Patch642: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.642 Patch643: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.643 +Patch644: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.644 +Patch645: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.645 +Patch646: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.646 +Patch647: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.647 +Patch648: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.648 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1483,6 +1488,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch641 -p0 %patch642 -p0 %patch643 -p0 +%patch644 -p0 +%patch645 -p0 +%patch646 -p0 +%patch647 -p0 +%patch648 -p0 # install spell files %if %{withvimspell} @@ -2000,6 +2010,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Feb 28 2015 Karsten Hopp 7.4.648-1 +- patchlevel 648 + * Fri Feb 27 2015 Karsten Hopp 7.4.643-1 - patchlevel 643 From f5b807f1ff72faf9f08ee09672a539b47dd3fe42 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 2 Mar 2015 11:29:41 +1000 Subject: [PATCH 0090/1407] vimrc uses " not # for comments --- vim.spec | 5 ++++- vimrc | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/vim.spec b/vim.spec index 29e70bad..a4b98e08 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 3%{?dist} +Release: 4%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -1994,6 +1994,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Mar 02 2015 Dave Airlie 7.4.640-4 +- fix vimrc using wrong comment character + * Thu Feb 26 2015 Karsten Hopp 7.4.640-3 - bump release diff --git a/vimrc b/vimrc index 64212895..a60ce244 100644 --- a/vimrc +++ b/vimrc @@ -59,7 +59,7 @@ if &term=="xterm" set t_Sf=[3%dm endif -# rhbz 1159920 +" rhbz 1159920 if $COLORTERM=="gnome-terminal" set background=light else From c7acd7ab1abe0d0d395054ce437fc092ac4e32a4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Mar 2015 18:00:03 +0100 Subject: [PATCH 0091/1407] - patchlevel 649 --- 7.4.649 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.4.649 diff --git a/7.4.649 b/7.4.649 new file mode 100644 index 00000000..2f05b8d6 --- /dev/null +++ b/7.4.649 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.649 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.649 +Problem: Compiler complains about ignoring return value of fwrite(). + (Michael Jarvis) +Solution: Add (void). +Files: src/misc2.c + + +*** ../vim-7.4.648/src/misc2.c 2015-02-27 17:19:07.104942344 +0100 +--- src/misc2.c 2015-03-05 13:32:42.624093536 +0100 +*************** +*** 6286,6292 **** + char_u buf[8]; + + time_to_bytes(the_time, buf); +! fwrite(buf, (size_t)8, (size_t)1, fd); + } + + /* +--- 6286,6292 ---- + char_u buf[8]; + + time_to_bytes(the_time, buf); +! (void)fwrite(buf, (size_t)8, (size_t)1, fd); + } + + /* +*** ../vim-7.4.648/src/version.c 2015-02-27 22:12:29.748834504 +0100 +--- src/version.c 2015-03-05 13:35:27.262228967 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 649, + /**/ + +-- + An extraordinary TALL KNIGHT in all black (possibly John with Mike on his + shoulders) walks out from the dark trees. He is extremely fierce and + gruesome countenance. He walks towards KING ARTHUR and PATSY, who are + wazzing like mad. (Salopian slang, meaning very scared. almost to the + point of wetting oneself, e.g. before an important football match or + prior to a postering. Salopian slang meaning a beating by the school + praeposters. Sorry about the Salopian slant to this stage direction - Ed.) + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From e1a7dc506239821b5601525fc4142019f288cdc3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Mar 2015 18:00:03 +0100 Subject: [PATCH 0092/1407] - patchlevel 650 --- 7.4.650 | 175 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 175 insertions(+) create mode 100644 7.4.650 diff --git a/7.4.650 b/7.4.650 new file mode 100644 index 00000000..3c16dee5 --- /dev/null +++ b/7.4.650 @@ -0,0 +1,175 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.650 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.650 +Problem: Configure check may fail because the dl library is not used. +Solution: Put "-ldl" in LIBS rather than LDFLAGS. (Oazki Kiichi) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.4.649/src/configure.in 2014-11-30 13:34:16.889626728 +0100 +--- src/configure.in 2015-03-05 16:17:09.240514899 +0100 +*************** +*** 1451,1459 **** + AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python) + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON_CFLAGS" +! ldflags_save=$LDFLAGS + dnl -ldl must go first to make this work on Archlinux (Roland Puntaier) +! LDFLAGS="-ldl $LDFLAGS" + AC_RUN_IFELSE([AC_LANG_SOURCE([ + #include + /* If this program fails, then RTLD_GLOBAL is needed. +--- 1451,1459 ---- + AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python) + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON_CFLAGS" +! libs_save=$LIBS + dnl -ldl must go first to make this work on Archlinux (Roland Puntaier) +! LIBS="-ldl $LIBS" + AC_RUN_IFELSE([AC_LANG_SOURCE([ + #include + /* If this program fails, then RTLD_GLOBAL is needed. +*************** +*** 1491,1504 **** + [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)]) + + CFLAGS=$cflags_save +! LDFLAGS=$ldflags_save + + AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3) + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON3_CFLAGS" +! ldflags_save=$LDFLAGS + dnl -ldl must go first to make this work on Archlinux (Roland Puntaier) +! LDFLAGS="-ldl $LDFLAGS" + AC_RUN_IFELSE([AC_LANG_SOURCE([ + #include + #include +--- 1491,1504 ---- + [AC_MSG_RESULT(yes);AC_DEFINE(PY_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)]) + + CFLAGS=$cflags_save +! LIBS=$libs_save + + AC_MSG_CHECKING(whether we can do without RTLD_GLOBAL for Python3) + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON3_CFLAGS" +! libs_save=$LIBS + dnl -ldl must go first to make this work on Archlinux (Roland Puntaier) +! LIBS="-ldl $LIBS" + AC_RUN_IFELSE([AC_LANG_SOURCE([ + #include + #include +*************** +*** 1537,1543 **** + [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)]) + + CFLAGS=$cflags_save +! LDFLAGS=$ldflags_save + + PYTHON_SRC="if_python.c" + PYTHON_OBJ="objects/if_python.o" +--- 1537,1543 ---- + [AC_MSG_RESULT(yes);AC_DEFINE(PY3_NO_RTLD_GLOBAL)], [AC_MSG_RESULT(no)]) + + CFLAGS=$cflags_save +! LIBS=$libs_save + + PYTHON_SRC="if_python.c" + PYTHON_OBJ="objects/if_python.o" +*** ../vim-7.4.649/src/auto/configure 2014-11-30 13:34:16.893626683 +0100 +--- src/auto/configure 2015-03-05 16:17:12.664476274 +0100 +*************** +*** 6367,6374 **** + $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; } + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON_CFLAGS" +! ldflags_save=$LDFLAGS +! LDFLAGS="-ldl $LDFLAGS" + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +--- 6367,6374 ---- + $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python... " >&6; } + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON_CFLAGS" +! libs_save=$LIBS +! LIBS="-ldl $LIBS" + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +*************** +*** 6426,6439 **** + + + CFLAGS=$cflags_save +! LDFLAGS=$ldflags_save + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5 + $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; } + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON3_CFLAGS" +! ldflags_save=$LDFLAGS +! LDFLAGS="-ldl $LDFLAGS" + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +--- 6426,6439 ---- + + + CFLAGS=$cflags_save +! LIBS=$libs_save + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we can do without RTLD_GLOBAL for Python3" >&5 + $as_echo_n "checking whether we can do without RTLD_GLOBAL for Python3... " >&6; } + cflags_save=$CFLAGS + CFLAGS="$CFLAGS $PYTHON3_CFLAGS" +! libs_save=$LIBS +! LIBS="-ldl $LIBS" + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 + $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +*************** +*** 6492,6498 **** + + + CFLAGS=$cflags_save +! LDFLAGS=$ldflags_save + + PYTHON_SRC="if_python.c" + PYTHON_OBJ="objects/if_python.o" +--- 6492,6498 ---- + + + CFLAGS=$cflags_save +! LIBS=$libs_save + + PYTHON_SRC="if_python.c" + PYTHON_OBJ="objects/if_python.o" +*** ../vim-7.4.649/src/version.c 2015-03-05 13:35:52.421943998 +0100 +--- src/version.c 2015-03-05 16:14:30.798302587 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 650, + /**/ + +-- +TALL KNIGHT: We shall say Ni! again to you if you do not appease us. +ARTHUR: All right! What do you want? +TALL KNIGHT: We want ... a shrubbery! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 451f2be88d83114c5246fc7b0e09038209bd69ff Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Mar 2015 18:00:04 +0100 Subject: [PATCH 0093/1407] - patchlevel 651 --- 7.4.651 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.651 diff --git a/7.4.651 b/7.4.651 new file mode 100644 index 00000000..dde78103 --- /dev/null +++ b/7.4.651 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.651 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.651 (after 7.4.582) +Problem: Can't match "%>80v" properly for multi-byte characters. +Solution: Multiply the character number by the maximum number of bytes in a + character. (Yasuhiro Matsumoto) +Files: src/regexp_nfa.c + + +*** ../vim-7.4.650/src/regexp_nfa.c 2015-02-10 18:18:13.000452461 +0100 +--- src/regexp_nfa.c 2015-03-05 16:55:03.490881511 +0100 +*************** +*** 6477,6483 **** + + /* Bail out quickly when there can't be a match, avoid the + * overhead of win_linetabsize() on long lines. */ +! if (op != 1 && col > t->state->val) + break; + result = FALSE; + if (op == 1 && col - 1 > t->state->val && col > 100) +--- 6477,6487 ---- + + /* Bail out quickly when there can't be a match, avoid the + * overhead of win_linetabsize() on long lines. */ +! if (op != 1 && col > t->state->val +! #ifdef FEAT_MBYTE +! * (has_mbyte ? MB_MAXBYTES : 1) +! #endif +! ) + break; + result = FALSE; + if (op == 1 && col - 1 > t->state->val && col > 100) +*** ../vim-7.4.650/src/version.c 2015-03-05 16:47:15.772151680 +0100 +--- src/version.c 2015-03-05 17:15:22.397141085 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 651, + /**/ + +-- +FATHER: One day, lad, all this will be yours ... +PRINCE: What - the curtains? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From c9f4a220b8c874b8df2dac393e158b4fbcc7e267 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Mar 2015 18:00:04 +0100 Subject: [PATCH 0094/1407] - patchlevel 652 --- 7.4.652 | 381 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 7.4.652 diff --git a/7.4.652 b/7.4.652 new file mode 100644 index 00000000..cba5bc1b --- /dev/null +++ b/7.4.652 @@ -0,0 +1,381 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.652 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.652 +Problem: Xxd lacks a few features. +Solution: Use 8 characters for the file position. Add the -e and -o + arguments. (Vadim Vygonets) +Files: src/xxd/xxd.c, runtime/doc/xxd.1 + + +*** ../vim-7.4.651/src/xxd/xxd.c 2013-06-21 18:23:53.000000000 +0200 +--- src/xxd/xxd.c 2015-03-05 17:45:36.140691416 +0100 +*************** +*** 51,56 **** +--- 51,57 ---- + * 16.05.00 Improved MMS file and merge for VMS by Zoltan Arpadffy + * 2011 March Better error handling by Florian Zumbiehl. + * 2011 April Formatting by Bram Moolenaar ++ * 08.06.2013 Little-endian hexdump (-e) and offset (-o) by Vadim Vygonets. + * + * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de) + * +*************** +*** 216,222 **** + + #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */ + #define COLS 256 /* change here, if you ever need more columns */ +! #define LLEN (11 + (9*COLS-1)/1 + COLS + 2) + + char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa; + +--- 217,223 ---- + + #define TRY_SEEK /* attempt to use lseek, or skip forward by reading */ + #define COLS 256 /* change here, if you ever need more columns */ +! #define LLEN (12 + (9*COLS-1) + COLS + 2) + + char hexxa[] = "0123456789abcdef0123456789ABCDEF", *hexx = hexxa; + +*************** +*** 225,230 **** +--- 226,232 ---- + #define HEX_POSTSCRIPT 1 + #define HEX_CINCLUDE 2 + #define HEX_BITS 3 /* not hex a dump, but bits: 01111001 */ ++ #define HEX_LITTLEENDIAN 4 + + static char *pname; + +*************** +*** 238,247 **** + fprintf(stderr, " -b binary digit dump (incompatible with -ps,-i,-r). Default hex.\n"); + fprintf(stderr, " -c cols format octets per line. Default 16 (-i: 12, -ps: 30).\n"); + fprintf(stderr, " -E show characters in EBCDIC. Default ASCII.\n"); +! fprintf(stderr, " -g number of octets per group in normal output. Default 2.\n"); + fprintf(stderr, " -h print this summary.\n"); + fprintf(stderr, " -i output in C include file style.\n"); + fprintf(stderr, " -l len stop after octets.\n"); + fprintf(stderr, " -ps output in postscript plain hexdump style.\n"); + fprintf(stderr, " -r reverse operation: convert (or patch) hexdump into binary.\n"); + fprintf(stderr, " -r -s off revert with added to file positions found in hexdump.\n"); +--- 240,251 ---- + fprintf(stderr, " -b binary digit dump (incompatible with -ps,-i,-r). Default hex.\n"); + fprintf(stderr, " -c cols format octets per line. Default 16 (-i: 12, -ps: 30).\n"); + fprintf(stderr, " -E show characters in EBCDIC. Default ASCII.\n"); +! fprintf(stderr, " -e little-endian dump (incompatible with -ps,-i,-r).\n"); +! fprintf(stderr, " -g number of octets per group in normal output. Default 2 (-e: 4).\n"); + fprintf(stderr, " -h print this summary.\n"); + fprintf(stderr, " -i output in C include file style.\n"); + fprintf(stderr, " -l len stop after octets.\n"); ++ fprintf(stderr, " -o off add to the displayed file position.\n"); + fprintf(stderr, " -ps output in postscript plain hexdump style.\n"); + fprintf(stderr, " -r reverse operation: convert (or patch) hexdump into binary.\n"); + fprintf(stderr, " -r -s off revert with added to file positions found in hexdump.\n"); +*************** +*** 475,481 **** + int ebcdic = 0; + int octspergrp = -1; /* number of octets grouped in output */ + int grplen; /* total chars per octet group */ +! long length = -1, n = 0, seekoff = 0; + static char l[LLEN+1]; /* static because it may be too big for stack */ + char *pp; + +--- 479,485 ---- + int ebcdic = 0; + int octspergrp = -1; /* number of octets grouped in output */ + int grplen; /* total chars per octet group */ +! long length = -1, n = 0, seekoff = 0, displayoff = 0; + static char l[LLEN+1]; /* static because it may be too big for stack */ + char *pp; + +*************** +*** 503,508 **** +--- 507,513 ---- + pp = argv[1] + (!STRNCMP(argv[1], "--", 2) && argv[1][2]); + if (!STRNCMP(pp, "-a", 2)) autoskip = 1 - autoskip; + else if (!STRNCMP(pp, "-b", 2)) hextype = HEX_BITS; ++ else if (!STRNCMP(pp, "-e", 2)) hextype = HEX_LITTLEENDIAN; + else if (!STRNCMP(pp, "-u", 2)) hexx = hexxa + 16; + else if (!STRNCMP(pp, "-p", 2)) hextype = HEX_POSTSCRIPT; + else if (!STRNCMP(pp, "-i", 2)) hextype = HEX_CINCLUDE; +*************** +*** 539,544 **** +--- 544,562 ---- + argc--; + } + } ++ else if (!STRNCMP(pp, "-o", 2)) ++ { ++ if (pp[2] && STRNCMP("ffset", pp + 2, 5)) ++ displayoff = (int)strtol(pp + 2, NULL, 0); ++ else ++ { ++ if (!argv[2]) ++ exit_with_usage(); ++ displayoff = (int)strtol(argv[2], NULL, 0); ++ argv++; ++ argc--; ++ } ++ } + else if (!STRNCMP(pp, "-s", 2)) + { + relseek = 0; +*************** +*** 603,608 **** +--- 621,627 ---- + case HEX_CINCLUDE: cols = 12; break; + case HEX_BITS: cols = 6; break; + case HEX_NORMAL: ++ case HEX_LITTLEENDIAN: + default: cols = 16; break; + } + +*************** +*** 611,630 **** + { + case HEX_BITS: octspergrp = 1; break; + case HEX_NORMAL: octspergrp = 2; break; + case HEX_POSTSCRIPT: + case HEX_CINCLUDE: + default: octspergrp = 0; break; + } + +! if (cols < 1 || ((hextype == HEX_NORMAL || hextype == HEX_BITS) + && (cols > COLS))) + { + fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS); + exit(1); + } + +! if (octspergrp < 1) + octspergrp = cols; + + if (argc > 3) + exit_with_usage(); +--- 630,657 ---- + { + case HEX_BITS: octspergrp = 1; break; + case HEX_NORMAL: octspergrp = 2; break; ++ case HEX_LITTLEENDIAN: octspergrp = 4; break; + case HEX_POSTSCRIPT: + case HEX_CINCLUDE: + default: octspergrp = 0; break; + } + +! if (cols < 1 || ((hextype == HEX_NORMAL || hextype == HEX_BITS || hextype == HEX_LITTLEENDIAN) + && (cols > COLS))) + { + fprintf(stderr, "%s: invalid number of columns (max. %d).\n", pname, COLS); + exit(1); + } + +! if (octspergrp < 1 || octspergrp > cols) + octspergrp = cols; ++ else if (hextype == HEX_LITTLEENDIAN && (octspergrp & (octspergrp-1))) ++ { ++ fprintf(stderr, ++ "%s: number of octets per group must be a power of 2 with -e.\n", ++ pname); ++ exit(1); ++ } + + if (argc > 3) + exit_with_usage(); +*************** +*** 781,789 **** + return 0; + } + +! /* hextype: HEX_NORMAL or HEX_BITS */ + +! if (hextype == HEX_NORMAL) + grplen = octspergrp + octspergrp + 1; /* chars per octet group */ + else /* hextype == HEX_BITS */ + grplen = 8 * octspergrp + 1; +--- 808,816 ---- + return 0; + } + +! /* hextype: HEX_NORMAL or HEX_BITS or HEX_LITTLEENDIAN */ + +! if (hextype != HEX_BITS) + grplen = octspergrp + octspergrp + 1; /* chars per octet group */ + else /* hextype == HEX_BITS */ + grplen = 8 * octspergrp + 1; +*************** +*** 793,818 **** + { + if (p == 0) + { +! sprintf(l, "%07lx: ", n + seekoff); + for (c = 9; c < LLEN; l[c++] = ' '); + } + if (hextype == HEX_NORMAL) + { +! l[c = (9 + (grplen * p) / octspergrp)] = hexx[(e >> 4) & 0xf]; +! l[++c] = hexx[ e & 0xf]; + } + else /* hextype == HEX_BITS */ + { + int i; + +! c = (9 + (grplen * p) / octspergrp) - 1; + for (i = 7; i >= 0; i--) + l[++c] = (e & (1 << i)) ? '1' : '0'; + } + if (ebcdic) + e = (e < 64) ? '.' : etoa64[e-64]; + /* When changing this update definition of LLEN above. */ +! l[11 + (grplen * cols - 1)/octspergrp + p] = + #ifdef __MVS__ + (e >= 64) + #else +--- 820,852 ---- + { + if (p == 0) + { +! sprintf(l, "%08lx:", +! ((unsigned long)(n + seekoff + displayoff)) & 0xffffffff); + for (c = 9; c < LLEN; l[c++] = ' '); + } + if (hextype == HEX_NORMAL) + { +! l[c = (10 + (grplen * p) / octspergrp)] = hexx[(e >> 4) & 0xf]; +! l[++c] = hexx[ e & 0xf]; +! } +! else if (hextype == HEX_LITTLEENDIAN) +! { +! int x = p ^ (octspergrp-1); +! l[c = (10 + (grplen * x) / octspergrp)] = hexx[(e >> 4) & 0xf]; +! l[++c] = hexx[ e & 0xf]; + } + else /* hextype == HEX_BITS */ + { + int i; + +! c = (10 + (grplen * p) / octspergrp) - 1; + for (i = 7; i >= 0; i--) + l[++c] = (e & (1 << i)) ? '1' : '0'; + } + if (ebcdic) + e = (e < 64) ? '.' : etoa64[e-64]; + /* When changing this update definition of LLEN above. */ +! l[12 + (grplen * cols - 1)/octspergrp + p] = + #ifdef __MVS__ + (e >= 64) + #else +*************** +*** 824,830 **** + n++; + if (++p == cols) + { +! l[c = (11 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0'; + xxdline(fpo, l, autoskip ? nonzero : 1); + nonzero = 0; + p = 0; +--- 858,864 ---- + n++; + if (++p == cols) + { +! l[c = (12 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0'; + xxdline(fpo, l, autoskip ? nonzero : 1); + nonzero = 0; + p = 0; +*************** +*** 834,840 **** + die(2); + if (p) + { +! l[c = (11 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0'; + xxdline(fpo, l, 1); + } + else if (autoskip) +--- 868,874 ---- + die(2); + if (p) + { +! l[c = (12 + (grplen * cols - 1)/octspergrp + p)] = '\n'; l[++c] = '\0'; + xxdline(fpo, l, 1); + } + else if (autoskip) +*** ../vim-7.4.651/runtime/doc/xxd.1 2010-05-15 13:04:00.000000000 +0200 +--- runtime/doc/xxd.1 2015-03-05 17:45:27.064793726 +0100 +*************** +*** 76,81 **** +--- 76,91 ---- + This does not change the hexadecimal representation. The option is + meaningless in combinations with \-r, \-p or \-i. + .TP ++ .IR \-e ++ Switch to little-endian hexdump. ++ This option treats byte groups as words in little-endian byte order. ++ The default grouping of 4 bytes may be changed using ++ .RI "" \-g . ++ This option only applies to hexdump, leaving the ASCII (or EBCDIC) ++ representation unchanged. ++ The command line switches ++ \-r, \-p, \-i do not work with this mode. ++ .TP + .IR "\-g bytes " | " \-groupsize bytes" + separate the output of every + .RI < bytes > +*************** +*** 84,90 **** + .I \-g 0 + to suppress grouping. + .RI < Bytes "> defaults to " 2 +! in normal mode and \fI1\fP in bits mode. + Grouping does not apply to postscript or include style. + .TP + .IR \-h " | " \-help +--- 94,100 ---- + .I \-g 0 + to suppress grouping. + .RI < Bytes "> defaults to " 2 +! in normal mode, \fI4\fP in little-endian mode and \fI1\fP in bits mode. + Grouping does not apply to postscript or include style. + .TP + .IR \-h " | " \-help +*************** +*** 99,104 **** +--- 109,119 ---- + .RI < len > + octets. + .TP ++ .I \-o offset ++ add ++ .RI < offset > ++ to the displayed file position. ++ .TP + .IR \-p " | " \-ps " | " \-postscript " | " \-plain + output in postscript continuous hexdump style. Also known as plain hexdump + style. +*** ../vim-7.4.651/src/version.c 2015-03-05 17:16:02.620687666 +0100 +--- src/version.c 2015-03-05 17:41:25.523515077 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 652, + /**/ + +-- +FATHER: Make sure the Prince doesn't leave this room until I come and + get him. +FIRST GUARD: Not ... to leave the room ... even if you come and get him. +FATHER: No. Until I come and get him. +SECOND GUARD: Hic. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 64a56c309c740d9a7c580ee40048095fbb6b6d80 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 5 Mar 2015 18:00:04 +0100 Subject: [PATCH 0095/1407] - patchlevel 652 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6c72d8c3..bb5e04ac 100644 --- a/README.patches +++ b/README.patches @@ -670,3 +670,7 @@ Individual patches for Vim 7.4: 3961 7.4.646 ":bufdo" may start at a deleted buffer 5305 7.4.647 files differ after running the tests on MS-Windows 1462 7.4.648 (after 7.4.647) tests broken on MS-Windows + 1941 7.4.649 compiler complains about ignoring return value of fwrite() + 5907 7.4.650 configure check may fail because the dl library is not used + 1972 7.4.651 (after 7.4.582) can't match "%>80v" for multi-byte characters + 12413 7.4.652 xxd lacks a few features diff --git a/vim.spec b/vim.spec index 82d0dee6..22d68d4b 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 648 +%define patchlevel 652 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -695,6 +695,10 @@ Patch645: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.645 Patch646: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.646 Patch647: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.647 Patch648: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.648 +Patch649: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.649 +Patch650: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.650 +Patch651: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.651 +Patch652: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.652 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1493,6 +1497,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch646 -p0 %patch647 -p0 %patch648 -p0 +%patch649 -p0 +%patch650 -p0 +%patch651 -p0 +%patch652 -p0 # install spell files %if %{withvimspell} @@ -2010,6 +2018,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Mar 05 2015 Karsten Hopp 7.4.652-1 +- patchlevel 652 + * Sat Feb 28 2015 Karsten Hopp 7.4.648-1 - patchlevel 648 From 56031052d52b7fa5bb87cc2f1cfd441c71435372 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Mar 2015 18:00:03 +0100 Subject: [PATCH 0096/1407] - patchlevel 653 --- 7.4.653 | 343 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 343 insertions(+) create mode 100644 7.4.653 diff --git a/7.4.653 b/7.4.653 new file mode 100644 index 00000000..b7f98b1f --- /dev/null +++ b/7.4.653 @@ -0,0 +1,343 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.653 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.653 +Problem: Insert mode completion with complete() may have CTRL-L work like + CTRL-P. +Solution: Handle completion with complete() differently. (Yasuhiro + Matsumoto, Christian Brabandt, Hirohito Higashi) +Files: src/edit.c + + +*** ../vim-7.4.652/src/edit.c 2015-02-17 17:50:20.430274997 +0100 +--- src/edit.c 2015-03-05 18:04:57.419602256 +0100 +*************** +*** 34,41 **** +--- 34,43 ---- + #define CTRL_X_OMNI 13 + #define CTRL_X_SPELL 14 + #define CTRL_X_LOCAL_MSG 15 /* only used in "ctrl_x_msgs" */ ++ #define CTRL_X_EVAL 16 /* for builtin function complete() */ + + #define CTRL_X_MSG(i) ctrl_x_msgs[(i) & ~CTRL_X_WANT_IDENT] ++ #define CTRL_X_MODE_LINE_OR_EVAL(m) (m == CTRL_X_WHOLE_LINE || m == CTRL_X_EVAL) + + static char *ctrl_x_msgs[] = + { +*************** +*** 55,60 **** +--- 57,63 ---- + N_(" Omni completion (^O^N^P)"), + N_(" Spelling suggestion (s^N^P)"), + N_(" Keyword Local completion (^N^P)"), ++ NULL, /* CTRL_X_EVAL doesn't use msg. */ + }; + + static char e_hitend[] = N_("Hit end of paragraph"); +*************** +*** 802,808 **** + * "compl_leader". Except when at the original match and + * there is nothing to add, CTRL-L works like CTRL-P then. */ + if (c == Ctrl_L +! && (ctrl_x_mode != CTRL_X_WHOLE_LINE + || (int)STRLEN(compl_shown_match->cp_str) + > curwin->w_cursor.col - compl_col)) + { +--- 805,811 ---- + * "compl_leader". Except when at the original match and + * there is nothing to add, CTRL-L works like CTRL-P then. */ + if (c == Ctrl_L +! && (!CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode) + || (int)STRLEN(compl_shown_match->cp_str) + > curwin->w_cursor.col - compl_col)) + { +*************** +*** 2267,2272 **** +--- 2270,2277 ---- + #endif + case CTRL_X_SPELL: + return (c == Ctrl_S || c == Ctrl_P || c == Ctrl_N); ++ case CTRL_X_EVAL: ++ return (c == Ctrl_P || c == Ctrl_N); + } + EMSG(_(e_internal)); + return FALSE; +*************** +*** 2773,2780 **** + -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) + return; + +! /* Handle like dictionary completion. */ +! ctrl_x_mode = CTRL_X_WHOLE_LINE; + + ins_compl_add_list(list); + compl_matches = ins_compl_make_cyclic(); +--- 2778,2784 ---- + -1, p_ic, NULL, NULL, 0, ORIGINAL_TEXT, FALSE) != OK) + return; + +! ctrl_x_mode = CTRL_X_EVAL; + + ins_compl_add_list(list); + compl_matches = ins_compl_make_cyclic(); +*************** +*** 3060,3066 **** + /* When invoked to match whole lines for CTRL-X CTRL-L adjust the pattern + * to only match at the start of a line. Otherwise just match the + * pattern. Also need to double backslashes. */ +! if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); + size_t len; +--- 3064,3070 ---- + /* When invoked to match whole lines for CTRL-X CTRL-L adjust the pattern + * to only match at the start of a line. Otherwise just match the + * pattern. Also need to double backslashes. */ +! if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + { + char_u *pat_esc = vim_strsave_escaped(pat, (char_u *)"\\"); + size_t len; +*************** +*** 3181,3187 **** + while (vim_regexec(regmatch, buf, (colnr_T)(ptr - buf))) + { + ptr = regmatch->startp[0]; +! if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + ptr = find_line_end(ptr); + else + ptr = find_word_end(ptr); +--- 3185,3191 ---- + while (vim_regexec(regmatch, buf, (colnr_T)(ptr - buf))) + { + ptr = regmatch->startp[0]; +! if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + ptr = find_line_end(ptr); + else + ptr = find_word_end(ptr); +*************** +*** 3394,3400 **** + * allow the word to be deleted, we won't match everything. */ + if ((int)(p - line) - (int)compl_col < 0 + || ((int)(p - line) - (int)compl_col == 0 +! && ctrl_x_mode != CTRL_X_OMNI)) + return K_BS; + + /* Deleted more than what was used to find matches or didn't finish +--- 3398,3404 ---- + * allow the word to be deleted, we won't match everything. */ + if ((int)(p - line) - (int)compl_col < 0 + || ((int)(p - line) - (int)compl_col == 0 +! && ctrl_x_mode != CTRL_X_OMNI) || ctrl_x_mode == CTRL_X_EVAL) + return K_BS; + + /* Deleted more than what was used to find matches or didn't finish +*************** +*** 4208,4214 **** + /* For ^N/^P pick a new entry from e_cpt if compl_started is off, + * or if found_all says this entry is done. For ^X^L only use the + * entries from 'complete' that look in loaded buffers. */ +! if ((ctrl_x_mode == 0 || ctrl_x_mode == CTRL_X_WHOLE_LINE) + && (!compl_started || found_all)) + { + found_all = FALSE; +--- 4212,4218 ---- + /* For ^N/^P pick a new entry from e_cpt if compl_started is off, + * or if found_all says this entry is done. For ^X^L only use the + * entries from 'complete' that look in loaded buffers. */ +! if ((ctrl_x_mode == 0 || CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + && (!compl_started || found_all)) + { + found_all = FALSE; +*************** +*** 4261,4267 **** + break; + else + { +! if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + type = -1; + else if (*e_cpt == 'k' || *e_cpt == 's') + { +--- 4265,4271 ---- + break; + else + { +! if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + type = -1; + else if (*e_cpt == 'k' || *e_cpt == 's') + { +*************** +*** 4406,4414 **** + + ++msg_silent; /* Don't want messages for wrapscan. */ + +! /* ctrl_x_mode == CTRL_X_WHOLE_LINE || word-wise search that + * has added a word that was at the beginning of the line */ +! if ( ctrl_x_mode == CTRL_X_WHOLE_LINE + || (compl_cont_status & CONT_SOL)) + found_new_match = search_for_exact_line(ins_buf, pos, + compl_direction, compl_pattern); +--- 4410,4419 ---- + + ++msg_silent; /* Don't want messages for wrapscan. */ + +! /* CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode) +! * || word-wise search that + * has added a word that was at the beginning of the line */ +! if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode) + || (compl_cont_status & CONT_SOL)) + found_new_match = search_for_exact_line(ins_buf, pos, + compl_direction, compl_pattern); +*************** +*** 4442,4448 **** + && ini->col == pos->col) + continue; + ptr = ml_get_buf(ins_buf, pos->lnum, FALSE) + pos->col; +! if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + if (compl_cont_status & CONT_ADDING) + { +--- 4447,4453 ---- + && ini->col == pos->col) + continue; + ptr = ml_get_buf(ins_buf, pos->lnum, FALSE) + pos->col; +! if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + { + if (compl_cont_status & CONT_ADDING) + { +*************** +*** 4536,4542 **** + + /* break the loop for specialized modes (use 'complete' just for the + * generic ctrl_x_mode == 0) or when we've found a new match */ +! if ((ctrl_x_mode != 0 && ctrl_x_mode != CTRL_X_WHOLE_LINE) + || found_new_match != FAIL) + { + if (got_int) +--- 4541,4547 ---- + + /* break the loop for specialized modes (use 'complete' just for the + * generic ctrl_x_mode == 0) or when we've found a new match */ +! if ((ctrl_x_mode != 0 && !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + || found_new_match != FAIL) + { + if (got_int) +*************** +*** 4545,4551 **** + if (type != -1) + ins_compl_check_keys(0); + +! if ((ctrl_x_mode != 0 && ctrl_x_mode != CTRL_X_WHOLE_LINE) + || compl_interrupted) + break; + compl_started = TRUE; +--- 4550,4556 ---- + if (type != -1) + ins_compl_check_keys(0); + +! if ((ctrl_x_mode != 0 && !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + || compl_interrupted) + break; + compl_started = TRUE; +*************** +*** 4561,4573 **** + } + compl_started = TRUE; + +! if ((ctrl_x_mode == 0 || ctrl_x_mode == CTRL_X_WHOLE_LINE) + && *e_cpt == NUL) /* Got to end of 'complete' */ + found_new_match = FAIL; + + i = -1; /* total of matches, unknown */ + if (found_new_match == FAIL +! || (ctrl_x_mode != 0 && ctrl_x_mode != CTRL_X_WHOLE_LINE)) + i = ins_compl_make_cyclic(); + + /* If several matches were added (FORWARD) or the search failed and has +--- 4566,4578 ---- + } + compl_started = TRUE; + +! if ((ctrl_x_mode == 0 || CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + && *e_cpt == NUL) /* Got to end of 'complete' */ + found_new_match = FAIL; + + i = -1; /* total of matches, unknown */ + if (found_new_match == FAIL +! || (ctrl_x_mode != 0 && !CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode))) + i = ins_compl_make_cyclic(); + + /* If several matches were added (FORWARD) or the search failed and has +*************** +*** 5052,5058 **** + if (compl_length < 1) + compl_cont_status &= CONT_LOCAL; + } +! else if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + compl_cont_status = CONT_ADDING | CONT_N_ADDS; + else + compl_cont_status = 0; +--- 5057,5063 ---- + if (compl_length < 1) + compl_cont_status &= CONT_LOCAL; + } +! else if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + compl_cont_status = CONT_ADDING | CONT_N_ADDS; + else + compl_cont_status = 0; +*************** +*** 5183,5189 **** + } + } + } +! else if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + compl_col = (colnr_T)(skipwhite(line) - line); + compl_length = (int)curs_col - (int)compl_col; +--- 5188,5194 ---- + } + } + } +! else if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + { + compl_col = (colnr_T)(skipwhite(line) - line); + compl_length = (int)curs_col - (int)compl_col; +*************** +*** 5348,5354 **** + if (compl_cont_status & CONT_ADDING) + { + edit_submode_pre = (char_u *)_(" Adding"); +! if (ctrl_x_mode == CTRL_X_WHOLE_LINE) + { + /* Insert a new line, keep indentation but ignore 'comments' */ + #ifdef FEAT_COMMENTS +--- 5353,5359 ---- + if (compl_cont_status & CONT_ADDING) + { + edit_submode_pre = (char_u *)_(" Adding"); +! if (CTRL_X_MODE_LINE_OR_EVAL(ctrl_x_mode)) + { + /* Insert a new line, keep indentation but ignore 'comments' */ + #ifdef FEAT_COMMENTS +*** ../vim-7.4.652/src/version.c 2015-03-05 17:51:10.788921008 +0100 +--- src/version.c 2015-03-05 18:05:13.219424060 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 653, + /**/ + +-- +I'd like to meet the man who invented sex and see what he's working on now. + + /// 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 /// From 9bd85d7e04bda1a0f5dbf3a466c1ceab48f4ca42 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Mar 2015 18:00:04 +0100 Subject: [PATCH 0097/1407] - patchlevel 654 --- 7.4.654 | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 7.4.654 diff --git a/7.4.654 b/7.4.654 new file mode 100644 index 00000000..fb2820da --- /dev/null +++ b/7.4.654 @@ -0,0 +1,174 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.654 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.654 +Problem: glob() and globpath() cannot include links to non-existing files. + (Charles Campbell) +Solution: Add an argument to include all links with glob(). (James McCoy) + Also for globpath(). +Files: src/vim.h, src/eval.c, src/ex_getln.c + + +*** ../vim-7.4.653/src/vim.h 2015-02-27 17:19:07.100942390 +0100 +--- src/vim.h 2015-03-05 19:13:05.637355404 +0100 +*************** +*** 814,828 **** + #define WILD_LONGEST 7 + #define WILD_ALL_KEEP 8 + +! #define WILD_LIST_NOTFOUND 1 +! #define WILD_HOME_REPLACE 2 +! #define WILD_USE_NL 4 +! #define WILD_NO_BEEP 8 +! #define WILD_ADD_SLASH 16 +! #define WILD_KEEP_ALL 32 +! #define WILD_SILENT 64 +! #define WILD_ESCAPE 128 +! #define WILD_ICASE 256 + + /* Flags for expand_wildcards() */ + #define EW_DIR 0x01 /* include directory names */ +--- 814,829 ---- + #define WILD_LONGEST 7 + #define WILD_ALL_KEEP 8 + +! #define WILD_LIST_NOTFOUND 0x01 +! #define WILD_HOME_REPLACE 0x02 +! #define WILD_USE_NL 0x04 +! #define WILD_NO_BEEP 0x08 +! #define WILD_ADD_SLASH 0x10 +! #define WILD_KEEP_ALL 0x20 +! #define WILD_SILENT 0x40 +! #define WILD_ESCAPE 0x80 +! #define WILD_ICASE 0x100 +! #define WILD_ALLLINKS 0x200 + + /* Flags for expand_wildcards() */ + #define EW_DIR 0x01 /* include directory names */ +*************** +*** 839,844 **** +--- 840,846 ---- + #define EW_KEEPDOLLAR 0x800 /* do not escape $, $var is expanded */ + /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND + * is used when executing commands and EW_SILENT for interactive expanding. */ ++ #define EW_ALLLINKS 0x1000 /* also links not pointing to existing file */ + + /* Flags for find_file_*() functions. */ + #define FINDFILE_FILE 0 /* only files */ +*** ../vim-7.4.653/src/eval.c 2015-02-17 12:44:04.376749160 +0100 +--- src/eval.c 2015-03-05 19:23:23.238330783 +0100 +*************** +*** 8141,8148 **** + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 3, f_getwinvar}, +! {"glob", 1, 3, f_glob}, +! {"globpath", 2, 4, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +--- 8141,8148 ---- + {"getwinposx", 0, 0, f_getwinposx}, + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 3, f_getwinvar}, +! {"glob", 1, 4, f_glob}, +! {"globpath", 2, 5, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, + {"haslocaldir", 0, 0, f_haslocaldir}, +*************** +*** 12412,12422 **** + { + if (get_tv_number_chk(&argvars[1], &error)) + options |= WILD_KEEP_ALL; +! if (argvars[2].v_type != VAR_UNKNOWN +! && get_tv_number_chk(&argvars[2], &error)) + { +! rettv->v_type = VAR_LIST; +! rettv->vval.v_list = NULL; + } + } + if (!error) +--- 12412,12427 ---- + { + if (get_tv_number_chk(&argvars[1], &error)) + options |= WILD_KEEP_ALL; +! if (argvars[2].v_type != VAR_UNKNOWN) + { +! if (get_tv_number_chk(&argvars[2], &error)) +! { +! rettv->v_type = VAR_LIST; +! rettv->vval.v_list = NULL; +! } +! if (argvars[3].v_type != VAR_UNKNOWN +! && get_tv_number_chk(&argvars[3], &error)) +! options |= WILD_ALLLINKS; + } + } + if (!error) +*************** +*** 12466,12476 **** + { + if (get_tv_number_chk(&argvars[2], &error)) + flags |= WILD_KEEP_ALL; +! if (argvars[3].v_type != VAR_UNKNOWN +! && get_tv_number_chk(&argvars[3], &error)) + { +! rettv->v_type = VAR_LIST; +! rettv->vval.v_list = NULL; + } + } + if (file != NULL && !error) +--- 12471,12486 ---- + { + if (get_tv_number_chk(&argvars[2], &error)) + flags |= WILD_KEEP_ALL; +! if (argvars[3].v_type != VAR_UNKNOWN) + { +! if (get_tv_number_chk(&argvars[3], &error)) +! { +! rettv->v_type = VAR_LIST; +! rettv->vval.v_list = NULL; +! } +! if (argvars[4].v_type != VAR_UNKNOWN +! && get_tv_number_chk(&argvars[4], &error)) +! flags |= WILD_ALLLINKS; + } + } + if (file != NULL && !error) +*** ../vim-7.4.653/src/ex_getln.c 2014-12-08 04:16:26.269702835 +0100 +--- src/ex_getln.c 2015-03-05 19:13:28.221098296 +0100 +*************** +*** 4563,4568 **** +--- 4563,4570 ---- + flags |= EW_KEEPALL; + if (options & WILD_SILENT) + flags |= EW_SILENT; ++ if (options & WILD_ALLLINKS) ++ flags |= EW_ALLLINKS; + + if (xp->xp_context == EXPAND_FILES + || xp->xp_context == EXPAND_DIRECTORIES +*** ../vim-7.4.653/src/version.c 2015-03-05 18:08:38.893104412 +0100 +--- src/version.c 2015-03-05 19:33:05.491664753 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 654, + /**/ + +-- +Just think of all the things we haven't thought of yet. + + /// 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 /// From d07487097974017ad5c43177eff62baa3231c131 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Mar 2015 18:00:04 +0100 Subject: [PATCH 0098/1407] - patchlevel 655 --- 7.4.655 | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 7.4.655 diff --git a/7.4.655 b/7.4.655 new file mode 100644 index 00000000..e938173a --- /dev/null +++ b/7.4.655 @@ -0,0 +1,164 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.655 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.655 +Problem: Text deleted by "dit" depends on indent of closing tag. + (Jan Parthey) +Solution: Do not adjust oap->end in do_pending_operator(). (Christian + Brabandt) +Files: src/normal.c, src/search.c, src/testdir/test53.in, + src/testdir/test53.ok + + +*** ../vim-7.4.654/src/normal.c 2015-02-27 15:03:54.368707978 +0100 +--- src/normal.c 2015-03-05 19:53:49.889414297 +0100 +*************** +*** 9198,9203 **** +--- 9198,9211 ---- + flag = current_block(cap->oap, cap->count1, include, '<', '>'); + break; + case 't': /* "at" = a tag block (xml and html) */ ++ /* Do not adjust oap->end in do_pending_operator() ++ * otherwise there are different results for 'dit' ++ * (note leading whitespace in last line): ++ * 1) 2) ++ * foobar foobar ++ * ++ */ ++ cap->retval |= CA_NO_ADJ_OP_END; + flag = current_tagblock(cap->oap, cap->count1, include); + break; + case 'p': /* "ap" = a paragraph */ +*** ../vim-7.4.654/src/search.c 2014-12-13 22:00:18.157279625 +0100 +--- src/search.c 2015-03-05 19:55:09.112508000 +0100 +*************** +*** 1063,1069 **** + * Careful: If spats[0].off.line == TRUE and spats[0].off.off == 0 this + * makes the movement linewise without moving the match position. + * +! * return 0 for failure, 1 for found, 2 for found and line offset added + */ + int + do_search(oap, dirc, pat, count, options, tm) +--- 1063,1069 ---- + * Careful: If spats[0].off.line == TRUE and spats[0].off.off == 0 this + * makes the movement linewise without moving the match position. + * +! * Return 0 for failure, 1 for found, 2 for found and line offset added. + */ + int + do_search(oap, dirc, pat, count, options, tm) +*************** +*** 3781,3786 **** +--- 3781,3787 ---- + int do_include = include; + int save_p_ws = p_ws; + int retval = FAIL; ++ int is_inclusive = TRUE; + + p_ws = FALSE; + +*************** +*** 3895,3902 **** + } + else + { +! /* Exclude the '<' of the end tag. */ +! if (*ml_get_cursor() == '<') + dec_cursor(); + } + end_pos = curwin->w_cursor; +--- 3896,3910 ---- + } + else + { +! char_u *c = ml_get_cursor(); +! +! /* Exclude the '<' of the end tag. +! * If the closing tag is on new line, do not decrement cursor, but +! * make operation exclusive, so that the linefeed will be selected */ +! if (*c == '<' && !VIsual_active && curwin->w_cursor.col == 0) +! /* do not decrement cursor */ +! is_inclusive = FALSE; +! else if (*c == '<') + dec_cursor(); + } + end_pos = curwin->w_cursor; +*************** +*** 3950,3956 **** + oap->inclusive = FALSE; + } + else +! oap->inclusive = TRUE; + } + retval = OK; + +--- 3958,3964 ---- + oap->inclusive = FALSE; + } + else +! oap->inclusive = is_inclusive; + } + retval = OK; + +*** ../vim-7.4.654/src/testdir/test53.in 2014-12-13 22:00:18.157279625 +0100 +--- src/testdir/test53.in 2015-03-05 19:50:34.187653489 +0100 +*************** +*** 23,28 **** +--- 23,29 ---- + 0fXdit + fXdat + 0fXdat ++ dit + :" + :put =matchstr(\"abcd\", \".\", 0, 2) " b + :put =matchstr(\"abcd\", \"..\", 0, 2) " bc +*************** +*** 97,102 **** +--- 98,106 ---- + -asdXasdfasdf- + -asdfXasdfasdf- + -asdXasdfasdf- ++ - ++ innertext object ++ + + SEARCH: + foobar +*** ../vim-7.4.654/src/testdir/test53.ok 2014-12-13 22:00:18.161279370 +0100 +--- src/testdir/test53.ok 2015-03-05 19:50:37.903610966 +0100 +*************** +*** 11,16 **** +--- 11,17 ---- + -- + -asdfasdf- + -- ++ - + + b + bc +*** ../vim-7.4.654/src/version.c 2015-03-05 19:35:20.690114997 +0100 +--- src/version.c 2015-03-05 19:52:18.674457919 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 655, + /**/ + +-- +CONCORDE: Message for you, sir. + He falls forward revealing the arrow with the note. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 2072d6da00e8489dbb88b1e29ed3693c7effaf52 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Mar 2015 18:00:04 +0100 Subject: [PATCH 0099/1407] - patchlevel 656 --- 7.4.656 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 7.4.656 diff --git a/7.4.656 b/7.4.656 new file mode 100644 index 00000000..1eb69809 --- /dev/null +++ b/7.4.656 @@ -0,0 +1,97 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.656 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.656 (after 7.4.654) +Problem: Missing changes for glob() in one file. +Solution: Add the missing changes. +Files: src/misc1.c + + +*** ../vim-7.4.655/src/misc1.c 2015-02-10 18:33:53.240319951 +0100 +--- src/misc1.c 2015-03-05 18:27:16.608501389 +0100 +*************** +*** 10168,10178 **** + } + else + { + /* no more wildcards, check if there is a match */ + /* remove backslashes for the remaining components only */ + if (*path_end != NUL) + backslash_halve(buf + len + 1); +! if (mch_getperm(buf) >= 0) /* add existing file */ + { + #ifdef MACOS_CONVERT + size_t precomp_len = STRLEN(buf)+1; +--- 10168,10182 ---- + } + else + { ++ struct stat sb; ++ + /* no more wildcards, check if there is a match */ + /* remove backslashes for the remaining components only */ + if (*path_end != NUL) + backslash_halve(buf + len + 1); +! /* add existing file or symbolic link */ +! if ((flags & EW_ALLLINKS) ? mch_lstat(buf, &sb) >= 0 +! : mch_getperm(buf) >= 0) + { + #ifdef MACOS_CONVERT + size_t precomp_len = STRLEN(buf)+1; +*************** +*** 10919,10924 **** +--- 10923,10929 ---- + * EW_EXEC add executable files + * EW_NOTFOUND add even when it doesn't exist + * EW_ADDSLASH add slash after directory name ++ * EW_ALLLINKS add symlink also when the referred file does not exist + */ + void + addfile(gap, f, flags) +*************** +*** 10928,10936 **** + { + char_u *p; + int isdir; + +! /* if the file/dir doesn't exist, may not add it */ +! if (!(flags & EW_NOTFOUND) && mch_getperm(f) < 0) + return; + + #ifdef FNAME_ILLEGAL +--- 10933,10943 ---- + { + char_u *p; + int isdir; ++ struct stat sb; + +! /* if the file/dir/link doesn't exist, may not add it */ +! if (!(flags & EW_NOTFOUND) && ((flags & EW_ALLLINKS) +! ? mch_lstat(f, &sb) < 0 : mch_getperm(f) < 0)) + return; + + #ifdef FNAME_ILLEGAL +*** ../vim-7.4.655/src/version.c 2015-03-05 19:57:45.322721298 +0100 +--- src/version.c 2015-03-05 21:20:17.482011863 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 656, + /**/ + +-- +You had connectors? Eeee, when I were a lad we 'ad to carry the +bits between the computer and the terminal with a spoon... + + /// 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 /// From 44cf6547f5a73a4d1aa41a0f09808ebb8201d37d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 6 Mar 2015 18:00:04 +0100 Subject: [PATCH 0100/1407] - patchlevel 656 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index bb5e04ac..163d9262 100644 --- a/README.patches +++ b/README.patches @@ -674,3 +674,7 @@ Individual patches for Vim 7.4: 5907 7.4.650 configure check may fail because the dl library is not used 1972 7.4.651 (after 7.4.582) can't match "%>80v" for multi-byte characters 12413 7.4.652 xxd lacks a few features + 11064 7.4.653 Insert mode completion may have CTRL-L work like CTRL-P + 5292 7.4.654 glob()/ globpath() cannot include links to non-existing files + 4592 7.4.655 text deleted by "dit" depends on indent of closing tag + 2854 7.4.656 (after 7.4.654) missing changes for glob() in one file diff --git a/vim.spec b/vim.spec index 22d68d4b..a45d622f 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 652 +%define patchlevel 656 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -699,6 +699,10 @@ Patch649: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.649 Patch650: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.650 Patch651: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.651 Patch652: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.652 +Patch653: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.653 +Patch654: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.654 +Patch655: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.655 +Patch656: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.656 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1501,6 +1505,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch650 -p0 %patch651 -p0 %patch652 -p0 +%patch653 -p0 +%patch654 -p0 +%patch655 -p0 +%patch656 -p0 # install spell files %if %{withvimspell} @@ -2018,6 +2026,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Mar 06 2015 Karsten Hopp 7.4.656-1 +- patchlevel 656 + * Thu Mar 05 2015 Karsten Hopp 7.4.652-1 - patchlevel 652 From deccd7629688909cc17ac50e81602b540905825e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 7 Mar 2015 18:00:03 +0100 Subject: [PATCH 0101/1407] - patchlevel 657 --- 7.4.657 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 7.4.657 diff --git a/7.4.657 b/7.4.657 new file mode 100644 index 00000000..7b02475b --- /dev/null +++ b/7.4.657 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.657 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.657 (after 7.4.656) +Problem: Compiler warnings for pointer mismatch. +Solution: Add a typecast. (John Marriott) +Files: src/misc1.c + + +*** ../vim-7.4.656/src/misc1.c 2015-03-05 21:21:14.497360702 +0100 +--- src/misc1.c 2015-03-06 21:34:00.343452890 +0100 +*************** +*** 10175,10181 **** + if (*path_end != NUL) + backslash_halve(buf + len + 1); + /* add existing file or symbolic link */ +! if ((flags & EW_ALLLINKS) ? mch_lstat(buf, &sb) >= 0 + : mch_getperm(buf) >= 0) + { + #ifdef MACOS_CONVERT +--- 10175,10181 ---- + if (*path_end != NUL) + backslash_halve(buf + len + 1); + /* add existing file or symbolic link */ +! if ((flags & EW_ALLLINKS) ? mch_lstat((char *)buf, &sb) >= 0 + : mch_getperm(buf) >= 0) + { + #ifdef MACOS_CONVERT +*************** +*** 10937,10943 **** + + /* if the file/dir/link doesn't exist, may not add it */ + if (!(flags & EW_NOTFOUND) && ((flags & EW_ALLLINKS) +! ? mch_lstat(f, &sb) < 0 : mch_getperm(f) < 0)) + return; + + #ifdef FNAME_ILLEGAL +--- 10937,10943 ---- + + /* if the file/dir/link doesn't exist, may not add it */ + if (!(flags & EW_NOTFOUND) && ((flags & EW_ALLLINKS) +! ? mch_lstat((char *)f, &sb) < 0 : mch_getperm(f) < 0)) + return; + + #ifdef FNAME_ILLEGAL +*** ../vim-7.4.656/src/version.c 2015-03-05 21:21:14.497360702 +0100 +--- src/version.c 2015-03-06 21:35:14.050606301 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 657, + /**/ + +-- +You got to work at a mill? Lucky! I got sent back to work in the +acid-mines for my daily crust of stale bread... which not even the +birds would eat. + + /// 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 /// From 9e238925647b94b0c7efe940ff1e8f327fb21ef0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 7 Mar 2015 18:00:04 +0100 Subject: [PATCH 0102/1407] - patchlevel 657 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 163d9262..6a9174cb 100644 --- a/README.patches +++ b/README.patches @@ -678,3 +678,4 @@ Individual patches for Vim 7.4: 5292 7.4.654 glob()/ globpath() cannot include links to non-existing files 4592 7.4.655 text deleted by "dit" depends on indent of closing tag 2854 7.4.656 (after 7.4.654) missing changes for glob() in one file + 2249 7.4.657 (after 7.4.656) compiler warnings for pointer mismatch diff --git a/vim.spec b/vim.spec index a45d622f..0d1860ef 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 656 +%define patchlevel 657 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -703,6 +703,7 @@ Patch653: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.653 Patch654: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.654 Patch655: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.655 Patch656: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.656 +Patch657: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.657 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1509,6 +1510,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch654 -p0 %patch655 -p0 %patch656 -p0 +%patch657 -p0 # install spell files %if %{withvimspell} @@ -2026,6 +2028,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Mar 07 2015 Karsten Hopp 7.4.657-1 +- patchlevel 657 + * Fri Mar 06 2015 Karsten Hopp 7.4.656-1 - patchlevel 656 From 2a1fb40b51f782b0a9bedd074e44a5260d7add16 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 8 Mar 2015 18:00:03 +0100 Subject: [PATCH 0103/1407] - patchlevel 658 --- 7.4.658 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 7.4.658 diff --git a/7.4.658 b/7.4.658 new file mode 100644 index 00000000..9b41caf5 --- /dev/null +++ b/7.4.658 @@ -0,0 +1,97 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.658 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.658 +Problem: 'formatexpr' is evaluated too often. +Solution: Only invoke it when beyond the 'textwidth' column, as it is + documented. (James McCoy) +Files: src/edit.c + + +*** ../vim-7.4.657/src/edit.c 2015-03-05 18:08:38.893104412 +0100 +--- src/edit.c 2015-03-08 14:42:36.495743590 +0100 +*************** +*** 5879,5886 **** + char_u *p; + #endif + int fo_ins_blank; + +! textwidth = comp_textwidth(flags & INSCHAR_FORMAT); + fo_ins_blank = has_format_option(FO_INS_BLANK); + + /* +--- 5879,5887 ---- + char_u *p; + #endif + int fo_ins_blank; ++ int force_format = flags & INSCHAR_FORMAT; + +! textwidth = comp_textwidth(force_format); + fo_ins_blank = has_format_option(FO_INS_BLANK); + + /* +*************** +*** 5899,5905 **** + * before 'textwidth' + */ + if (textwidth > 0 +! && ((flags & INSCHAR_FORMAT) + || (!vim_iswhite(c) + && !((State & REPLACE_FLAG) + #ifdef FEAT_VREPLACE +--- 5900,5906 ---- + * before 'textwidth' + */ + if (textwidth > 0 +! && (force_format + || (!vim_iswhite(c) + && !((State & REPLACE_FLAG) + #ifdef FEAT_VREPLACE +*************** +*** 5916,5924 **** + /* Format with 'formatexpr' when it's set. Use internal formatting + * when 'formatexpr' isn't set or it returns non-zero. */ + #if defined(FEAT_EVAL) +! int do_internal = TRUE; + +! if (*curbuf->b_p_fex != NUL && (flags & INSCHAR_NO_FEX) == 0) + { + do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0); + /* It may be required to save for undo again, e.g. when setline() +--- 5917,5928 ---- + /* Format with 'formatexpr' when it's set. Use internal formatting + * when 'formatexpr' isn't set or it returns non-zero. */ + #if defined(FEAT_EVAL) +! int do_internal = TRUE; +! colnr_T virtcol = get_nolist_virtcol() +! + char2cells(c != NUL ? c : gchar_cursor()); + +! if (*curbuf->b_p_fex != NUL && (flags & INSCHAR_NO_FEX) == 0 +! && (force_format || virtcol > (colnr_T)textwidth)) + { + do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0); + /* It may be required to save for undo again, e.g. when setline() +*** ../vim-7.4.657/src/version.c 2015-03-06 22:00:06.817456968 +0100 +--- src/version.c 2015-03-08 14:46:45.836912488 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 658, + /**/ + +-- +I have to exercise early in the morning before my brain +figures out what I'm doing. + + /// 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 /// From 74f9764a6e0259ad7610d9f6a1181e7b172712d5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 8 Mar 2015 18:00:03 +0100 Subject: [PATCH 0104/1407] - patchlevel 658 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6a9174cb..d7866a01 100644 --- a/README.patches +++ b/README.patches @@ -679,3 +679,4 @@ Individual patches for Vim 7.4: 4592 7.4.655 text deleted by "dit" depends on indent of closing tag 2854 7.4.656 (after 7.4.654) missing changes for glob() in one file 2249 7.4.657 (after 7.4.656) compiler warnings for pointer mismatch + 3033 7.4.658 'formatexpr' is evaluated too often diff --git a/vim.spec b/vim.spec index 0d1860ef..3acfe6ce 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 657 +%define patchlevel 658 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -704,6 +704,7 @@ Patch654: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.654 Patch655: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.655 Patch656: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.656 Patch657: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.657 +Patch658: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.658 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1511,6 +1512,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch655 -p0 %patch656 -p0 %patch657 -p0 +%patch658 -p0 # install spell files %if %{withvimspell} @@ -2028,6 +2030,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Mar 08 2015 Karsten Hopp 7.4.658-1 +- patchlevel 658 + * Sat Mar 07 2015 Karsten Hopp 7.4.657-1 - patchlevel 657 From a06471b158b0e3fe0f4102fbedbfb02ea2c7963b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= Date: Thu, 12 Mar 2015 11:10:30 +0100 Subject: [PATCH 0105/1407] Fix changelog date monotony --- vim.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index 94bac888..cca905a2 100644 --- a/vim.spec +++ b/vim.spec @@ -2048,7 +2048,7 @@ rm -rf %{buildroot} * Fri Feb 27 2015 Karsten Hopp 7.4.643-1 - patchlevel 643 -* Mon Mar 02 2015 Dave Airlie 7.4.640-4 +* Fri Feb 27 2015 Dave Airlie 7.4.640-4 - fix vimrc using wrong comment character * Thu Feb 26 2015 Karsten Hopp 7.4.640-3 From 12782b36d80547f344a15fa4c66d8b1493a6e120 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 13 Mar 2015 18:00:03 +0100 Subject: [PATCH 0106/1407] - patchlevel 659 --- 7.4.659 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.4.659 diff --git a/7.4.659 b/7.4.659 new file mode 100644 index 00000000..2806ab30 --- /dev/null +++ b/7.4.659 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.659 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.659 +Problem: When 'ruler' is set the preferred column is reset. (Issue 339) +Solution: Don't set curswant when redrawing the status lines. +Files: src/option.c + + +*** ../vim-7.4.658/src/option.c 2015-02-10 19:20:33.731792076 +0100 +--- src/option.c 2015-03-13 11:19:50.564937256 +0100 +*************** +*** 7193,7199 **** + #endif + + if (curwin->w_curswant != MAXCOL +! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0) + curwin->w_set_curswant = TRUE; + + #ifdef FEAT_GUI +--- 7193,7199 ---- + #endif + + if (curwin->w_curswant != MAXCOL +! && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0) + curwin->w_set_curswant = TRUE; + + #ifdef FEAT_GUI +*************** +*** 8203,8209 **** + + comp_col(); /* in case 'ruler' or 'showcmd' changed */ + if (curwin->w_curswant != MAXCOL +! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0) + curwin->w_set_curswant = TRUE; + check_redraw(options[opt_idx].flags); + +--- 8203,8209 ---- + + comp_col(); /* in case 'ruler' or 'showcmd' changed */ + if (curwin->w_curswant != MAXCOL +! && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0) + curwin->w_set_curswant = TRUE; + check_redraw(options[opt_idx].flags); + +*************** +*** 8738,8744 **** + + comp_col(); /* in case 'columns' or 'ls' changed */ + if (curwin->w_curswant != MAXCOL +! && (options[opt_idx].flags & (P_CURSWANT | P_RCLR)) != 0) + curwin->w_set_curswant = TRUE; + check_redraw(options[opt_idx].flags); + +--- 8738,8744 ---- + + comp_col(); /* in case 'columns' or 'ls' changed */ + if (curwin->w_curswant != MAXCOL +! && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0) + curwin->w_set_curswant = TRUE; + check_redraw(options[opt_idx].flags); + +*** ../vim-7.4.658/src/version.c 2015-03-08 14:48:32.959696341 +0100 +--- src/version.c 2015-03-13 11:21:31.255788185 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 659, + /**/ + +-- +"A mouse can be just as dangerous as a bullet or a bomb." + (US Representative Lamar Smith, R-Texas) + + /// 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 /// From 39bddf6f6ed3a34aaccfe22a27029ffc1f0b9614 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 13 Mar 2015 18:00:04 +0100 Subject: [PATCH 0107/1407] - patchlevel 660 --- 7.4.660 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.4.660 diff --git a/7.4.660 b/7.4.660 new file mode 100644 index 00000000..f04abe61 --- /dev/null +++ b/7.4.660 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.660 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.660 +Problem: Using freed memory when g:colors_name is changed in the colors + script. (oni-link) +Solution: Make a copy of the variable value. +Files: src/syntax.c + + +*** ../vim-7.4.659/src/syntax.c 2015-02-03 13:00:34.404529640 +0100 +--- src/syntax.c 2015-03-13 12:48:03.203291145 +0100 +*************** +*** 6988,6995 **** + * and 'background' or 't_Co' is changed. + */ + p = get_var_value((char_u *)"g:colors_name"); +! if (p != NULL && load_colors(p) == OK) +! return; + #endif + + /* +--- 6988,7009 ---- + * and 'background' or 't_Co' is changed. + */ + p = get_var_value((char_u *)"g:colors_name"); +! if (p != NULL) +! { +! /* The value of g:colors_name could be freed when sourcing the script, +! * making "p" invalid, so copy it. */ +! char_u *copy_p = vim_strsave(p); +! int r; +! +! if (copy_p != NULL) +! { +! r = load_colors(copy_p); +! vim_free(copy_p); +! if (r == OK) +! return; +! } +! } +! + #endif + + /* +*** ../vim-7.4.659/src/version.c 2015-03-13 11:23:46.446245826 +0100 +--- src/version.c 2015-03-13 12:50:42.297597991 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 660, + /**/ + +-- +This is the polymorph virus! Follow these instructions carefully: +1. Send this message to everybody you know. +2. Format your harddisk. +Thank you for your cooperation in spreading the most powerful virus ever! + + /// 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 /// From 920bee2a5ffbaa502ab86b4722092089aa8e1f13 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 13 Mar 2015 18:00:04 +0100 Subject: [PATCH 0108/1407] - patchlevel 661 --- 7.4.661 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.661 diff --git a/7.4.661 b/7.4.661 new file mode 100644 index 00000000..5c6b279f --- /dev/null +++ b/7.4.661 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.661 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.661 +Problem: Using "0 CTRL-D" in Insert mode may have CursorHoldI interfere. + (Gary Johnson) +Solution: Don't store K_CURSORHOLD as the last character. (Christian + Brabandt) +Files: src/edit.c + + +*** ../vim-7.4.660/src/edit.c 2015-03-08 14:48:32.955696408 +0100 +--- src/edit.c 2015-03-13 13:21:42.837658498 +0100 +*************** +*** 760,766 **** + /* + * Get a character for Insert mode. Ignore K_IGNORE. + */ +! lastc = c; /* remember previous char for CTRL-D */ + do + { + c = safe_vgetc(); +--- 760,767 ---- + /* + * Get a character for Insert mode. Ignore K_IGNORE. + */ +! if (c != K_CURSORHOLD) +! lastc = c; /* remember the previous char for CTRL-D */ + do + { + c = safe_vgetc(); +*** ../vim-7.4.660/src/version.c 2015-03-13 12:53:32.271786748 +0100 +--- src/version.c 2015-03-13 13:22:49.460933957 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 661, + /**/ + +-- +Computers are not intelligent. They only think they are. + + /// 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 /// From c52ed517f0ce694456d53856eb949f596496b0da Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 13 Mar 2015 18:00:04 +0100 Subject: [PATCH 0109/1407] - patchlevel 662 --- 7.4.662 | 230 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 230 insertions(+) create mode 100644 7.4.662 diff --git a/7.4.662 b/7.4.662 new file mode 100644 index 00000000..43653872 --- /dev/null +++ b/7.4.662 @@ -0,0 +1,230 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.662 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.662 +Problem: When 'M' is in the 'cpo' option then selecting a text object in + parenthesis does not work correctly. +Solution: Keep 'M' in 'cpo' when finding a match. (Hirohito Higashi) +Files: src/search.c, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_textobjects.in, + src/testdir/test_textobjects.ok + + +*** ../vim-7.4.661/src/search.c 2015-03-05 19:57:45.322721298 +0100 +--- src/search.c 2015-03-13 15:02:35.446181021 +0100 +*************** +*** 3583,3592 **** + /* + * Search backwards for unclosed '(', '{', etc.. + * Put this position in start_pos. +! * Ignore quotes here. + */ + save_cpo = p_cpo; +! p_cpo = (char_u *)"%"; + while (count-- > 0) + { + if ((pos = findmatch(NULL, what)) == NULL) +--- 3583,3593 ---- + /* + * Search backwards for unclosed '(', '{', etc.. + * Put this position in start_pos. +! * Ignore quotes here. Keep the "M" flag in 'cpo', as that is what the +! * user wants. + */ + save_cpo = p_cpo; +! p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%"); + while (count-- > 0) + { + if ((pos = findmatch(NULL, what)) == NULL) +*** ../vim-7.4.661/src/testdir/Make_amiga.mak 2015-02-17 13:43:35.562216149 +0100 +--- src/testdir/Make_amiga.mak 2015-03-13 15:01:04.171209323 +0100 +*************** +*** 53,58 **** +--- 53,59 ---- + test_options.out \ + test_qf_title.out \ + test_signs.out \ ++ test_textobjects.out \ + test_utf8.out + + .SUFFIXES: .in .out +*************** +*** 194,197 **** +--- 195,199 ---- + test_options.out: test_options.in + test_qf_title.out: test_qf_title.in + test_signs.out: test_signs.in ++ test_textobjects.out: test_textobjects.in + test_utf8.out: test_utf8.in +*** ../vim-7.4.661/src/testdir/Make_dos.mak 2015-02-27 22:12:29.748834504 +0100 +--- src/testdir/Make_dos.mak 2015-03-13 15:01:12.511115356 +0100 +*************** +*** 52,57 **** +--- 52,58 ---- + test_options.out \ + test_qf_title.out \ + test_signs.out \ ++ test_textobjects.out \ + test_utf8.out + + SCRIPTS32 = test50.out test70.out +*** ../vim-7.4.661/src/testdir/Make_ming.mak 2015-02-17 13:43:35.562216149 +0100 +--- src/testdir/Make_ming.mak 2015-03-13 15:01:17.123063674 +0100 +*************** +*** 74,79 **** +--- 74,80 ---- + test_options.out \ + test_qf_title.out \ + test_signs.out \ ++ test_textobjects.out \ + test_utf8.out + + SCRIPTS32 = test50.out test70.out +*** ../vim-7.4.661/src/testdir/Make_os2.mak 2015-02-17 13:43:35.562216149 +0100 +--- src/testdir/Make_os2.mak 2015-03-13 15:01:22.603001636 +0100 +*************** +*** 54,59 **** +--- 54,60 ---- + test_options.out \ + test_qf_title.out \ + test_signs.out \ ++ test_textobjects.out \ + test_utf8.out + + SCRIPTS_BENCH = bench_re_freeze.out +*** ../vim-7.4.661/src/testdir/Make_vms.mms 2015-02-17 13:43:35.562216149 +0100 +--- src/testdir/Make_vms.mms 2015-03-13 15:01:40.882795705 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2014 Dec 13 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Mar 13 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 113,118 **** +--- 113,119 ---- + test_options.out \ + test_qf_title.out \ + test_signs.out \ ++ test_textobjects.out \ + test_utf8.out + + # Known problems: +*** ../vim-7.4.661/src/testdir/Makefile 2015-02-17 13:43:35.562216149 +0100 +--- src/testdir/Makefile 2015-03-13 15:01:55.786627859 +0100 +*************** +*** 50,55 **** +--- 50,56 ---- + test_options.out \ + test_qf_title.out \ + test_signs.out \ ++ test_textobjects.out \ + test_utf8.out + + SCRIPTS_GUI = test16.out +*** ../vim-7.4.661/src/testdir/test_textobjects.in 2015-03-13 15:00:20.003707055 +0100 +--- src/testdir/test_textobjects.in 2015-03-13 14:40:58.112835076 +0100 +*************** +*** 0 **** +--- 1,40 ---- ++ Tests for text-objects vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :if !has('textobjects') | e! test.ok | wq! test.out | endif ++ :set nocompatible ++ :" ++ :function SelectionOut(data) ++ : new ++ : call setline(1, a:data) ++ : call setreg('"', '') ++ : normal! ggfrmavi)y ++ : $put =getreg('\"') ++ : call setreg('"', '') ++ : normal! `afbmavi)y ++ : $put =getreg('\"') ++ : call setreg('"', '') ++ : normal! `afgmavi)y ++ : $put =getreg('\"') ++ : %yank a ++ : q! ++ : $put =getreg('a') ++ :endfunction ++ :" ++ :$put ='# Test for vi) without cpo-M' ++ :set cpo-=M ++ :call SelectionOut('(red \(blue) green)') ++ :" ++ :$put ='# Test for vi) with cpo-M #1' ++ :set cpo+=M ++ :call SelectionOut('(red \(blue) green)') ++ :" ++ :$put ='# Test for vi) with cpo-M #2' ++ :set cpo+=M ++ :call SelectionOut('(red (blue\) green)') ++ :/^Results/,$w test.out ++ :qa! ++ ENDTEST ++ ++ Results of text-objects +*** ../vim-7.4.661/src/testdir/test_textobjects.ok 2015-03-13 15:00:20.007707010 +0100 +--- src/testdir/test_textobjects.ok 2015-03-13 14:40:58.112835076 +0100 +*************** +*** 0 **** +--- 1,16 ---- ++ Results of text-objects ++ # Test for vi) without cpo-M ++ (red \(blue) green) ++ red \(blue ++ red \(blue ++ ++ # Test for vi) with cpo-M #1 ++ (red \(blue) green) ++ red \(blue) green ++ blue ++ red \(blue) green ++ # Test for vi) with cpo-M #2 ++ (red (blue\) green) ++ red (blue\) green ++ blue\ ++ red (blue\) green +*** ../vim-7.4.661/src/version.c 2015-03-13 13:24:16.319989139 +0100 +--- src/version.c 2015-03-13 14:57:10.325845609 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 662, + /**/ + +-- +GUARD #2: It could be carried by an African swallow! +GUARD #1: Oh, yeah, an African swallow maybe, but not a European swallow, + that's my point. +GUARD #2: Oh, yeah, I agree with that... + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From db4911016280b22ce48debb3a2021f0f109f7c85 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 13 Mar 2015 18:00:04 +0100 Subject: [PATCH 0110/1407] - patchlevel 662 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index d7866a01..0fd6b83c 100644 --- a/README.patches +++ b/README.patches @@ -680,3 +680,7 @@ Individual patches for Vim 7.4: 2854 7.4.656 (after 7.4.654) missing changes for glob() in one file 2249 7.4.657 (after 7.4.656) compiler warnings for pointer mismatch 3033 7.4.658 'formatexpr' is evaluated too often + 2711 7.4.659 when 'ruler' is set the preferred column is reset (Issue 339) + 2025 7.4.660 using freed memory if g:colors_name is changed + 1571 7.4.661 using "0 CTRL-D" in Insert mode may have CursorHoldI interfere + 6826 7.4.662 selecting text object can be wrong when 'M' is in the 'cpo' diff --git a/vim.spec b/vim.spec index cca905a2..5d2674d2 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 658 +%define patchlevel 662 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -705,6 +705,10 @@ Patch655: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.655 Patch656: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.656 Patch657: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.657 Patch658: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.658 +Patch659: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.659 +Patch660: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.660 +Patch661: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.661 +Patch662: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.662 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1513,6 +1517,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch656 -p0 %patch657 -p0 %patch658 -p0 +%patch659 -p0 +%patch660 -p0 +%patch661 -p0 +%patch662 -p0 # install spell files %if %{withvimspell} @@ -2030,6 +2038,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Mar 13 2015 Karsten Hopp 7.4.662-1 +- patchlevel 662 + * Sun Mar 08 2015 Karsten Hopp 7.4.658-1 - patchlevel 658 From f37ba5d5269057a21817e070026abff4aabee6b3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 14 Mar 2015 18:00:03 +0100 Subject: [PATCH 0111/1407] - patchlevel 663 --- 7.4.663 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.663 diff --git a/7.4.663 b/7.4.663 new file mode 100644 index 00000000..9396f517 --- /dev/null +++ b/7.4.663 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.663 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.663 +Problem: When using netbeans a buffer is not found in another tab. +Solution: When 'switchbuf' is set to "usetab" then switch to another tab + when possible. (Xavier de Gaye) +Files: src/netbeans.c + + +*** ../vim-7.4.662/src/netbeans.c 2015-02-10 18:33:53.240319951 +0100 +--- src/netbeans.c 2015-03-14 15:33:06.806660549 +0100 +*************** +*** 2691,2698 **** + static void + nb_set_curbuf(buf_T *buf) + { +! if (curbuf != buf && buf_jump_open_win(buf) == NULL) + set_curbuf(buf, DOBUF_GOTO); + } + + /* +--- 2691,2705 ---- + static void + nb_set_curbuf(buf_T *buf) + { +! if (curbuf != buf) { +! if (buf_jump_open_win(buf) != NULL) +! return; +! # ifdef FEAT_WINDOWS +! if ((swb_flags & SWB_USETAB) && buf_jump_open_tab(buf) != NULL) +! return; +! # endif + set_curbuf(buf, DOBUF_GOTO); ++ } + } + + /* +*** ../vim-7.4.662/src/version.c 2015-03-13 15:02:46.258059206 +0100 +--- src/version.c 2015-03-14 15:29:00.889427900 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 663, + /**/ + +-- +Have you heard about the new Barbie doll? It's called Divorce +Barbie. It comes with all of Ken's stuff. + + /// 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 /// From 5a37df08c93d9d86ccd1e006d11d5fef970877c8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 14 Mar 2015 18:00:04 +0100 Subject: [PATCH 0112/1407] - patchlevel 663 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 0fd6b83c..45d0f6c8 100644 --- a/README.patches +++ b/README.patches @@ -684,3 +684,4 @@ Individual patches for Vim 7.4: 2025 7.4.660 using freed memory if g:colors_name is changed 1571 7.4.661 using "0 CTRL-D" in Insert mode may have CursorHoldI interfere 6826 7.4.662 selecting text object can be wrong when 'M' is in the 'cpo' + 1729 7.4.663 when using netbeans a buffer is not found in another tab diff --git a/vim.spec b/vim.spec index 5d2674d2..adbb86c6 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 662 +%define patchlevel 663 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -709,6 +709,7 @@ Patch659: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.659 Patch660: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.660 Patch661: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.661 Patch662: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.662 +Patch663: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.663 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1521,6 +1522,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch660 -p0 %patch661 -p0 %patch662 -p0 +%patch663 -p0 # install spell files %if %{withvimspell} @@ -2038,6 +2040,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Mar 14 2015 Karsten Hopp 7.4.663-1 +- patchlevel 663 + * Fri Mar 13 2015 Karsten Hopp 7.4.662-1 - patchlevel 662 From f93f70715ee0f3043a50b0662756b178085450a3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 20 Mar 2015 18:00:03 +0100 Subject: [PATCH 0113/1407] - patchlevel 664 --- 7.4.664 | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 7.4.664 diff --git a/7.4.664 b/7.4.664 new file mode 100644 index 00000000..ef8a3b51 --- /dev/null +++ b/7.4.664 @@ -0,0 +1,75 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.664 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.664 +Problem: When 'compatible' is reset 'numberwidth' is set to 4, but the + effect doesn't show until a change is made. +Solution: Check if 'numberwidth' changed. (Christian Brabandt) +Files: src/screen.c, src/structs.h + + +*** ../vim-7.4.663/src/screen.c 2015-02-17 17:26:04.561123749 +0100 +--- src/screen.c 2015-03-20 15:36:11.284395407 +0100 +*************** +*** 10718,10724 **** + /* cursor line shows absolute line number */ + lnum = wp->w_buffer->b_ml.ml_line_count; + +! if (lnum == wp->w_nrwidth_line_count) + return wp->w_nrwidth_width; + wp->w_nrwidth_line_count = lnum; + +--- 10718,10724 ---- + /* cursor line shows absolute line number */ + lnum = wp->w_buffer->b_ml.ml_line_count; + +! if (lnum == wp->w_nrwidth_line_count && wp->w_nuw_cached == wp->w_p_nuw) + return wp->w_nrwidth_width; + wp->w_nrwidth_line_count = lnum; + +*************** +*** 10734,10739 **** +--- 10734,10740 ---- + n = wp->w_p_nuw - 1; + + wp->w_nrwidth_width = n; ++ wp->w_nuw_cached = wp->w_p_nuw; + return n; + } + #endif +*** ../vim-7.4.663/src/structs.h 2015-02-03 12:55:11.140179551 +0100 +--- src/structs.h 2015-03-20 15:36:11.284395407 +0100 +*************** +*** 2306,2311 **** +--- 2306,2312 ---- + #ifdef FEAT_LINEBREAK + linenr_T w_nrwidth_line_count; /* line count when ml_nrwidth_width + * was computed. */ ++ long w_nuw_cached; /* 'numberwidth' option cached */ + int w_nrwidth_width; /* nr of chars to print line count. */ + #endif + +*** ../vim-7.4.663/src/version.c 2015-03-14 15:35:45.664866097 +0100 +--- src/version.c 2015-03-20 15:37:35.279447275 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 664, + /**/ + +-- +Windows +M!uqoms + + /// 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 /// From 1ebd6d349046d20d452633dc6d0f304404c2a9a2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 20 Mar 2015 18:00:04 +0100 Subject: [PATCH 0114/1407] - patchlevel 665 --- 7.4.665 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.4.665 diff --git a/7.4.665 b/7.4.665 new file mode 100644 index 00000000..8a8c0f9f --- /dev/null +++ b/7.4.665 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.665 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.665 +Problem: 'linebreak' does not work properly with multi-byte characters. +Solution: Compute the pointer offset with mb_head_off(). (Yasuhiro + Matsumoto) +Files: src/screen.c + + +*** ../vim-7.4.664/src/screen.c 2015-03-20 15:42:07.200377381 +0100 +--- src/screen.c 2015-03-20 15:51:46.173856852 +0100 +*************** +*** 4484,4494 **** + */ + if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)) + { + char_u *p = ptr - ( + # ifdef FEAT_MBYTE +! has_mbyte ? mb_l : + # endif + 1); + /* TODO: is passing p for start of the line OK? */ + n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, + NULL) - 1; +--- 4484,4498 ---- + */ + if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)) + { ++ # ifdef FEAT_MBYTE ++ int off = has_mbyte ? (*mb_head_off)(line, ptr - 1) : 0; ++ # endif + char_u *p = ptr - ( + # ifdef FEAT_MBYTE +! off + + # endif + 1); ++ + /* TODO: is passing p for start of the line OK? */ + n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, + NULL) - 1; +*************** +*** 4496,4502 **** +--- 4500,4510 ---- + n_extra = (int)wp->w_buffer->b_p_ts + - vcol % (int)wp->w_buffer->b_p_ts - 1; + ++ # ifdef FEAT_MBYTE ++ c_extra = off > 0 ? MB_FILLER_CHAR : ' '; ++ # else + c_extra = ' '; ++ # endif + if (vim_iswhite(c)) + { + #ifdef FEAT_CONCEAL +*** ../vim-7.4.664/src/version.c 2015-03-20 15:42:07.200377381 +0100 +--- src/version.c 2015-03-20 15:47:29.472744102 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 665, + /**/ + +-- +ARTHUR: Be quiet! +DENNIS: Well you can't expect to wield supreme executive power just 'cause + some watery tart threw a sword at you! +ARTHUR: Shut up! +DENNIS: I mean, if I went around sayin' I was an empereror just because some + moistened bint had lobbed a scimitar at me they'd put me away! + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 122bba663a4fabb9de67722cd616d2825551d919 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 20 Mar 2015 18:00:04 +0100 Subject: [PATCH 0115/1407] - patchlevel 666 --- 7.4.666 | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 7.4.666 diff --git a/7.4.666 b/7.4.666 new file mode 100644 index 00000000..f85cf913 --- /dev/null +++ b/7.4.666 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.666 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.666 +Problem: There is a chance that Vim may lock up. +Solution: Handle timer events differently. (Aaron Burrow) +Files: src/os_unix.c + + +*** ../vim-7.4.665/src/os_unix.c 2014-12-17 17:59:26.912631374 +0100 +--- src/os_unix.c 2015-03-20 16:21:43.269619610 +0100 +*************** +*** 7096,7114 **** + { + XEvent event; + +! while (XtAppPending(app_context) && !vim_is_input_buf_full()) + { +! XtAppNextEvent(app_context, &event); +! #ifdef FEAT_CLIENTSERVER + { +! XPropertyEvent *e = (XPropertyEvent *)&event; + +! if (e->type == PropertyNotify && e->window == commWindow + && e->atom == commProperty && e->state == PropertyNewValue) +! serverEventProc(xterm_dpy, &event); +! } + #endif +! XtDispatchEvent(&event); + } + } + +--- 7096,7128 ---- + { + XEvent event; + +! for (;;) + { +! XtInputMask mask = XtAppPending(app_context); +! +! if (mask == 0 || vim_is_input_buf_full()) +! break; +! +! if (mask & XtIMXEvent) + { +! /* There is an event to process. */ +! XtAppNextEvent(app_context, &event); +! #ifdef FEAT_CLIENTSERVER +! { +! XPropertyEvent *e = (XPropertyEvent *)&event; + +! if (e->type == PropertyNotify && e->window == commWindow + && e->atom == commProperty && e->state == PropertyNewValue) +! serverEventProc(xterm_dpy, &event); +! } + #endif +! XtDispatchEvent(&event); +! } +! else +! { +! /* There is something else than an event to process. */ +! XtAppProcessEvent(app_context, mask); +! } + } + } + +*** ../vim-7.4.665/src/version.c 2015-03-20 15:58:47.417117245 +0100 +--- src/version.c 2015-03-20 16:07:37.499149050 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 666, + /**/ + +-- +Q: How many hardware engineers does it take to change a lightbulb? +A: None. We'll fix it in software. + + /// 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 /// From a4c51d1a5d2fe96b2dcf55b2b43c9e858c24cfc6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 20 Mar 2015 18:00:04 +0100 Subject: [PATCH 0116/1407] - patchlevel 667 --- 7.4.667 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.4.667 diff --git a/7.4.667 b/7.4.667 new file mode 100644 index 00000000..5b9539d6 --- /dev/null +++ b/7.4.667 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.667 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.667 +Problem: 'colorcolumn' isn't drawn in a closed fold while 'cursorcolumn' + is. (Carlos Pita) +Solution: Make it consistent. (Christian Brabandt) +Files: src/screen.c + + +*** ../vim-7.4.666/src/screen.c 2015-03-20 15:58:47.417117245 +0100 +--- src/screen.c 2015-03-20 16:42:27.819592954 +0100 +*************** +*** 2740,2745 **** +--- 2740,2767 ---- + } + + #ifdef FEAT_SYN_HL ++ /* Show colorcolumn in the fold line, but let cursorcolumn override it. */ ++ if (wp->w_p_cc_cols) ++ { ++ int i = 0; ++ int j = wp->w_p_cc_cols[i]; ++ int old_txtcol = txtcol; ++ ++ while (j > -1) ++ { ++ txtcol += j; ++ if (wp->w_p_wrap) ++ txtcol -= wp->w_skipcol; ++ else ++ txtcol -= wp->w_leftcol; ++ if (txtcol >= 0 && txtcol < W_WIDTH(wp)) ++ ScreenAttrs[off + txtcol] = hl_combine_attr( ++ ScreenAttrs[off + txtcol], hl_attr(HLF_MC)); ++ txtcol = old_txtcol; ++ j = wp->w_p_cc_cols[++i]; ++ } ++ } ++ + /* Show 'cursorcolumn' in the fold line. */ + if (wp->w_p_cuc) + { +*** ../vim-7.4.666/src/version.c 2015-03-20 16:26:48.974173903 +0100 +--- src/version.c 2015-03-20 16:36:14.035803222 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 667, + /**/ + +-- +ARTHUR: Shut up! Will you shut up! +DENNIS: Ah, now we see the violence inherent in the system. +ARTHUR: Shut up! +DENNIS: Oh! Come and see the violence inherent in the system! + HELP! HELP! I'm being repressed! + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 0bdd142ed6241f570e4b6b4e6a629fee2c067838 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 20 Mar 2015 18:00:04 +0100 Subject: [PATCH 0117/1407] - patchlevel 668 --- 7.4.668 | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 7.4.668 diff --git a/7.4.668 b/7.4.668 new file mode 100644 index 00000000..90001626 --- /dev/null +++ b/7.4.668 @@ -0,0 +1,127 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.668 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.668 +Problem: Can't use a glob pattern as a regexp pattern. +Solution: Add glob2regpat(). (Christian Brabandt) +Files: src/eval.c, runtime/doc/eval.txt + + +*** ../vim-7.4.667/src/eval.c 2015-03-05 19:35:20.690114997 +0100 +--- src/eval.c 2015-03-20 17:28:18.912588318 +0100 +*************** +*** 575,580 **** +--- 575,581 ---- + static void f_getwinvar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_glob __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_globpath __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_glob2regpat __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_has __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_has_key __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_haslocaldir __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 8142,8147 **** +--- 8143,8149 ---- + {"getwinposy", 0, 0, f_getwinposy}, + {"getwinvar", 2, 3, f_getwinvar}, + {"glob", 1, 4, f_glob}, ++ {"glob2regpat", 1, 1, f_glob2regpat}, + {"globpath", 2, 5, f_globpath}, + {"has", 1, 1, f_has}, + {"has_key", 2, 2, f_has_key}, +*************** +*** 12500,12505 **** +--- 12502,12521 ---- + } + + /* ++ * "glob2regpat()" function ++ */ ++ static void ++ f_glob2regpat(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ char_u *pat = get_tv_string_chk(&argvars[0]); ++ ++ rettv->v_type = VAR_STRING; ++ rettv->vval.v_string = file_pat_to_reg_pat(pat, NULL, NULL, FALSE); ++ } ++ ++ /* + * "has()" function + */ + static void +*** ../vim-7.4.667/runtime/doc/eval.txt 2015-01-27 15:18:55.152333309 +0100 +--- runtime/doc/eval.txt 2015-03-20 17:32:43.597601391 +0100 +*************** +*** 1833,1841 **** + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname} [, {def}]) + any variable {varname} in window {nr} +! glob( {expr} [, {nosuf} [, {list}]]) + any expand file wildcards in {expr} +! globpath( {path}, {expr} [, {nosuf} [, {list}]]) + String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} +--- 1834,1843 ---- + getwinposy() Number Y coord in pixels of GUI Vim window + getwinvar( {nr}, {varname} [, {def}]) + any variable {varname} in window {nr} +! glob( {expr} [, {nosuf} [, {list} [, {alllinks}]]]) + any expand file wildcards in {expr} +! glob2regpat( {expr}) String convert a glob pat into a search pat +! globpath( {path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]]) + String do glob({expr}) for all dirs in {path} + has( {feature}) Number TRUE if feature {feature} supported + has_key( {dict}, {key}) Number TRUE if {dict} has entry {key} +*************** +*** 3611,3617 **** + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +! globpath({path}, {expr} [, {nosuf} [, {list}]]) *globpath()* + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") +--- 3672,3687 ---- + See |expand()| for expanding special Vim variables. See + |system()| for getting the raw output of an external command. + +! glob2regpat({expr}) *glob2regpat()* +! Convert a file patter, as used by glob(), into a search +! pattern. The result can be used to match with a string that +! is a file name. E.g. > +! if filename =~ glob2regpat('Make*.mak') +! < This is equivalent to: > +! if filename =~ '^Make.*\.mak$' +! < +! *globpath()* +! globpath({path}, {expr} [, {nosuf} [, {list} [, {allinks}]]]) + Perform glob() on all directories in {path} and concatenate + the results. Example: > + :echo globpath(&rtp, "syntax/c.vim") +*** ../vim-7.4.667/src/version.c 2015-03-20 17:16:23.656659419 +0100 +--- src/version.c 2015-03-20 17:19:45.610380844 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 668, + /**/ + +-- +Seen on the back of a biker's vest: If you can read this, my wife fell off. + + /// 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 /// From 234756333d6aee4a65906c5b0c6d69a10d6764b8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 20 Mar 2015 18:00:05 +0100 Subject: [PATCH 0118/1407] - patchlevel 668 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 45d0f6c8..99b3cc93 100644 --- a/README.patches +++ b/README.patches @@ -685,3 +685,8 @@ Individual patches for Vim 7.4: 1571 7.4.661 using "0 CTRL-D" in Insert mode may have CursorHoldI interfere 6826 7.4.662 selecting text object can be wrong when 'M' is in the 'cpo' 1729 7.4.663 when using netbeans a buffer is not found in another tab + 2289 7.4.664 effect of 'numberwidth' being set not immediately visible + 2582 7.4.665 'linebreak' does not work properly with multi-byte characters + 2470 7.4.666 there is a chance that Vim may lock up + 2109 7.4.667 'colorcolumn' isn't drawn in closed fold like 'cursorcolumn' + 4671 7.4.668 can't use a glob pattern as a regexp pattern diff --git a/vim.spec b/vim.spec index adbb86c6..6b15757e 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 663 +%define patchlevel 668 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -710,6 +710,11 @@ Patch660: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.660 Patch661: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.661 Patch662: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.662 Patch663: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.663 +Patch664: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.664 +Patch665: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.665 +Patch666: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.666 +Patch667: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.667 +Patch668: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.668 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1523,6 +1528,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch661 -p0 %patch662 -p0 %patch663 -p0 +%patch664 -p0 +%patch665 -p0 +%patch666 -p0 +%patch667 -p0 +%patch668 -p0 # install spell files %if %{withvimspell} @@ -2040,6 +2050,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Mar 20 2015 Karsten Hopp 7.4.668-1 +- patchlevel 668 + * Sat Mar 14 2015 Karsten Hopp 7.4.663-1 - patchlevel 663 From 743caf655afbee13ecf72cf0c48e5e2aedec8199 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 21 Mar 2015 18:00:04 +0100 Subject: [PATCH 0119/1407] - patchlevel 669 --- 7.4.669 | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 7.4.669 diff --git a/7.4.669 b/7.4.669 new file mode 100644 index 00000000..0412cdde --- /dev/null +++ b/7.4.669 @@ -0,0 +1,145 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.669 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.669 +Problem: When netbeans is active the sign column always shows up. +Solution: Only show the sign column once a sign has been added. (Xavier de + Gaye) +Files: src/buffer.c, src/edit.c, src/move.c, src/netbeans.c, + src/screen.c, src/structs.h + + +*** ../vim-7.4.668/src/buffer.c 2015-02-27 19:34:51.460777333 +0100 +--- src/buffer.c 2015-03-20 17:56:18.289643264 +0100 +*************** +*** 5473,5478 **** +--- 5473,5482 ---- + + /* first sign in signlist */ + buf->b_signlist = newsign; ++ #ifdef FEAT_NETBEANS_INTG ++ if (netbeans_active()) ++ buf->b_has_sign_column = TRUE; ++ #endif + } + else + prev->next = newsign; +*** ../vim-7.4.668/src/edit.c 2015-03-13 13:24:16.319989139 +0100 +--- src/edit.c 2015-03-20 17:58:31.328143526 +0100 +*************** +*** 6687,6693 **** + #ifdef FEAT_SIGNS + if (curwin->w_buffer->b_signlist != NULL + # ifdef FEAT_NETBEANS_INTG +! || netbeans_active() + # endif + ) + textwidth -= 1; +--- 6687,6693 ---- + #ifdef FEAT_SIGNS + if (curwin->w_buffer->b_signlist != NULL + # ifdef FEAT_NETBEANS_INTG +! || curwin->w_buffer->b_has_sign_column + # endif + ) + textwidth -= 1; +*** ../vim-7.4.668/src/move.c 2014-12-13 21:09:53.721226911 +0100 +--- src/move.c 2015-03-20 17:56:34.973455188 +0100 +*************** +*** 905,911 **** + + ( + # ifdef FEAT_NETBEANS_INTG + /* show glyph gutter in netbeans */ +! netbeans_active() || + # endif + wp->w_buffer->b_signlist != NULL ? 2 : 0) + #endif +--- 905,911 ---- + + ( + # ifdef FEAT_NETBEANS_INTG + /* show glyph gutter in netbeans */ +! wp->w_buffer->b_has_sign_column || + # endif + wp->w_buffer->b_signlist != NULL ? 2 : 0) + #endif +*** ../vim-7.4.668/src/netbeans.c 2015-03-14 15:35:45.664866097 +0100 +--- src/netbeans.c 2015-03-20 17:56:49.665289529 +0100 +*************** +*** 144,149 **** +--- 144,154 ---- + static void + nb_close_socket(void) + { ++ buf_T *buf; ++ ++ for (buf = firstbuf; buf != NULL; buf = buf->b_next) ++ buf->b_has_sign_column = FALSE; ++ + #ifdef FEAT_GUI_X11 + if (inputHandler != (XtInputId)NULL) + { +*** ../vim-7.4.668/src/screen.c 2015-03-20 17:16:23.656659419 +0100 +--- src/screen.c 2015-03-20 17:58:42.740014898 +0100 +*************** +*** 2214,2220 **** + { + return (wp->w_buffer->b_signlist != NULL + # ifdef FEAT_NETBEANS_INTG +! || netbeans_active() + # endif + ); + } +--- 2214,2220 ---- + { + return (wp->w_buffer->b_signlist != NULL + # ifdef FEAT_NETBEANS_INTG +! || wp->w_buffer->b_has_sign_column + # endif + ); + } +*** ../vim-7.4.668/src/structs.h 2015-03-20 15:42:07.200377381 +0100 +--- src/structs.h 2015-03-20 17:58:09.836385801 +0100 +*************** +*** 1805,1810 **** +--- 1805,1815 ---- + + #ifdef FEAT_SIGNS + signlist_T *b_signlist; /* list of signs to draw */ ++ # ifdef FEAT_NETBEANS_INTG ++ int b_has_sign_column; /* Flag that is set when a first sign is ++ * added and remains set until the end of ++ * the netbeans session. */ ++ # endif + #endif + + #ifdef FEAT_NETBEANS_INTG +*** ../vim-7.4.668/src/version.c 2015-03-20 17:36:38.618949214 +0100 +--- src/version.c 2015-03-20 17:54:53.422600714 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 669, + /**/ + +-- +ARTHUR: You fight with the strength of many men, Sir knight. + I am Arthur, King of the Britons. [pause] + I seek the finest and the bravest knights in the land to join me + in my Court of Camelot. [pause] + You have proved yourself worthy; will you join me? [pause] + You make me sad. So be it. Come, Patsy. +BLACK KNIGHT: None shall pass. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 0646d86395d78ebe7eaa7e436121270eaa3dd3bf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 21 Mar 2015 18:00:04 +0100 Subject: [PATCH 0120/1407] - patchlevel 670 --- 7.4.670 | 578 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 578 insertions(+) create mode 100644 7.4.670 diff --git a/7.4.670 b/7.4.670 new file mode 100644 index 00000000..36e3953f --- /dev/null +++ b/7.4.670 @@ -0,0 +1,578 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.670 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.670 +Problem: Using 'cindent' for Javascript is less than perfect. +Solution: Improve indenting of continuation lines. (Hirohito Higashi) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.4.669/src/misc1.c 2015-03-06 22:00:06.813457075 +0100 +--- src/misc1.c 2015-03-20 18:52:24.283668213 +0100 +*************** +*** 6670,6689 **** + pos_T cursor_save; + pos_T *trypos; + static pos_T pos_copy; + + cursor_save = curwin->w_cursor; +! if ((trypos = findmatchlimit(NULL, c, 0, ind_maxparen)) != NULL) + { + /* check if the ( is in a // comment */ + if ((colnr_T)cin_skip2pos(trypos) > trypos->col) + trypos = NULL; + else + { + pos_copy = *trypos; /* copy trypos, findmatch will change it */ + trypos = &pos_copy; + curwin->w_cursor = *trypos; +! if (ind_find_start_comment() != NULL) /* XXX */ + trypos = NULL; + } + } + curwin->w_cursor = cursor_save; +--- 6670,6712 ---- + pos_T cursor_save; + pos_T *trypos; + static pos_T pos_copy; ++ int ind_maxp_wk; + + cursor_save = curwin->w_cursor; +! ind_maxp_wk = ind_maxparen; +! retry: +! if ((trypos = findmatchlimit(NULL, c, 0, ind_maxp_wk)) != NULL) + { + /* check if the ( is in a // comment */ + if ((colnr_T)cin_skip2pos(trypos) > trypos->col) ++ { ++ ind_maxp_wk = ind_maxparen - (int)(cursor_save.lnum - trypos->lnum); ++ if (ind_maxp_wk > 0) ++ { ++ curwin->w_cursor = *trypos; ++ curwin->w_cursor.col = 0; /* XXX */ ++ goto retry; ++ } + trypos = NULL; ++ } + else + { ++ pos_T *trypos_wk; ++ + pos_copy = *trypos; /* copy trypos, findmatch will change it */ + trypos = &pos_copy; + curwin->w_cursor = *trypos; +! if ((trypos_wk = ind_find_start_comment()) != NULL) /* XXX */ +! { +! ind_maxp_wk = ind_maxparen - (int)(cursor_save.lnum +! - trypos_wk->lnum); +! if (ind_maxp_wk > 0) +! { +! curwin->w_cursor = *trypos_wk; +! goto retry; +! } + trypos = NULL; ++ } + } + } + curwin->w_cursor = cursor_save; +*************** +*** 7024,7030 **** + #define LOOKFOR_CPP_BASECLASS 9 + #define LOOKFOR_ENUM_OR_INIT 10 + #define LOOKFOR_JS_KEY 11 +! #define LOOKFOR_NO_COMMA 12 + + int whilelevel; + linenr_T lnum; +--- 7047,7053 ---- + #define LOOKFOR_CPP_BASECLASS 9 + #define LOOKFOR_ENUM_OR_INIT 10 + #define LOOKFOR_JS_KEY 11 +! #define LOOKFOR_COMMA 12 + + int whilelevel; + linenr_T lnum; +*************** +*** 7842,7848 **** + else + { + if (lookfor != LOOKFOR_TERM +! && lookfor != LOOKFOR_CPP_BASECLASS) + { + amount = scope_amount; + if (theline[0] == '{') +--- 7865,7872 ---- + else + { + if (lookfor != LOOKFOR_TERM +! && lookfor != LOOKFOR_CPP_BASECLASS +! && lookfor != LOOKFOR_COMMA) + { + amount = scope_amount; + if (theline[0] == '{') +*************** +*** 8134,8156 **** + amount = get_indent(); + break; + } +! if (lookfor == LOOKFOR_NO_COMMA) + { +! if (terminated != ',') + /* line below current line is the one that starts a + * (possibly broken) line ending in a comma. */ + break; +! amount = get_indent(); +! if (curwin->w_cursor.lnum - 1 == ourscope) +! /* line above is start of the scope, thus current line +! * is the one that stars a (possibly broken) line +! * ending in a comma. */ +! break; + } + + if (terminated == 0 || (lookfor != LOOKFOR_UNTERM + && terminated == ',')) + { + /* + * if we're in the middle of a paren thing, + * go back to the line that starts it so +--- 8158,8188 ---- + amount = get_indent(); + break; + } +! if (lookfor == LOOKFOR_COMMA) + { +! if (tryposBrace != NULL && tryposBrace->lnum +! >= curwin->w_cursor.lnum) +! break; +! if (terminated == ',') + /* line below current line is the one that starts a + * (possibly broken) line ending in a comma. */ + break; +! else +! { +! amount = get_indent(); +! if (curwin->w_cursor.lnum - 1 == ourscope) +! /* line above is start of the scope, thus current +! * line is the one that stars a (possibly broken) +! * line ending in a comma. */ +! break; +! } + } + + if (terminated == 0 || (lookfor != LOOKFOR_UNTERM + && terminated == ',')) + { ++ if (*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '[') ++ amount += ind_continuation; + /* + * if we're in the middle of a paren thing, + * go back to the line that starts it so +*************** +*** 8389,8395 **** +--- 8421,8430 ---- + * 100 + + * -> here; + */ ++ l = ml_get_curline(); + amount = cur_amount; ++ if (*skipwhite(l) == ']' || l[STRLEN(l) - 1] == ']') ++ break; + + /* + * If previous line ends in ',', check whether we +*************** +*** 8418,8425 **** + * 5, + * 6, + */ +! lookfor = LOOKFOR_NO_COMMA; +! amount = get_indent(); /* XXX */ + trypos = find_match_char('[', + curbuf->b_ind_maxparen); + if (trypos != NULL) +--- 8453,8461 ---- + * 5, + * 6, + */ +! if (cin_iscomment(skipwhite(l))) +! break; +! lookfor = LOOKFOR_COMMA; + trypos = find_match_char('[', + curbuf->b_ind_maxparen); + if (trypos != NULL) +*************** +*** 8449,8455 **** + cont_amount = cin_get_equal_amount( + curwin->w_cursor.lnum); + if (lookfor != LOOKFOR_TERM +! && lookfor != LOOKFOR_JS_KEY) + lookfor = LOOKFOR_UNTERM; + } + } +--- 8485,8492 ---- + cont_amount = cin_get_equal_amount( + curwin->w_cursor.lnum); + if (lookfor != LOOKFOR_TERM +! && lookfor != LOOKFOR_JS_KEY +! && lookfor != LOOKFOR_COMMA) + lookfor = LOOKFOR_UNTERM; + } + } +*** ../vim-7.4.669/src/testdir/test3.in 2014-08-06 17:44:09.867161966 +0200 +--- src/testdir/test3.in 2015-03-20 18:48:42.478174688 +0100 +*************** +*** 2065,2070 **** +--- 2065,2228 ---- + JSEND + + STARTTEST ++ :set cino=j1,J1,+2 ++ /^JSSTART ++ =/^JSEND ++ ENDTEST ++ ++ JSSTART ++ // Results of JavaScript indent ++ // 1 ++ (function(){ ++ var a = [ ++ 'a', ++ 'b', ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ }()) ++ ++ // 2 ++ (function(){ ++ var a = [ ++ 0 + ++ 5 * ++ 9 * ++ 'a', ++ 'b', ++ 0 + ++ 5 * ++ 9 * ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ }()) ++ ++ // 3 ++ (function(){ ++ var a = [ ++ 0 + ++ // comment 1 ++ 5 * ++ /* comment 2 */ ++ 9 * ++ 'a', ++ 'b', ++ 0 + ++ 5 * ++ 9 * ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ }()) ++ ++ // 4 ++ { ++ var a = [ ++ 0, ++ 1 ++ ]; ++ var b; ++ var c; ++ } ++ ++ // 5 ++ { ++ var a = [ ++ [ ++ 0 ++ ], ++ 2, ++ 3 ++ ]; ++ } ++ ++ // 6 ++ { ++ var a = [ ++ [ ++ 0, ++ 1 ++ ], ++ 2, ++ 3 ++ ]; ++ } ++ ++ // 7 ++ { ++ var a = [ ++ // [ ++ 0, ++ // 1 ++ // ], ++ 2, ++ 3 ++ ]; ++ } ++ ++ // 8 ++ var x = [ ++ (function(){ ++ var a, ++ b, ++ c, ++ d, ++ e, ++ f, ++ g, ++ h, ++ i; ++ }) ++ ]; ++ ++ // 9 ++ var a = [ ++ 0 + ++ 5 * ++ 9 * ++ 'a', ++ 'b', ++ 0 + ++ 5 * ++ 9 * ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ ++ // 10 ++ var a, ++ b, ++ c, ++ d, ++ e, ++ f, ++ g, ++ h, ++ i; ++ JSEND ++ ++ STARTTEST + :g/^STARTTEST/.,/^ENDTEST/d + :1;/start of AUTO/,$wq! test.out + ENDTEST +*** ../vim-7.4.669/src/testdir/test3.ok 2014-08-06 17:44:09.867161966 +0200 +--- src/testdir/test3.ok 2015-03-20 18:55:10.709787690 +0100 +*************** +*** 1832,1834 **** +--- 1832,1987 ---- + })(jQuery); + JSEND + ++ ++ JSSTART ++ // Results of JavaScript indent ++ // 1 ++ (function(){ ++ var a = [ ++ 'a', ++ 'b', ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ }()) ++ ++ // 2 ++ (function(){ ++ var a = [ ++ 0 + ++ 5 * ++ 9 * ++ 'a', ++ 'b', ++ 0 + ++ 5 * ++ 9 * ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ }()) ++ ++ // 3 ++ (function(){ ++ var a = [ ++ 0 + ++ // comment 1 ++ 5 * ++ /* comment 2 */ ++ 9 * ++ 'a', ++ 'b', ++ 0 + ++ 5 * ++ 9 * ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ }()) ++ ++ // 4 ++ { ++ var a = [ ++ 0, ++ 1 ++ ]; ++ var b; ++ var c; ++ } ++ ++ // 5 ++ { ++ var a = [ ++ [ ++ 0 ++ ], ++ 2, ++ 3 ++ ]; ++ } ++ ++ // 6 ++ { ++ var a = [ ++ [ ++ 0, ++ 1 ++ ], ++ 2, ++ 3 ++ ]; ++ } ++ ++ // 7 ++ { ++ var a = [ ++ // [ ++ 0, ++ // 1 ++ // ], ++ 2, ++ 3 ++ ]; ++ } ++ ++ // 8 ++ var x = [ ++ (function(){ ++ var a, ++ b, ++ c, ++ d, ++ e, ++ f, ++ g, ++ h, ++ i; ++ }) ++ ]; ++ ++ // 9 ++ var a = [ ++ 0 + ++ 5 * ++ 9 * ++ 'a', ++ 'b', ++ 0 + ++ 5 * ++ 9 * ++ 'c', ++ 'd', ++ 'e', ++ 'f', ++ 'g', ++ 'h', ++ 'i' ++ ]; ++ ++ // 10 ++ var a, ++ b, ++ c, ++ d, ++ e, ++ f, ++ g, ++ h, ++ i; ++ JSEND ++ +*** ../vim-7.4.669/src/version.c 2015-03-20 18:11:44.971196311 +0100 +--- src/version.c 2015-03-20 18:53:43.626771663 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 670, + /**/ + +-- +ARTHUR: What? +BLACK KNIGHT: None shall pass. +ARTHUR: I have no quarrel with you, good Sir knight, but I must cross + this bridge. +BLACK KNIGHT: Then you shall die. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 91e860fc66d14135aaad6bf0888e5ef7c4edd5d4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 21 Mar 2015 18:00:04 +0100 Subject: [PATCH 0121/1407] - patchlevel 671 --- 7.4.671 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.4.671 diff --git a/7.4.671 b/7.4.671 new file mode 100644 index 00000000..8a80947a --- /dev/null +++ b/7.4.671 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.671 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.671 (after 7.4.665) +Problem: Warning for shadowing a variable. +Solution: Rename off to mb_off. (Kazunobu Kuriyama) +Files: src/screen.c + + +*** ../vim-7.4.670/src/screen.c 2015-03-20 18:11:44.971196311 +0100 +--- src/screen.c 2015-03-21 14:16:32.063451426 +0100 +*************** +*** 4507,4517 **** + if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)) + { + # ifdef FEAT_MBYTE +! int off = has_mbyte ? (*mb_head_off)(line, ptr - 1) : 0; + # endif + char_u *p = ptr - ( + # ifdef FEAT_MBYTE +! off + + # endif + 1); + +--- 4507,4517 ---- + if (wp->w_p_lbr && vim_isbreak(c) && !vim_isbreak(*ptr)) + { + # ifdef FEAT_MBYTE +! int mb_off = has_mbyte ? (*mb_head_off)(line, ptr - 1) : 0; + # endif + char_u *p = ptr - ( + # ifdef FEAT_MBYTE +! mb_off + + # endif + 1); + +*************** +*** 4523,4529 **** + - vcol % (int)wp->w_buffer->b_p_ts - 1; + + # ifdef FEAT_MBYTE +! c_extra = off > 0 ? MB_FILLER_CHAR : ' '; + # else + c_extra = ' '; + # endif +--- 4523,4529 ---- + - vcol % (int)wp->w_buffer->b_p_ts - 1; + + # ifdef FEAT_MBYTE +! c_extra = mb_off > 0 ? MB_FILLER_CHAR : ' '; + # else + c_extra = ' '; + # endif +*** ../vim-7.4.670/src/version.c 2015-03-20 19:06:01.986429778 +0100 +--- src/version.c 2015-03-21 14:19:33.461410898 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 671, + /**/ + +-- + f y cn rd ths thn y cn hv grt jb n cmptr prgrmmng + + /// 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 /// From 9b25f518ca6785739b0229793d732e6d7f58058d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 21 Mar 2015 18:00:04 +0100 Subject: [PATCH 0122/1407] - patchlevel 672 --- 7.4.672 | 443 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 443 insertions(+) create mode 100644 7.4.672 diff --git a/7.4.672 b/7.4.672 new file mode 100644 index 00000000..579b6efe --- /dev/null +++ b/7.4.672 @@ -0,0 +1,443 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.672 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.672 +Problem: When completing a shell command, directories in the current + directory are not listed. +Solution: When "." is not in $PATH also look in the current directory for + directories. +Files: src/ex_getln.c, src/vim.h, src/misc1.c, src/eval.c, + src/os_amiga.c, src/os_msdos.c, src/os_unix.c, src/os_vms.c, + src/proto/os_amiga.pro, src/proto/os_msdos.pro, + src/proto/os_unix.pro, src/proto/os_win32.pro + + +*** ../vim-7.4.671/src/ex_getln.c 2015-03-05 19:35:20.690114997 +0100 +--- src/ex_getln.c 2015-03-21 16:18:22.392988057 +0100 +*************** +*** 4885,4890 **** +--- 4885,4891 ---- + char_u *s, *e; + int flags = flagsarg; + int ret; ++ int did_curdir = FALSE; + + if (buf == NULL) + return FAIL; +*************** +*** 4896,4902 **** + if (pat[i] == '\\' && pat[i + 1] == ' ') + STRMOVE(pat + i, pat + i + 1); + +! flags |= EW_FILE | EW_EXEC; + + /* For an absolute name we don't use $PATH. */ + if (mch_isFullName(pat)) +--- 4897,4903 ---- + if (pat[i] == '\\' && pat[i + 1] == ' ') + STRMOVE(pat + i, pat + i + 1); + +! flags |= EW_FILE | EW_EXEC | EW_SHELLCMD; + + /* For an absolute name we don't use $PATH. */ + if (mch_isFullName(pat)) +*************** +*** 4913,4923 **** + + /* + * Go over all directories in $PATH. Expand matches in that directory and +! * collect them in "ga". + */ + ga_init2(&ga, (int)sizeof(char *), 10); +! for (s = path; *s != NUL; s = e) + { + if (*s == ' ') + ++s; /* Skip space used for absolute path name. */ + +--- 4914,4935 ---- + + /* + * Go over all directories in $PATH. Expand matches in that directory and +! * collect them in "ga". When "." is not in $PATH also expand for the +! * current directory, to find "subdir/cmd". + */ + ga_init2(&ga, (int)sizeof(char *), 10); +! for (s = path; ; s = e) + { ++ if (*s == NUL) ++ { ++ if (did_curdir) ++ break; ++ /* Find directories in the current directory, path is empty. */ ++ did_curdir = TRUE; ++ } ++ else if (*s == '.') ++ did_curdir = TRUE; ++ + if (*s == ' ') + ++s; /* Skip space used for absolute path name. */ + +*** ../vim-7.4.671/src/vim.h 2015-03-05 19:35:20.686115042 +0100 +--- src/vim.h 2015-03-21 16:19:12.656419663 +0100 +*************** +*** 841,846 **** +--- 841,848 ---- + /* Note: mostly EW_NOTFOUND and EW_SILENT are mutually exclusive: EW_NOTFOUND + * is used when executing commands and EW_SILENT for interactive expanding. */ + #define EW_ALLLINKS 0x1000 /* also links not pointing to existing file */ ++ #define EW_SHELLCMD 0x2000 /* called from expand_shellcmd(), don't check ++ * if executable is in $PATH */ + + /* Flags for find_file_*() functions. */ + #define FINDFILE_FILE 0 /* only files */ +*** ../vim-7.4.671/src/misc1.c 2015-03-20 19:06:01.982429823 +0100 +--- src/misc1.c 2015-03-21 17:03:42.218172476 +0100 +*************** +*** 10987,10994 **** + if ((isdir && !(flags & EW_DIR)) || (!isdir && !(flags & EW_FILE))) + return; + +! /* If the file isn't executable, may not add it. Do accept directories. */ +! if (!isdir && (flags & EW_EXEC) && !mch_can_exe(f, NULL)) + return; + + /* Make room for another item in the file list. */ +--- 10987,10996 ---- + if ((isdir && !(flags & EW_DIR)) || (!isdir && !(flags & EW_FILE))) + return; + +! /* If the file isn't executable, may not add it. Do accept directories. +! * When invoked from expand_shellcmd() do not use $PATH. */ +! if (!isdir && (flags & EW_EXEC) +! && !mch_can_exe(f, NULL, !(flags & EW_SHELLCMD))) + return; + + /* Make room for another item in the file list. */ +*** ../vim-7.4.671/src/eval.c 2015-03-20 17:36:38.618949214 +0100 +--- src/eval.c 2015-03-21 16:53:45.996929428 +0100 +*************** +*** 10271,10277 **** + typval_T *argvars; + typval_T *rettv; + { +! rettv->vval.v_number = mch_can_exe(get_tv_string(&argvars[0]), NULL); + } + + /* +--- 10271,10281 ---- + typval_T *argvars; + typval_T *rettv; + { +! char_u *name = get_tv_string(&argvars[0]); +! +! /* Check in $PATH and also check directly if there is a directory name. */ +! rettv->vval.v_number = mch_can_exe(name, NULL, TRUE) +! || (gettail(name) != name && mch_can_exe(name, NULL, FALSE)); + } + + /* +*************** +*** 10284,10290 **** + { + char_u *p = NULL; + +! (void)mch_can_exe(get_tv_string(&argvars[0]), &p); + rettv->v_type = VAR_STRING; + rettv->vval.v_string = p; + } +--- 10288,10294 ---- + { + char_u *p = NULL; + +! (void)mch_can_exe(get_tv_string(&argvars[0]), &p, TRUE); + rettv->v_type = VAR_STRING; + rettv->vval.v_string = p; + } +*** ../vim-7.4.671/src/os_amiga.c 2014-04-01 21:00:45.436733663 +0200 +--- src/os_amiga.c 2015-03-21 16:54:49.456210821 +0100 +*************** +*** 881,892 **** + + /* + * Return 1 if "name" can be executed, 0 if not. + * Return -1 if unknown. + */ + int +! mch_can_exe(name, path) + char_u *name; + char_u **path; + { + /* TODO */ + return -1; +--- 881,894 ---- + + /* + * Return 1 if "name" can be executed, 0 if not. ++ * If "use_path" is FALSE only check if "name" is executable. + * Return -1 if unknown. + */ + int +! mch_can_exe(name, path, use_path) + char_u *name; + char_u **path; ++ int use_path; + { + /* TODO */ + return -1; +*** ../vim-7.4.671/src/os_msdos.c 2014-04-01 21:00:45.436733663 +0200 +--- src/os_msdos.c 2015-03-21 16:55:03.048056750 +0100 +*************** +*** 2942,2956 **** + + /* + * Return 1 if "name" can be executed, 0 if not. + * Return -1 if unknown. + */ + int +! mch_can_exe(name, path) + char_u *name; + char_u **path; + { + char *p; + + p = searchpath(name); + if (p == NULL || mch_isdir(p)) + return FALSE; +--- 2942,2965 ---- + + /* + * Return 1 if "name" can be executed, 0 if not. ++ * If "use_path" is FALSE only check if "name" is executable. + * Return -1 if unknown. + */ + int +! mch_can_exe(name, path, use_path) + char_u *name; + char_u **path; ++ int use_path; + { + char *p; ++ int mode; + ++ if (!use_path) ++ { ++ /* TODO: proper check if file is executable. */ ++ mode = vim_chmod(name); ++ return mode != -1 && (mode & FA_DIREC) == 0; ++ } + p = searchpath(name); + if (p == NULL || mch_isdir(p)) + return FALSE; +*** ../vim-7.4.671/src/os_unix.c 2015-03-20 16:26:48.974173903 +0100 +--- src/os_unix.c 2015-03-21 17:07:43.083443005 +0100 +*************** +*** 3104,3125 **** + + /* + * Return 1 if "name" can be found in $PATH and executed, 0 if not. + * Return -1 if unknown. + */ + int +! mch_can_exe(name, path) + char_u *name; + char_u **path; + { + char_u *buf; + char_u *p, *e; + int retval; + +! /* If it's an absolute or relative path don't need to use $PATH. */ +! if (mch_isFullName(name) || (name[0] == '.' && (name[1] == '/' +! || (name[1] == '.' && name[2] == '/')))) +! { +! if (executable_file(name)) + { + if (path != NULL) + { +--- 3104,3130 ---- + + /* + * Return 1 if "name" can be found in $PATH and executed, 0 if not. ++ * If "use_path" is FALSE only check if "name" is executable. + * Return -1 if unknown. + */ + int +! mch_can_exe(name, path, use_path) + char_u *name; + char_u **path; ++ int use_path; + { + char_u *buf; + char_u *p, *e; + int retval; + +! /* When "use_path" is false and if it's an absolute or relative path don't +! * need to use $PATH. */ +! if (!use_path || mch_isFullName(name) || (name[0] == '.' +! && (name[1] == '/' || (name[1] == '.' && name[2] == '/')))) +! { +! /* There must be a path separator, files in the current directory +! * can't be executed. */ +! if (gettail(name) != name && executable_file(name)) + { + if (path != NULL) + { +*************** +*** 5730,5736 **** + continue; + + /* Skip files that are not executable if we check for that. */ +! if (!dir && (flags & EW_EXEC) && !mch_can_exe(p, NULL)) + continue; + + if (--files_free == 0) +--- 5735,5742 ---- + continue; + + /* Skip files that are not executable if we check for that. */ +! if (!dir && (flags & EW_EXEC) +! && !mch_can_exe(p, NULL, !(flags & EW_SHELLCMD))) + continue; + + if (--files_free == 0) +*************** +*** 6230,6236 **** + continue; + + /* Skip files that are not executable if we check for that. */ +! if (!dir && (flags & EW_EXEC) && !mch_can_exe((*file)[i], NULL)) + continue; + + p = alloc((unsigned)(STRLEN((*file)[i]) + 1 + dir)); +--- 6236,6243 ---- + continue; + + /* Skip files that are not executable if we check for that. */ +! if (!dir && (flags & EW_EXEC) +! && !mch_can_exe((*file)[i], NULL, !(flags & EW_SHELLCMD))) + continue; + + p = alloc((unsigned)(STRLEN((*file)[i]) + 1 + dir)); +*** ../vim-7.4.671/src/os_vms.c 2014-11-12 16:10:44.258085148 +0100 +--- src/os_vms.c 2015-03-21 16:43:28.283924831 +0100 +*************** +*** 483,489 **** + continue; + + /* Skip files that are not executable if we check for that. */ +! if (!dir && (flags & EW_EXEC) && !mch_can_exe(vms_fmatch[i], NULL)) + continue; + + /* allocate memory for pointers */ +--- 483,490 ---- + continue; + + /* Skip files that are not executable if we check for that. */ +! if (!dir && (flags & EW_EXEC) +! && !mch_can_exe(vms_fmatch[i], NULL, !(flags & EW_SHELLCMD))) + continue; + + /* allocate memory for pointers */ +*** ../vim-7.4.671/src/proto/os_amiga.pro 2014-04-01 21:00:45.436733663 +0200 +--- src/proto/os_amiga.pro 2015-03-21 16:50:36.223078295 +0100 +*************** +*** 26,32 **** + void mch_hide __ARGS((char_u *name)); + int mch_isdir __ARGS((char_u *name)); + int mch_mkdir __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path)); + int mch_nodetype __ARGS((char_u *name)); + void mch_early_init __ARGS((void)); + void mch_exit __ARGS((int r)); +--- 26,32 ---- + void mch_hide __ARGS((char_u *name)); + int mch_isdir __ARGS((char_u *name)); + int mch_mkdir __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path, int use_path)); + int mch_nodetype __ARGS((char_u *name)); + void mch_early_init __ARGS((void)); + void mch_exit __ARGS((int r)); +*** ../vim-7.4.671/src/proto/os_msdos.pro 2014-04-01 21:00:45.436733663 +0200 +--- src/proto/os_msdos.pro 2015-03-21 16:50:39.659039386 +0100 +*************** +*** 38,44 **** + int mch_setperm __ARGS((char_u *name, long perm)); + void mch_hide __ARGS((char_u *name)); + int mch_isdir __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path)); + int mch_nodetype __ARGS((char_u *name)); + int mch_dirname __ARGS((char_u *buf, int len)); + int mch_remove __ARGS((char_u *name)); +--- 38,44 ---- + int mch_setperm __ARGS((char_u *name, long perm)); + void mch_hide __ARGS((char_u *name)); + int mch_isdir __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path, int use_path)); + int mch_nodetype __ARGS((char_u *name)); + int mch_dirname __ARGS((char_u *buf, int len)); + int mch_remove __ARGS((char_u *name)); +*** ../vim-7.4.671/src/proto/os_unix.pro 2014-04-01 21:00:45.440733663 +0200 +--- src/proto/os_unix.pro 2015-03-21 16:50:44.534984171 +0100 +*************** +*** 42,48 **** + void mch_free_acl __ARGS((vim_acl_T aclent)); + void mch_hide __ARGS((char_u *name)); + int mch_isdir __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path)); + int mch_nodetype __ARGS((char_u *name)); + void mch_early_init __ARGS((void)); + void mch_free_mem __ARGS((void)); +--- 42,48 ---- + void mch_free_acl __ARGS((vim_acl_T aclent)); + void mch_hide __ARGS((char_u *name)); + int mch_isdir __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path, int use_path)); + int mch_nodetype __ARGS((char_u *name)); + void mch_early_init __ARGS((void)); + void mch_free_mem __ARGS((void)); +*** ../vim-7.4.671/src/proto/os_win32.pro 2014-04-01 21:00:45.440733663 +0200 +--- src/proto/os_win32.pro 2015-03-21 16:50:48.558938605 +0100 +*************** +*** 26,32 **** + int mch_is_linked __ARGS((char_u *fname)); + int win32_fileinfo __ARGS((char_u *fname, BY_HANDLE_FILE_INFORMATION *info)); + int mch_writable __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path)); + int mch_nodetype __ARGS((char_u *name)); + vim_acl_T mch_get_acl __ARGS((char_u *fname)); + void mch_set_acl __ARGS((char_u *fname, vim_acl_T acl)); +--- 26,32 ---- + int mch_is_linked __ARGS((char_u *fname)); + int win32_fileinfo __ARGS((char_u *fname, BY_HANDLE_FILE_INFORMATION *info)); + int mch_writable __ARGS((char_u *name)); +! int mch_can_exe __ARGS((char_u *name, char_u **path, int use_path)); + int mch_nodetype __ARGS((char_u *name)); + vim_acl_T mch_get_acl __ARGS((char_u *fname)); + void mch_set_acl __ARGS((char_u *fname, vim_acl_T acl)); +*** ../vim-7.4.671/src/version.c 2015-03-21 14:20:11.524982691 +0100 +--- src/version.c 2015-03-21 15:54:19.693311748 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 672, + /**/ + +-- +ARTHUR: A scratch? Your arm's off! +BLACK KNIGHT: No, it isn't. +ARTHUR: Well, what's that then? +BLACK KNIGHT: I've had worse. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 24f3395919bee62bd3e46b6d9986f16edfdf37fd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 21 Mar 2015 18:00:05 +0100 Subject: [PATCH 0123/1407] - patchlevel 672 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 99b3cc93..3a6127ea 100644 --- a/README.patches +++ b/README.patches @@ -690,3 +690,7 @@ Individual patches for Vim 7.4: 2470 7.4.666 there is a chance that Vim may lock up 2109 7.4.667 'colorcolumn' isn't drawn in closed fold like 'cursorcolumn' 4671 7.4.668 can't use a glob pattern as a regexp pattern + 4296 7.4.669 when netbeans is active the sign column always shows up + 9924 7.4.670 using 'cindent' for Javascript is less than perfect + 2049 7.4.671 (after 7.4.665) warning for shadowing a variable + 13937 7.4.672 shell command completion does not see local directories diff --git a/vim.spec b/vim.spec index 6b15757e..e764d491 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 668 +%define patchlevel 672 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -715,6 +715,10 @@ Patch665: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.665 Patch666: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.666 Patch667: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.667 Patch668: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.668 +Patch669: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.669 +Patch670: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.670 +Patch671: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.671 +Patch672: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.672 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1533,6 +1537,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch666 -p0 %patch667 -p0 %patch668 -p0 +%patch669 -p0 +%patch670 -p0 +%patch671 -p0 +%patch672 -p0 # install spell files %if %{withvimspell} @@ -2050,6 +2058,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Mar 21 2015 Karsten Hopp 7.4.672-1 +- patchlevel 672 + * Fri Mar 20 2015 Karsten Hopp 7.4.668-1 - patchlevel 668 From fe0d1466fafbba0d1bc4bec2a52ce55ca9536dfb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 22 Mar 2015 18:00:03 +0100 Subject: [PATCH 0124/1407] - patchlevel 673 --- 7.4.673 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.673 diff --git a/7.4.673 b/7.4.673 new file mode 100644 index 00000000..b2232ca5 --- /dev/null +++ b/7.4.673 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.673 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.673 +Problem: The first syntax entry gets sequence number zero, which doesn't + work. (Clinton McKay) +Solution: Start at number one. (Bjorn Linse) +Files: src/syntax.c + + +*** ../vim-7.4.672/src/syntax.c 2015-03-13 12:53:32.271786748 +0100 +--- src/syntax.c 2015-03-21 21:43:25.028260237 +0100 +*************** +*** 311,317 **** + but contained groups */ + + #ifdef FEAT_CONCEAL +! static int next_seqnr = 0; /* value to use for si_seqnr */ + #endif + + /* +--- 311,317 ---- + but contained groups */ + + #ifdef FEAT_CONCEAL +! static int next_seqnr = 1; /* value to use for si_seqnr */ + #endif + + /* +*** ../vim-7.4.672/src/version.c 2015-03-21 17:32:14.066779916 +0100 +--- src/version.c 2015-03-21 21:46:00.846499567 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 673, + /**/ + +-- +5 out of 4 people have trouble with fractions. + + /// 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 /// From bd335248e0e68f8ffa271c5b9ce4945ae67c9c00 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 22 Mar 2015 18:00:03 +0100 Subject: [PATCH 0125/1407] - patchlevel 674 --- 7.4.674 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.4.674 diff --git a/7.4.674 b/7.4.674 new file mode 100644 index 00000000..b27a7bca --- /dev/null +++ b/7.4.674 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.674 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.674 (after 7.4.672) +Problem: Missing changes in one file. +Solution: Also change the win32 file. +Files: src/os_win32.c + + +*** ../vim-7.4.673/src/os_win32.c 2015-01-20 19:39:31.651524062 +0100 +--- src/os_win32.c 2015-03-21 16:56:22.139160233 +0100 +*************** +*** 3378,3387 **** + + /* + * Return 1 if "name" can be executed, 0 if not. + * Return -1 if unknown. + */ + int +! mch_can_exe(char_u *name, char_u **path) + { + char_u buf[_MAX_PATH]; + int len = (int)STRLEN(name); +--- 3378,3388 ---- + + /* + * Return 1 if "name" can be executed, 0 if not. ++ * If "use_path" is FALSE only check if "name" is executable. + * Return -1 if unknown. + */ + int +! mch_can_exe(char_u *name, char_u **path, int use_path) + { + char_u buf[_MAX_PATH]; + int len = (int)STRLEN(name); +*************** +*** 3389,3394 **** +--- 3390,3400 ---- + + if (len >= _MAX_PATH) /* safety check */ + return FALSE; ++ if (!use_path) ++ { ++ /* TODO: check if file is really executable. */ ++ return mch_getperm(name) != -1 && !mch_isdir(name); ++ } + + /* If there already is an extension try using the name directly. Also do + * this with a Unix-shell like 'shell'. */ +*** ../vim-7.4.673/src/version.c 2015-03-21 21:46:07.566423633 +0100 +--- src/version.c 2015-03-21 22:16:29.749822253 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 674, + /**/ + +-- +Advice to worms: Sleep late. + + /// 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 /// From be530c07318495e7d90b28d692dd1e0cc26f2a0a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 22 Mar 2015 18:00:04 +0100 Subject: [PATCH 0126/1407] - patchlevel 674 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 3a6127ea..c565746d 100644 --- a/README.patches +++ b/README.patches @@ -694,3 +694,5 @@ Individual patches for Vim 7.4: 9924 7.4.670 using 'cindent' for Javascript is less than perfect 2049 7.4.671 (after 7.4.665) warning for shadowing a variable 13937 7.4.672 shell command completion does not see local directories + 1459 7.4.673 first syntax entry gets wrong sequence number zero + 2019 7.4.674 (after 7.4.672) missing changes in one file diff --git a/vim.spec b/vim.spec index e764d491..ec5d3dc3 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 672 +%define patchlevel 674 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -719,6 +719,8 @@ Patch669: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.669 Patch670: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.670 Patch671: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.671 Patch672: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.672 +Patch673: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.673 +Patch674: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.674 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1541,6 +1543,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch670 -p0 %patch671 -p0 %patch672 -p0 +%patch673 -p0 +%patch674 -p0 # install spell files %if %{withvimspell} @@ -2058,6 +2062,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Mar 22 2015 Karsten Hopp 7.4.674-1 +- patchlevel 674 + * Sat Mar 21 2015 Karsten Hopp 7.4.672-1 - patchlevel 672 From a84c036ba00e7a399e450ba3153db8ff22b18a82 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:03 +0100 Subject: [PATCH 0127/1407] - patchlevel 675 --- 7.4.675 | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 7.4.675 diff --git a/7.4.675 b/7.4.675 new file mode 100644 index 00000000..f9a5c756 --- /dev/null +++ b/7.4.675 @@ -0,0 +1,93 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.675 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.675 +Problem: When a FileReadPost autocommand moves the cursor inside a line it + gets moved back. +Solution: When checking whether an autocommand moved the cursor store the + column as well. (Christian Brabandt) +Files: src/ex_cmds.c + + +*** ../vim-7.4.674/src/ex_cmds.c 2015-02-27 19:34:51.464777369 +0100 +--- src/ex_cmds.c 2015-03-24 11:42:38.796239766 +0100 +*************** +*** 3185,3191 **** + #endif + int retval = FAIL; + long n; +! linenr_T lnum; + linenr_T topline = 0; + int newcol = -1; + int solcol = -1; +--- 3185,3191 ---- + #endif + int retval = FAIL; + long n; +! pos_T orig_pos; + linenr_T topline = 0; + int newcol = -1; + int solcol = -1; +*************** +*** 3678,3684 **** + * Careful: open_buffer() and apply_autocmds() may change the current + * buffer and window. + */ +! lnum = curwin->w_cursor.lnum; + topline = curwin->w_topline; + if (!oldbuf) /* need to read the file */ + { +--- 3678,3684 ---- + * Careful: open_buffer() and apply_autocmds() may change the current + * buffer and window. + */ +! orig_pos = curwin->w_cursor; + topline = curwin->w_topline; + if (!oldbuf) /* need to read the file */ + { +*************** +*** 3719,3729 **** + check_arg_idx(curwin); + #endif + +! /* +! * If autocommands change the cursor position or topline, we should +! * keep it. +! */ +! if (curwin->w_cursor.lnum != lnum) + { + newlnum = curwin->w_cursor.lnum; + newcol = curwin->w_cursor.col; +--- 3719,3727 ---- + check_arg_idx(curwin); + #endif + +! /* If autocommands change the cursor position or topline, we should +! * keep it. Also when it moves within a line. */ +! if (!equalpos(curwin->w_cursor, orig_pos)) + { + newlnum = curwin->w_cursor.lnum; + newcol = curwin->w_cursor.col; +*** ../vim-7.4.674/src/version.c 2015-03-21 22:18:37.808371766 +0100 +--- src/version.c 2015-03-24 11:44:14.240327255 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 675, + /**/ + +-- +There are three kinds of people: Those who can count & those who can't. + + /// 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 /// From fb2c790a57464db4cbc0366ae06b45e26cb285cc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:04 +0100 Subject: [PATCH 0128/1407] - patchlevel 676 --- 7.4.676 | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 7.4.676 diff --git a/7.4.676 b/7.4.676 new file mode 100644 index 00000000..3da7e406 --- /dev/null +++ b/7.4.676 @@ -0,0 +1,124 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.676 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.676 +Problem: On Mac, when not using the default Python framework configure + doesn't do the right thing. +Solution: Use a linker search path. (Kazunobu Kuriyama) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.4.675/src/configure.in 2015-03-05 16:47:15.764151809 +0100 +--- src/configure.in 2015-03-24 12:14:13.317567690 +0100 +*************** +*** 1126,1131 **** +--- 1126,1134 ---- + @echo "python_LINKFORSHARED='$(LINKFORSHARED)'" + @echo "python_DLLLIBRARY='$(DLLLIBRARY)'" + @echo "python_INSTSONAME='$(INSTSONAME)'" ++ @echo "python_PYTHONFRAMEWORK='$(PYTHONFRAMEWORK)'" ++ @echo "python_PYTHONFRAMEWORKPREFIX='$(PYTHONFRAMEWORKPREFIX)'" ++ @echo "python_PYTHONFRAMEWORKINSTALLDIR='$(PYTHONFRAMEWORKINSTALLDIR)'" + eof + dnl -- delete the lines from make about Entering/Leaving directory + eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`" +*************** +*** 1133,1144 **** +--- 1136,1169 ---- + if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \ + "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then + vi_cv_path_python_plibs="-framework Python" ++ if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then ++ vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python" ++ fi + else + if test "${vi_cv_var_python_version}" = "1.4"; then + vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a" + else + vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}" + fi ++ dnl -- Check if the path contained in python_LINKFORSHARED is ++ dnl usable for vim build. If not, make and try other ++ dnl candidates. ++ if test -n "${python_LINKFORSHARED}"; then ++ python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([[^ \t]][[^ \t]]*[[ \t]][[ \t]]*[[^ \t]][[^ \t]]*\)[[ \t]].*/\1/'` ++ python_link_path=`echo ${python_LINKFORSHARED} | sed 's/\([[^ \t]][[^ \t]]*[[ \t]][[ \t]]*[[^ \t]][[^ \t]]*\)[[ \t]][[ \t]]*\(.*\)/\2/'` ++ if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then ++ dnl -- The path looks relative. Guess the absolute one using ++ dnl the prefix and try that. ++ python_link_path="${python_PYTHONFRAMEWORKPREFIX}/${python_link_path}" ++ if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then ++ dnl -- A last resort. ++ python_link_path="${python_PYTHONFRAMEWORKINSTALLDIR}/Versions/${vi_cv_var_python_version}/${python_PYTHONFRAMEWORK}" ++ dnl -- No check is done. The last word is left to the ++ dnl "sanity" test on link flags that follows shortly. ++ fi ++ python_LINKFORSHARED="${python_link_symbol} ${python_link_path}" ++ fi ++ fi + vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}" + dnl remove -ltermcap, it can conflict with an earlier -lncurses + vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//` +*** ../vim-7.4.675/src/auto/configure 2015-03-05 16:47:15.768151744 +0100 +--- src/auto/configure 2015-03-24 12:14:19.901586591 +0100 +*************** +*** 5888,5905 **** +--- 5888,5922 ---- + @echo "python_LINKFORSHARED='$(LINKFORSHARED)'" + @echo "python_DLLLIBRARY='$(DLLLIBRARY)'" + @echo "python_INSTSONAME='$(INSTSONAME)'" ++ @echo "python_PYTHONFRAMEWORK='$(PYTHONFRAMEWORK)'" ++ @echo "python_PYTHONFRAMEWORKPREFIX='$(PYTHONFRAMEWORKPREFIX)'" ++ @echo "python_PYTHONFRAMEWORKINSTALLDIR='$(PYTHONFRAMEWORKINSTALLDIR)'" + eof + eval "`cd ${PYTHON_CONFDIR} && make -f "${tmp_mkf}" __ | sed '/ directory /d'`" + rm -f -- "${tmp_mkf}" + if test "x$MACOSX" = "xyes" && ${vi_cv_path_python} -c \ + "import sys; sys.exit(${vi_cv_var_python_version} < 2.3)"; then + vi_cv_path_python_plibs="-framework Python" ++ if test "x${vi_cv_path_python}" != "x/usr/bin/python" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then ++ vi_cv_path_python_plibs="-F${python_PYTHONFRAMEWORKPREFIX} -framework Python" ++ fi + else + if test "${vi_cv_var_python_version}" = "1.4"; then + vi_cv_path_python_plibs="${PYTHON_CONFDIR}/libModules.a ${PYTHON_CONFDIR}/libPython.a ${PYTHON_CONFDIR}/libObjects.a ${PYTHON_CONFDIR}/libParser.a" + else + vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}" + fi ++ if test -n "${python_LINKFORSHARED}"; then ++ python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t].*/\1/'` ++ python_link_path=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t][ \t]*\(.*\)/\2/'` ++ if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then ++ python_link_path="${python_PYTHONFRAMEWORKPREFIX}/${python_link_path}" ++ if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then ++ python_link_path="${python_PYTHONFRAMEWORKINSTALLDIR}/Versions/${vi_cv_var_python_version}/${python_PYTHONFRAMEWORK}" ++ fi ++ python_LINKFORSHARED="${python_link_symbol} ${python_link_path}" ++ fi ++ fi + vi_cv_path_python_plibs="${vi_cv_path_python_plibs} ${python_BASEMODLIBS} ${python_LIBS} ${python_SYSLIBS} ${python_LINKFORSHARED}" + vi_cv_path_python_plibs=`echo $vi_cv_path_python_plibs | sed s/-ltermcap//` + fi +*** ../vim-7.4.675/src/version.c 2015-03-24 11:46:21.712636141 +0100 +--- src/version.c 2015-03-24 12:19:02.901966841 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 676, + /**/ + +-- +Be nice to your kids... they'll be the ones choosing your nursing home. + + /// 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 /// From c04c8e03361af990124809a3f4adcf3d3b044adf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:04 +0100 Subject: [PATCH 0129/1407] - patchlevel 677 --- 7.4.677 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.4.677 diff --git a/7.4.677 b/7.4.677 new file mode 100644 index 00000000..d42e54a8 --- /dev/null +++ b/7.4.677 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.677 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.677 (after 7.4.676) +Problem: Configure fails when specifying a python-config-dir. (Lcd) +Solution: Check if PYTHONFRAMEWORKPREFIX is set. +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.4.676/src/configure.in 2015-03-24 12:21:27.957381493 +0100 +--- src/configure.in 2015-03-24 15:09:49.628883283 +0100 +*************** +*** 1148,1154 **** + dnl -- Check if the path contained in python_LINKFORSHARED is + dnl usable for vim build. If not, make and try other + dnl candidates. +! if test -n "${python_LINKFORSHARED}"; then + python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([[^ \t]][[^ \t]]*[[ \t]][[ \t]]*[[^ \t]][[^ \t]]*\)[[ \t]].*/\1/'` + python_link_path=`echo ${python_LINKFORSHARED} | sed 's/\([[^ \t]][[^ \t]]*[[ \t]][[ \t]]*[[^ \t]][[^ \t]]*\)[[ \t]][[ \t]]*\(.*\)/\2/'` + if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then +--- 1148,1154 ---- + dnl -- Check if the path contained in python_LINKFORSHARED is + dnl usable for vim build. If not, make and try other + dnl candidates. +! if test -n "${python_LINKFORSHARED}" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then + python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([[^ \t]][[^ \t]]*[[ \t]][[ \t]]*[[^ \t]][[^ \t]]*\)[[ \t]].*/\1/'` + python_link_path=`echo ${python_LINKFORSHARED} | sed 's/\([[^ \t]][[^ \t]]*[[ \t]][[ \t]]*[[^ \t]][[^ \t]]*\)[[ \t]][[ \t]]*\(.*\)/\2/'` + if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then +*** ../vim-7.4.676/src/auto/configure 2015-03-24 12:21:27.965381491 +0100 +--- src/auto/configure 2015-03-24 15:09:54.956801317 +0100 +*************** +*** 5906,5912 **** + else + vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}" + fi +! if test -n "${python_LINKFORSHARED}"; then + python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t].*/\1/'` + python_link_path=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t][ \t]*\(.*\)/\2/'` + if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then +--- 5906,5912 ---- + else + vi_cv_path_python_plibs="-L${PYTHON_CONFDIR} -lpython${vi_cv_var_python_version}" + fi +! if test -n "${python_LINKFORSHARED}" && test -n "${python_PYTHONFRAMEWORKPREFIX}"; then + python_link_symbol=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t].*/\1/'` + python_link_path=`echo ${python_LINKFORSHARED} | sed 's/\([^ \t][^ \t]*[ \t][ \t]*[^ \t][^ \t]*\)[ \t][ \t]*\(.*\)/\2/'` + if test -n "${python_link_path}" && ! test -x "${python_link_path}"; then +*** ../vim-7.4.676/src/version.c 2015-03-24 12:21:27.969381475 +0100 +--- src/version.c 2015-03-24 15:13:21.189909403 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 677, + /**/ + +-- +Two cows are standing together in a field. One asks the other: +"So what do you think about this Mad Cow Disease?" +The other replies: "That doesn't concern me. I'm a helicopter." + + /// 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 /// From 19930d3b9b04105fa69769ea3ff75c6a3930ba5e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:04 +0100 Subject: [PATCH 0130/1407] - patchlevel 678 --- 7.4.678 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.678 diff --git a/7.4.678 b/7.4.678 new file mode 100644 index 00000000..2410306d --- /dev/null +++ b/7.4.678 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.678 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.678 +Problem: When using --remote the directory may end up being wrong. +Solution: Use localdir() to find out what to do. (Xaizek) +Files: src/main.c + + +*** ../vim-7.4.677/src/main.c 2015-02-10 19:26:58.918748560 +0100 +--- src/main.c 2015-03-24 16:39:38.547390528 +0100 +*************** +*** 3914,3919 **** +--- 3914,3920 ---- + int i; + char_u *inicmd = NULL; + char_u *p; ++ char_u *cdp; + char_u *cwd; + + if (filec > 0 && filev[0][0] == '+') +*************** +*** 3935,3941 **** + vim_free(cwd); + return NULL; + } +! p = vim_strsave_escaped_ext(cwd, + #ifdef BACKSLASH_IN_FILENAME + "", /* rem_backslash() will tell what chars to escape */ + #else +--- 3936,3942 ---- + vim_free(cwd); + return NULL; + } +! cdp = vim_strsave_escaped_ext(cwd, + #ifdef BACKSLASH_IN_FILENAME + "", /* rem_backslash() will tell what chars to escape */ + #else +*************** +*** 3943,3954 **** + #endif + '\\', TRUE); + vim_free(cwd); +! if (p == NULL) + return NULL; + ga_init2(&ga, 1, 100); + ga_concat(&ga, (char_u *)":cd "); +! ga_concat(&ga, p); +! vim_free(p); + + /* Call inputsave() so that a prompt for an encryption key works. */ + ga_concat(&ga, (char_u *)":if exists('*inputsave')|call inputsave()|endif|"); +--- 3944,3954 ---- + #endif + '\\', TRUE); + vim_free(cwd); +! if (cdp == NULL) + return NULL; + ga_init2(&ga, 1, 100); + ga_concat(&ga, (char_u *)":cd "); +! ga_concat(&ga, cdp); + + /* Call inputsave() so that a prompt for an encryption key works. */ + ga_concat(&ga, (char_u *)":if exists('*inputsave')|call inputsave()|endif|"); +*************** +*** 3984,3991 **** + + /* Switch back to the correct current directory (prior to temporary path + * switch) unless 'autochdir' is set, in which case it will already be +! * correct after the :drop command. */ +! ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|cd -|endif"); + + if (sendReply) + ga_concat(&ga, (char_u *)":call SetupRemoteReplies()"); +--- 3984,4004 ---- + + /* Switch back to the correct current directory (prior to temporary path + * switch) unless 'autochdir' is set, in which case it will already be +! * correct after the :drop command. With line breaks and spaces: +! * if !exists('+acd') || !&acd +! * if haslocaldir() +! * cd - +! * lcd - +! * elseif getcwd() ==# "current path" +! * cd - +! * endif +! * endif +! */ +! ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|"); +! ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# \""); +! ga_concat(&ga, cdp); +! ga_concat(&ga, (char_u *)"\"|cd -|endif|endif"); +! vim_free(cdp); + + if (sendReply) + ga_concat(&ga, (char_u *)":call SetupRemoteReplies()"); +*** ../vim-7.4.677/src/version.c 2015-03-24 15:14:19.189039146 +0100 +--- src/version.c 2015-03-24 16:32:25.535659083 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 678, + /**/ + +-- +Michael: There is no such thing as a dump question. +Bernard: Sure there is. For example "what is a core dump?" + + /// 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 /// From ca29de2f6f588d4880fd5ce54e9aac5a6cf79892 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:04 +0100 Subject: [PATCH 0131/1407] - patchlevel 679 --- 7.4.679 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.4.679 diff --git a/7.4.679 b/7.4.679 new file mode 100644 index 00000000..0c2d24e7 --- /dev/null +++ b/7.4.679 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.679 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.679 +Problem: Color values greater than 255 cause problems on MS-Windows. +Solution: Truncate to 255 colors. (Yasuhiro Matsumoto) +Files: src/os_win32.c + + +*** ../vim-7.4.678/src/os_win32.c 2015-03-21 22:18:37.808371766 +0100 +--- src/os_win32.c 2015-03-24 17:10:04.870555251 +0100 +*************** +*** 5262,5268 **** + static void + textattr(WORD wAttr) + { +! g_attrCurrent = wAttr; + + SetConsoleTextAttribute(g_hConOut, wAttr); + } +--- 5262,5268 ---- + static void + textattr(WORD wAttr) + { +! g_attrCurrent = wAttr & 0xff; + + SetConsoleTextAttribute(g_hConOut, wAttr); + } +*************** +*** 5271,5277 **** + static void + textcolor(WORD wAttr) + { +! g_attrCurrent = (g_attrCurrent & 0xf0) + wAttr; + + SetConsoleTextAttribute(g_hConOut, g_attrCurrent); + } +--- 5271,5277 ---- + static void + textcolor(WORD wAttr) + { +! g_attrCurrent = (g_attrCurrent & 0xf0) + (wAttr & 0x0f); + + SetConsoleTextAttribute(g_hConOut, g_attrCurrent); + } +*************** +*** 5280,5286 **** + static void + textbackground(WORD wAttr) + { +! g_attrCurrent = (g_attrCurrent & 0x0f) + (wAttr << 4); + + SetConsoleTextAttribute(g_hConOut, g_attrCurrent); + } +--- 5280,5286 ---- + static void + textbackground(WORD wAttr) + { +! g_attrCurrent = (g_attrCurrent & 0x0f) + ((wAttr & 0x0f) << 4); + + SetConsoleTextAttribute(g_hConOut, g_attrCurrent); + } +*** ../vim-7.4.678/src/version.c 2015-03-24 16:48:16.973934896 +0100 +--- src/version.c 2015-03-24 17:09:45.470788914 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 679, + /**/ + +-- +ARTHUR: Did you say shrubberies? +ROGER: Yes. Shrubberies are my trade. I am a shrubber. My name is Roger + the Shrubber. I arrange, design, and sell shrubberies. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 45e71ca74813af8e9dc660b2cf51ea77ebfaa1b3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:04 +0100 Subject: [PATCH 0132/1407] - patchlevel 680 --- 7.4.680 | 348 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 348 insertions(+) create mode 100644 7.4.680 diff --git a/7.4.680 b/7.4.680 new file mode 100644 index 00000000..f451c325 --- /dev/null +++ b/7.4.680 @@ -0,0 +1,348 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.680 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.680 +Problem: CTRL-W in Insert mode does not work well for multi-byte + characters. +Solution: Use mb_get_class(). (Yasuhiro Matsumoto) +Files: src/edit.c, src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile, + src/testdir/test_erasebackword.in, + src/testdir/test_erasebackword.ok, + + +*** ../vim-7.4.679/src/edit.c 2015-03-20 18:11:44.967196356 +0100 +--- src/edit.c 2015-03-24 17:40:27.705563807 +0100 +*************** +*** 9047,9118 **** + /* + * Delete upto starting point, start of line or previous word. + */ +! else do + { + #ifdef FEAT_RIGHTLEFT +! if (!revins_on) /* put cursor on char to be deleted */ + #endif +! dec_cursor(); + +! /* start of word? */ +! if (mode == BACKSPACE_WORD && !vim_isspace(gchar_cursor())) +! { +! mode = BACKSPACE_WORD_NOT_SPACE; +! temp = vim_iswordc(gchar_cursor()); +! } +! /* end of word? */ +! else if (mode == BACKSPACE_WORD_NOT_SPACE +! && (vim_isspace(cc = gchar_cursor()) +! || vim_iswordc(cc) != temp)) +! { + #ifdef FEAT_RIGHTLEFT +! if (!revins_on) + #endif +! inc_cursor(); + #ifdef FEAT_RIGHTLEFT +! else if (State & REPLACE_FLAG) +! dec_cursor(); + #endif +! break; +! } +! if (State & REPLACE_FLAG) +! replace_do_bs(-1); +! else +! { + #ifdef FEAT_MBYTE +! if (enc_utf8 && p_deco) +! (void)utfc_ptr2char(ml_get_cursor(), cpc); + #endif +! (void)del_char(FALSE); + #ifdef FEAT_MBYTE +! /* +! * If there are combining characters and 'delcombine' is set +! * move the cursor back. Don't back up before the base +! * character. +! */ +! if (enc_utf8 && p_deco && cpc[0] != NUL) +! inc_cursor(); + #endif + #ifdef FEAT_RIGHTLEFT +! if (revins_chars) +! { +! revins_chars--; +! revins_legal++; + } +! if (revins_on && gchar_cursor() == NUL) + break; +! #endif +! } +! /* Just a single backspace?: */ +! if (mode == BACKSPACE_CHAR) +! break; +! } while ( + #ifdef FEAT_RIGHTLEFT +! revins_on || + #endif +! (curwin->w_cursor.col > mincol +! && (curwin->w_cursor.lnum != Insstart_orig.lnum +! || curwin->w_cursor.col != Insstart_orig.col))); + did_backspace = TRUE; + } + #ifdef FEAT_SMARTINDENT +--- 9047,9140 ---- + /* + * Delete upto starting point, start of line or previous word. + */ +! else + { ++ #ifdef FEAT_MBYTE ++ int cclass = 0, prev_cclass = 0; ++ ++ if (has_mbyte) ++ cclass = mb_get_class(ml_get_cursor()); ++ #endif ++ do ++ { + #ifdef FEAT_RIGHTLEFT +! if (!revins_on) /* put cursor on char to be deleted */ + #endif +! dec_cursor(); + +! cc = gchar_cursor(); +! #ifdef FEAT_MBYTE +! /* look multi-byte character class */ +! if (has_mbyte) +! { +! prev_cclass = cclass; +! cclass = mb_get_class(ml_get_cursor()); +! } +! #endif +! +! /* start of word? */ +! if (mode == BACKSPACE_WORD && !vim_isspace(cc)) +! { +! mode = BACKSPACE_WORD_NOT_SPACE; +! temp = vim_iswordc(cc); +! } +! /* end of word? */ +! else if (mode == BACKSPACE_WORD_NOT_SPACE +! && ((vim_isspace(cc) || vim_iswordc(cc) != temp) +! #ifdef FEAT_MBYTE +! || prev_cclass != cclass +! #endif +! )) +! { + #ifdef FEAT_RIGHTLEFT +! if (!revins_on) + #endif +! inc_cursor(); + #ifdef FEAT_RIGHTLEFT +! else if (State & REPLACE_FLAG) +! dec_cursor(); + #endif +! break; +! } +! if (State & REPLACE_FLAG) +! replace_do_bs(-1); +! else +! { + #ifdef FEAT_MBYTE +! if (enc_utf8 && p_deco) +! (void)utfc_ptr2char(ml_get_cursor(), cpc); + #endif +! (void)del_char(FALSE); + #ifdef FEAT_MBYTE +! /* +! * If there are combining characters and 'delcombine' is set +! * move the cursor back. Don't back up before the base +! * character. +! */ +! if (enc_utf8 && p_deco && cpc[0] != NUL) +! inc_cursor(); + #endif + #ifdef FEAT_RIGHTLEFT +! if (revins_chars) +! { +! revins_chars--; +! revins_legal++; +! } +! if (revins_on && gchar_cursor() == NUL) +! break; +! #endif + } +! /* Just a single backspace?: */ +! if (mode == BACKSPACE_CHAR) + break; +! } while ( + #ifdef FEAT_RIGHTLEFT +! revins_on || + #endif +! (curwin->w_cursor.col > mincol +! && (curwin->w_cursor.lnum != Insstart_orig.lnum +! || curwin->w_cursor.col != Insstart_orig.col))); +! } + did_backspace = TRUE; + } + #ifdef FEAT_SMARTINDENT +*** ../vim-7.4.679/src/testdir/Make_amiga.mak 2015-03-13 15:02:46.254059251 +0100 +--- src/testdir/Make_amiga.mak 2015-03-24 17:36:08.200314390 +0100 +*************** +*** 43,48 **** +--- 43,49 ---- + test_changelist.out \ + test_close_count.out \ + test_command_count.out \ ++ test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*************** +*** 185,190 **** +--- 186,192 ---- + test_changelist.out: test_changelist.in + test_close_count.out: test_close_count.in + test_command_count.out: test_command_count.in ++ test_erasebackword.out: test_erasebackword.in + test_eval.out: test_eval.in + test_insertcount.out: test_insertcount.in + test_listlbr.out: test_listlbr.in +*** ../vim-7.4.679/src/testdir/Make_dos.mak 2015-03-13 15:02:46.258059206 +0100 +--- src/testdir/Make_dos.mak 2015-03-24 17:36:16.360226912 +0100 +*************** +*** 42,47 **** +--- 42,48 ---- + test_changelist.out \ + test_close_count.out \ + test_command_count.out \ ++ test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.679/src/testdir/Make_ming.mak 2015-03-13 15:02:46.258059206 +0100 +--- src/testdir/Make_ming.mak 2015-03-24 17:36:20.296184745 +0100 +*************** +*** 64,69 **** +--- 64,70 ---- + test_changelist.out \ + test_close_count.out \ + test_command_count.out \ ++ test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.679/src/testdir/Make_os2.mak 2015-03-13 15:02:46.258059206 +0100 +--- src/testdir/Make_os2.mak 2015-03-24 17:36:22.864157273 +0100 +*************** +*** 44,49 **** +--- 44,50 ---- + test_changelist.out \ + test_close_count.out \ + test_command_count.out \ ++ test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.679/src/testdir/Make_vms.mms 2015-03-13 15:02:46.258059206 +0100 +--- src/testdir/Make_vms.mms 2015-03-24 17:36:33.368044688 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Mar 13 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Mar 24 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 103,108 **** +--- 103,109 ---- + test_changelist.out \ + test_close_count.out \ + test_command_count.out \ ++ test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.679/src/testdir/Makefile 2015-03-13 15:02:46.258059206 +0100 +--- src/testdir/Makefile 2015-03-24 17:36:58.747773608 +0100 +*************** +*** 40,45 **** +--- 40,46 ---- + test_changelist.out \ + test_close_count.out \ + test_command_count.out \ ++ test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.679/src/testdir/test_erasebackword.in 2015-03-24 17:49:11.672057691 +0100 +--- src/testdir/test_erasebackword.in 2015-01-30 03:19:14.000000000 +0100 +*************** +*** 0 **** +--- 1,19 ---- ++ Test for erasing backword ++ ++ STARTTEST ++ :so small.vim ++ :so mbyte.vim ++ :set encoding=utf-8 ++ G ++ o wwwã“ã‚“ã«ã¡ã‚世界ワールドvim  ++ o wwwã“ã‚“ã«ã¡ã‚世界ワールドvim  ++ o wwwã“ã‚“ã«ã¡ã‚世界ワールドvim  ++ o wwwã“ã‚“ã«ã¡ã‚世界ワールドvim  ++ o wwwã“ã‚“ã«ã¡ã‚世界ワールドvim  ++ o wwwã“ã‚“ã«ã¡ã‚世界ワールドvim  ++ :/^test/,$w! test.out ++ :qa! ++ ENDTEST ++ ++ test starts here: ++ +*** ../vim-7.4.679/src/testdir/test_erasebackword.ok 2015-03-24 17:49:11.676057649 +0100 +--- src/testdir/test_erasebackword.ok 2015-01-30 03:19:33.000000000 +0100 +*************** +*** 0 **** +--- 1,8 ---- ++ test starts here: ++ ++ wwwã“ã‚“ã«ã¡ã‚世界ワールド ++ wwwã“ã‚“ã«ã¡ã‚世界 ++ wwwã“ã‚“ã«ã¡ã‚ ++ www ++ ++ +*** ../vim-7.4.679/src/version.c 2015-03-24 17:12:04.477113277 +0100 +--- src/version.c 2015-03-24 17:17:06.769333643 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 680, + /**/ + +-- +TALL KNIGHT: We are now no longer the Knights Who Say Ni! +ONE KNIGHT: Ni! +OTHERS: Sh! +ONE KNIGHT: (whispers) Sorry. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From e4053bc5a9d5f81e78e13a4339bc9301456ea20d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:05 +0100 Subject: [PATCH 0133/1407] - patchlevel 681 --- 7.4.681 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.4.681 diff --git a/7.4.681 b/7.4.681 new file mode 100644 index 00000000..417c53e9 --- /dev/null +++ b/7.4.681 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.681 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.681 +Problem: MS-Windows: When Vim is minimized the window height is computed + incorrectly. +Solution: When minimized use the previously computed size. (Ingo Karkat) +Files: src/gui_w32.c + + +*** ../vim-7.4.680/src/gui_w32.c 2014-11-12 16:10:44.258085148 +0100 +--- src/gui_w32.c 2015-03-24 17:56:24.915296832 +0100 +*************** +*** 598,603 **** +--- 598,611 ---- + + if (num == 0) + menu_height = 0; ++ else if (IsMinimized(s_hwnd)) ++ { ++ /* The height of the menu cannot be determined while the window is ++ * minimized. Take the previous height if the menu is changed in that ++ * state, to avoid that Vim's vertical window size accidentally ++ * increases due to the unaccounted-for menu height. */ ++ menu_height = old_menu_height == -1 ? 0 : old_menu_height; ++ } + else + { + if (is_winnt_3()) /* for NT 3.xx */ +*************** +*** 644,652 **** + + if (fix_window && menu_height != old_menu_height) + { +- old_menu_height = menu_height; + gui_set_shellsize(FALSE, FALSE, RESIZE_VERT); + } + + return menu_height; + } +--- 652,660 ---- + + if (fix_window && menu_height != old_menu_height) + { + gui_set_shellsize(FALSE, FALSE, RESIZE_VERT); + } ++ old_menu_height = menu_height; + + return menu_height; + } +*** ../vim-7.4.680/src/version.c 2015-03-24 17:49:39.611748618 +0100 +--- src/version.c 2015-03-24 17:54:39.584448182 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 681, + /**/ + +-- +TALL KNIGHT: Firstly. You must get us another shrubbery! +OTHER KNIGHTS: More shrubberies! More shrubberies for the ex-Knights of Ni! +ARTHUR: Not another shrubbery - + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 3cca53167050f38d8cbd967d93995fec6618045a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 24 Mar 2015 18:00:05 +0100 Subject: [PATCH 0134/1407] - patchlevel 681 --- README.patches | 7 +++++++ vim.spec | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index c565746d..88cd947c 100644 --- a/README.patches +++ b/README.patches @@ -696,3 +696,10 @@ Individual patches for Vim 7.4: 13937 7.4.672 shell command completion does not see local directories 1459 7.4.673 first syntax entry gets wrong sequence number zero 2019 7.4.674 (after 7.4.672) missing changes in one file + 2676 7.4.675 when FileReadPost moves cursor inside line it gets moved back + 6606 7.4.676 on Mac, configure can't handle non-default Python framework + 3820 7.4.677 (after 7.4.676) configure fails when using python-config-dir + 3797 7.4.678 when using --remote the directory may end up being wrong + 2444 7.4.679 color values greater than 255 cause problems on MS-Windows + 9657 7.4.680 CTRL-W in Insert mode does not work well for multi-byte chars + 2327 7.4.681 MS-Windows: with minimized Vim window height is incorrect diff --git a/vim.spec b/vim.spec index ec5d3dc3..d8d68c7a 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 674 +%define patchlevel 681 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -721,6 +721,13 @@ Patch671: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.671 Patch672: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.672 Patch673: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.673 Patch674: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.674 +Patch675: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.675 +Patch676: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.676 +Patch677: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.677 +Patch678: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.678 +Patch679: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.679 +Patch680: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.680 +Patch681: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.681 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1545,6 +1552,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch672 -p0 %patch673 -p0 %patch674 -p0 +%patch675 -p0 +%patch676 -p0 +%patch677 -p0 +%patch678 -p0 +%patch679 -p0 +%patch680 -p0 +%patch681 -p0 # install spell files %if %{withvimspell} @@ -2062,6 +2076,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Mar 24 2015 Karsten Hopp 7.4.681-1 +- patchlevel 681 + * Sun Mar 22 2015 Karsten Hopp 7.4.674-1 - patchlevel 674 From d6b3df41151266e33d5440fca174c0a895c3674b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 25 Mar 2015 18:00:03 +0100 Subject: [PATCH 0135/1407] - patchlevel 682 --- 7.4.682 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.4.682 diff --git a/7.4.682 b/7.4.682 new file mode 100644 index 00000000..09198cd5 --- /dev/null +++ b/7.4.682 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.682 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.682 +Problem: The search highlighting and match highlighting replaces the + cursorline highlighting, this doesn't look good. +Solution: Combine the highlighting. (Yasuhiro Matsumoto) +Files: src/screen.c + + +*** ../vim-7.4.681/src/screen.c 2015-03-21 14:20:11.520982748 +0100 +--- src/screen.c 2015-03-24 18:17:07.201656819 +0100 +*************** +*** 4010,4026 **** + + /* Decide which of the highlight attributes to use. */ + attr_pri = TRUE; + if (area_attr != 0) +! char_attr = area_attr; + else if (search_attr != 0) +! char_attr = search_attr; +! #ifdef LINE_ATTR + /* Use line_attr when not in the Visual or 'incsearch' area + * (area_attr may be 0 when "noinvcur" is set). */ + else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL) + || vcol < fromcol || vcol_prev < fromcol_prev + || vcol >= tocol)) + char_attr = line_attr; + #endif + else + { +--- 4010,4031 ---- + + /* Decide which of the highlight attributes to use. */ + attr_pri = TRUE; ++ #ifdef LINE_ATTR + if (area_attr != 0) +! char_attr = hl_combine_attr(line_attr, area_attr); + else if (search_attr != 0) +! char_attr = hl_combine_attr(line_attr, search_attr); + /* Use line_attr when not in the Visual or 'incsearch' area + * (area_attr may be 0 when "noinvcur" is set). */ + else if (line_attr != 0 && ((fromcol == -10 && tocol == MAXCOL) + || vcol < fromcol || vcol_prev < fromcol_prev + || vcol >= tocol)) + char_attr = line_attr; ++ #else ++ if (area_attr != 0) ++ char_attr = area_attr; ++ else if (search_attr != 0) ++ char_attr = search_attr; + #endif + else + { +*** ../vim-7.4.681/src/version.c 2015-03-24 17:57:06.210846471 +0100 +--- src/version.c 2015-03-24 18:21:08.975018758 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 682, + /**/ + +-- +The war between Emacs and Vi is over. Vi has won with 3 to 1. +http://m.linuxjournal.com/files/linuxjournal.com/linuxjournal/articles/030/3044/3044s1.html + + /// 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 /// From d48fd71de617fe0bf2ae3532b53da74d3b0ee789 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 25 Mar 2015 18:00:03 +0100 Subject: [PATCH 0136/1407] - patchlevel 682 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 88cd947c..3a744a28 100644 --- a/README.patches +++ b/README.patches @@ -703,3 +703,4 @@ Individual patches for Vim 7.4: 2444 7.4.679 color values greater than 255 cause problems on MS-Windows 9657 7.4.680 CTRL-W in Insert mode does not work well for multi-byte chars 2327 7.4.681 MS-Windows: with minimized Vim window height is incorrect + 2603 7.4.682 search and match highlighting replace cursorline highlighting diff --git a/vim.spec b/vim.spec index d8d68c7a..c8b6b478 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 681 +%define patchlevel 682 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -728,6 +728,7 @@ Patch678: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.678 Patch679: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.679 Patch680: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.680 Patch681: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.681 +Patch682: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.682 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1559,6 +1560,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch679 -p0 %patch680 -p0 %patch681 -p0 +%patch682 -p0 # install spell files %if %{withvimspell} @@ -2076,6 +2078,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Mar 25 2015 Karsten Hopp 7.4.682-1 +- patchlevel 682 + * Tue Mar 24 2015 Karsten Hopp 7.4.681-1 - patchlevel 681 From 421033e3ea6dd21758bfaf424eb2592905e590a4 Mon Sep 17 00:00:00 2001 From: Richard Hughes Date: Thu, 26 Mar 2015 16:34:31 +0000 Subject: [PATCH 0137/1407] Add an AppData file for the software center --- vim.spec | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index adbb86c6..8336564a 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -1678,6 +1678,44 @@ install -p -m644 %{SOURCE9} \ install -p -m644 %{SOURCE10} \ %{buildroot}%{_datadir}/icons/hicolor/64x64/apps/gvim.png +# Register as an application to be visible in the software center +# +# NOTE: It would be *awesome* if this file was maintained by the upstream +# project, translated and installed into the right place during `make install`. +# +# See http://www.freedesktop.org/software/appstream/docs/ for more details. +# +mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata +cat > $RPM_BUILD_ROOT%{_datadir}/appdata/gvim.appdata.xml < + + + + gvim.desktop + CC0-1.0 + Vim + +

+ Vim is an advanced text editor that seeks to provide the power of the + de-facto Unix editor 'Vi', with a more complete feature set. + It's useful whether you're already using vi or using a different editor. +

+

+ Vim is a highly configurable text editor built to enable efficient text + editing. + Vim is often called a "programmer's editor," and so useful for programming + that many consider it an entire IDE. It's not just for programmers, though. + Vim is perfect for all kinds of text editing, from composing email to + editing configuration files. +

+
+ http://www.vim.org/ +
+EOF + ( cd %{buildroot} ln -sf vi ./%{_bindir}/rvi ln -sf vi ./%{_bindir}/rview @@ -2025,6 +2063,7 @@ rm -rf %{buildroot} %files X11 %defattr(-,root,root) %if "%{desktop_file}" == "1" +%{_datadir}/appdata/*.appdata.xml /%{_datadir}/applications/* %else /%{_sysconfdir}/X11/applnk/*/gvim.desktop @@ -2040,6 +2079,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Mar 26 2015 Richard Hughes - 2:7.4.663-2 +- Add an AppData file for the software center + * Sat Mar 14 2015 Karsten Hopp 7.4.663-1 - patchlevel 663 From a687cd323f227ef7ff9ec07d6973fd7169b09d8a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 26 Mar 2015 18:00:04 +0100 Subject: [PATCH 0138/1407] - patchlevel 683 --- 7.4.683 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.683 diff --git a/7.4.683 b/7.4.683 new file mode 100644 index 00000000..9de6ccdb --- /dev/null +++ b/7.4.683 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.683 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.683 +Problem: Typo in the vimtutor command. +Solution: Fix the typo. (Corey Farwell, github pull 349) +Files: vimtutor.com + + +*** ../vim-7.4.682/vimtutor.com 2013-05-06 04:04:07.000000000 +0200 +--- vimtutor.com 2015-03-25 20:19:12.886445792 +0100 +*************** +*** 6,14 **** + $ ! Author: Tom Wyant + $ ! + $ ! This DCL command procedure executes the vimtutor command +! $ ! (suprise, suprise!) which gives you a brief tutorial on the VIM +! $ ! editor. Languages other than the default are supported in the +! $ ! usual way, as are at least some of the command qualifiers, + $ ! though you'll need to play some fairly serious games with DCL + $ ! to specify ones that need quoting. + $ ! +--- 6,14 ---- + $ ! Author: Tom Wyant + $ ! + $ ! This DCL command procedure executes the vimtutor command +! $ ! (surprise, surprise!) which gives you a brief tutorial on the +! $ ! VIM editor. Languages other than the default are supported in +! $ ! the usual way, as are at least some of the command qualifiers, + $ ! though you'll need to play some fairly serious games with DCL + $ ! to specify ones that need quoting. + $ ! +*** ../vim-7.4.682/src/version.c 2015-03-24 18:22:36.078072565 +0100 +--- src/version.c 2015-03-25 20:21:54.636689427 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 683, + /**/ + +-- +TIM: That is not an ordinary rabbit ... 'tis the most foul cruel and + bad-tempered thing you ever set eyes on. +ROBIN: You tit. I soiled my armour I was so scared! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 447e854a1992b62844ea2c916a3dc9352e46dd0d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 26 Mar 2015 18:00:04 +0100 Subject: [PATCH 0139/1407] - patchlevel 683 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 3a744a28..19dc2ac4 100644 --- a/README.patches +++ b/README.patches @@ -704,3 +704,4 @@ Individual patches for Vim 7.4: 9657 7.4.680 CTRL-W in Insert mode does not work well for multi-byte chars 2327 7.4.681 MS-Windows: with minimized Vim window height is incorrect 2603 7.4.682 search and match highlighting replace cursorline highlighting + 2222 7.4.683 typo in the vimtutor command diff --git a/vim.spec b/vim.spec index c8b6b478..f4c6e36a 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 682 +%define patchlevel 683 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -729,6 +729,7 @@ Patch679: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.679 Patch680: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.680 Patch681: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.681 Patch682: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.682 +Patch683: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.683 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1561,6 +1562,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch680 -p0 %patch681 -p0 %patch682 -p0 +%patch683 -p0 # install spell files %if %{withvimspell} @@ -2078,6 +2080,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Mar 26 2015 Karsten Hopp 7.4.683-1 +- patchlevel 683 + * Wed Mar 25 2015 Karsten Hopp 7.4.682-1 - patchlevel 682 From 0b419e87d055a83627a702465414b522aab9a658 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 31 Mar 2015 18:00:04 +0200 Subject: [PATCH 0140/1407] - patchlevel 684 --- 7.4.684 | 395 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 7.4.684 diff --git a/7.4.684 b/7.4.684 new file mode 100644 index 00000000..c7024075 --- /dev/null +++ b/7.4.684 @@ -0,0 +1,395 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.684 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.684 +Problem: When starting several Vim instances in diff mode, the temp files + used may not be unique. (Issue 353) +Solution: Add an argument to vim_tempname() to keep the file. +Files: src/diff.c, src/eval.c, src/ex_cmds.c, src/fileio.c, + src/hardcopy.c, src/proto/fileio.pro, src/if_cscope.c, + src/memline.c, src/misc1.c, src/os_unix.c, src/quickfix.c, + src/spell.c + + +*** ../vim-7.4.683/src/diff.c 2014-10-31 13:54:21.843214469 +0100 +--- src/diff.c 2015-03-31 12:55:35.813986431 +0200 +*************** +*** 688,696 **** + return; + + /* We need three temp file names. */ +! tmp_orig = vim_tempname('o'); +! tmp_new = vim_tempname('n'); +! tmp_diff = vim_tempname('d'); + if (tmp_orig == NULL || tmp_new == NULL || tmp_diff == NULL) + goto theend; + +--- 688,696 ---- + return; + + /* We need three temp file names. */ +! tmp_orig = vim_tempname('o', TRUE); +! tmp_new = vim_tempname('n', TRUE); +! tmp_diff = vim_tempname('d', TRUE); + if (tmp_orig == NULL || tmp_new == NULL || tmp_diff == NULL) + goto theend; + +*************** +*** 920,927 **** + #endif + + /* We need two temp file names. */ +! tmp_orig = vim_tempname('o'); +! tmp_new = vim_tempname('n'); + if (tmp_orig == NULL || tmp_new == NULL) + goto theend; + +--- 920,927 ---- + #endif + + /* We need two temp file names. */ +! tmp_orig = vim_tempname('o', FALSE); +! tmp_new = vim_tempname('n', FALSE); + if (tmp_orig == NULL || tmp_new == NULL) + goto theend; + +*** ../vim-7.4.683/src/eval.c 2015-03-21 17:32:14.062779961 +0100 +--- src/eval.c 2015-03-31 12:56:35.321337734 +0200 +*************** +*** 18775,18781 **** + * Write the string to a temp file, to be used for input of the shell + * command. + */ +! if ((infile = vim_tempname('i')) == NULL) + { + EMSG(_(e_notmp)); + goto errret; +--- 18775,18781 ---- + * Write the string to a temp file, to be used for input of the shell + * command. + */ +! if ((infile = vim_tempname('i', TRUE)) == NULL) + { + EMSG(_(e_notmp)); + goto errret; +*************** +*** 19134,19140 **** + static int x = 'A'; + + rettv->v_type = VAR_STRING; +! rettv->vval.v_string = vim_tempname(x); + + /* Advance 'x' to use A-Z and 0-9, so that there are at least 34 different + * names. Skip 'I' and 'O', they are used for shell redirection. */ +--- 19134,19140 ---- + static int x = 'A'; + + rettv->v_type = VAR_STRING; +! rettv->vval.v_string = vim_tempname(x, FALSE); + + /* Advance 'x' to use A-Z and 0-9, so that there are at least 34 different + * names. Skip 'I' and 'O', they are used for shell redirection. */ +*** ../vim-7.4.683/src/ex_cmds.c 2015-03-24 11:46:21.712636141 +0100 +--- src/ex_cmds.c 2015-03-31 12:58:51.563852429 +0200 +*************** +*** 1158,1165 **** + } + else + #endif +! if ((do_in && (itmp = vim_tempname('i')) == NULL) +! || (do_out && (otmp = vim_tempname('o')) == NULL)) + { + EMSG(_(e_notmp)); + goto filterend; +--- 1158,1165 ---- + } + else + #endif +! if ((do_in && (itmp = vim_tempname('i', FALSE)) == NULL) +! || (do_out && (otmp = vim_tempname('o', FALSE)) == NULL)) + { + EMSG(_(e_notmp)); + goto filterend; +*************** +*** 1963,1969 **** + if (fp_out == NULL) + { + vim_free(tempname); +! if ((tempname = vim_tempname('o')) != NULL) + fp_out = mch_fopen((char *)tempname, WRITEBIN); + } + +--- 1963,1969 ---- + if (fp_out == NULL) + { + vim_free(tempname); +! if ((tempname = vim_tempname('o', TRUE)) != NULL) + fp_out = mch_fopen((char *)tempname, WRITEBIN); + } + +*** ../vim-7.4.683/src/fileio.c 2015-02-27 17:48:05.549308509 +0100 +--- src/fileio.c 2015-03-31 13:08:46.549366825 +0200 +*************** +*** 2872,2878 **** + char_u *tmpname; + char_u *errmsg = NULL; + +! tmpname = vim_tempname('r'); + if (tmpname == NULL) + errmsg = (char_u *)_("Can't find temp file for conversion"); + else +--- 2872,2878 ---- + char_u *tmpname; + char_u *errmsg = NULL; + +! tmpname = vim_tempname('r', FALSE); + if (tmpname == NULL) + errmsg = (char_u *)_("Can't find temp file for conversion"); + else +*************** +*** 4288,4294 **** + */ + if (*p_ccv != NUL) + { +! wfname = vim_tempname('w'); + if (wfname == NULL) /* Can't write without a tempfile! */ + { + errmsg = (char_u *)_("E214: Can't find temp file for writing"); +--- 4288,4294 ---- + */ + if (*p_ccv != NUL) + { +! wfname = vim_tempname('w', FALSE); + if (wfname == NULL) /* Can't write without a tempfile! */ + { + errmsg = (char_u *)_("E214: Can't find temp file for writing"); +*************** +*** 7344,7357 **** + /* + * vim_tempname(): Return a unique name that can be used for a temp file. + * +! * The temp file is NOT created. + * + * The returned pointer is to allocated memory. + * The returned pointer is NULL if no valid name was found. + */ + char_u * +! vim_tempname(extra_char) + int extra_char UNUSED; /* char to use in the name instead of '?' */ + { + #ifdef USE_TMPNAM + char_u itmp[L_tmpnam]; /* use tmpnam() */ +--- 7344,7359 ---- + /* + * vim_tempname(): Return a unique name that can be used for a temp file. + * +! * The temp file is NOT garanteed to be created. If "keep" is FALSE it is +! * garanteed to NOT be created. + * + * The returned pointer is to allocated memory. + * The returned pointer is NULL if no valid name was found. + */ + char_u * +! vim_tempname(extra_char, keep) + int extra_char UNUSED; /* char to use in the name instead of '?' */ ++ int keep UNUSED; + { + #ifdef USE_TMPNAM + char_u itmp[L_tmpnam]; /* use tmpnam() */ +*************** +*** 7487,7494 **** + buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */ + if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0) + return NULL; +! /* GetTempFileName() will create the file, we don't want that */ +! (void)DeleteFile(itmp); + + /* Backslashes in a temp file name cause problems when filtering with + * "sh". NOTE: This also checks 'shellcmdflag' to help those people who +--- 7489,7497 ---- + buf4[2] = extra_char; /* make it "VIa", "VIb", etc. */ + if (GetTempFileName(szTempFile, buf4, 0, itmp) == 0) + return NULL; +! if (!keep) +! /* GetTempFileName() will create the file, we don't want that */ +! (void)DeleteFile(itmp); + + /* Backslashes in a temp file name cause problems when filtering with + * "sh". NOTE: This also checks 'shellcmdflag' to help those people who +*** ../vim-7.4.683/src/hardcopy.c 2014-11-27 17:37:53.524909964 +0100 +--- src/hardcopy.c 2015-03-31 13:09:06.897145085 +0200 +*************** +*** 2751,2757 **** + /* If the user didn't specify a file name, use a temp file. */ + if (psettings->outfile == NULL) + { +! prt_ps_file_name = vim_tempname('p'); + if (prt_ps_file_name == NULL) + { + EMSG(_(e_notmp)); +--- 2751,2757 ---- + /* If the user didn't specify a file name, use a temp file. */ + if (psettings->outfile == NULL) + { +! prt_ps_file_name = vim_tempname('p', TRUE); + if (prt_ps_file_name == NULL) + { + EMSG(_(e_notmp)); +*** ../vim-7.4.683/src/proto/fileio.pro 2014-11-19 16:38:01.516679915 +0100 +--- src/proto/fileio.pro 2015-03-31 13:13:42.378143437 +0200 +*************** +*** 23,29 **** + void buf_store_time __ARGS((buf_T *buf, struct stat *st, char_u *fname)); + void write_lnum_adjust __ARGS((linenr_T offset)); + void vim_deltempdir __ARGS((void)); +! char_u *vim_tempname __ARGS((int extra_char)); + void forward_slash __ARGS((char_u *fname)); + void aubuflocal_remove __ARGS((buf_T *buf)); + int au_has_group __ARGS((char_u *name)); +--- 23,29 ---- + void buf_store_time __ARGS((buf_T *buf, struct stat *st, char_u *fname)); + void write_lnum_adjust __ARGS((linenr_T offset)); + void vim_deltempdir __ARGS((void)); +! char_u *vim_tempname __ARGS((int extra_char, int keep)); + void forward_slash __ARGS((char_u *fname)); + void aubuflocal_remove __ARGS((buf_T *buf)); + int au_has_group __ARGS((char_u *name)); +*** ../vim-7.4.683/src/if_cscope.c 2015-02-10 18:33:53.232320026 +0100 +--- src/if_cscope.c 2015-03-31 13:09:44.576734484 +0200 +*************** +*** 1269,1275 **** + { + /* fill error list */ + FILE *f; +! char_u *tmp = vim_tempname('c'); + qf_info_T *qi = NULL; + win_T *wp = NULL; + +--- 1269,1275 ---- + { + /* fill error list */ + FILE *f; +! char_u *tmp = vim_tempname('c', TRUE); + qf_info_T *qi = NULL; + win_T *wp = NULL; + +*** ../vim-7.4.683/src/memline.c 2015-02-10 18:33:53.236319979 +0100 +--- src/memline.c 2015-03-31 13:10:20.340344766 +0200 +*************** +*** 757,763 **** + /* For a spell buffer use a temp file name. */ + if (buf->b_spell) + { +! fname = vim_tempname('s'); + if (fname != NULL) + (void)mf_open_file(mfp, fname); /* consumes fname! */ + buf->b_may_swap = FALSE; +--- 757,763 ---- + /* For a spell buffer use a temp file name. */ + if (buf->b_spell) + { +! fname = vim_tempname('s', FALSE); + if (fname != NULL) + (void)mf_open_file(mfp, fname); /* consumes fname! */ + buf->b_may_swap = FALSE; +*** ../vim-7.4.683/src/misc1.c 2015-03-21 17:32:14.058780006 +0100 +--- src/misc1.c 2015-03-31 13:10:34.772187548 +0200 +*************** +*** 11049,11055 **** + return NULL; + + /* get a name for the temp file */ +! if ((tempname = vim_tempname('o')) == NULL) + { + EMSG(_(e_notmp)); + return NULL; +--- 11049,11055 ---- + return NULL; + + /* get a name for the temp file */ +! if ((tempname = vim_tempname('o', FALSE)) == NULL) + { + EMSG(_(e_notmp)); + return NULL; +*** ../vim-7.4.683/src/os_unix.c 2015-03-21 17:32:14.066779916 +0100 +--- src/os_unix.c 2015-03-31 13:10:46.744057076 +0200 +*************** +*** 5838,5844 **** + /* + * get a name for the temp file + */ +! if ((tempname = vim_tempname('o')) == NULL) + { + EMSG(_(e_notmp)); + return FAIL; +--- 5838,5844 ---- + /* + * get a name for the temp file + */ +! if ((tempname = vim_tempname('o', FALSE)) == NULL) + { + EMSG(_(e_notmp)); + return FAIL; +*** ../vim-7.4.683/src/quickfix.c 2014-12-17 14:41:06.079437482 +0100 +--- src/quickfix.c 2015-03-31 13:11:03.095879127 +0200 +*************** +*** 2945,2951 **** + + if (*p_mef == NUL) + { +! name = vim_tempname('e'); + if (name == NULL) + EMSG(_(e_notmp)); + return name; +--- 2945,2951 ---- + + if (*p_mef == NUL) + { +! name = vim_tempname('e', FALSE); + if (name == NULL) + EMSG(_(e_notmp)); + return name; +*** ../vim-7.4.683/src/spell.c 2015-02-10 20:03:39.389939274 +0100 +--- src/spell.c 2015-03-31 13:12:12.895118372 +0200 +*************** +*** 9426,9432 **** + { + if (int_wordlist == NULL) + { +! int_wordlist = vim_tempname('s'); + if (int_wordlist == NULL) + return; + } +--- 9426,9432 ---- + { + if (int_wordlist == NULL) + { +! int_wordlist = vim_tempname('s', FALSE); + if (int_wordlist == NULL) + return; + } +*** ../vim-7.4.683/src/version.c 2015-03-25 20:23:54.335389699 +0100 +--- src/version.c 2015-03-31 13:27:54.776857644 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 684, + /**/ + +-- +If an elephant is left tied to a parking meter, the parking fee has to be paid +just as it would for a vehicle. + [real standing law in Florida, United States of America] + + /// 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 /// From 69d3f932533de3e72311755aee9417505dcf1d55 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 31 Mar 2015 18:00:05 +0200 Subject: [PATCH 0141/1407] - patchlevel 685 --- 7.4.685 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.685 diff --git a/7.4.685 b/7.4.685 new file mode 100644 index 00000000..8c810d1e --- /dev/null +++ b/7.4.685 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.685 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.685 +Problem: When there are illegal utf-8 characters the old regexp engine may + go past the end of a string. +Solution: Only advance to the end of the string. (Dominique Pelle) +Files: src/regexp.c + + +*** ../vim-7.4.684/src/regexp.c 2015-01-27 12:59:51.859602392 +0100 +--- src/regexp.c 2015-03-31 14:12:00.708075265 +0200 +*************** +*** 4782,4788 **** + /* When only a composing char is given match at any + * position where that composing char appears. */ + status = RA_NOMATCH; +! for (i = 0; reginput[i] != NUL; i += utf_char2len(inpc)) + { + inpc = mb_ptr2char(reginput + i); + if (!utf_iscomposing(inpc)) +--- 4782,4789 ---- + /* When only a composing char is given match at any + * position where that composing char appears. */ + status = RA_NOMATCH; +! for (i = 0; reginput[i] != NUL; +! i += utf_ptr2len(reginput + i)) + { + inpc = mb_ptr2char(reginput + i); + if (!utf_iscomposing(inpc)) +*** ../vim-7.4.684/src/version.c 2015-03-31 13:33:00.801524871 +0200 +--- src/version.c 2015-03-31 13:58:19.868991369 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 685, + /**/ + +-- +The Law, in its majestic equality, forbids the rich, as well as the +poor, to sleep under the bridges, to beg in the streets, and to steal +bread. -- Anatole France + + /// 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 /// From 7e5428efb874141637190c317fd63479d9e5c965 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 31 Mar 2015 18:00:05 +0200 Subject: [PATCH 0142/1407] - patchlevel 686 --- 7.4.686 | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 7.4.686 diff --git a/7.4.686 b/7.4.686 new file mode 100644 index 00000000..5400dcba --- /dev/null +++ b/7.4.686 @@ -0,0 +1,116 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.686 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.686 +Problem: "zr" and "zm" do not take a count. +Solution: Implement the count, restrict the fold level to the maximum + nesting depth. (Marcin Szamotulski) +Files: runtime/doc/fold.txt, src/normal.c + + +*** ../vim-7.4.685/runtime/doc/fold.txt 2013-08-10 13:24:53.000000000 +0200 +--- runtime/doc/fold.txt 2015-03-31 17:40:11.592129921 +0200 +*************** +*** 364,370 **** + Also forces recomputing folds, like |zx|. + + *zm* +! zm Fold more: Subtract one from 'foldlevel'. If 'foldlevel' was + already zero nothing happens. + 'foldenable' will be set. + +--- 365,371 ---- + Also forces recomputing folds, like |zx|. + + *zm* +! zm Fold more: Subtract |v:count1| from 'foldlevel'. If 'foldlevel' was + already zero nothing happens. + 'foldenable' will be set. + +*************** +*** 373,379 **** + 'foldenable' will be set. + + *zr* +! zr Reduce folding: Add one to 'foldlevel'. + + *zR* + zR Open all folds. This sets 'foldlevel' to highest fold level. +--- 374,380 ---- + 'foldenable' will be set. + + *zr* +! zr Reduce folding: Add |v:count1| to 'foldlevel'. + + *zR* + zR Open all folds. This sets 'foldlevel' to highest fold level. +*** ../vim-7.4.685/src/normal.c 2015-03-05 19:57:45.322721298 +0100 +--- src/normal.c 2015-03-31 17:44:50.401075155 +0200 +*************** +*** 5098,5104 **** + + /* "zm": fold more */ + case 'm': if (curwin->w_p_fdl > 0) +! --curwin->w_p_fdl; + old_fdl = -1; /* force an update */ + curwin->w_p_fen = TRUE; + break; +--- 5098,5108 ---- + + /* "zm": fold more */ + case 'm': if (curwin->w_p_fdl > 0) +! { +! curwin->w_p_fdl -= cap->count1; +! if (curwin->w_p_fdl < 0) +! curwin->w_p_fdl = 0; +! } + old_fdl = -1; /* force an update */ + curwin->w_p_fen = TRUE; + break; +*************** +*** 5110,5116 **** + break; + + /* "zr": reduce folding */ +! case 'r': ++curwin->w_p_fdl; + break; + + /* "zR": open all folds */ +--- 5114,5126 ---- + break; + + /* "zr": reduce folding */ +! case 'r': curwin->w_p_fdl += cap->count1; +! { +! int d = getDeepestNesting(); +! +! if (curwin->w_p_fdl >= d) +! curwin->w_p_fdl = d; +! } + break; + + /* "zR": open all folds */ +*** ../vim-7.4.685/src/version.c 2015-03-31 14:17:22.008608243 +0200 +--- src/version.c 2015-03-31 17:41:32.839240108 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 686, + /**/ + +-- +Kisses may last for as much as, but no more than, five minutes. + [real standing law in Iowa, United States of America] + + /// 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 /// From c04268a6aa07f237f4e36cff8199f1e4d3c3af00 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 31 Mar 2015 18:00:05 +0200 Subject: [PATCH 0143/1407] - patchlevel 686 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 19dc2ac4..6a380cce 100644 --- a/README.patches +++ b/README.patches @@ -705,3 +705,6 @@ Individual patches for Vim 7.4: 2327 7.4.681 MS-Windows: with minimized Vim window height is incorrect 2603 7.4.682 search and match highlighting replace cursorline highlighting 2222 7.4.683 typo in the vimtutor command + 12068 7.4.684 using non-unique temp file names when running Vim in diff mode + 1953 7.4.685 with illegal utf-8 chars old regexp engine may crash + 3157 7.4.686 "zr" and "zm" do not take a count diff --git a/vim.spec b/vim.spec index f4c6e36a..b7e84ba0 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 683 +%define patchlevel 686 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -730,6 +730,9 @@ Patch680: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.680 Patch681: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.681 Patch682: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.682 Patch683: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.683 +Patch684: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.684 +Patch685: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.685 +Patch686: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.686 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1563,6 +1566,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch681 -p0 %patch682 -p0 %patch683 -p0 +%patch684 -p0 +%patch685 -p0 +%patch686 -p0 # install spell files %if %{withvimspell} @@ -2080,6 +2086,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Mar 31 2015 Karsten Hopp 7.4.686-1 +- patchlevel 686 + * Thu Mar 26 2015 Karsten Hopp 7.4.683-1 - patchlevel 683 From cbd0984fa5ecbb48c7247b3429474a09678237b5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 1 Apr 2015 18:00:04 +0200 Subject: [PATCH 0144/1407] - patchlevel 687 --- 7.4.687 | 274 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 274 insertions(+) create mode 100644 7.4.687 diff --git a/7.4.687 b/7.4.687 new file mode 100644 index 00000000..74aa40a9 --- /dev/null +++ b/7.4.687 @@ -0,0 +1,274 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.687 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.687 +Problem: There is no way to use a different in Replace mode for a terminal. +Solution: Add t_SR. (Omar Sandoval) +Files: runtime/doc/options.txt, runtime/doc/term.txt, + src/option.c, src/term.c, src/term.h + + +*** ../vim-7.4.686/runtime/doc/options.txt 2015-01-27 15:58:37.202395482 +0100 +--- runtime/doc/options.txt 2015-03-31 18:01:58.465823918 +0200 +*************** +*** 3419,3425 **** + the height of the cursor can be changed. This can be done by + specifying a block cursor, or a percentage for a vertical or + horizontal cursor. +! For a console the 't_SI' and 't_EI' escape sequences are used. + + The option is a comma separated list of parts. Each part consist of a + mode-list and an argument-list: +--- 3420,3427 ---- + the height of the cursor can be changed. This can be done by + specifying a block cursor, or a percentage for a vertical or + horizontal cursor. +! For a console the 't_SI', 't_SR', and 't_EI' escape sequences are +! used. + + The option is a comma separated list of parts. Each part consist of a + mode-list and an argument-list: +*** ../vim-7.4.686/runtime/doc/term.txt 2015-02-10 19:20:33.727792128 +0100 +--- runtime/doc/term.txt 2015-03-31 18:01:58.465823918 +0200 +*************** +*** 283,290 **** + *t_xs* *'t_xs'* + t_xs if non-empty, standout not erased by overwriting (hpterm) + *t_xn* *'t_xn'* +! t_xn if non-empty, character writing at the last cell of screen +! didn't causes scrolling + t_ZH italics mode *t_ZH* *'t_ZH'* + t_ZR italics end *t_ZR* *'t_ZR'* + +--- 283,290 ---- + *t_xs* *'t_xs'* + t_xs if non-empty, standout not erased by overwriting (hpterm) + *t_xn* *'t_xn'* +! t_xn if non-empty, writing a character at the last screen cell +! does not cause scrolling + t_ZH italics mode *t_ZH* *'t_ZH'* + t_ZR italics end *t_ZR* *'t_ZR'* + +*************** +*** 294,300 **** + t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'* + t_WS set window size (height, width) in characters *t_WS* *'t_WS'* + t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* +! t_EI end insert mode (block cursor shape) *t_EI* *'t_EI'* + |termcap-cursor-shape| + t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* + |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes| +--- 294,301 ---- + t_WP set window position (Y, X) in pixels *t_WP* *'t_WP'* + t_WS set window size (height, width) in characters *t_WS* *'t_WS'* + t_SI start insert mode (bar cursor shape) *t_SI* *'t_SI'* +! t_SR start replace mode (underline cursor shape) *t_SR* *'t_SR'* +! t_EI end insert or replace mode (block cursor shape) *t_EI* *'t_EI'* + |termcap-cursor-shape| + t_RV request terminal version string (for xterm) *t_RV* *'t_RV'* + |xterm-8bit| |v:termresponse| |'ttymouse'| |xterm-codes| +*************** +*** 438,450 **** + to reset to the default colors. + + *termcap-cursor-shape* *termcap-cursor-color* +! When Vim enters Insert mode the 't_SI' escape sequence is sent. When leaving +! Insert mode 't_EI' is used. But only if both are defined. This can be used +! to change the shape or color of the cursor in Insert mode. These are not +! standard termcap/terminfo entries, you need to set them yourself. + Example for an xterm, this changes the color of the cursor: > + if &term =~ "xterm" + let &t_SI = "\]12;purple\x7" + let &t_EI = "\]12;blue\x7" + endif + NOTE: When Vim exits the shape for Normal mode will remain. The shape from +--- 439,454 ---- + to reset to the default colors. + + *termcap-cursor-shape* *termcap-cursor-color* +! When Vim enters Insert mode the 't_SI' escape sequence is sent. When Vim +! enters Replace mode the 't_SR' escape sequence is sent if it is set, otherwise +! 't_SI' is sent. When leaving Insert mode or Replace mode 't_EI' is used. This +! can be used to change the shape or color of the cursor in Insert or Replace +! mode. These are not standard termcap/terminfo entries, you need to set them +! yourself. + Example for an xterm, this changes the color of the cursor: > + if &term =~ "xterm" + let &t_SI = "\]12;purple\x7" ++ let &t_SR = "\]12;red\x7" + let &t_EI = "\]12;blue\x7" + endif + NOTE: When Vim exits the shape for Normal mode will remain. The shape from +*************** +*** 670,677 **** + + *xterm-copy-paste* + NOTE: In some (older) xterms, it's not possible to move the cursor past column +! 95. This is an xterm problem, not Vim's. Get a newer xterm |color-xterm|. +! Now the limit is 223 columns. + + Copy/paste in xterm with (current mode NOT included in 'mouse'): + 1. Press left mouse button on first letter of text, move mouse pointer to last +--- 674,681 ---- + + *xterm-copy-paste* + NOTE: In some (older) xterms, it's not possible to move the cursor past column +! 95 or 223. This is an xterm problem, not Vim's. Get a newer xterm +! |color-xterm|. Also see |'ttymouse'|. + + Copy/paste in xterm with (current mode NOT included in 'mouse'): + 1. Press left mouse button on first letter of text, move mouse pointer to last +*** ../vim-7.4.686/src/option.c 2015-03-13 11:23:46.446245826 +0100 +--- src/option.c 2015-03-31 18:02:34.637429081 +0200 +*************** +*** 2978,2983 **** +--- 2978,2984 ---- + p_term("t_WS", T_CWS) + p_term("t_SI", T_CSI) + p_term("t_EI", T_CEI) ++ p_term("t_SR", T_CSR) + p_term("t_xn", T_XN) + p_term("t_xs", T_XS) + p_term("t_ZH", T_CZH) +*************** +*** 8560,8566 **** + errmsg = e_invarg; + curwin->w_p_nuw = 10; + } +! curwin->w_nrwidth_line_count = 0; + } + #endif + +--- 8561,8567 ---- + errmsg = e_invarg; + curwin->w_p_nuw = 10; + } +! curwin->w_nrwidth_line_count = 0; /* trigger a redraw */ + } + #endif + +*** ../vim-7.4.686/src/term.c 2015-02-10 19:20:33.735792024 +0100 +--- src/term.c 2015-03-31 18:17:22.223741055 +0200 +*************** +*** 3567,3593 **** + + #if defined(CURSOR_SHAPE) || defined(PROTO) + /* +! * Set cursor shape to match Insert mode. + */ + void + term_cursor_shape() + { +! static int showing_insert_mode = MAYBE; + +! if (!full_screen || *T_CSI == NUL || *T_CEI == NUL) + return; + +! if (State & INSERT) + { +! if (showing_insert_mode != TRUE) + out_str(T_CSI); /* Insert mode cursor */ +! showing_insert_mode = TRUE; + } +! else + { +! if (showing_insert_mode != FALSE) +! out_str(T_CEI); /* non-Insert mode cursor */ +! showing_insert_mode = FALSE; + } + } + #endif +--- 3567,3612 ---- + + #if defined(CURSOR_SHAPE) || defined(PROTO) + /* +! * Set cursor shape to match Insert or Replace mode. + */ + void + term_cursor_shape() + { +! static int showing_mode = NORMAL; +! char_u *p; + +! /* Only do something when redrawing the screen and we can restore the +! * mode. */ +! if (!full_screen || *T_CEI == NUL) + return; + +! if ((State & REPLACE) == REPLACE) + { +! if (showing_mode != REPLACE) +! { +! if (*T_CSR != NUL) +! p = T_CSR; /* Replace mode cursor */ +! else +! p = T_CSI; /* fall back to Insert mode cursor */ +! if (*p != NUL) +! { +! out_str(p); +! showing_mode = REPLACE; +! } +! } +! } +! else if (State & INSERT) +! { +! if (showing_mode != INSERT && *T_CSI != NUL) +! { + out_str(T_CSI); /* Insert mode cursor */ +! showing_mode = INSERT; +! } + } +! else if (showing_mode != NORMAL) + { +! out_str(T_CEI); /* non-Insert mode cursor */ +! showing_mode = NORMAL; + } + } + #endif +*** ../vim-7.4.686/src/term.h 2015-02-10 19:20:33.739791972 +0100 +--- src/term.h 2015-03-31 18:01:58.469823874 +0200 +*************** +*** 81,86 **** +--- 81,87 ---- + KS_CRV, /* request version string */ + KS_CSI, /* start insert mode (bar cursor) */ + KS_CEI, /* end insert mode (block cursor) */ ++ KS_CSR, /* start replace mode (underline cursor) */ + #ifdef FEAT_VERTSPLIT + KS_CSV, /* scroll region vertical */ + #endif +*************** +*** 159,164 **** +--- 160,166 ---- + #define T_CWS (term_str(KS_CWS)) /* window size */ + #define T_CSI (term_str(KS_CSI)) /* start insert mode */ + #define T_CEI (term_str(KS_CEI)) /* end insert mode */ ++ #define T_CSR (term_str(KS_CSR)) /* start replace mode */ + #define T_CRV (term_str(KS_CRV)) /* request version string */ + #define T_OP (term_str(KS_OP)) /* original color pair */ + #define T_U7 (term_str(KS_U7)) /* request cursor position */ +*** ../vim-7.4.686/src/version.c 2015-03-31 17:46:16.844128018 +0200 +--- src/version.c 2015-03-31 18:03:18.352951899 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 687, + /**/ + +-- +It is illegal to rob a bank and then shoot at the bank teller with a water +pistol. + [real standing law in Louisana, United States of America] + + /// 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 /// From 67ff83b617cdfc1b6800aed132d3d65eec423267 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 1 Apr 2015 18:00:04 +0200 Subject: [PATCH 0145/1407] - patchlevel 688 --- 7.4.688 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.4.688 diff --git a/7.4.688 b/7.4.688 new file mode 100644 index 00000000..daf0ff09 --- /dev/null +++ b/7.4.688 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.688 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.688 +Problem: When "$" is in 'cpo' the popup menu isn't undrawn correctly. + (Issue 166) +Solution: When using the popup menu remove the "$". +Files: src/edit.c + + +*** ../vim-7.4.687/src/edit.c 2015-03-24 17:49:39.603748681 +0100 +--- src/edit.c 2015-03-31 19:11:44.536104891 +0200 +*************** +*** 3008,3013 **** +--- 3008,3017 ---- + + if (compl_match_array != NULL) + { ++ /* In Replace mode when a $ is displayed at the end of the line only ++ * part of the screen would be updated. We do need to redraw here. */ ++ dollar_vcol = -1; ++ + /* Compute the screen column of the start of the completed text. + * Use the cursor to get all wrapping and other settings right. */ + col = curwin->w_cursor.col; +*** ../vim-7.4.687/src/version.c 2015-03-31 18:30:09.143370872 +0200 +--- src/version.c 2015-03-31 18:55:59.934413747 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 688, + /**/ + +-- +Biting someone with your natural teeth is "simple assault," while biting +someone with your false teeth is "aggravated assault." + [real standing law in Louisana, United States of America] + + /// 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 /// From 5e69122a6f451ba1d7f5ab51dc678d74911b1237 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 1 Apr 2015 18:00:04 +0200 Subject: [PATCH 0146/1407] - patchlevel 688 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6a380cce..e86c13dd 100644 --- a/README.patches +++ b/README.patches @@ -708,3 +708,5 @@ Individual patches for Vim 7.4: 12068 7.4.684 using non-unique temp file names when running Vim in diff mode 1953 7.4.685 with illegal utf-8 chars old regexp engine may crash 3157 7.4.686 "zr" and "zm" do not take a count + 9372 7.4.687 there is no way to use a different Replace cursor in terminal + 1697 7.4.688 when "$" is in 'cpo' the popup menu isn't undrawn correctly diff --git a/vim.spec b/vim.spec index b7e84ba0..fa070acc 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 686 +%define patchlevel 688 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -733,6 +733,8 @@ Patch683: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.683 Patch684: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.684 Patch685: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.685 Patch686: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.686 +Patch687: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.687 +Patch688: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.688 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1569,6 +1571,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch684 -p0 %patch685 -p0 %patch686 -p0 +%patch687 -p0 +%patch688 -p0 # install spell files %if %{withvimspell} @@ -2086,6 +2090,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Apr 01 2015 Karsten Hopp 7.4.688-1 +- patchlevel 688 + * Tue Mar 31 2015 Karsten Hopp 7.4.686-1 - patchlevel 686 From a600a36baac4dde22d9f2813aa6cc0bce6a4679e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Apr 2015 18:00:04 +0200 Subject: [PATCH 0147/1407] - patchlevel 689 --- 7.4.689 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 7.4.689 diff --git a/7.4.689 b/7.4.689 new file mode 100644 index 00000000..a4fbbfbc --- /dev/null +++ b/7.4.689 @@ -0,0 +1,157 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.689 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.689 +Problem: On MS-Windows, when 'autochdir' is set, diff mode with files in + different directories does not work. (Axel Bender) +Solution: Remember the current directory and use it where needed. (Christian + Brabandt) +Files: src/main.c + + +*** ../vim-7.4.688/src/main.c 2015-03-24 16:48:16.969934944 +0100 +--- src/main.c 2015-04-03 14:52:48.011422200 +0200 +*************** +*** 110,116 **** + static void read_stdin __ARGS((void)); + static void create_windows __ARGS((mparm_T *parmp)); + # ifdef FEAT_WINDOWS +! static void edit_buffers __ARGS((mparm_T *parmp)); + # endif + static void exe_pre_commands __ARGS((mparm_T *parmp)); + static void exe_commands __ARGS((mparm_T *parmp)); +--- 110,116 ---- + static void read_stdin __ARGS((void)); + static void create_windows __ARGS((mparm_T *parmp)); + # ifdef FEAT_WINDOWS +! static void edit_buffers __ARGS((mparm_T *parmp, char_u *cwd)); + # endif + static void exe_pre_commands __ARGS((mparm_T *parmp)); + static void exe_commands __ARGS((mparm_T *parmp)); +*************** +*** 168,173 **** +--- 168,174 ---- + char_u *fname = NULL; /* file name from command line */ + mparm_T params; /* various parameters passed between + * main() and other functions. */ ++ char_u *cwd = NULL; /* current workding dir on startup */ + #ifdef STARTUPTIME + int i; + #endif +*************** +*** 404,415 **** +--- 405,421 ---- + */ + if (!params.literal) + { ++ cwd = alloc(MAXPATHL); ++ if (cwd != NULL) ++ mch_dirname(cwd, MAXPATHL); + /* Temporarily add '(' and ')' to 'isfname'. These are valid + * filename characters but are excluded from 'isfname' to make + * "gf" work on a file name in parenthesis (e.g.: see vim.h). */ + do_cmdline_cmd((char_u *)":set isf+=(,)"); + alist_expand(NULL, 0); + do_cmdline_cmd((char_u *)":set isf&"); ++ if (cwd != NULL) ++ mch_chdir((char *)cwd); + } + #endif + fname = alist_name(&GARGLIST[0]); +*************** +*** 435,440 **** +--- 441,448 ---- + * If the cd fails, it doesn't matter. + */ + (void)vim_chdirfile(fname); ++ if (cwd != NULL) ++ mch_dirnamem(cwd, MAXPATHL); + } + #endif + TIME_MSG("expanding arguments"); +*************** +*** 488,493 **** +--- 496,503 ---- + expand_env((char_u *)"$HOME", NameBuff, MAXPATHL); + vim_chdir(NameBuff); + } ++ if (cwd != NULL) ++ mch_dirname(cwd, MAXPATHL); + } + } + #endif +*************** +*** 900,907 **** + * If opened more than one window, start editing files in the other + * windows. + */ +! edit_buffers(¶ms); + #endif + + #ifdef FEAT_DIFF + if (params.diff_mode) +--- 910,918 ---- + * If opened more than one window, start editing files in the other + * windows. + */ +! edit_buffers(¶ms, cwd); + #endif ++ vim_free(cwd); + + #ifdef FEAT_DIFF + if (params.diff_mode) +*************** +*** 2730,2737 **** + * windows. make_windows() has already opened the windows. + */ + static void +! edit_buffers(parmp) + mparm_T *parmp; + { + int arg_idx; /* index in argument list */ + int i; +--- 2741,2749 ---- + * windows. make_windows() has already opened the windows. + */ + static void +! edit_buffers(parmp, cwd) + mparm_T *parmp; ++ char_u *cwd; /* current working dir */ + { + int arg_idx; /* index in argument list */ + int i; +*************** +*** 2756,2761 **** +--- 2768,2775 ---- + arg_idx = 1; + for (i = 1; i < parmp->window_count; ++i) + { ++ if (cwd != NULL) ++ mch_chdir((char *)cwd); + /* When w_arg_idx is -1 remove the window (see create_windows()). */ + if (curwin->w_arg_idx == -1) + { +*** ../vim-7.4.688/src/version.c 2015-03-31 19:17:55.620054448 +0200 +--- src/version.c 2015-04-03 14:51:43.680122220 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 689, + /**/ + +-- +Violators can be fined, arrested or jailed for making ugly faces at a dog. + [real standing law in Oklahoma, United States of America] + + /// 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 /// From d1bffbcb2bcce8234e0bf6de29f16856222cfc1c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Apr 2015 18:00:04 +0200 Subject: [PATCH 0148/1407] - patchlevel 690 --- 7.4.690 | 128 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 7.4.690 diff --git a/7.4.690 b/7.4.690 new file mode 100644 index 00000000..4867d769 --- /dev/null +++ b/7.4.690 @@ -0,0 +1,128 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.690 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.690 +Problem: Memory access errors when changing indent in Ex mode. Also missing + redraw when using CTRL-U. (Knil Ino) +Solution: Update pointers after calling ga_grow(). +Files: src/ex_getln.c + + +*** ../vim-7.4.689/src/ex_getln.c 2015-03-21 17:32:14.054780051 +0100 +--- src/ex_getln.c 2015-04-03 16:53:12.181002764 +0200 +*************** +*** 2245,2250 **** +--- 2245,2253 ---- + got_int = FALSE; + while (!got_int) + { ++ long sw; ++ char_u *s; ++ + if (ga_grow(&line_ga, 40) == FAIL) + break; + +*************** +*** 2296,2308 **** + msg_col = startcol; + msg_clr_eos(); + line_ga.ga_len = 0; +! continue; + } + + if (c1 == Ctrl_T) + { +! long sw = get_sw_value(curbuf); +! + p = (char_u *)line_ga.ga_data; + p[line_ga.ga_len] = NUL; + indent = get_indent_str(p, 8, FALSE); +--- 2299,2310 ---- + msg_col = startcol; + msg_clr_eos(); + line_ga.ga_len = 0; +! goto redraw; + } + + if (c1 == Ctrl_T) + { +! sw = get_sw_value(curbuf); + p = (char_u *)line_ga.ga_data; + p[line_ga.ga_len] = NUL; + indent = get_indent_str(p, 8, FALSE); +*************** +*** 2310,2318 **** + add_indent: + while (get_indent_str(p, 8, FALSE) < indent) + { +! char_u *s = skipwhite(p); +! +! ga_grow(&line_ga, 1); + mch_memmove(s + 1, s, line_ga.ga_len - (s - p) + 1); + *s = ' '; + ++line_ga.ga_len; +--- 2312,2320 ---- + add_indent: + while (get_indent_str(p, 8, FALSE) < indent) + { +! ga_grow(&line_ga, 2); /* one more for the NUL */ +! p = (char_u *)line_ga.ga_data; +! s = skipwhite(p); + mch_memmove(s + 1, s, line_ga.ga_len - (s - p) + 1); + *s = ' '; + ++line_ga.ga_len; +*************** +*** 2361,2373 **** + { + p[line_ga.ga_len] = NUL; + indent = get_indent_str(p, 8, FALSE); +! --indent; +! indent -= indent % get_sw_value(curbuf); + } + while (get_indent_str(p, 8, FALSE) > indent) + { +! char_u *s = skipwhite(p); +! + mch_memmove(s - 1, s, line_ga.ga_len - (s - p) + 1); + --line_ga.ga_len; + } +--- 2363,2377 ---- + { + p[line_ga.ga_len] = NUL; + indent = get_indent_str(p, 8, FALSE); +! if (indent > 0) +! { +! --indent; +! indent -= indent % get_sw_value(curbuf); +! } + } + while (get_indent_str(p, 8, FALSE) > indent) + { +! s = skipwhite(p); + mch_memmove(s - 1, s, line_ga.ga_len - (s - p) + 1); + --line_ga.ga_len; + } +*** ../vim-7.4.689/src/version.c 2015-04-03 14:56:43.940840314 +0200 +--- src/version.c 2015-04-03 17:02:19.739047689 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 690, + /**/ + +-- +No man may purchase alcohol without written consent from his wife. + [real standing law in Pennsylvania, United States of America] + + /// 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 /// From 077f479dba4af7d879448346f49d66e6275af764 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Apr 2015 18:00:04 +0200 Subject: [PATCH 0149/1407] - patchlevel 690 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index e86c13dd..0d6a4bf1 100644 --- a/README.patches +++ b/README.patches @@ -710,3 +710,5 @@ Individual patches for Vim 7.4: 3157 7.4.686 "zr" and "zm" do not take a count 9372 7.4.687 there is no way to use a different Replace cursor in terminal 1697 7.4.688 when "$" is in 'cpo' the popup menu isn't undrawn correctly + 4590 7.4.689 MS-Windows: problem with diff mode when 'autochdir' is set + 3392 7.4.690 memory access errors when changing indent in Ex mode diff --git a/vim.spec b/vim.spec index fa070acc..1bef89cd 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 688 +%define patchlevel 690 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -735,6 +735,8 @@ Patch685: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.685 Patch686: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.686 Patch687: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.687 Patch688: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.688 +Patch689: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.689 +Patch690: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.690 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1573,6 +1575,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch686 -p0 %patch687 -p0 %patch688 -p0 +%patch689 -p0 +%patch690 -p0 # install spell files %if %{withvimspell} @@ -2090,6 +2094,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Apr 03 2015 Karsten Hopp 7.4.690-1 +- patchlevel 690 + * Wed Apr 01 2015 Karsten Hopp 7.4.688-1 - patchlevel 688 From 769626c7eeaa18da4158572e203dd155e1cb82db Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 4 Apr 2015 18:00:04 +0200 Subject: [PATCH 0150/1407] - patchlevel 691 --- 7.4.691 | 153 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 153 insertions(+) create mode 100644 7.4.691 diff --git a/7.4.691 b/7.4.691 new file mode 100644 index 00000000..4436fe0c --- /dev/null +++ b/7.4.691 @@ -0,0 +1,153 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.691 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.691 (after 7.4.689) +Problem: Can't build with MzScheme. +Solution: Change "cwd" into the global variable "start_dir". +Files: src/main.c + + +*** ../vim-7.4.690/src/main.c 2015-04-03 14:56:43.936840362 +0200 +--- src/main.c 2015-04-03 17:58:55.374023988 +0200 +*************** +*** 147,152 **** +--- 147,154 ---- + #define ME_INVALID_ARG 5 + }; + ++ static char_u *start_dir = NULL; /* current working dir on startup */ ++ + #ifndef PROTO /* don't want a prototype for main() */ + #ifndef NO_VIM_MAIN /* skip this for unittests */ + int +*************** +*** 168,174 **** + char_u *fname = NULL; /* file name from command line */ + mparm_T params; /* various parameters passed between + * main() and other functions. */ +- char_u *cwd = NULL; /* current workding dir on startup */ + #ifdef STARTUPTIME + int i; + #endif +--- 170,175 ---- +*************** +*** 405,421 **** + */ + if (!params.literal) + { +! cwd = alloc(MAXPATHL); +! if (cwd != NULL) +! mch_dirname(cwd, MAXPATHL); + /* Temporarily add '(' and ')' to 'isfname'. These are valid + * filename characters but are excluded from 'isfname' to make + * "gf" work on a file name in parenthesis (e.g.: see vim.h). */ + do_cmdline_cmd((char_u *)":set isf+=(,)"); + alist_expand(NULL, 0); + do_cmdline_cmd((char_u *)":set isf&"); +! if (cwd != NULL) +! mch_chdir((char *)cwd); + } + #endif + fname = alist_name(&GARGLIST[0]); +--- 406,422 ---- + */ + if (!params.literal) + { +! start_dir = alloc(MAXPATHL); +! if (start_dir != NULL) +! mch_dirname(start_dir, MAXPATHL); + /* Temporarily add '(' and ')' to 'isfname'. These are valid + * filename characters but are excluded from 'isfname' to make + * "gf" work on a file name in parenthesis (e.g.: see vim.h). */ + do_cmdline_cmd((char_u *)":set isf+=(,)"); + alist_expand(NULL, 0); + do_cmdline_cmd((char_u *)":set isf&"); +! if (start_dir != NULL) +! mch_chdir((char *)start_dir); + } + #endif + fname = alist_name(&GARGLIST[0]); +*************** +*** 441,448 **** + * If the cd fails, it doesn't matter. + */ + (void)vim_chdirfile(fname); +! if (cwd != NULL) +! mch_dirnamem(cwd, MAXPATHL); + } + #endif + TIME_MSG("expanding arguments"); +--- 442,449 ---- + * If the cd fails, it doesn't matter. + */ + (void)vim_chdirfile(fname); +! if (start_dir != NULL) +! mch_dirname(start_dir, MAXPATHL); + } + #endif + TIME_MSG("expanding arguments"); +*************** +*** 496,503 **** + expand_env((char_u *)"$HOME", NameBuff, MAXPATHL); + vim_chdir(NameBuff); + } +! if (cwd != NULL) +! mch_dirname(cwd, MAXPATHL); + } + } + #endif +--- 497,504 ---- + expand_env((char_u *)"$HOME", NameBuff, MAXPATHL); + vim_chdir(NameBuff); + } +! if (start_dir != NULL) +! mch_dirname(start_dir, MAXPATHL); + } + } + #endif +*************** +*** 910,918 **** + * If opened more than one window, start editing files in the other + * windows. + */ +! edit_buffers(¶ms, cwd); + #endif +! vim_free(cwd); + + #ifdef FEAT_DIFF + if (params.diff_mode) +--- 911,919 ---- + * If opened more than one window, start editing files in the other + * windows. + */ +! edit_buffers(¶ms, start_dir); + #endif +! vim_free(start_dir); + + #ifdef FEAT_DIFF + if (params.diff_mode) +*** ../vim-7.4.690/src/version.c 2015-04-03 17:06:21.748398327 +0200 +--- src/version.c 2015-04-03 17:35:20.865357402 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 691, + /**/ + +-- +"Software is like sex... it's better when it's free." + -- Linus Torvalds, initiator of the free Linux OS +Makes me wonder what FSF stands for...? + + /// 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 /// From a2b0612f386f4bdb90e28d25b557560910d05c1a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 4 Apr 2015 18:00:05 +0200 Subject: [PATCH 0151/1407] - patchlevel 691 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 0d6a4bf1..5d8d3e35 100644 --- a/README.patches +++ b/README.patches @@ -712,3 +712,4 @@ Individual patches for Vim 7.4: 1697 7.4.688 when "$" is in 'cpo' the popup menu isn't undrawn correctly 4590 7.4.689 MS-Windows: problem with diff mode when 'autochdir' is set 3392 7.4.690 memory access errors when changing indent in Ex mode + 4331 7.4.691 (after 7.4.689) can't build with MzScheme diff --git a/vim.spec b/vim.spec index 1bef89cd..41a63036 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 690 +%define patchlevel 691 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -737,6 +737,7 @@ Patch687: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.687 Patch688: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.688 Patch689: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.689 Patch690: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.690 +Patch691: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.691 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1577,6 +1578,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch688 -p0 %patch689 -p0 %patch690 -p0 +%patch691 -p0 # install spell files %if %{withvimspell} @@ -2094,6 +2096,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Apr 04 2015 Karsten Hopp 7.4.691-1 +- patchlevel 691 + * Fri Apr 03 2015 Karsten Hopp 7.4.690-1 - patchlevel 690 From d84d8e867569bf27b5361703ba630c34a19c6fd3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 10 Apr 2015 18:00:03 +0200 Subject: [PATCH 0152/1407] - patchlevel 692 --- 7.4.692 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.692 diff --git a/7.4.692 b/7.4.692 new file mode 100644 index 00000000..9e58877c --- /dev/null +++ b/7.4.692 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.692 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.692 +Problem: Defining SOLARIS for no good reason. (Danek Duvall) +Solution: Remove it. +Files: src/os_unix.h + + +*** ../vim-7.4.691/src/os_unix.h 2014-03-25 13:46:22.841832960 +0100 +--- src/os_unix.h 2015-04-09 22:04:39.557343160 +0200 +*************** +*** 65,77 **** + #endif + + /* +- * Sun defines FILE on SunOS 4.x.x, Solaris has a typedef for FILE +- */ +- #if defined(sun) && !defined(FILE) +- # define SOLARIS +- #endif +- +- /* + * Using getcwd() is preferred, because it checks for a buffer overflow. + * Don't use getcwd() on systems do use system("sh -c pwd"). There is an + * autoconf check for this. +--- 65,70 ---- +*** ../vim-7.4.691/src/version.c 2015-04-03 17:59:19.833761335 +0200 +--- src/version.c 2015-04-09 22:05:25.592845049 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 692, + /**/ + +-- +NEIL INNES PLAYED: THE FIRST SELF-DESTRUCTIVE MONK, ROBIN'S LEAST FAVORITE + MINSTREL, THE PAGE CRUSHED BY A RABBIT, THE OWNER OF A DUCK + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 69455f2cf6b88400c73cc1ae2f3d9e67c28e6e25 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 10 Apr 2015 18:00:03 +0200 Subject: [PATCH 0153/1407] - patchlevel 692 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 5d8d3e35..78b777cf 100644 --- a/README.patches +++ b/README.patches @@ -713,3 +713,4 @@ Individual patches for Vim 7.4: 4590 7.4.689 MS-Windows: problem with diff mode when 'autochdir' is set 3392 7.4.690 memory access errors when changing indent in Ex mode 4331 7.4.691 (after 7.4.689) can't build with MzScheme + 1645 7.4.692 defining SOLARIS for no good reason diff --git a/vim.spec b/vim.spec index 41a63036..56d445b9 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 691 +%define patchlevel 692 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -738,6 +738,7 @@ Patch688: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.688 Patch689: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.689 Patch690: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.690 Patch691: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.691 +Patch692: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.692 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1579,6 +1580,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch689 -p0 %patch690 -p0 %patch691 -p0 +%patch692 -p0 # install spell files %if %{withvimspell} @@ -2096,6 +2098,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Apr 10 2015 Karsten Hopp 7.4.692-1 +- patchlevel 692 + * Sat Apr 04 2015 Karsten Hopp 7.4.691-1 - patchlevel 691 From 8f11e4a9abb3282f87a8ff8a77a19d63a0868be6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:03 +0200 Subject: [PATCH 0154/1407] - patchlevel 693 --- 7.4.693 | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 7.4.693 diff --git a/7.4.693 b/7.4.693 new file mode 100644 index 00000000..cb6587d1 --- /dev/null +++ b/7.4.693 @@ -0,0 +1,67 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.693 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.693 +Problem: Session file is not correct when there are multiple tab pages. +Solution: Reset the current window number for each tab page. (Jacob Niehus) +Files: src/ex_docmd.c + + +*** ../vim-7.4.692/src/ex_docmd.c 2015-02-03 19:10:45.978888772 +0100 +--- src/ex_docmd.c 2015-04-13 12:27:14.670015452 +0200 +*************** +*** 10845,10851 **** + buf_T *buf; + int only_save_windows = TRUE; + int nr; +- int cnr = 1; + int restore_size = TRUE; + win_T *wp; + char_u *sname; +--- 10845,10850 ---- +*************** +*** 10983,10989 **** + tab_topframe = topframe; + for (tabnr = 1; ; ++tabnr) + { +! int need_tabnew = FALSE; + + if ((ssop_flags & SSOP_TABPAGES)) + { +--- 10982,10989 ---- + tab_topframe = topframe; + for (tabnr = 1; ; ++tabnr) + { +! int need_tabnew = FALSE; +! int cnr = 1; + + if ((ssop_flags & SSOP_TABPAGES)) + { +*** ../vim-7.4.692/src/version.c 2015-04-09 22:08:09.191074464 +0200 +--- src/version.c 2015-04-13 12:33:11.030267070 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 693, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + I would like to get back to the Censor and agree to lose the shits, take + the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in + your general direction', 'castanets of your testicles' and 'oral sex' + and ask him for an 'A' rating on that basis. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 13a0d3f68995b5733c05fc4c2a290e3d1bd3d490 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:04 +0200 Subject: [PATCH 0155/1407] - patchlevel 694 --- 7.4.694 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.694 diff --git a/7.4.694 b/7.4.694 new file mode 100644 index 00000000..aae83643 --- /dev/null +++ b/7.4.694 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.694 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.694 +Problem: Running tests changes the .viminfo file. +Solution: Disable viminfo in the text objects test. +Files: src/testdir/test_textobjects.in + + +*** ../vim-7.4.693/src/testdir/test_textobjects.in 2015-03-13 15:02:46.258059206 +0100 +--- src/testdir/test_textobjects.in 2015-04-13 12:34:08.969657730 +0200 +*************** +*** 3,9 **** + STARTTEST + :so small.vim + :if !has('textobjects') | e! test.ok | wq! test.out | endif +! :set nocompatible + :" + :function SelectionOut(data) + : new +--- 3,9 ---- + STARTTEST + :so small.vim + :if !has('textobjects') | e! test.ok | wq! test.out | endif +! :set nocp viminfo+=nviminfo + :" + :function SelectionOut(data) + : new +*** ../vim-7.4.693/src/version.c 2015-04-13 12:35:50.184593339 +0200 +--- src/version.c 2015-04-13 12:56:52.467325069 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 694, + /**/ + +-- +A fool must search for a greater fool to find admiration. + + /// 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 /// From d4d234cd54f2a39181669ecae6d74bebba93d09f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:04 +0200 Subject: [PATCH 0156/1407] - patchlevel 695 --- 7.4.695 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.4.695 diff --git a/7.4.695 b/7.4.695 new file mode 100644 index 00000000..8598b42f --- /dev/null +++ b/7.4.695 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.695 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.695 +Problem: Out-of-bounds read, dectected by Coverity. +Solution: Remember the value of cmap for the first matching encoding. Reset + cmap to that value if first matching encoding is going to be used. + (Eliseo Martínez) +Files: src/hardcopy.c + + +*** ../vim-7.4.694/src/hardcopy.c 2015-03-31 13:33:00.797524914 +0200 +--- src/hardcopy.c 2015-04-13 14:38:35.893079993 +0200 +*************** +*** 2513,2525 **** +--- 2513,2530 ---- + props = enc_canon_props(p_encoding); + if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) + { ++ int cmap_first; ++ + p_mbenc_first = NULL; + for (cmap = 0; cmap < (int)NUM_ELEMENTS(prt_ps_mbfonts); cmap++) + if (prt_match_encoding((char *)p_encoding, &prt_ps_mbfonts[cmap], + &p_mbenc)) + { + if (p_mbenc_first == NULL) ++ { + p_mbenc_first = p_mbenc; ++ cmap_first = cmap; ++ } + if (prt_match_charset((char *)p_pmcs, &prt_ps_mbfonts[cmap], + &p_mbchar)) + break; +*************** +*** 2527,2533 **** +--- 2532,2541 ---- + + /* Use first encoding matched if no charset matched */ + if (p_mbchar == NULL && p_mbenc_first != NULL) ++ { + p_mbenc = p_mbenc_first; ++ cmap = cmap_first; ++ } + } + + prt_out_mbyte = (p_mbenc != NULL); +*** ../vim-7.4.694/src/version.c 2015-04-13 12:57:49.638724360 +0200 +--- src/version.c 2015-04-13 14:40:35.539753218 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 695, + /**/ + +-- +People who want to share their religious views with you +almost never want you to share yours with them. + + /// 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 /// From 3e20132a9a33a133f75adec1b1edd5627b4aefdc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:04 +0200 Subject: [PATCH 0157/1407] - patchlevel 696 --- 7.4.696 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 7.4.696 diff --git a/7.4.696 b/7.4.696 new file mode 100644 index 00000000..2afc4c55 --- /dev/null +++ b/7.4.696 @@ -0,0 +1,63 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.696 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.696 +Problem: Not freeing memory when encountering an error. +Solution: Free the stack before returning. (Eliseo Martínez) +Files: src/regexp_nfa.c + + +*** ../vim-7.4.695/src/regexp_nfa.c 2015-03-05 17:16:02.620687666 +0100 +--- src/regexp_nfa.c 2015-04-13 15:18:36.078662211 +0200 +*************** +*** 3156,3161 **** +--- 3156,3162 ---- + if (stackp < stack) \ + { \ + st_error(postfix, end, p); \ ++ vim_free(stack); \ + return NULL; \ + } + +*************** +*** 3632,3641 **** +--- 3633,3648 ---- + + e = POP(); + if (stackp != stack) ++ { ++ vim_free(stack); + EMSG_RET_NULL(_("E875: (NFA regexp) (While converting from postfix to NFA), too many states left on stack")); ++ } + + if (istate >= nstate) ++ { ++ vim_free(stack); + EMSG_RET_NULL(_("E876: (NFA regexp) Not enough space to store the whole NFA ")); ++ } + + matchstate = &state_ptr[istate++]; /* the match state */ + matchstate->c = NFA_MATCH; +*** ../vim-7.4.695/src/version.c 2015-04-13 14:45:10.696707013 +0200 +--- src/version.c 2015-04-13 15:26:18.109607819 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 696, + /**/ + +-- +This message contains 78% recycled characters. + + /// 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 /// From af034f471761d66853cb43b57576cc7e454f48ed Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:04 +0200 Subject: [PATCH 0158/1407] - patchlevel 697 --- 7.4.697 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.697 diff --git a/7.4.697 b/7.4.697 new file mode 100644 index 00000000..da314f31 --- /dev/null +++ b/7.4.697 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.697 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.697 +Problem: The filename used for ":profile" must be given literally. +Solution: Expand "~" and environment variables. (Marco Hinz) +Files: src/ex_cmds2.c + + +*** ../vim-7.4.696/src/ex_cmds2.c 2015-02-27 20:33:27.448780691 +0100 +--- src/ex_cmds2.c 2015-04-13 15:31:48.505997750 +0200 +*************** +*** 1108,1114 **** + if (len == 5 && STRNCMP(eap->arg, "start", 5) == 0 && *e != NUL) + { + vim_free(profile_fname); +! profile_fname = vim_strsave(e); + do_profiling = PROF_YES; + profile_zero(&prof_wait_time); + set_vim_var_nr(VV_PROFILING, 1L); +--- 1108,1114 ---- + if (len == 5 && STRNCMP(eap->arg, "start", 5) == 0 && *e != NUL) + { + vim_free(profile_fname); +! profile_fname = expand_env_save_opt(e, TRUE); + do_profiling = PROF_YES; + profile_zero(&prof_wait_time); + set_vim_var_nr(VV_PROFILING, 1L); +*** ../vim-7.4.696/src/version.c 2015-04-13 15:28:00.108492965 +0200 +--- src/version.c 2015-04-13 15:36:20.975024394 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 697, + /**/ + +-- +I am always surprised in the Linux world how quickly solutions can be +obtained. (Imagine sending an email to Bill Gates, asking why Windows +crashed, and how to fix it... and then getting an answer that fixed the +problem... <0>_<0> !) -- Mark Langdon + + /// 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 /// From bc8f1534889910137c51ee51575a3377897da387 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:05 +0200 Subject: [PATCH 0159/1407] - patchlevel 698 --- 7.4.698 | 601 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 601 insertions(+) create mode 100644 7.4.698 diff --git a/7.4.698 b/7.4.698 new file mode 100644 index 00000000..77268029 --- /dev/null +++ b/7.4.698 @@ -0,0 +1,601 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.698 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.698 +Problem: Various problems with locked and fixed lists and dictionaries. +Solution: Disallow changing locked items, fix a crash, add tests. (Olaf + Dabrunz) +Files: src/structs.h, src/eval.c, src/testdir/test55.in, + src/testdir/test55.ok + + +*** ../vim-7.4.697/src/structs.h 2015-03-20 18:11:44.971196311 +0100 +--- src/structs.h 2015-04-13 16:06:51.999274650 +0200 +*************** +*** 1203,1212 **** + + typedef struct dictitem_S dictitem_T; + +! #define DI_FLAGS_RO 1 /* "di_flags" value: read-only variable */ +! #define DI_FLAGS_RO_SBX 2 /* "di_flags" value: read-only in the sandbox */ +! #define DI_FLAGS_FIX 4 /* "di_flags" value: fixed variable, not allocated */ +! #define DI_FLAGS_LOCK 8 /* "di_flags" value: locked variable */ + + /* + * Structure to hold info about a Dictionary. +--- 1203,1213 ---- + + typedef struct dictitem_S dictitem_T; + +! #define DI_FLAGS_RO 1 /* "di_flags" value: read-only variable */ +! #define DI_FLAGS_RO_SBX 2 /* "di_flags" value: read-only in the sandbox */ +! #define DI_FLAGS_FIX 4 /* "di_flags" value: fixed: no :unlet or remove() */ +! #define DI_FLAGS_LOCK 8 /* "di_flags" value: locked variable */ +! #define DI_FLAGS_ALLOC 16 /* "di_flags" value: separately allocated */ + + /* + * Structure to hold info about a Dictionary. +*** ../vim-7.4.697/src/eval.c 2015-03-31 13:33:00.793524956 +0200 +--- src/eval.c 2015-04-13 16:16:12.045295929 +0200 +*************** +*** 3658,3664 **** + ret = FAIL; + *name_end = cc; + } +! else if (tv_check_lock(lp->ll_tv->v_lock, lp->ll_name)) + return FAIL; + else if (lp->ll_range) + { +--- 3658,3667 ---- + ret = FAIL; + *name_end = cc; + } +! else if ((lp->ll_list != NULL +! && tv_check_lock(lp->ll_list->lv_lock, lp->ll_name)) +! || (lp->ll_dict != NULL +! && tv_check_lock(lp->ll_dict->dv_lock, lp->ll_name))) + return FAIL; + else if (lp->ll_range) + { +*************** +*** 3709,3725 **** + hashtab_T *ht; + hashitem_T *hi; + char_u *varname; + dictitem_T *di; + + ht = find_var_ht(name, &varname); + if (ht != NULL && *varname != NUL) + { + hi = hash_find(ht, varname); + if (!HASHITEM_EMPTY(hi)) + { + di = HI2DI(hi); + if (var_check_fixed(di->di_flags, name) +! || var_check_ro(di->di_flags, name)) + return FAIL; + delete_var(ht, hi); + return OK; +--- 3712,3740 ---- + hashtab_T *ht; + hashitem_T *hi; + char_u *varname; ++ dict_T *d; + dictitem_T *di; + + ht = find_var_ht(name, &varname); + if (ht != NULL && *varname != NUL) + { ++ if (ht == &globvarht) ++ d = &globvardict; ++ else if (current_funccal != NULL ++ && ht == ¤t_funccal->l_vars.dv_hashtab) ++ d = ¤t_funccal->l_vars; ++ else ++ { ++ di = find_var_in_ht(ht, *name, (char_u *)"", FALSE); ++ d = di->di_tv.vval.v_dict; ++ } + hi = hash_find(ht, varname); + if (!HASHITEM_EMPTY(hi)) + { + di = HI2DI(hi); + if (var_check_fixed(di->di_flags, name) +! || var_check_ro(di->di_flags, name) +! || tv_check_lock(d->dv_lock, name)) + return FAIL; + delete_var(ht, hi); + return OK; +*************** +*** 7269,7275 **** + if (di != NULL) + { + STRCPY(di->di_key, key); +! di->di_flags = 0; + } + return di; + } +--- 7284,7290 ---- + if (di != NULL) + { + STRCPY(di->di_key, key); +! di->di_flags = DI_FLAGS_ALLOC; + } + return di; + } +*************** +*** 7288,7294 **** + if (di != NULL) + { + STRCPY(di->di_key, org->di_key); +! di->di_flags = 0; + copy_tv(&org->di_tv, &di->di_tv); + } + return di; +--- 7303,7309 ---- + if (di != NULL) + { + STRCPY(di->di_key, org->di_key); +! di->di_flags = DI_FLAGS_ALLOC; + copy_tv(&org->di_tv, &di->di_tv); + } + return di; +*************** +*** 7320,7326 **** + dictitem_T *item; + { + clear_tv(&item->di_tv); +! vim_free(item); + } + + /* +--- 7335,7342 ---- + dictitem_T *item; + { + clear_tv(&item->di_tv); +! if (item->di_flags & DI_FLAGS_ALLOC) +! vim_free(item); + } + + /* +*************** +*** 10481,10486 **** +--- 10497,10503 ---- + dictitem_T *di1; + hashitem_T *hi2; + int todo; ++ char *arg_errmsg = N_("extend() argument"); + + todo = (int)d2->dv_hashtab.ht_used; + for (hi2 = d2->dv_hashtab.ht_array; todo > 0; ++hi2) +*************** +*** 10515,10520 **** +--- 10532,10540 ---- + } + else if (*action == 'f' && HI2DI(hi2) != di1) + { ++ if (tv_check_lock(di1->di_tv.v_lock, (char_u *)_(arg_errmsg)) ++ || var_check_ro(di1->di_flags, (char_u *)_(arg_errmsg))) ++ break; + clear_tv(&di1->di_tv); + copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv); + } +*************** +*** 10805,10817 **** + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) == NULL +! || tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg))) + return; + } + else if (argvars[0].v_type == VAR_DICT) + { + if ((d = argvars[0].vval.v_dict) == NULL +! || tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg))) + return; + } + else +--- 10825,10837 ---- + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) == NULL +! || (!map && tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))) + return; + } + else if (argvars[0].v_type == VAR_DICT) + { + if ((d = argvars[0].vval.v_dict) == NULL +! || (!map && tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))) + return; + } + else +*************** +*** 10850,10857 **** + + --todo; + di = HI2DI(hi); +! if (tv_check_lock(di->di_tv.v_lock, +! (char_u *)_(arg_errmsg))) + break; + vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); + r = filter_map_one(&di->di_tv, expr, map, &rem); +--- 10870,10880 ---- + + --todo; + di = HI2DI(hi); +! if (map && +! (tv_check_lock(di->di_tv.v_lock, +! (char_u *)_(arg_errmsg)) +! || var_check_ro(di->di_flags, +! (char_u *)_(arg_errmsg)))) + break; + vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); + r = filter_map_one(&di->di_tv, expr, map, &rem); +*************** +*** 10859,10865 **** +--- 10882,10895 ---- + if (r == FAIL || did_emsg) + break; + if (!map && rem) ++ { ++ if (var_check_fixed(di->di_flags, ++ (char_u *)_(arg_errmsg)) ++ || var_check_ro(di->di_flags, ++ (char_u *)_(arg_errmsg))) ++ break; + dictitem_remove(d, di); ++ } + } + } + hash_unlock(ht); +*************** +*** 10870,10876 **** + + for (li = l->lv_first; li != NULL; li = nli) + { +! if (tv_check_lock(li->li_tv.v_lock, (char_u *)_(arg_errmsg))) + break; + nli = li->li_next; + vimvars[VV_KEY].vv_nr = idx; +--- 10900,10907 ---- + + for (li = l->lv_first; li != NULL; li = nli) + { +! if (map && tv_check_lock(li->li_tv.v_lock, +! (char_u *)_(arg_errmsg))) + break; + nli = li->li_next; + vimvars[VV_KEY].vv_nr = idx; +*************** +*** 15819,15825 **** + di = dict_find(d, key, -1); + if (di == NULL) + EMSG2(_(e_dictkey), key); +! else + { + *rettv = di->di_tv; + init_tv(&di->di_tv); +--- 15850,15858 ---- + di = dict_find(d, key, -1); + if (di == NULL) + EMSG2(_(e_dictkey), key); +! else if (!var_check_fixed(di->di_flags, (char_u *)_(arg_errmsg)) +! && !var_check_ro(di->di_flags, +! (char_u *)_(arg_errmsg))) + { + *rettv = di->di_tv; + init_tv(&di->di_tv); +*************** +*** 21303,21309 **** + v = HI2DI(hi); + if (free_val) + clear_tv(&v->di_tv); +! if ((v->di_flags & DI_FLAGS_FIX) == 0) + vim_free(v); + } + } +--- 21336,21342 ---- + v = HI2DI(hi); + if (free_val) + clear_tv(&v->di_tv); +! if (v->di_flags & DI_FLAGS_ALLOC) + vim_free(v); + } + } +*************** +*** 21502,21508 **** + vim_free(v); + return; + } +! v->di_flags = 0; + } + + if (copy || tv->v_type == VAR_NUMBER || tv->v_type == VAR_FLOAT) +--- 21535,21541 ---- + vim_free(v); + return; + } +! v->di_flags = DI_FLAGS_ALLOC; + } + + if (copy || tv->v_type == VAR_NUMBER || tv->v_type == VAR_FLOAT) +*************** +*** 23656,23662 **** + + STRLEN(name))); + if (v == NULL) + break; +! v->di_flags = DI_FLAGS_RO; + } + STRCPY(v->di_key, name); + hash_add(&fc->l_avars.dv_hashtab, DI2HIKEY(v)); +--- 23689,23695 ---- + + STRLEN(name))); + if (v == NULL) + break; +! v->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX | DI_FLAGS_ALLOC; + } + STRCPY(v->di_key, name); + hash_add(&fc->l_avars.dv_hashtab, DI2HIKEY(v)); +*** ../vim-7.4.697/src/testdir/test55.in 2014-12-07 00:18:27.528202992 +0100 +--- src/testdir/test55.in 2015-04-13 16:03:46.981252486 +0200 +*************** +*** 282,287 **** +--- 282,447 ---- + : $put =ps + : endfor + :endfor ++ :" ++ :" Unletting locked variables ++ :$put ='Unletting:' ++ :for depth in range(5) ++ : $put ='depth is ' . depth ++ : for u in range(3) ++ : unlet l ++ : let l = [0, [1, [2, 3]], {4: 5, 6: {7: 8}}] ++ : exe "lockvar " . depth . " l" ++ : if u == 1 ++ : exe "unlockvar l" ++ : elseif u == 2 ++ : exe "unlockvar " . depth . " l" ++ : endif ++ : let ps = islocked("l").islocked("l[1]").islocked("l[1][1]").islocked("l[1][1][0]").'-'.islocked("l[2]").islocked("l[2]['6']").islocked("l[2]['6'][7]") ++ : $put =ps ++ : let ps = '' ++ : try ++ : unlet l[2]['6'][7] ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : try ++ : unlet l[2][6] ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : try ++ : unlet l[2] ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : try ++ : unlet l[1][1][0] ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : try ++ : unlet l[1][1] ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : try ++ : unlet l[1] ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : try ++ : unlet l ++ : let ps .= 'p' ++ : catch ++ : let ps .= 'F' ++ : endtry ++ : $put =ps ++ : endfor ++ :endfor ++ :" ++ :" Locked variables and :unlet or list / dict functions ++ :$put ='Locks and commands or functions:' ++ :" ++ :$put ='No :unlet after lock on dict:' ++ :unlet! d ++ :let d = {'a': 99, 'b': 100} ++ :lockvar 1 d ++ :try ++ : unlet d.a ++ : $put ='did :unlet' ++ :catch ++ : $put =v:exception[:16] ++ :endtry ++ :$put =string(d) ++ :" ++ :$put =':unlet after lock on dict item:' ++ :unlet! d ++ :let d = {'a': 99, 'b': 100} ++ :lockvar d.a ++ :try ++ : unlet d.a ++ : $put ='did :unlet' ++ :catch ++ : $put =v:exception[:16] ++ :endtry ++ :$put =string(d) ++ :" ++ :$put ='filter() after lock on dict item:' ++ :unlet! d ++ :let d = {'a': 99, 'b': 100} ++ :lockvar d.a ++ :try ++ : call filter(d, 'v:key != "a"') ++ : $put ='did filter()' ++ :catch ++ : $put =v:exception[:16] ++ :endtry ++ :$put =string(d) ++ :" ++ :$put ='map() after lock on dict:' ++ :unlet! d ++ :let d = {'a': 99, 'b': 100} ++ :lockvar 1 d ++ :try ++ : call map(d, 'v:val + 200') ++ : $put ='did map()' ++ :catch ++ : $put =v:exception[:16] ++ :endtry ++ :$put =string(d) ++ :" ++ :$put ='No extend() after lock on dict item:' ++ :unlet! d ++ :let d = {'a': 99, 'b': 100} ++ :lockvar d.a ++ :try ++ : $put =string(extend(d, {'a': 123})) ++ : $put ='did extend()' ++ :catch ++ : $put =v:exception[:14] ++ :endtry ++ :$put =string(d) ++ :" ++ :$put ='No remove() of write-protected scope-level variable:' ++ :fun! Tfunc(this_is_a_loooooooooong_parameter_name) ++ : try ++ : $put =string(remove(a:, 'this_is_a_loooooooooong_parameter_name')) ++ : $put ='did remove()' ++ : catch ++ : $put =v:exception[:14] ++ : endtry ++ :endfun ++ :call Tfunc('testval') ++ :" ++ :$put ='No extend() of write-protected scope-level variable:' ++ :fun! Tfunc(this_is_a_loooooooooong_parameter_name) ++ : try ++ : $put =string(extend(a:, {'this_is_a_loooooooooong_parameter_name': 1234})) ++ : $put ='did extend()' ++ : catch ++ : $put =v:exception[:14] ++ : endtry ++ :endfun ++ :call Tfunc('testval') ++ :" ++ :$put ='No :unlet of variable in locked scope:' ++ :let b:testvar = 123 ++ :lockvar 1 b: ++ :try ++ : unlet b:testvar ++ : $put ='b:testvar was :unlet: '. (!exists('b:testvar')) ++ :catch ++ : $put =v:exception[:16] ++ :endtry ++ :unlockvar 1 b: ++ :unlet! b:testvar ++ :" + :unlet l + :let l = [1, 2, 3, 4] + :lockvar! l +*** ../vim-7.4.697/src/testdir/test55.ok 2014-12-07 00:18:27.528202992 +0100 +--- src/testdir/test55.ok 2015-04-13 16:03:46.981252486 +0200 +*************** +*** 86,91 **** +--- 86,149 ---- + FFpFFpp + 0000-000 + ppppppp ++ Unletting: ++ depth is 0 ++ 0000-000 ++ ppppppp ++ 0000-000 ++ ppppppp ++ 0000-000 ++ ppppppp ++ depth is 1 ++ 1000-000 ++ ppFppFp ++ 0000-000 ++ ppppppp ++ 0000-000 ++ ppppppp ++ depth is 2 ++ 1100-100 ++ pFFpFFp ++ 0000-000 ++ ppppppp ++ 0000-000 ++ ppppppp ++ depth is 3 ++ 1110-110 ++ FFFFFFp ++ 0010-010 ++ FppFppp ++ 0000-000 ++ ppppppp ++ depth is 4 ++ 1111-111 ++ FFFFFFp ++ 0011-011 ++ FppFppp ++ 0000-000 ++ ppppppp ++ Locks and commands or functions: ++ No :unlet after lock on dict: ++ Vim(unlet):E741: ++ {'a': 99, 'b': 100} ++ :unlet after lock on dict item: ++ did :unlet ++ {'b': 100} ++ filter() after lock on dict item: ++ did filter() ++ {'b': 100} ++ map() after lock on dict: ++ did map() ++ {'a': 299, 'b': 300} ++ No extend() after lock on dict item: ++ Vim(put):E741: ++ {'a': 99, 'b': 100} ++ No remove() of write-protected scope-level variable: ++ Vim(put):E795: ++ No extend() of write-protected scope-level variable: ++ Vim(put):E742: ++ No :unlet of variable in locked scope: ++ Vim(unlet):E741: + [1, 2, 3, 4] + [1, 2, 3, 4] + [1, 2, 3, 4] +*** ../vim-7.4.697/src/version.c 2015-04-13 15:37:48.342074267 +0200 +--- src/version.c 2015-04-13 16:06:31.439494486 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 698, + /**/ + +-- +To keep milk from turning sour: Keep it in the cow. + + /// 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 /// From 029dcc1ccfbe68b56a3d88ded83fefa3aa710a83 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Apr 2015 18:00:05 +0200 Subject: [PATCH 0160/1407] - patchlevel 698 --- README.patches | 6 ++++++ vim.spec | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 78b777cf..a86bc5f2 100644 --- a/README.patches +++ b/README.patches @@ -714,3 +714,9 @@ Individual patches for Vim 7.4: 3392 7.4.690 memory access errors when changing indent in Ex mode 4331 7.4.691 (after 7.4.689) can't build with MzScheme 1645 7.4.692 defining SOLARIS for no good reason + 2100 7.4.693 session file is not correct when there are multiple tab pages + 1515 7.4.694 running tests changes the .viminfo file + 2184 7.4.695 out-of-bounds read, dectected by Coverity + 1809 7.4.696 not freeing memory when encountering an error + 1887 7.4.697 the filename used for ":profile" must be given literally + 14611 7.4.698 various problems with locked and fixed lists and dictionaries diff --git a/vim.spec b/vim.spec index 56d445b9..7b8ac921 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 692 +%define patchlevel 698 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -739,6 +739,12 @@ Patch689: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.689 Patch690: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.690 Patch691: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.691 Patch692: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.692 +Patch693: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.693 +Patch694: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.694 +Patch695: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.695 +Patch696: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.696 +Patch697: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.697 +Patch698: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.698 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1581,6 +1587,12 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch690 -p0 %patch691 -p0 %patch692 -p0 +%patch693 -p0 +%patch694 -p0 +%patch695 -p0 +%patch696 -p0 +%patch697 -p0 +%patch698 -p0 # install spell files %if %{withvimspell} @@ -2098,6 +2110,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Apr 13 2015 Karsten Hopp 7.4.698-1 +- patchlevel 698 + * Fri Apr 10 2015 Karsten Hopp 7.4.692-1 - patchlevel 692 From 2286ac6af0e921840b1b51ca61c24a4ba2f53bfc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 14 Apr 2015 18:00:03 +0200 Subject: [PATCH 0161/1407] - patchlevel 699 --- 7.4.699 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.4.699 diff --git a/7.4.699 b/7.4.699 new file mode 100644 index 00000000..a58ec2c0 --- /dev/null +++ b/7.4.699 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.699 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.699 +Problem: E315 when trying to delete a fold. (Yutao Yuan) +Solution: Make sure the fold doesn't go beyond the last buffer line. + (Christian Brabandt) +Files: src/fold.c + + +*** ../vim-7.4.698/src/fold.c 2014-03-23 15:12:29.919264336 +0100 +--- src/fold.c 2015-04-13 20:45:56.777041310 +0200 +*************** +*** 234,239 **** +--- 234,241 ---- + return FALSE; + } + ++ if (last > win->w_buffer->b_ml.ml_line_count) ++ last = win->w_buffer->b_ml.ml_line_count; + if (lastp != NULL) + *lastp = last; + if (firstp != NULL) +*** ../vim-7.4.698/src/version.c 2015-04-13 16:16:31.225091428 +0200 +--- src/version.c 2015-04-13 20:47:35.267993635 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 699, + /**/ + +-- +It might look like I'm doing nothing, but at the cellular level +I'm really quite busy. + + /// 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 /// From 5d3ba4f8745ec8481e8af69c7fb7a9b49d66ced7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 14 Apr 2015 18:00:03 +0200 Subject: [PATCH 0162/1407] - patchlevel 699 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a86bc5f2..0fb78646 100644 --- a/README.patches +++ b/README.patches @@ -720,3 +720,4 @@ Individual patches for Vim 7.4: 1809 7.4.696 not freeing memory when encountering an error 1887 7.4.697 the filename used for ":profile" must be given literally 14611 7.4.698 various problems with locked and fixed lists and dictionaries + 1420 7.4.699 E315 when trying to delete a fold diff --git a/vim.spec b/vim.spec index 7b8ac921..d1549622 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 698 +%define patchlevel 699 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -745,6 +745,7 @@ Patch695: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.695 Patch696: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.696 Patch697: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.697 Patch698: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.698 +Patch699: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.699 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1593,6 +1594,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch696 -p0 %patch697 -p0 %patch698 -p0 +%patch699 -p0 # install spell files %if %{withvimspell} @@ -2110,6 +2112,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Apr 14 2015 Karsten Hopp 7.4.699-1 +- patchlevel 699 + * Mon Apr 13 2015 Karsten Hopp 7.4.698-1 - patchlevel 698 From 68f85c546c01d0007c5a9b1916fb80e83712442e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 15 Apr 2015 18:00:03 +0200 Subject: [PATCH 0163/1407] - patchlevel 700 --- 7.4.700 | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) create mode 100644 7.4.700 diff --git a/7.4.700 b/7.4.700 new file mode 100644 index 00000000..c8e0f152 --- /dev/null +++ b/7.4.700 @@ -0,0 +1,125 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.700 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.700 +Problem: Fold can't be opened after ":move". (Ein Brown) +Solution: Delete the folding information and update it afterwards. + (Christian Brabandt) +Files: src/ex_cmds.c, src/fold.c, src/testdir/test45.in, + src/testdir/test45.ok + + +*** ../vim-7.4.699/src/ex_cmds.c 2015-03-31 13:33:00.793524956 +0200 +--- src/ex_cmds.c 2015-04-15 12:35:27.510465352 +0200 +*************** +*** 741,746 **** +--- 741,756 ---- + linenr_T extra; /* Num lines added before line1 */ + linenr_T num_lines; /* Num lines moved */ + linenr_T last_line; /* Last line in file after adding new text */ ++ #ifdef FEAT_FOLDING ++ int isFolded; ++ ++ /* Moving lines seems to corrupt the folds, delete folding info now ++ * and recreate it when finished. Don't do this for manual folding, it ++ * would delete all folds. */ ++ isFolded = hasAnyFolding(curwin) && !foldmethodIsManual(curwin); ++ if (isFolded) ++ deleteFoldRecurse(&curwin->w_folds); ++ #endif + + if (dest >= line1 && dest < line2) + { +*************** +*** 839,844 **** +--- 849,860 ---- + else + changed_lines(dest + 1, 0, line1 + num_lines, 0L); + ++ #ifdef FEAT_FOLDING ++ /* recreate folds */ ++ if (isFolded) ++ foldUpdateAll(curwin); ++ #endif ++ + return OK; + } + +*** ../vim-7.4.699/src/fold.c 2015-04-13 20:52:31.744841858 +0200 +--- src/fold.c 2015-04-15 12:32:53.216048664 +0200 +*************** +*** 847,854 **** + fold_T *fp; + + /* Mark all folds from top to bot as maybe-small. */ +! (void)foldFind(&curwin->w_folds, top, &fp); +! while (fp < (fold_T *)curwin->w_folds.ga_data + curwin->w_folds.ga_len + && fp->fd_top < bot) + { + fp->fd_small = MAYBE; +--- 847,854 ---- + fold_T *fp; + + /* Mark all folds from top to bot as maybe-small. */ +! (void)foldFind(&wp->w_folds, top, &fp); +! while (fp < (fold_T *)wp->w_folds.ga_data + wp->w_folds.ga_len + && fp->fd_top < bot) + { + fp->fd_small = MAYBE; +*** ../vim-7.4.699/src/testdir/test45.in 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test45.in 2015-04-15 12:31:42.396804175 +0200 +*************** +*** 63,68 **** +--- 63,78 ---- + :call append("$", foldlevel(".")) + :/^last/+1,$w! test.out + :delfun Flvl ++ :new ++ iTest fdm=indent and :move bug END ++ line2 ++ Test fdm=indent START ++ line3 ++ line4 ++ :set fdm=indent ++ :1m1 ++ 2jzc:m0 ++ :%w >> test.out + :qa! + ENDTEST + +*** ../vim-7.4.699/src/testdir/test45.ok 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test45.ok 2015-04-15 12:31:42.400804132 +0200 +*************** +*** 16,18 **** +--- 16,23 ---- + 1 + 2 + 0 ++ Test fdm=indent START ++ line3 ++ line4 ++ Test fdm=indent and :move bug END ++ line2 +*** ../vim-7.4.699/src/version.c 2015-04-13 20:52:31.744841858 +0200 +--- src/version.c 2015-04-15 12:43:01.329818386 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 700, + /**/ + +-- +Computers make very fast, very accurate, mistakes. + + /// 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 /// From fe266ff7936ab5373b66d9e53e95a2084036394c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 15 Apr 2015 18:00:04 +0200 Subject: [PATCH 0164/1407] - patchlevel 701 --- 7.4.701 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.701 diff --git a/7.4.701 b/7.4.701 new file mode 100644 index 00000000..893de812 --- /dev/null +++ b/7.4.701 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.701 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.701 +Problem: Compiler warning for using uninitialized variable. (Yasuhiro + Matsumoto) +Solution: Initialize it. +Files: src/hardcopy.c + + +*** ../vim-7.4.700/src/hardcopy.c 2015-04-13 14:45:10.696707013 +0200 +--- src/hardcopy.c 2015-04-15 14:24:23.382239763 +0200 +*************** +*** 2513,2519 **** + props = enc_canon_props(p_encoding); + if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) + { +! int cmap_first; + + p_mbenc_first = NULL; + for (cmap = 0; cmap < (int)NUM_ELEMENTS(prt_ps_mbfonts); cmap++) +--- 2513,2519 ---- + props = enc_canon_props(p_encoding); + if (!(props & ENC_8BIT) && ((*p_pmcs != NUL) || !(props & ENC_UNICODE))) + { +! int cmap_first = 0; + + p_mbenc_first = NULL; + for (cmap = 0; cmap < (int)NUM_ELEMENTS(prt_ps_mbfonts); cmap++) +*** ../vim-7.4.700/src/version.c 2015-04-15 12:43:37.997444487 +0200 +--- src/version.c 2015-04-15 14:25:49.025337117 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 701, + /**/ + +-- +SOLDIER: What? A swallow carrying a coconut? +ARTHUR: It could grip it by the husk ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From ff4b8790c7e9edcee62f6bfef50c69e7ef5c538c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 15 Apr 2015 18:00:04 +0200 Subject: [PATCH 0165/1407] - patchlevel 701 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 0fb78646..66524430 100644 --- a/README.patches +++ b/README.patches @@ -721,3 +721,5 @@ Individual patches for Vim 7.4: 1887 7.4.697 the filename used for ":profile" must be given literally 14611 7.4.698 various problems with locked and fixed lists and dictionaries 1420 7.4.699 E315 when trying to delete a fold + 3529 7.4.700 fold can't be opened after ":move" + 1774 7.4.701 compiler warning for using uninitialized variable diff --git a/vim.spec b/vim.spec index d1549622..659830fe 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 699 +%define patchlevel 701 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -746,6 +746,8 @@ Patch696: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.696 Patch697: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.697 Patch698: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.698 Patch699: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.699 +Patch700: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.700 +Patch701: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.701 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1595,6 +1597,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch697 -p0 %patch698 -p0 %patch699 -p0 +%patch700 -p0 +%patch701 -p0 # install spell files %if %{withvimspell} @@ -2112,6 +2116,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Apr 15 2015 Karsten Hopp 7.4.701-1 +- patchlevel 701 + * Tue Apr 14 2015 Karsten Hopp 7.4.699-1 - patchlevel 699 From eaf28d4cc72fa31cf762a2cf8a9a77a213a62906 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 17 Apr 2015 18:00:04 +0200 Subject: [PATCH 0166/1407] - patchlevel 702 --- 7.4.702 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.4.702 diff --git a/7.4.702 b/7.4.702 new file mode 100644 index 00000000..99a25bed --- /dev/null +++ b/7.4.702 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.702 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.702 +Problem: Joining an empty list does uneccessary work. +Solution: Let join() return early. (Marco Hinz) +Files: src/eval.c + + +*** ../vim-7.4.701/src/eval.c 2015-04-13 16:16:31.225091428 +0200 +--- src/eval.c 2015-04-16 22:47:20.871690015 +0200 +*************** +*** 6780,6785 **** +--- 6780,6787 ---- + join_T *p; + int i; + ++ if (l->lv_len < 1) ++ return OK; /* nothing to do */ + ga_init2(&join_ga, (int)sizeof(join_T), l->lv_len); + retval = list_join_inner(gap, l, sep, echo_style, copyID, &join_ga); + +*** ../vim-7.4.701/src/version.c 2015-04-15 14:27:43.020135640 +0200 +--- src/version.c 2015-04-16 22:50:07.169941629 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 702, + /**/ + +-- +CART DRIVER: Bring out your dead! + There are legs stick out of windows and doors. Two MEN are fighting in the + mud - covered from head to foot in it. Another MAN is on his hands in + knees shovelling mud into his mouth. We just catch sight of a MAN falling + into a well. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From da4f7b91e10ea452809bdf573d5c3323714acefe Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 17 Apr 2015 18:00:05 +0200 Subject: [PATCH 0167/1407] - patchlevel 702 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 66524430..b0849fee 100644 --- a/README.patches +++ b/README.patches @@ -723,3 +723,4 @@ Individual patches for Vim 7.4: 1420 7.4.699 E315 when trying to delete a fold 3529 7.4.700 fold can't be opened after ":move" 1774 7.4.701 compiler warning for using uninitialized variable + 1675 7.4.702 joining an empty list does uneccessary work diff --git a/vim.spec b/vim.spec index 659830fe..1d7e3c66 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 701 +%define patchlevel 702 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -748,6 +748,7 @@ Patch698: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.698 Patch699: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.699 Patch700: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.700 Patch701: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.701 +Patch702: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.702 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1599,6 +1600,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch699 -p0 %patch700 -p0 %patch701 -p0 +%patch702 -p0 # install spell files %if %{withvimspell} @@ -2116,6 +2118,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Apr 17 2015 Karsten Hopp 7.4.702-1 +- patchlevel 702 + * Wed Apr 15 2015 Karsten Hopp 7.4.701-1 - patchlevel 701 From 0dc4fc3711266f04ed3e5b2f9fbcf420ec28b807 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 18 Apr 2015 18:00:03 +0200 Subject: [PATCH 0168/1407] - patchlevel 703 --- 7.4.703 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.703 diff --git a/7.4.703 b/7.4.703 new file mode 100644 index 00000000..88fb2234 --- /dev/null +++ b/7.4.703 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.703 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.703 +Problem: Compiler warning for start_dir unused when building unittests. +Solution: Move start_dir inside the #ifdef. +Files: src/main.c + + +*** ../vim-7.4.702/src/main.c 2015-04-03 17:59:19.833761335 +0200 +--- src/main.c 2015-04-17 20:56:33.219872867 +0200 +*************** +*** 147,156 **** + #define ME_INVALID_ARG 5 + }; + +- static char_u *start_dir = NULL; /* current working dir on startup */ +- + #ifndef PROTO /* don't want a prototype for main() */ + #ifndef NO_VIM_MAIN /* skip this for unittests */ + int + # ifdef VIMDLL + _export +--- 147,157 ---- + #define ME_INVALID_ARG 5 + }; + + #ifndef PROTO /* don't want a prototype for main() */ + #ifndef NO_VIM_MAIN /* skip this for unittests */ ++ ++ static char_u *start_dir = NULL; /* current working dir on startup */ ++ + int + # ifdef VIMDLL + _export +*** ../vim-7.4.702/src/version.c 2015-04-16 22:51:16.685210855 +0200 +--- src/version.c 2015-04-17 20:57:15.343434053 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 703, + /**/ + +-- +LARGE MAN: Who's that then? +CART DRIVER: (Grudgingly) I dunno, Must be a king. +LARGE MAN: Why? +CART DRIVER: He hasn't got shit all over him. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From dc01b74fe1d430534dcec90185dc2eeb6bc4e044 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 18 Apr 2015 18:00:04 +0200 Subject: [PATCH 0169/1407] - patchlevel 703 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index b0849fee..fa03572c 100644 --- a/README.patches +++ b/README.patches @@ -724,3 +724,4 @@ Individual patches for Vim 7.4: 3529 7.4.700 fold can't be opened after ":move" 1774 7.4.701 compiler warning for using uninitialized variable 1675 7.4.702 joining an empty list does uneccessary work + 1837 7.4.703 compiler warning for start_dir unused when building unittests diff --git a/vim.spec b/vim.spec index 1d7e3c66..73243958 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 702 +%define patchlevel 703 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -749,6 +749,7 @@ Patch699: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.699 Patch700: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.700 Patch701: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.701 Patch702: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.702 +Patch703: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.703 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1601,6 +1602,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch700 -p0 %patch701 -p0 %patch702 -p0 +%patch703 -p0 # install spell files %if %{withvimspell} @@ -2118,6 +2120,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Apr 18 2015 Karsten Hopp 7.4.703-1 +- patchlevel 703 + * Fri Apr 17 2015 Karsten Hopp 7.4.702-1 - patchlevel 702 From f88e37baebec97955d49b2e5dcc0e2351197dc3e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Apr 2015 18:00:04 +0200 Subject: [PATCH 0170/1407] - patchlevel 704 --- 7.4.704 | 500 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 500 insertions(+) create mode 100644 7.4.704 diff --git a/7.4.704 b/7.4.704 new file mode 100644 index 00000000..9884d870 --- /dev/null +++ b/7.4.704 @@ -0,0 +1,500 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.704 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.704 +Problem: Searching for a character matches an illegal byte and causes + invalid memory access. (Dominique Pelle) +Solution: Do not match an invalid byte when search for a character in a + string. Fix equivalence classes using negative numbers, which + result in illegal bytes. +Files: src/misc2.c, src/regexp.c, src/testdir/test44.in + + +*** ../vim-7.4.703/src/misc2.c 2015-03-05 13:35:52.421943998 +0100 +--- src/misc2.c 2015-04-21 13:52:44.635812675 +0200 +*************** +*** 1885,1893 **** + { + while (*p != NUL) + { +! if (utf_ptr2char(p) == c) + return p; +! p += (*mb_ptr2len)(p); + } + return NULL; + } +--- 1885,1896 ---- + { + while (*p != NUL) + { +! int l = (*mb_ptr2len)(p); +! +! /* Avoid matching an illegal byte here. */ +! if (utf_ptr2char(p) == c && l > 1) + return p; +! p += l; + } + return NULL; + } +*** ../vim-7.4.703/src/regexp.c 2015-03-31 14:17:22.004608294 +0200 +--- src/regexp.c 2015-04-21 13:55:32.778050479 +0200 +*************** +*** 845,857 **** + #else + switch (c) + { +! case 'A': case '\300': case '\301': case '\302': + CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd) + CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2) +! case '\303': case '\304': case '\305': +! regmbc('A'); regmbc('\300'); regmbc('\301'); +! regmbc('\302'); regmbc('\303'); regmbc('\304'); +! regmbc('\305'); + REGMBC(0x100) REGMBC(0x102) REGMBC(0x104) + REGMBC(0x1cd) REGMBC(0x1de) REGMBC(0x1e0) + REGMBC(0x1ea2) +--- 845,858 ---- + #else + switch (c) + { +! /* Do not use '\300' style, it results in a negative number. */ +! case 'A': case 0xc0: case 0xc1: case 0xc2: +! case 0xc3: case 0xc4: case 0xc5: + CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd) + CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2) +! regmbc('A'); regmbc(0xc0); regmbc(0xc1); +! regmbc(0xc2); regmbc(0xc3); regmbc(0xc4); +! regmbc(0xc5); + REGMBC(0x100) REGMBC(0x102) REGMBC(0x104) + REGMBC(0x1cd) REGMBC(0x1de) REGMBC(0x1e0) + REGMBC(0x1ea2) +*************** +*** 859,867 **** + case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06) + regmbc('B'); REGMBC(0x1e02) REGMBC(0x1e06) + return; +! case 'C': case '\307': + CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c) +! regmbc('C'); regmbc('\307'); + REGMBC(0x106) REGMBC(0x108) REGMBC(0x10a) + REGMBC(0x10c) + return; +--- 860,868 ---- + case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06) + regmbc('B'); REGMBC(0x1e02) REGMBC(0x1e06) + return; +! case 'C': case 0xc7: + CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c) +! regmbc('C'); regmbc(0xc7); + REGMBC(0x106) REGMBC(0x108) REGMBC(0x10a) + REGMBC(0x10c) + return; +*************** +*** 870,880 **** + regmbc('D'); REGMBC(0x10e) REGMBC(0x110) + REGMBC(0x1e0a) REGMBC(0x1e0e) REGMBC(0x1e10) + return; +! case 'E': case '\310': case '\311': case '\312': case '\313': + CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118) + CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc) +! regmbc('E'); regmbc('\310'); regmbc('\311'); +! regmbc('\312'); regmbc('\313'); + REGMBC(0x112) REGMBC(0x114) REGMBC(0x116) + REGMBC(0x118) REGMBC(0x11a) REGMBC(0x1eba) + REGMBC(0x1ebc) +--- 871,881 ---- + regmbc('D'); REGMBC(0x10e) REGMBC(0x110) + REGMBC(0x1e0a) REGMBC(0x1e0e) REGMBC(0x1e10) + return; +! case 'E': case 0xc8: case 0xc9: case 0xca: case 0xcb: + CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118) + CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc) +! regmbc('E'); regmbc(0xc8); regmbc(0xc9); +! regmbc(0xca); regmbc(0xcb); + REGMBC(0x112) REGMBC(0x114) REGMBC(0x116) + REGMBC(0x118) REGMBC(0x11a) REGMBC(0x1eba) + REGMBC(0x1ebc) +*************** +*** 894,904 **** + regmbc('H'); REGMBC(0x124) REGMBC(0x126) + REGMBC(0x1e22) REGMBC(0x1e26) REGMBC(0x1e28) + return; +! case 'I': case '\314': case '\315': case '\316': case '\317': + CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e) + CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8) +! regmbc('I'); regmbc('\314'); regmbc('\315'); +! regmbc('\316'); regmbc('\317'); + REGMBC(0x128) REGMBC(0x12a) REGMBC(0x12c) + REGMBC(0x12e) REGMBC(0x130) REGMBC(0x1cf) + REGMBC(0x1ec8) +--- 895,905 ---- + regmbc('H'); REGMBC(0x124) REGMBC(0x126) + REGMBC(0x1e22) REGMBC(0x1e26) REGMBC(0x1e28) + return; +! case 'I': case 0xcc: case 0xcd: case 0xce: case 0xcf: + CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e) + CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8) +! regmbc('I'); regmbc(0xcc); regmbc(0xcd); +! regmbc(0xce); regmbc(0xcf); + REGMBC(0x128) REGMBC(0x12a) REGMBC(0x12c) + REGMBC(0x12e) REGMBC(0x130) REGMBC(0x1cf) + REGMBC(0x1ec8) +*************** +*** 920,939 **** + case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40) + regmbc('M'); REGMBC(0x1e3e) REGMBC(0x1e40) + return; +! case 'N': case '\321': + CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44) + CASEMBC(0x1e48) +! regmbc('N'); regmbc('\321'); + REGMBC(0x143) REGMBC(0x145) REGMBC(0x147) + REGMBC(0x1e44) REGMBC(0x1e48) + return; +! case 'O': case '\322': case '\323': case '\324': case '\325': +! case '\326': case '\330': + CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0) + CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece) +! regmbc('O'); regmbc('\322'); regmbc('\323'); +! regmbc('\324'); regmbc('\325'); regmbc('\326'); +! regmbc('\330'); + REGMBC(0x14c) REGMBC(0x14e) REGMBC(0x150) + REGMBC(0x1a0) REGMBC(0x1d1) REGMBC(0x1ea) + REGMBC(0x1ec) REGMBC(0x1ece) +--- 921,940 ---- + case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40) + regmbc('M'); REGMBC(0x1e3e) REGMBC(0x1e40) + return; +! case 'N': case 0xd1: + CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44) + CASEMBC(0x1e48) +! regmbc('N'); regmbc(0xd1); + REGMBC(0x143) REGMBC(0x145) REGMBC(0x147) + REGMBC(0x1e44) REGMBC(0x1e48) + return; +! case 'O': case 0xd2: case 0xd3: case 0xd4: case 0xd5: +! case 0xd6: case 0xd8: + CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0) + CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece) +! regmbc('O'); regmbc(0xd2); regmbc(0xd3); +! regmbc(0xd4); regmbc(0xd5); regmbc(0xd6); +! regmbc(0xd8); + REGMBC(0x14c) REGMBC(0x14e) REGMBC(0x150) + REGMBC(0x1a0) REGMBC(0x1d1) REGMBC(0x1ea) + REGMBC(0x1ec) REGMBC(0x1ece) +*************** +*** 956,967 **** + regmbc('T'); REGMBC(0x162) REGMBC(0x164) + REGMBC(0x166) REGMBC(0x1e6a) REGMBC(0x1e6e) + return; +! case 'U': case '\331': case '\332': case '\333': case '\334': + CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e) + CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) + CASEMBC(0x1ee6) +! regmbc('U'); regmbc('\331'); regmbc('\332'); +! regmbc('\333'); regmbc('\334'); + REGMBC(0x168) REGMBC(0x16a) REGMBC(0x16c) + REGMBC(0x16e) REGMBC(0x170) REGMBC(0x172) + REGMBC(0x1af) REGMBC(0x1d3) REGMBC(0x1ee6) +--- 957,968 ---- + regmbc('T'); REGMBC(0x162) REGMBC(0x164) + REGMBC(0x166) REGMBC(0x1e6a) REGMBC(0x1e6e) + return; +! case 'U': case 0xd9: case 0xda: case 0xdb: case 0xdc: + CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e) + CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) + CASEMBC(0x1ee6) +! regmbc('U'); regmbc(0xd9); regmbc(0xda); +! regmbc(0xdb); regmbc(0xdc); + REGMBC(0x168) REGMBC(0x16a) REGMBC(0x16c) + REGMBC(0x16e) REGMBC(0x170) REGMBC(0x172) + REGMBC(0x1af) REGMBC(0x1d3) REGMBC(0x1ee6) +*************** +*** 977,986 **** + case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c) + regmbc('X'); REGMBC(0x1e8a) REGMBC(0x1e8c) + return; +! case 'Y': case '\335': + CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2) + CASEMBC(0x1ef6) CASEMBC(0x1ef8) +! regmbc('Y'); regmbc('\335'); + REGMBC(0x176) REGMBC(0x178) REGMBC(0x1e8e) + REGMBC(0x1ef2) REGMBC(0x1ef6) REGMBC(0x1ef8) + return; +--- 978,987 ---- + case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c) + regmbc('X'); REGMBC(0x1e8a) REGMBC(0x1e8c) + return; +! case 'Y': case 0xdd: + CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2) + CASEMBC(0x1ef6) CASEMBC(0x1ef8) +! regmbc('Y'); regmbc(0xdd); + REGMBC(0x176) REGMBC(0x178) REGMBC(0x1e8e) + REGMBC(0x1ef2) REGMBC(0x1ef6) REGMBC(0x1ef8) + return; +*************** +*** 990,1002 **** + REGMBC(0x17d) REGMBC(0x1b5) REGMBC(0x1e90) + REGMBC(0x1e94) + return; +! case 'a': case '\340': case '\341': case '\342': +! case '\343': case '\344': case '\345': + CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce) + CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3) +! regmbc('a'); regmbc('\340'); regmbc('\341'); +! regmbc('\342'); regmbc('\343'); regmbc('\344'); +! regmbc('\345'); + REGMBC(0x101) REGMBC(0x103) REGMBC(0x105) + REGMBC(0x1ce) REGMBC(0x1df) REGMBC(0x1e1) + REGMBC(0x1ea3) +--- 991,1003 ---- + REGMBC(0x17d) REGMBC(0x1b5) REGMBC(0x1e90) + REGMBC(0x1e94) + return; +! case 'a': case 0xe0: case 0xe1: case 0xe2: +! case 0xe3: case 0xe4: case 0xe5: + CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce) + CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3) +! regmbc('a'); regmbc(0xe0); regmbc(0xe1); +! regmbc(0xe2); regmbc(0xe3); regmbc(0xe4); +! regmbc(0xe5); + REGMBC(0x101) REGMBC(0x103) REGMBC(0x105) + REGMBC(0x1ce) REGMBC(0x1df) REGMBC(0x1e1) + REGMBC(0x1ea3) +*************** +*** 1004,1012 **** + case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07) + regmbc('b'); REGMBC(0x1e03) REGMBC(0x1e07) + return; +! case 'c': case '\347': + CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d) +! regmbc('c'); regmbc('\347'); + REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b) + REGMBC(0x10d) + return; +--- 1005,1013 ---- + case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07) + regmbc('b'); REGMBC(0x1e03) REGMBC(0x1e07) + return; +! case 'c': case 0xe7: + CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d) +! regmbc('c'); regmbc(0xe7); + REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b) + REGMBC(0x10d) + return; +*************** +*** 1015,1025 **** + regmbc('d'); REGMBC(0x10f) REGMBC(0x111) + REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11) + return; +! case 'e': case '\350': case '\351': case '\352': case '\353': + CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) + CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd) +! regmbc('e'); regmbc('\350'); regmbc('\351'); +! regmbc('\352'); regmbc('\353'); + REGMBC(0x113) REGMBC(0x115) REGMBC(0x117) + REGMBC(0x119) REGMBC(0x11b) REGMBC(0x1ebb) + REGMBC(0x1ebd) +--- 1016,1026 ---- + regmbc('d'); REGMBC(0x10f) REGMBC(0x111) + REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11) + return; +! case 'e': case 0xe8: case 0xe9: case 0xea: case 0xeb: + CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) + CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd) +! regmbc('e'); regmbc(0xe8); regmbc(0xe9); +! regmbc(0xea); regmbc(0xeb); + REGMBC(0x113) REGMBC(0x115) REGMBC(0x117) + REGMBC(0x119) REGMBC(0x11b) REGMBC(0x1ebb) + REGMBC(0x1ebd) +*************** +*** 1040,1050 **** + REGMBC(0x1e23) REGMBC(0x1e27) REGMBC(0x1e29) + REGMBC(0x1e96) + return; +! case 'i': case '\354': case '\355': case '\356': case '\357': + CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f) + CASEMBC(0x1d0) CASEMBC(0x1ec9) +! regmbc('i'); regmbc('\354'); regmbc('\355'); +! regmbc('\356'); regmbc('\357'); + REGMBC(0x129) REGMBC(0x12b) REGMBC(0x12d) + REGMBC(0x12f) REGMBC(0x1d0) REGMBC(0x1ec9) + return; +--- 1041,1051 ---- + REGMBC(0x1e23) REGMBC(0x1e27) REGMBC(0x1e29) + REGMBC(0x1e96) + return; +! case 'i': case 0xec: case 0xed: case 0xee: case 0xef: + CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f) + CASEMBC(0x1d0) CASEMBC(0x1ec9) +! regmbc('i'); regmbc(0xec); regmbc(0xed); +! regmbc(0xee); regmbc(0xef); + REGMBC(0x129) REGMBC(0x12b) REGMBC(0x12d) + REGMBC(0x12f) REGMBC(0x1d0) REGMBC(0x1ec9) + return; +*************** +*** 1065,1084 **** + case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41) + regmbc('m'); REGMBC(0x1e3f) REGMBC(0x1e41) + return; +! case 'n': case '\361': + CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149) + CASEMBC(0x1e45) CASEMBC(0x1e49) +! regmbc('n'); regmbc('\361'); + REGMBC(0x144) REGMBC(0x146) REGMBC(0x148) + REGMBC(0x149) REGMBC(0x1e45) REGMBC(0x1e49) + return; +! case 'o': case '\362': case '\363': case '\364': case '\365': +! case '\366': case '\370': + CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1) + CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf) +! regmbc('o'); regmbc('\362'); regmbc('\363'); +! regmbc('\364'); regmbc('\365'); regmbc('\366'); +! regmbc('\370'); + REGMBC(0x14d) REGMBC(0x14f) REGMBC(0x151) + REGMBC(0x1a1) REGMBC(0x1d2) REGMBC(0x1eb) + REGMBC(0x1ed) REGMBC(0x1ecf) +--- 1066,1085 ---- + case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41) + regmbc('m'); REGMBC(0x1e3f) REGMBC(0x1e41) + return; +! case 'n': case 0xf1: + CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149) + CASEMBC(0x1e45) CASEMBC(0x1e49) +! regmbc('n'); regmbc(0xf1); + REGMBC(0x144) REGMBC(0x146) REGMBC(0x148) + REGMBC(0x149) REGMBC(0x1e45) REGMBC(0x1e49) + return; +! case 'o': case 0xf2: case 0xf3: case 0xf4: case 0xf5: +! case 0xf6: case 0xf8: + CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1) + CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf) +! regmbc('o'); regmbc(0xf2); regmbc(0xf3); +! regmbc(0xf4); regmbc(0xf5); regmbc(0xf6); +! regmbc(0xf8); + REGMBC(0x14d) REGMBC(0x14f) REGMBC(0x151) + REGMBC(0x1a1) REGMBC(0x1d2) REGMBC(0x1eb) + REGMBC(0x1ed) REGMBC(0x1ecf) +*************** +*** 1101,1112 **** + regmbc('t'); REGMBC(0x163) REGMBC(0x165) REGMBC(0x167) + REGMBC(0x1e6b) REGMBC(0x1e6f) REGMBC(0x1e97) + return; +! case 'u': case '\371': case '\372': case '\373': case '\374': + CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f) + CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) + CASEMBC(0x1ee7) +! regmbc('u'); regmbc('\371'); regmbc('\372'); +! regmbc('\373'); regmbc('\374'); + REGMBC(0x169) REGMBC(0x16b) REGMBC(0x16d) + REGMBC(0x16f) REGMBC(0x171) REGMBC(0x173) + REGMBC(0x1b0) REGMBC(0x1d4) REGMBC(0x1ee7) +--- 1102,1113 ---- + regmbc('t'); REGMBC(0x163) REGMBC(0x165) REGMBC(0x167) + REGMBC(0x1e6b) REGMBC(0x1e6f) REGMBC(0x1e97) + return; +! case 'u': case 0xf9: case 0xfa: case 0xfb: case 0xfc: + CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f) + CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) + CASEMBC(0x1ee7) +! regmbc('u'); regmbc(0xf9); regmbc(0xfa); +! regmbc(0xfb); regmbc(0xfc); + REGMBC(0x169) REGMBC(0x16b) REGMBC(0x16d) + REGMBC(0x16f) REGMBC(0x171) REGMBC(0x173) + REGMBC(0x1b0) REGMBC(0x1d4) REGMBC(0x1ee7) +*************** +*** 1123,1132 **** + case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d) + regmbc('x'); REGMBC(0x1e8b) REGMBC(0x1e8d) + return; +! case 'y': case '\375': case '\377': + CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99) + CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9) +! regmbc('y'); regmbc('\375'); regmbc('\377'); + REGMBC(0x177) REGMBC(0x1e8f) REGMBC(0x1e99) + REGMBC(0x1ef3) REGMBC(0x1ef7) REGMBC(0x1ef9) + return; +--- 1124,1133 ---- + case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d) + regmbc('x'); REGMBC(0x1e8b) REGMBC(0x1e8d) + return; +! case 'y': case 0xfd: case 0xff: + CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99) + CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9) +! regmbc('y'); regmbc(0xfd); regmbc(0xff); + REGMBC(0x177) REGMBC(0x1e8f) REGMBC(0x1e99) + REGMBC(0x1ef3) REGMBC(0x1ef7) REGMBC(0x1ef9) + return; +*** ../vim-7.4.703/src/testdir/test44.in 2015-02-17 15:43:52.800426905 +0100 +--- src/testdir/test44.in 2015-04-21 12:59:55.712997929 +0200 +*************** +*** 24,40 **** + x:" find word by change of word class + /ã¡\<カヨ\>㯠+ x:" Test \%u, [\u] and friends + /\%u20ac +! x/[\u4f7f\u5929]\+ +! x/\%U12345678 +! x/[\U1234abcd\u1234\uabcd] +! x/\%d21879b +! x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e +! x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e +! x:" Test backwards search from a multi-byte char + /x + x?. +! x:let @w=':%s#comb[i]nations#œ̄ṣÌm̥̄ᾱ̆Ì#g' + :@w + :?^1?,$w! test.out + :e! test.out +--- 24,48 ---- + x:" find word by change of word class + /ã¡\<カヨ\>㯠+ x:" Test \%u, [\u] and friends ++ :" c + /\%u20ac +! x:" d +! /[\u4f7f\u5929]\+ +! x:" e +! /\%U12345678 +! x:" f +! /[\U1234abcd\u1234\uabcd] +! x:" g +! /\%d21879b +! x:" h +! / [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e +! x:" i +! / [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e +! x:" j Test backwards search from a multi-byte char + /x + x?. +! x:" k +! :let @w=':%s#comb[i]nations#œ̄ṣÌm̥̄ᾱ̆Ì#g' + :@w + :?^1?,$w! test.out + :e! test.out +*** ../vim-7.4.703/src/version.c 2015-04-17 22:08:10.998772925 +0200 +--- src/version.c 2015-04-21 12:32:00.262385422 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 704, + /**/ + +-- +Eye have a spelling checker, it came with my PC; +It plainly marks four my revue mistakes I cannot sea. +I've run this poem threw it, I'm sure your please to no, +It's letter perfect in it's weigh, my checker tolled me sew! + + /// 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 /// From a4b46cc845c0b52878851729e7352f37fd3c0e3d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Apr 2015 18:00:05 +0200 Subject: [PATCH 0171/1407] - patchlevel 705 --- 7.4.705 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 7.4.705 diff --git a/7.4.705 b/7.4.705 new file mode 100644 index 00000000..0961acc7 --- /dev/null +++ b/7.4.705 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.705 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.705 +Problem: Can't build with Ruby 2.2. +Solution: Add #ifdefs to handle the incompatible change. (Andrei Olsen) +Files: src/if_ruby.c + + +*** ../vim-7.4.704/src/if_ruby.c 2015-01-14 14:04:05.511397639 +0100 +--- src/if_ruby.c 2015-04-21 15:24:30.294078994 +0200 +*************** +*** 396,402 **** +--- 396,406 ---- + # endif + + # if defined(RUBY19_OR_LATER) && !defined(PROTO) ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22 ++ long rb_num2long_stub(VALUE x) ++ # else + SIGNED_VALUE rb_num2long_stub(VALUE x) ++ # endif + { + return dll_rb_num2long(x); + } +*************** +*** 421,427 **** +--- 425,435 ---- + { + return dll_rb_float_new(d); + } ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22 ++ unsigned long rb_num2ulong(VALUE x) ++ # else + VALUE rb_num2ulong(VALUE x) ++ # endif + { + return (long)RSHIFT((SIGNED_VALUE)(x),1); + } +*** ../vim-7.4.704/src/version.c 2015-04-21 14:02:28.493694351 +0200 +--- src/version.c 2015-04-21 15:25:12.633633454 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 705, + /**/ + +-- + A village. Sound of chanting of Latin canon, punctuated by short, sharp + cracks. It comes nearer. We see it is a line of MONKS ala SEVENTH SEAL + flagellation scene, chanting and banging themselves on the foreheads with + wooden boards. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From cb90d4a6c9430533d463026a2653acf42125670c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Apr 2015 18:00:05 +0200 Subject: [PATCH 0172/1407] - patchlevel 706 --- 7.4.706 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.4.706 diff --git a/7.4.706 b/7.4.706 new file mode 100644 index 00000000..bfd29420 --- /dev/null +++ b/7.4.706 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.706 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.706 +Problem: Window drawn wrong when 'laststatus' is zero and there is a + command-line window. (Yclept Nemo) +Solution: Set the status height a bit later. (Christian Brabandt) +Files: src/window.c + + +*** ../vim-7.4.705/src/window.c 2015-02-27 17:19:07.104942344 +0100 +--- src/window.c 2015-04-21 15:42:55.362449950 +0200 +*************** +*** 1236,1242 **** + { + wp->w_winrow = oldwin->w_winrow + oldwin->w_height + STATUS_HEIGHT; + wp->w_status_height = oldwin->w_status_height; +! oldwin->w_status_height = STATUS_HEIGHT; + } + #ifdef FEAT_VERTSPLIT + if (flags & WSP_BOT) +--- 1236,1243 ---- + { + wp->w_winrow = oldwin->w_winrow + oldwin->w_height + STATUS_HEIGHT; + wp->w_status_height = oldwin->w_status_height; +! /* Don't set the status_height for oldwin yet, this might break +! * frame_fix_height(oldwin), therefore will be set below. */ + } + #ifdef FEAT_VERTSPLIT + if (flags & WSP_BOT) +*************** +*** 1244,1249 **** +--- 1245,1255 ---- + #endif + frame_fix_height(wp); + frame_fix_height(oldwin); ++ ++ if (!before) ++ /* new window above current one, set the status_height after ++ * frame_fix_height(oldwin) */ ++ oldwin->w_status_height = STATUS_HEIGHT; + } + + if (flags & (WSP_TOP | WSP_BOT)) +*** ../vim-7.4.705/src/version.c 2015-04-21 15:25:26.425488328 +0200 +--- src/version.c 2015-04-21 15:29:15.675076417 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 706, + /**/ + +-- +It is too bad that the speed of light hasn't kept pace with the +changes in CPU speed and network bandwidth. -- + + /// 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 /// From c1dd5aed000ffedabb658632ef25e300f8f80da6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Apr 2015 18:00:05 +0200 Subject: [PATCH 0173/1407] - patchlevel 707 --- 7.4.707 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.707 diff --git a/7.4.707 b/7.4.707 new file mode 100644 index 00000000..40a9dd12 --- /dev/null +++ b/7.4.707 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.707 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.707 +Problem: Undo files can have their executable bit set. +Solution: Strip of the executable bit. (Mikael Berthe) +Files: src/undo.c + + +*** ../vim-7.4.706/src/undo.c 2015-02-17 13:43:35.562216149 +0100 +--- src/undo.c 2015-04-21 16:01:51.702508121 +0200 +*************** +*** 1614,1621 **** + #endif + } + +! /* strip any s-bit */ +! perm = perm & 0777; + + /* If the undo file already exists, verify that it actually is an undo + * file, and delete it. */ +--- 1614,1621 ---- + #endif + } + +! /* strip any s-bit and executable bit */ +! perm = perm & 0666; + + /* If the undo file already exists, verify that it actually is an undo + * file, and delete it. */ +*** ../vim-7.4.706/src/version.c 2015-04-21 15:43:00.342397536 +0200 +--- src/version.c 2015-04-21 16:00:54.979103468 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 707, + /**/ + +-- +FIRST VILLAGER: We have found a witch. May we burn her? + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 262cf93f2fef359c1d05bbdecc445fbfa5761f95 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Apr 2015 18:00:06 +0200 Subject: [PATCH 0174/1407] - patchlevel 708 --- 7.4.708 | 675 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 675 insertions(+) create mode 100644 7.4.708 diff --git a/7.4.708 b/7.4.708 new file mode 100644 index 00000000..55b168d2 --- /dev/null +++ b/7.4.708 @@ -0,0 +1,675 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.708 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.708 +Problem: gettext() is called too often. +Solution: Do not call gettext() for messages until they are actually used. + (idea by Yasuhiro Matsumoto) +Files: src/eval.c + + +*** ../vim-7.4.707/src/eval.c 2015-04-16 22:51:16.681210896 +0200 +--- src/eval.c 2015-04-21 16:39:30.342843216 +0200 +*************** +*** 802,812 **** + static void list_one_var __ARGS((dictitem_T *v, char_u *prefix, int *first)); + static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string, int *first)); + static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); +! static int var_check_ro __ARGS((int flags, char_u *name)); +! static int var_check_fixed __ARGS((int flags, char_u *name)); + static int var_check_func_name __ARGS((char_u *name, int new_var)); + static int valid_varname __ARGS((char_u *varname)); +! static int tv_check_lock __ARGS((int lock, char_u *name)); + static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID)); + static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags)); + static char_u *trans_function_name __ARGS((char_u **pp, int skip, int flags, funcdict_T *fd)); +--- 802,812 ---- + static void list_one_var __ARGS((dictitem_T *v, char_u *prefix, int *first)); + static void list_one_var_a __ARGS((char_u *prefix, char_u *name, int type, char_u *string, int *first)); + static void set_var __ARGS((char_u *name, typval_T *varp, int copy)); +! static int var_check_ro __ARGS((int flags, char_u *name, int use_gettext)); +! static int var_check_fixed __ARGS((int flags, char_u *name, int use_gettext)); + static int var_check_func_name __ARGS((char_u *name, int new_var)); + static int valid_varname __ARGS((char_u *varname)); +! static int tv_check_lock __ARGS((int lock, char_u *name, int use_gettext)); + static int item_copy __ARGS((typval_T *from, typval_T *to, int deep, int copyID)); + static char_u *find_option_end __ARGS((char_u **arg, int *opt_flags)); + static char_u *trans_function_name __ARGS((char_u **pp, int skip, int flags, funcdict_T *fd)); +*************** +*** 2808,2814 **** + break; + } + /* existing variable, need to check if it can be changed */ +! else if (var_check_ro(lp->ll_di->di_flags, name)) + return NULL; + + if (len == -1) +--- 2808,2814 ---- + break; + } + /* existing variable, need to check if it can be changed */ +! else if (var_check_ro(lp->ll_di->di_flags, name, FALSE)) + return NULL; + + if (len == -1) +*************** +*** 2941,2947 **** + } + else if (tv_check_lock(lp->ll_newkey == NULL + ? lp->ll_tv->v_lock +! : lp->ll_tv->vval.v_dict->dv_lock, lp->ll_name)) + ; + else if (lp->ll_range) + { +--- 2941,2947 ---- + } + else if (tv_check_lock(lp->ll_newkey == NULL + ? lp->ll_tv->v_lock +! : lp->ll_tv->vval.v_dict->dv_lock, lp->ll_name, FALSE)) + ; + else if (lp->ll_range) + { +*************** +*** 2953,2959 **** + */ + for (ri = rettv->vval.v_list->lv_first; ri != NULL && ll_li != NULL; ) + { +! if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name)) + return; + ri = ri->li_next; + if (ri == NULL || (!lp->ll_empty2 && lp->ll_n2 == ll_n1)) +--- 2953,2959 ---- + */ + for (ri = rettv->vval.v_list->lv_first; ri != NULL && ll_li != NULL; ) + { +! if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE)) + return; + ri = ri->li_next; + if (ri == NULL || (!lp->ll_empty2 && lp->ll_n2 == ll_n1)) +*************** +*** 3659,3667 **** + *name_end = cc; + } + else if ((lp->ll_list != NULL +! && tv_check_lock(lp->ll_list->lv_lock, lp->ll_name)) + || (lp->ll_dict != NULL +! && tv_check_lock(lp->ll_dict->dv_lock, lp->ll_name))) + return FAIL; + else if (lp->ll_range) + { +--- 3659,3667 ---- + *name_end = cc; + } + else if ((lp->ll_list != NULL +! && tv_check_lock(lp->ll_list->lv_lock, lp->ll_name, FALSE)) + || (lp->ll_dict != NULL +! && tv_check_lock(lp->ll_dict->dv_lock, lp->ll_name, FALSE))) + return FAIL; + else if (lp->ll_range) + { +*************** +*** 3672,3678 **** + while (ll_li != NULL && (lp->ll_empty2 || lp->ll_n2 >= ll_n1)) + { + li = ll_li->li_next; +! if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name)) + return FAIL; + ll_li = li; + ++ll_n1; +--- 3672,3678 ---- + while (ll_li != NULL && (lp->ll_empty2 || lp->ll_n2 >= ll_n1)) + { + li = ll_li->li_next; +! if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name, FALSE)) + return FAIL; + ll_li = li; + ++ll_n1; +*************** +*** 3732,3740 **** + if (!HASHITEM_EMPTY(hi)) + { + di = HI2DI(hi); +! if (var_check_fixed(di->di_flags, name) +! || var_check_ro(di->di_flags, name) +! || tv_check_lock(d->dv_lock, name)) + return FAIL; + delete_var(ht, hi); + return OK; +--- 3732,3740 ---- + if (!HASHITEM_EMPTY(hi)) + { + di = HI2DI(hi); +! if (var_check_fixed(di->di_flags, name, FALSE) +! || var_check_ro(di->di_flags, name, FALSE) +! || tv_check_lock(d->dv_lock, name, FALSE)) + return FAIL; + delete_var(ht, hi); + return OK; +*************** +*** 8937,8943 **** + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, (char_u *)_("add() argument")) + && list_append_tv(l, &argvars[1]) == OK) + copy_tv(&argvars[0], rettv); + } +--- 8937,8944 ---- + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, +! (char_u *)N_("add() argument"), TRUE) + && list_append_tv(l, &argvars[1]) == OK) + copy_tv(&argvars[0], rettv); + } +*************** +*** 10499,10505 **** + dictitem_T *di1; + hashitem_T *hi2; + int todo; +! char *arg_errmsg = N_("extend() argument"); + + todo = (int)d2->dv_hashtab.ht_used; + for (hi2 = d2->dv_hashtab.ht_array; todo > 0; ++hi2) +--- 10500,10506 ---- + dictitem_T *di1; + hashitem_T *hi2; + int todo; +! char_u *arg_errmsg = (char_u *)N_("extend() argument"); + + todo = (int)d2->dv_hashtab.ht_used; + for (hi2 = d2->dv_hashtab.ht_array; todo > 0; ++hi2) +*************** +*** 10534,10541 **** + } + else if (*action == 'f' && HI2DI(hi2) != di1) + { +! if (tv_check_lock(di1->di_tv.v_lock, (char_u *)_(arg_errmsg)) +! || var_check_ro(di1->di_flags, (char_u *)_(arg_errmsg))) + break; + clear_tv(&di1->di_tv); + copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv); +--- 10535,10542 ---- + } + else if (*action == 'f' && HI2DI(hi2) != di1) + { +! if (tv_check_lock(di1->di_tv.v_lock, arg_errmsg, TRUE) +! || var_check_ro(di1->di_flags, arg_errmsg, TRUE)) + break; + clear_tv(&di1->di_tv); + copy_tv(&HI2DI(hi2)->di_tv, &di1->di_tv); +*************** +*** 10553,10559 **** + typval_T *argvars; + typval_T *rettv; + { +! char *arg_errmsg = N_("extend() argument"); + + if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST) + { +--- 10554,10560 ---- + typval_T *argvars; + typval_T *rettv; + { +! char_u *arg_errmsg = (char_u *)N_("extend() argument"); + + if (argvars[0].v_type == VAR_LIST && argvars[1].v_type == VAR_LIST) + { +*************** +*** 10564,10570 **** + + l1 = argvars[0].vval.v_list; + l2 = argvars[1].vval.v_list; +! if (l1 != NULL && !tv_check_lock(l1->lv_lock, (char_u *)_(arg_errmsg)) + && l2 != NULL) + { + if (argvars[2].v_type != VAR_UNKNOWN) +--- 10565,10571 ---- + + l1 = argvars[0].vval.v_list; + l2 = argvars[1].vval.v_list; +! if (l1 != NULL && !tv_check_lock(l1->lv_lock, arg_errmsg, TRUE) + && l2 != NULL) + { + if (argvars[2].v_type != VAR_UNKNOWN) +*************** +*** 10600,10606 **** + + d1 = argvars[0].vval.v_dict; + d2 = argvars[1].vval.v_dict; +! if (d1 != NULL && !tv_check_lock(d1->dv_lock, (char_u *)_(arg_errmsg)) + && d2 != NULL) + { + /* Check the third argument. */ +--- 10601,10607 ---- + + d1 = argvars[0].vval.v_dict; + d2 = argvars[1].vval.v_dict; +! if (d1 != NULL && !tv_check_lock(d1->dv_lock, arg_errmsg, TRUE) + && d2 != NULL) + { + /* Check the third argument. */ +*************** +*** 10819,10825 **** + int rem; + int todo; + char_u *ermsg = (char_u *)(map ? "map()" : "filter()"); +! char *arg_errmsg = (map ? N_("map() argument") + : N_("filter() argument")); + int save_did_emsg; + int idx = 0; +--- 10820,10826 ---- + int rem; + int todo; + char_u *ermsg = (char_u *)(map ? "map()" : "filter()"); +! char_u *arg_errmsg = (char_u *)(map ? N_("map() argument") + : N_("filter() argument")); + int save_did_emsg; + int idx = 0; +*************** +*** 10827,10839 **** + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) == NULL +! || (!map && tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg)))) + return; + } + else if (argvars[0].v_type == VAR_DICT) + { + if ((d = argvars[0].vval.v_dict) == NULL +! || (!map && tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg)))) + return; + } + else +--- 10828,10840 ---- + if (argvars[0].v_type == VAR_LIST) + { + if ((l = argvars[0].vval.v_list) == NULL +! || (!map && tv_check_lock(l->lv_lock, arg_errmsg, TRUE))) + return; + } + else if (argvars[0].v_type == VAR_DICT) + { + if ((d = argvars[0].vval.v_dict) == NULL +! || (!map && tv_check_lock(d->dv_lock, arg_errmsg, TRUE))) + return; + } + else +*************** +*** 10873,10882 **** + --todo; + di = HI2DI(hi); + if (map && +! (tv_check_lock(di->di_tv.v_lock, +! (char_u *)_(arg_errmsg)) +! || var_check_ro(di->di_flags, +! (char_u *)_(arg_errmsg)))) + break; + vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); + r = filter_map_one(&di->di_tv, expr, map, &rem); +--- 10874,10881 ---- + --todo; + di = HI2DI(hi); + if (map && +! (tv_check_lock(di->di_tv.v_lock, arg_errmsg, TRUE) +! || var_check_ro(di->di_flags, arg_errmsg, TRUE))) + break; + vimvars[VV_KEY].vv_str = vim_strsave(di->di_key); + r = filter_map_one(&di->di_tv, expr, map, &rem); +*************** +*** 10885,10894 **** + break; + if (!map && rem) + { +! if (var_check_fixed(di->di_flags, +! (char_u *)_(arg_errmsg)) +! || var_check_ro(di->di_flags, +! (char_u *)_(arg_errmsg))) + break; + dictitem_remove(d, di); + } +--- 10884,10891 ---- + break; + if (!map && rem) + { +! if (var_check_fixed(di->di_flags, arg_errmsg, TRUE) +! || var_check_ro(di->di_flags, arg_errmsg, TRUE)) + break; + dictitem_remove(d, di); + } +*************** +*** 10902,10909 **** + + for (li = l->lv_first; li != NULL; li = nli) + { +! if (map && tv_check_lock(li->li_tv.v_lock, +! (char_u *)_(arg_errmsg))) + break; + nli = li->li_next; + vimvars[VV_KEY].vv_nr = idx; +--- 10899,10905 ---- + + for (li = l->lv_first; li != NULL; li = nli) + { +! if (map && tv_check_lock(li->li_tv.v_lock, arg_errmsg, TRUE)) + break; + nli = li->li_next; + vimvars[VV_KEY].vv_nr = idx; +*************** +*** 13756,13762 **** + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "insert()"); + else if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, (char_u *)_("insert() argument"))) + { + if (argvars[2].v_type != VAR_UNKNOWN) + before = get_tv_number_chk(&argvars[2], &error); +--- 13752,13758 ---- + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "insert()"); + else if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, (char_u *)N_("insert() argument"), TRUE)) + { + if (argvars[2].v_type != VAR_UNKNOWN) + before = get_tv_number_chk(&argvars[2], &error); +*************** +*** 15837,15850 **** + char_u *key; + dict_T *d; + dictitem_T *di; +! char *arg_errmsg = N_("remove() argument"); + + if (argvars[0].v_type == VAR_DICT) + { + if (argvars[2].v_type != VAR_UNKNOWN) + EMSG2(_(e_toomanyarg), "remove()"); + else if ((d = argvars[0].vval.v_dict) != NULL +! && !tv_check_lock(d->dv_lock, (char_u *)_(arg_errmsg))) + { + key = get_tv_string_chk(&argvars[1]); + if (key != NULL) +--- 15833,15846 ---- + char_u *key; + dict_T *d; + dictitem_T *di; +! char_u *arg_errmsg = (char_u *)N_("remove() argument"); + + if (argvars[0].v_type == VAR_DICT) + { + if (argvars[2].v_type != VAR_UNKNOWN) + EMSG2(_(e_toomanyarg), "remove()"); + else if ((d = argvars[0].vval.v_dict) != NULL +! && !tv_check_lock(d->dv_lock, arg_errmsg, TRUE)) + { + key = get_tv_string_chk(&argvars[1]); + if (key != NULL) +*************** +*** 15852,15860 **** + di = dict_find(d, key, -1); + if (di == NULL) + EMSG2(_(e_dictkey), key); +! else if (!var_check_fixed(di->di_flags, (char_u *)_(arg_errmsg)) +! && !var_check_ro(di->di_flags, +! (char_u *)_(arg_errmsg))) + { + *rettv = di->di_tv; + init_tv(&di->di_tv); +--- 15848,15855 ---- + di = dict_find(d, key, -1); + if (di == NULL) + EMSG2(_(e_dictkey), key); +! else if (!var_check_fixed(di->di_flags, arg_errmsg, TRUE) +! && !var_check_ro(di->di_flags, arg_errmsg, TRUE)) + { + *rettv = di->di_tv; + init_tv(&di->di_tv); +*************** +*** 15866,15872 **** + else if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listdictarg), "remove()"); + else if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, (char_u *)_(arg_errmsg))) + { + int error = FALSE; + +--- 15861,15867 ---- + else if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listdictarg), "remove()"); + else if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, arg_errmsg, TRUE)) + { + int error = FALSE; + +*************** +*** 16210,16216 **** + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "reverse()"); + else if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, (char_u *)_("reverse() argument"))) + { + li = l->lv_last; + l->lv_first = l->lv_last = NULL; +--- 16205,16212 ---- + if (argvars[0].v_type != VAR_LIST) + EMSG2(_(e_listarg), "reverse()"); + else if ((l = argvars[0].vval.v_list) != NULL +! && !tv_check_lock(l->lv_lock, +! (char_u *)N_("reverse() argument"), TRUE)) + { + li = l->lv_last; + l->lv_first = l->lv_last = NULL; +*************** +*** 17744,17750 **** + { + l = argvars[0].vval.v_list; + if (l == NULL || tv_check_lock(l->lv_lock, +! (char_u *)(sort ? _("sort() argument") : _("uniq() argument")))) + return; + rettv->vval.v_list = l; + rettv->v_type = VAR_LIST; +--- 17740,17747 ---- + { + l = argvars[0].vval.v_list; + if (l == NULL || tv_check_lock(l->lv_lock, +! (char_u *)(sort ? N_("sort() argument") : N_("uniq() argument")), +! TRUE)) + return; + rettv->vval.v_list = l; + rettv->v_type = VAR_LIST; +*************** +*** 21456,21463 **** + if (v != NULL) + { + /* existing variable, need to clear the value */ +! if (var_check_ro(v->di_flags, name) +! || tv_check_lock(v->di_tv.v_lock, name)) + return; + if (v->di_tv.v_type != tv->v_type + && !((v->di_tv.v_type == VAR_STRING +--- 21453,21460 ---- + if (v != NULL) + { + /* existing variable, need to clear the value */ +! if (var_check_ro(v->di_flags, name, FALSE) +! || tv_check_lock(v->di_tv.v_lock, name, FALSE)) + return; + if (v->di_tv.v_type != tv->v_type + && !((v->di_tv.v_type == VAR_STRING +*************** +*** 21555,21572 **** + * Also give an error message. + */ + static int +! var_check_ro(flags, name) + int flags; + char_u *name; + { + if (flags & DI_FLAGS_RO) + { +! EMSG2(_(e_readonlyvar), name); + return TRUE; + } + if ((flags & DI_FLAGS_RO_SBX) && sandbox) + { +! EMSG2(_(e_readonlysbx), name); + return TRUE; + } + return FALSE; +--- 21552,21570 ---- + * Also give an error message. + */ + static int +! var_check_ro(flags, name, use_gettext) + int flags; + char_u *name; ++ int use_gettext; + { + if (flags & DI_FLAGS_RO) + { +! EMSG2(_(e_readonlyvar), use_gettext ? (char_u *)_(name) : name); + return TRUE; + } + if ((flags & DI_FLAGS_RO_SBX) && sandbox) + { +! EMSG2(_(e_readonlysbx), use_gettext ? (char_u *)_(name) : name); + return TRUE; + } + return FALSE; +*************** +*** 21577,21589 **** + * Also give an error message. + */ + static int +! var_check_fixed(flags, name) + int flags; + char_u *name; + { + if (flags & DI_FLAGS_FIX) + { +! EMSG2(_("E795: Cannot delete variable %s"), name); + return TRUE; + } + return FALSE; +--- 21575,21589 ---- + * Also give an error message. + */ + static int +! var_check_fixed(flags, name, use_gettext) + int flags; + char_u *name; ++ int use_gettext; + { + if (flags & DI_FLAGS_FIX) + { +! EMSG2(_("E795: Cannot delete variable %s"), +! use_gettext ? (char_u *)_(name) : name); + return TRUE; + } + return FALSE; +*************** +*** 21641,21663 **** + + /* + * Return TRUE if typeval "tv" is set to be locked (immutable). +! * Also give an error message, using "name". + */ + static int +! tv_check_lock(lock, name) + int lock; + char_u *name; + { + if (lock & VAR_LOCKED) + { + EMSG2(_("E741: Value is locked: %s"), +! name == NULL ? (char_u *)_("Unknown") : name); + return TRUE; + } + if (lock & VAR_FIXED) + { + EMSG2(_("E742: Cannot change value of %s"), +! name == NULL ? (char_u *)_("Unknown") : name); + return TRUE; + } + return FALSE; +--- 21641,21669 ---- + + /* + * Return TRUE if typeval "tv" is set to be locked (immutable). +! * Also give an error message, using "name" or _("name") when use_gettext is +! * TRUE. + */ + static int +! tv_check_lock(lock, name, use_gettext) + int lock; + char_u *name; ++ int use_gettext; + { + if (lock & VAR_LOCKED) + { + EMSG2(_("E741: Value is locked: %s"), +! name == NULL ? (char_u *)_("Unknown") +! : use_gettext ? (char_u *)_(name) +! : name); + return TRUE; + } + if (lock & VAR_FIXED) + { + EMSG2(_("E742: Cannot change value of %s"), +! name == NULL ? (char_u *)_("Unknown") +! : use_gettext ? (char_u *)_(name) +! : name); + return TRUE; + } + return FALSE; +*************** +*** 22595,22605 **** + if (fudi.fd_di == NULL) + { + /* Can't add a function to a locked dictionary */ +! if (tv_check_lock(fudi.fd_dict->dv_lock, eap->arg)) + goto erret; + } + /* Can't change an existing function if it is locked */ +! else if (tv_check_lock(fudi.fd_di->di_tv.v_lock, eap->arg)) + goto erret; + + /* Give the function a sequential number. Can only be used with a +--- 22601,22611 ---- + if (fudi.fd_di == NULL) + { + /* Can't add a function to a locked dictionary */ +! if (tv_check_lock(fudi.fd_dict->dv_lock, eap->arg, FALSE)) + goto erret; + } + /* Can't change an existing function if it is locked */ +! else if (tv_check_lock(fudi.fd_di->di_tv.v_lock, eap->arg, FALSE)) + goto erret; + + /* Give the function a sequential number. Can only be used with a +*** ../vim-7.4.707/src/version.c 2015-04-21 16:12:01.208114832 +0200 +--- src/version.c 2015-04-21 16:45:02.195367727 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 708, + /**/ + +-- +CRONE: Who sent you? +ARTHUR: The Knights Who Say GNU! +CRONE: Aaaagh! (she looks around in rear) No! We have no licenses here. + "Monty Python and the Holy editor wars" PYTHON (MONTY) SOFTWARE LTD + + /// 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 /// From 5e5529c3d8f11c5ec4029fc9e87c783aa262cdc2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Apr 2015 18:00:06 +0200 Subject: [PATCH 0175/1407] - patchlevel 708 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index fa03572c..f34ad792 100644 --- a/README.patches +++ b/README.patches @@ -725,3 +725,8 @@ Individual patches for Vim 7.4: 1774 7.4.701 compiler warning for using uninitialized variable 1675 7.4.702 joining an empty list does uneccessary work 1837 7.4.703 compiler warning for start_dir unused when building unittests + 20231 7.4.704 invalid memory access if char search matches an illegal byte + 1983 7.4.705 can't build with Ruby 2.2 + 2207 7.4.706 drawing error when 'laststatus' zero and a cmdline window + 1623 7.4.707 undo files can have their executable bit set + 20526 7.4.708 gettext() is called too often diff --git a/vim.spec b/vim.spec index 73243958..224ec0fe 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 703 +%define patchlevel 708 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -750,6 +750,11 @@ Patch700: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.700 Patch701: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.701 Patch702: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.702 Patch703: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.703 +Patch704: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.704 +Patch705: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.705 +Patch706: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.706 +Patch707: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.707 +Patch708: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.708 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1603,6 +1608,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch701 -p0 %patch702 -p0 %patch703 -p0 +%patch704 -p0 +%patch705 -p0 +%patch706 -p0 +%patch707 -p0 +%patch708 -p0 # install spell files %if %{withvimspell} @@ -2120,6 +2130,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Apr 21 2015 Karsten Hopp 7.4.708-1 +- patchlevel 708 + * Sat Apr 18 2015 Karsten Hopp 7.4.703-1 - patchlevel 703 From f1181bdb14306e2b3627adcc0658a922d1bec049 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Apr 2015 18:00:04 +0200 Subject: [PATCH 0176/1407] - patchlevel 709 --- 7.4.709 | 378 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 378 insertions(+) create mode 100644 7.4.709 diff --git a/7.4.709 b/7.4.709 new file mode 100644 index 00000000..9592daf0 --- /dev/null +++ b/7.4.709 @@ -0,0 +1,378 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.709 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.709 +Problem: ":tabmove" does not work as documented. +Solution: Make it work consistently. Update documentation and add tests. + (Hirohito Higashi) +Files: src/window.c, runtime/doc/tabpage.txt, src/ex_docmd.c, + src/testdir/test62.in, src/testdir/test62.ok + + +*** ../vim-7.4.708/src/window.c 2015-04-21 15:43:00.338397578 +0200 +--- src/window.c 2015-04-21 18:05:36.180477302 +0200 +*************** +*** 4120,4137 **** + } + + /* +! * Move the current tab page to before tab page "nr". + */ + void + tabpage_move(nr) + int nr; + { +! int n = nr; +! tabpage_T *tp; + + if (first_tabpage->tp_next == NULL) + return; + + /* Remove the current tab page from the list of tab pages. */ + if (curtab == first_tabpage) + first_tabpage = curtab->tp_next; +--- 4120,4146 ---- + } + + /* +! * Move the current tab page to after tab page "nr". + */ + void + tabpage_move(nr) + int nr; + { +! int n = 1; +! tabpage_T *tp, *tp_dst; + + if (first_tabpage->tp_next == NULL) + return; + ++ for (tp = first_tabpage; tp->tp_next != NULL && n < nr; tp = tp->tp_next) ++ ++n; ++ ++ if (tp == curtab || (nr > 0 && tp->tp_next != NULL ++ && tp->tp_next == curtab)) ++ return; ++ ++ tp_dst = tp; ++ + /* Remove the current tab page from the list of tab pages. */ + if (curtab == first_tabpage) + first_tabpage = curtab->tp_next; +*************** +*** 4146,4162 **** + } + + /* Re-insert it at the specified position. */ +! if (n <= 0) + { + curtab->tp_next = first_tabpage; + first_tabpage = curtab; + } + else + { +! for (tp = first_tabpage; tp->tp_next != NULL && n > 1; tp = tp->tp_next) +! --n; +! curtab->tp_next = tp->tp_next; +! tp->tp_next = curtab; + } + + /* Need to redraw the tabline. Tab page contents doesn't change. */ +--- 4155,4169 ---- + } + + /* Re-insert it at the specified position. */ +! if (nr <= 0) + { + curtab->tp_next = first_tabpage; + first_tabpage = curtab; + } + else + { +! curtab->tp_next = tp_dst->tp_next; +! tp_dst->tp_next = curtab; + } + + /* Need to redraw the tabline. Tab page contents doesn't change. */ +*** ../vim-7.4.708/runtime/doc/tabpage.txt 2015-01-07 16:52:53.506792420 +0100 +--- runtime/doc/tabpage.txt 2015-04-21 18:01:53.042846350 +0200 +*************** +*** 202,224 **** + Move the current tab page to after tab page N. Use zero to + make the current tab page the first one. Without N the tab + page is made the last one. > + :-tabmove " move the tab page to the left +! :tabmove " move the tab page to the right +! :.tabmove " as above +! :+tabmove " as above + :0tabmove " move the tab page to the beginning of the tab + " list +! :$tabmove " move the tab page to the end of the tab list +! < + + :tabm[ove] +[N] + :tabm[ove] -[N] + Move the current tab page N places to the right (with +) or to +! the left (with -). + + Note that although it is possible to move a tab behind the N-th one by using +! :Ntabmove, it is impossible to move it by N places by using :+Ntabmove. For +! clarification what +N means in this context see |[range]|. + + + LOOPING OVER TAB PAGES: +--- 202,230 ---- + Move the current tab page to after tab page N. Use zero to + make the current tab page the first one. Without N the tab + page is made the last one. > ++ :.tabmove " do nothing + :-tabmove " move the tab page to the left +! :+tabmove " move the tab page to the right + :0tabmove " move the tab page to the beginning of the tab + " list +! :tabmove 0 " as above +! :tabmove " move the tab page to the last +! :$tabmove " as above +! :tabmove $ " as above + + :tabm[ove] +[N] + :tabm[ove] -[N] + Move the current tab page N places to the right (with +) or to +! the left (with -). > +! :tabmove - " move the tab page to the left +! :tabmove -1 " as above +! :tabmove + " move the tab page to the right +! :tabmove +1 " as above +! + + Note that although it is possible to move a tab behind the N-th one by using +! :Ntabmove. And move it by N places by using :+Ntabmove. For clarification what +! +N means in this context see |[range]|. + + + LOOPING OVER TAB PAGES: +*** ../vim-7.4.708/src/ex_docmd.c 2015-04-13 12:35:50.180593380 +0200 +--- src/ex_docmd.c 2015-04-21 18:01:53.042846350 +0200 +*************** +*** 8145,8151 **** + ex_tabmove(eap) + exarg_T *eap; + { +! int tab_number = 9999; + + if (eap->arg && *eap->arg != NUL) + { +--- 8145,8151 ---- + ex_tabmove(eap) + exarg_T *eap; + { +! int tab_number; + + if (eap->arg && *eap->arg != NUL) + { +*************** +*** 8166,8184 **** + else + p = eap->arg; + +! if (p == skipdigits(p)) + { +! /* No numbers as argument. */ +! eap->errmsg = e_invarg; +! return; + } +- +- tab_number = getdigits(&p); +- if (relative != 0) +- tab_number = tab_number * relative + tabpage_index(curtab) - 1;; + } + else if (eap->addr_count != 0) + tab_number = eap->line2; + + tabpage_move(tab_number); + } +--- 8166,8203 ---- + else + p = eap->arg; + +! if (relative == 0) + { +! if (STRCMP(p, "$") == 0) +! tab_number = LAST_TAB_NR; +! else if (p == skipdigits(p)) +! { +! /* No numbers as argument. */ +! eap->errmsg = e_invarg; +! return; +! } +! else +! tab_number = getdigits(&p); +! } +! else +! { +! if (*p != NUL) +! tab_number = getdigits(&p); +! else +! tab_number = 1; +! tab_number = tab_number * relative + tabpage_index(curtab); +! if (relative == -1) +! --tab_number; + } + } + else if (eap->addr_count != 0) ++ { + tab_number = eap->line2; ++ if (**eap->cmdlinep == '-') ++ --tab_number; ++ } ++ else ++ tab_number = LAST_TAB_NR; + + tabpage_move(tab_number); + } +*** ../vim-7.4.708/src/testdir/test62.in 2015-01-07 15:57:13.145559792 +0100 +--- src/testdir/test62.in 2015-04-21 18:01:15.231247887 +0200 +*************** +*** 96,125 **** + :" + :for i in range(9) | tabnew | endfor + 1gt +! Go=tabpagenr()  + :tabmove 5 +! i=tabpagenr()  + :tabmove -2 +! i=tabpagenr()  + :tabmove +4 +! i=tabpagenr()  + :tabmove +! i=tabpagenr()  + :tabmove -20 +! i=tabpagenr()  + :tabmove +20 +! i=tabpagenr()  + :3tabmove +! i=tabpagenr()  + :7tabmove 5 +! i=tabpagenr()  + :let a='No error caught.' + :try + :tabmove foo + :catch E474 + :let a='E474 caught.' + :endtry +! i=a  + :" + :" Test autocommands + :tabonly! +--- 96,139 ---- + :" + :for i in range(9) | tabnew | endfor + 1gt +! :$put =tabpagenr() + :tabmove 5 +! :$put =tabpagenr() +! :.tabmove +! :$put =tabpagenr() +! :tabmove - +! :$put =tabpagenr() +! :tabmove + +! :$put =tabpagenr() + :tabmove -2 +! :$put =tabpagenr() + :tabmove +4 +! :$put =tabpagenr() + :tabmove +! :$put =tabpagenr() + :tabmove -20 +! :$put =tabpagenr() + :tabmove +20 +! :$put =tabpagenr() +! :0tabmove +! :$put =tabpagenr() +! :$tabmove +! :$put =tabpagenr() +! :tabmove 0 +! :$put =tabpagenr() +! :tabmove $ +! :$put =tabpagenr() + :3tabmove +! :$put =tabpagenr() + :7tabmove 5 +! :$put =tabpagenr() + :let a='No error caught.' + :try + :tabmove foo + :catch E474 + :let a='E474 caught.' + :endtry +! :$put =a + :" + :" Test autocommands + :tabonly! +*** ../vim-7.4.708/src/testdir/test62.ok 2013-07-14 12:16:20.000000000 +0200 +--- src/testdir/test62.ok 2015-04-21 18:01:15.231247887 +0200 +*************** +*** 9,22 **** + tab drop 2: pass + tab drop 3: pass + 1 +! 6 + 4 +! 8 + 10 + 1 + 10 + 4 +! 6 + E474 caught. + === tab split === + WinLeave +--- 9,29 ---- + tab drop 2: pass + tab drop 3: pass + 1 +! 5 +! 5 + 4 +! 5 +! 3 +! 7 +! 10 +! 1 +! 10 +! 1 + 10 + 1 + 10 + 4 +! 5 + E474 caught. + === tab split === + WinLeave +*** ../vim-7.4.708/src/version.c 2015-04-21 16:48:55.028917216 +0200 +--- src/version.c 2015-04-21 18:00:49.083525577 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 709, + /**/ + +-- +BEDEVERE: Why do you think she is a witch? +SECOND VILLAGER: She turned me into a newt. +BEDEVERE: A newt? +SECOND VILLAGER: (After looking at himself for some time) I got better. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From d13fc6cf9643ac7f0ff949a3a3e2a624d6c3156f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Apr 2015 18:00:04 +0200 Subject: [PATCH 0177/1407] - patchlevel 710 --- 7.4.710 | 350 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 350 insertions(+) create mode 100644 7.4.710 diff --git a/7.4.710 b/7.4.710 new file mode 100644 index 00000000..3db78b9a --- /dev/null +++ b/7.4.710 @@ -0,0 +1,350 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.710 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.710 +Problem: It is not possible to make spaces visibible in list mode. +Solution: Add the "space" item to 'listchars'. (David Bürgin, issue 350) +Files: runtime/doc/options.txt, src/globals.h, src/message.h, + src/screen.c, src/testdir/test_listchars.in, + src/testdir/test_listchars.ok, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile + + +*** ../vim-7.4.709/runtime/doc/options.txt 2015-03-31 18:27:30.317104255 +0200 +--- runtime/doc/options.txt 2015-04-21 18:21:13.142538865 +0200 +*************** +*** 4714,4744 **** + {not in Vi} + Strings to use in 'list' mode and for the |:list| command. It is a + comma separated list of string settings. +! *lcs-eol* + eol:c Character to show at the end of each line. When + omitted, there is no extra character at the end of the + line. +! *lcs-tab* + tab:xy Two characters to be used to show a tab. The first + char is used once. The second char is repeated to + fill the space that the tab normally occupies. + "tab:>-" will show a tab that takes four spaces as + ">---". When omitted, a tab is show as ^I. +! *lcs-trail* + trail:c Character to show for trailing spaces. When omitted, +! trailing spaces are blank. +! *lcs-extends* + extends:c Character to show in the last column, when 'wrap' is + off and the line continues beyond the right of the + screen. +! *lcs-precedes* + precedes:c Character to show in the first column, when 'wrap' + is off and there is text preceding the character + visible in the first column. +! *lcs-conceal* + conceal:c Character to show in place of concealed text, when + 'conceallevel' is set to 1. +! *lcs-nbsp* + nbsp:c Character to show for a non-breakable space (character + 0xA0, 160). Left blank when omitted. + +--- 4717,4751 ---- + {not in Vi} + Strings to use in 'list' mode and for the |:list| command. It is a + comma separated list of string settings. +! *lcs-eol* + eol:c Character to show at the end of each line. When + omitted, there is no extra character at the end of the + line. +! *lcs-tab* + tab:xy Two characters to be used to show a tab. The first + char is used once. The second char is repeated to + fill the space that the tab normally occupies. + "tab:>-" will show a tab that takes four spaces as + ">---". When omitted, a tab is show as ^I. +! *lcs-space* +! space:c Character to show for a space. When omitted, spaces +! are left blank. +! *lcs-trail* + trail:c Character to show for trailing spaces. When omitted, +! trailing spaces are blank. Overrides the "space" +! setting for trailing spaces. +! *lcs-extends* + extends:c Character to show in the last column, when 'wrap' is + off and the line continues beyond the right of the + screen. +! *lcs-precedes* + precedes:c Character to show in the first column, when 'wrap' + is off and there is text preceding the character + visible in the first column. +! *lcs-conceal* + conceal:c Character to show in place of concealed text, when + 'conceallevel' is set to 1. +! *lcs-nbsp* + nbsp:c Character to show for a non-breakable space (character + 0xA0, 160). Left blank when omitted. + +*************** +*** 4751,4757 **** + :set lcs=tab:>-,eol:<,nbsp:% + :set lcs=extends:>,precedes:< + < The "NonText" highlighting will be used for "eol", "extends" and +! "precedes". "SpecialKey" for "nbsp", "tab" and "trail". + |hl-NonText| |hl-SpecialKey| + + *'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'* +--- 4758,4764 ---- + :set lcs=tab:>-,eol:<,nbsp:% + :set lcs=extends:>,precedes:< + < The "NonText" highlighting will be used for "eol", "extends" and +! "precedes". "SpecialKey" for "nbsp", "space", "tab" and "trail". + |hl-NonText| |hl-SpecialKey| + + *'lpl'* *'nolpl'* *'loadplugins'* *'noloadplugins'* +*** ../vim-7.4.709/src/globals.h 2015-02-17 11:11:42.244891247 +0100 +--- src/globals.h 2015-04-21 18:21:13.146538823 +0200 +*************** +*** 1163,1168 **** +--- 1163,1169 ---- + EXTERN int lcs_ext INIT(= NUL); + EXTERN int lcs_prec INIT(= NUL); + EXTERN int lcs_nbsp INIT(= NUL); ++ EXTERN int lcs_space INIT(= NUL); + EXTERN int lcs_tab1 INIT(= NUL); + EXTERN int lcs_tab2 INIT(= NUL); + EXTERN int lcs_trail INIT(= NUL); +*** ../vim-7.4.709/src/screen.c 2015-03-24 18:22:36.078072565 +0100 +--- src/screen.c 2015-04-21 18:21:13.150538781 +0200 +*************** +*** 4334,4347 **** + #endif + ++ptr; + +! /* 'list' : change char 160 to lcs_nbsp. */ +! if (wp->w_p_list && (c == 160 + #ifdef FEAT_MBYTE +! || (mb_utf8 && mb_c == 160) + #endif +! ) && lcs_nbsp) + { +! c = lcs_nbsp; + if (area_attr == 0 && search_attr == 0) + { + n_attr = 1; +--- 4334,4349 ---- + #endif + ++ptr; + +! /* 'list': change char 160 to lcs_nbsp and space to lcs_space. */ +! if (wp->w_p_list +! && (((c == 160 + #ifdef FEAT_MBYTE +! || (mb_utf8 && mb_c == 160) + #endif +! ) && lcs_nbsp) +! || (c == ' ' && lcs_space && ptr <= line + trailcol))) + { +! c = (c == ' ') ? lcs_space : lcs_nbsp; + if (area_attr == 0 && search_attr == 0) + { + n_attr = 1; +*** ../vim-7.4.709/src/testdir/test_listchars.in 2015-04-21 18:32:19.951463048 +0200 +--- src/testdir/test_listchars.in 2015-04-21 18:21:13.150538781 +0200 +*************** +*** 0 **** +--- 1,53 ---- ++ Tests for 'listchars' display with 'list' and :list ++ ++ STARTTEST ++ :so small.vim ++ :let g:lines = [] ++ :function GetScreenCharsForLine(lnum) ++ : return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '') ++ :endfunction ++ :nnoremap GG ":call add(g:lines, GetScreenCharsForLine(".screenrow()."))\" ++ :set listchars+=tab:>-,space:.,trail:< ++ :set list ++ : ++ /^start:/ ++ :normal! jzt ++ GG ++ GG ++ GG ++ GG ++ GGH: ++ :set listchars-=trail:< ++ GG ++ GG ++ GG ++ GG ++ GG: ++ :put =g:lines ++ :'[,']w! test.out ++ ENDTEST ++ ++ start: ++ aa ++ bb ++ cccc ++ dd ee ++ ++ ++ ++ STARTTEST ++ :set listchars+=trail:< ++ :set nolist ++ : ++ /^start:/ ++ :redir! >> test.out ++ :+1,$list ++ :redir END ++ :q! ++ ENDTEST ++ ++ start: ++ fff ++ gg ++ h ++ iii +*** ../vim-7.4.709/src/testdir/test_listchars.ok 2015-04-21 18:32:19.955463005 +0200 +--- src/testdir/test_listchars.ok 2015-04-21 18:21:13.150538781 +0200 +*************** +*** 0 **** +--- 1,16 ---- ++ >-------aa>-----$ ++ ..bb>---<<$ ++ ...cccc><$ ++ dd........ee<<>-$ ++ <$ ++ >-------aa>-----$ ++ ..bb>---..$ ++ ...cccc>.$ ++ dd........ee..>-$ ++ .$ ++ ++ ++ ..fff>--<<$ ++ >-------gg>-----$ ++ .....h>-$ ++ iii<<<<><<$ +*** ../vim-7.4.709/src/testdir/Make_amiga.mak 2015-03-24 17:49:39.607748647 +0100 +--- src/testdir/Make_amiga.mak 2015-04-21 18:22:06.541972861 +0200 +*************** +*** 46,51 **** +--- 46,52 ---- + test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ ++ test_listchars.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ +*************** +*** 189,194 **** +--- 190,196 ---- + test_erasebackword.out: test_erasebackword.in + test_eval.out: test_eval.in + test_insertcount.out: test_insertcount.in ++ test_listchars.out: test_listchars.in + test_listlbr.out: test_listlbr.in + test_listlbr_utf8.out: test_listlbr_utf8.in + test_mapping.out: test_mapping.in +*** ../vim-7.4.709/src/testdir/Make_dos.mak 2015-03-24 17:49:39.607748647 +0100 +--- src/testdir/Make_dos.mak 2015-04-21 18:22:15.457878362 +0200 +*************** +*** 45,50 **** +--- 45,51 ---- + test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ ++ test_listchars.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ +*** ../vim-7.4.709/src/testdir/Make_ming.mak 2015-03-24 17:49:39.607748647 +0100 +--- src/testdir/Make_ming.mak 2015-04-21 18:22:22.197806926 +0200 +*************** +*** 67,72 **** +--- 67,73 ---- + test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ ++ test_listchars.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ +*** ../vim-7.4.709/src/testdir/Make_os2.mak 2015-03-24 17:49:39.607748647 +0100 +--- src/testdir/Make_os2.mak 2015-04-21 18:22:28.777737187 +0200 +*************** +*** 47,52 **** +--- 47,53 ---- + test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ ++ test_listchars.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ +*** ../vim-7.4.709/src/testdir/Make_vms.mms 2015-03-24 17:49:39.607748647 +0100 +--- src/testdir/Make_vms.mms 2015-04-21 18:22:34.801673339 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Mar 24 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Apr 21 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 106,111 **** +--- 106,112 ---- + test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ ++ test_listchars.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ +*** ../vim-7.4.709/src/testdir/Makefile 2015-03-24 17:49:39.611748618 +0100 +--- src/testdir/Makefile 2015-04-21 18:21:13.150538781 +0200 +*************** +*** 43,48 **** +--- 43,49 ---- + test_erasebackword.out \ + test_eval.out \ + test_insertcount.out \ ++ test_listchars.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ +*** ../vim-7.4.709/src/version.c 2015-04-21 18:08:21.842719055 +0200 +--- src/version.c 2015-04-21 18:20:13.067175680 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 710, + /**/ + +-- +I have read and understood the above. X________________ + + /// 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 /// From 9d8b97f0dd19749d910b96ce9c1f5ccdba056b0e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Apr 2015 18:00:04 +0200 Subject: [PATCH 0178/1407] - patchlevel 711 --- 7.4.711 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.4.711 diff --git a/7.4.711 b/7.4.711 new file mode 100644 index 00000000..ca8aad1a --- /dev/null +++ b/7.4.711 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.711 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.711 (after 7.4.710) +Problem: Missing change in one file. +Solution: Also change option.c +Files: src/option.c + + +*** ../vim-7.4.710/src/option.c 2015-03-31 18:30:09.139370916 +0200 +--- src/option.c 2015-04-21 18:21:13.146538823 +0200 +*************** +*** 7322,7327 **** +--- 7322,7328 ---- + {&lcs_ext, "extends"}, + {&lcs_nbsp, "nbsp"}, + {&lcs_prec, "precedes"}, ++ {&lcs_space, "space"}, + {&lcs_tab2, "tab"}, + {&lcs_trail, "trail"}, + #ifdef FEAT_CONCEAL +*** ../vim-7.4.710/src/version.c 2015-04-21 18:33:33.906675754 +0200 +--- src/version.c 2015-04-21 19:10:23.143260095 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 711, + /**/ + +-- +ALL: A witch! A witch! +WITCH: It's a fair cop. +ALL: Burn her! Burn her! Let's make her into a ladder. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 14d4bab6ac39ada73d946582b8ffaa02987bffa8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Apr 2015 18:00:05 +0200 Subject: [PATCH 0179/1407] - patchlevel 711 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index f34ad792..1b5dc3c6 100644 --- a/README.patches +++ b/README.patches @@ -730,3 +730,6 @@ Individual patches for Vim 7.4: 2207 7.4.706 drawing error when 'laststatus' zero and a cmdline window 1623 7.4.707 undo files can have their executable bit set 20526 7.4.708 gettext() is called too often + 8809 7.4.709 ":tabmove" does not work as documented + 10791 7.4.710 it is not possible to make spaces visibible in list mode + 1437 7.4.711 (after 7.4.710) missing change in one file diff --git a/vim.spec b/vim.spec index 224ec0fe..145f29b6 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 708 +%define patchlevel 711 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -755,6 +755,9 @@ Patch705: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.705 Patch706: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.706 Patch707: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.707 Patch708: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.708 +Patch709: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.709 +Patch710: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.710 +Patch711: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.711 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1613,6 +1616,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch706 -p0 %patch707 -p0 %patch708 -p0 +%patch709 -p0 +%patch710 -p0 +%patch711 -p0 # install spell files %if %{withvimspell} @@ -2130,6 +2136,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Apr 22 2015 Karsten Hopp 7.4.711-1 +- patchlevel 711 + * Tue Apr 21 2015 Karsten Hopp 7.4.708-1 - patchlevel 708 From b96d4613028ed6309ac102836da483f90d61219c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 23 Apr 2015 18:00:04 +0200 Subject: [PATCH 0180/1407] - patchlevel 712 --- 7.4.712 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.4.712 diff --git a/7.4.712 b/7.4.712 new file mode 100644 index 00000000..9b5c20ca --- /dev/null +++ b/7.4.712 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.712 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.712 (after 7.4.710) +Problem: Missing change in another file. +Solution: Also change message.c +Files: src/message.c + + +*** ../vim-7.4.711/src/message.c 2014-12-17 14:36:10.363090985 +0100 +--- src/message.c 2015-04-21 18:21:13.146538823 +0200 +*************** +*** 1761,1766 **** +--- 1761,1771 ---- + c = lcs_trail; + attr = hl_attr(HLF_8); + } ++ else if (c == ' ' && list && lcs_space != NUL) ++ { ++ c = lcs_space; ++ attr = hl_attr(HLF_8); ++ } + } + + if (c == NUL) +*** ../vim-7.4.711/src/version.c 2015-04-21 19:10:41.315067887 +0200 +--- src/version.c 2015-04-22 22:15:55.173135367 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 712, + /**/ + +-- +BEDEVERE: And that, my lord, is how we know the Earth to be banana-shaped. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 130c88a78587dc76c4f28302e377e6a82ad95b6f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 23 Apr 2015 18:00:05 +0200 Subject: [PATCH 0181/1407] - patchlevel 712 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 1b5dc3c6..f091df28 100644 --- a/README.patches +++ b/README.patches @@ -733,3 +733,4 @@ Individual patches for Vim 7.4: 8809 7.4.709 ":tabmove" does not work as documented 10791 7.4.710 it is not possible to make spaces visibible in list mode 1437 7.4.711 (after 7.4.710) missing change in one file + 1434 7.4.712 missing change in another file diff --git a/vim.spec b/vim.spec index 145f29b6..941dac70 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 711 +%define patchlevel 712 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -758,6 +758,7 @@ Patch708: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.708 Patch709: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.709 Patch710: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.710 Patch711: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.711 +Patch712: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.712 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1619,6 +1620,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch709 -p0 %patch710 -p0 %patch711 -p0 +%patch712 -p0 # install spell files %if %{withvimspell} @@ -2136,6 +2138,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Apr 23 2015 Karsten Hopp 7.4.712-1 +- patchlevel 712 + * Wed Apr 22 2015 Karsten Hopp 7.4.711-1 - patchlevel 711 From c7ea31b4a52885ee226d0a7149071f6d4cb0b448 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:04 +0200 Subject: [PATCH 0182/1407] - patchlevel 713 --- 7.4.713 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.713 diff --git a/7.4.713 b/7.4.713 new file mode 100644 index 00000000..c2584199 --- /dev/null +++ b/7.4.713 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.713 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.713 +Problem: Wrong condition for #ifdef. +Solution: Change USR_EXRC_FILE2 to USR_VIMRC_FILE2. (Mikael Fourrier) +Files: src/os_unix.h + + +*** ../vim-7.4.712/src/os_unix.h 2015-04-09 22:08:09.183074550 +0200 +--- src/os_unix.h 2015-05-03 19:07:22.850147859 +0200 +*************** +*** 290,296 **** + #endif + + +! #if !defined(USR_EXRC_FILE2) + # ifdef OS2 + # define USR_VIMRC_FILE2 "$HOME/vimfiles/vimrc" + # else +--- 290,296 ---- + #endif + + +! #if !defined(USR_VIMRC_FILE2) + # ifdef OS2 + # define USR_VIMRC_FILE2 "$HOME/vimfiles/vimrc" + # else +*** ../vim-7.4.712/src/version.c 2015-04-22 22:18:14.659662668 +0200 +--- src/version.c 2015-05-04 09:16:12.477776841 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 713, + /**/ + +-- +Q: What is the difference betwee open-source and commercial software? +A: If you have a problem with commercial software you can call a phone + number and they will tell you it might be solved in a future version. + For open-source software there isn't a phone number to call, but you + get the solution within a day. + + /// 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 /// From 051d91243a1637afa9fea6ed1eb3f0259fbbe772 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:04 +0200 Subject: [PATCH 0183/1407] - patchlevel 714 --- 7.4.714 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.714 diff --git a/7.4.714 b/7.4.714 new file mode 100644 index 00000000..69739d94 --- /dev/null +++ b/7.4.714 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.714 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.714 +Problem: Illegal memory access when there are illegal bytes. +Solution: Check the byte length of the character. (Dominique Pelle) +Files: src/regexp.c + + +*** ../vim-7.4.713/src/regexp.c 2015-04-21 14:02:28.489694393 +0200 +--- src/regexp.c 2015-05-04 09:50:52.694084997 +0200 +*************** +*** 6113,6119 **** + { + if (ireg_ic && enc_utf8) + cf = utf_fold(utf_ptr2char(opnd)); +! while (count < maxcount) + { + for (i = 0; i < len; ++i) + if (opnd[i] != scan[i]) +--- 6113,6119 ---- + { + if (ireg_ic && enc_utf8) + cf = utf_fold(utf_ptr2char(opnd)); +! while (count < maxcount && (*mb_ptr2len)(scan) >= len) + { + for (i = 0; i < len; ++i) + if (opnd[i] != scan[i]) +*** ../vim-7.4.713/src/version.c 2015-05-04 09:31:05.479605202 +0200 +--- src/version.c 2015-05-04 09:51:50.917419713 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 714, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +26. You check your mail. It says "no new messages." So you check it again. + + /// 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 /// From 401dd16c34b2525c50a0fe7d6c2b8cbd9374d7f2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:04 +0200 Subject: [PATCH 0184/1407] - patchlevel 715 --- 7.4.715 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.715 diff --git a/7.4.715 b/7.4.715 new file mode 100644 index 00000000..8ac9e7f3 --- /dev/null +++ b/7.4.715 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.715 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.715 +Problem: Invalid memory access when there are illegal bytes. +Solution: Get the length from the text, not from the character. (Dominique + Pelle) +Files: src/regexp_nfa.c + + +*** ../vim-7.4.714/src/regexp_nfa.c 2015-04-13 15:28:00.108492965 +0200 +--- src/regexp_nfa.c 2015-05-04 10:24:04.575379783 +0200 +*************** +*** 6602,6608 **** + /* If ireg_icombine is not set only skip over the character + * itself. When it is set skip over composing characters. */ + if (result && enc_utf8 && !ireg_icombine) +! clen = utf_char2len(curc); + #endif + ADD_STATE_IF_MATCH(t->state); + break; +--- 6602,6608 ---- + /* If ireg_icombine is not set only skip over the character + * itself. When it is set skip over composing characters. */ + if (result && enc_utf8 && !ireg_icombine) +! clen = utf_ptr2len(reginput); + #endif + ADD_STATE_IF_MATCH(t->state); + break; +*** ../vim-7.4.714/src/version.c 2015-05-04 09:56:41.882096008 +0200 +--- src/version.c 2015-05-04 10:22:37.528367734 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 715, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +27. You refer to your age as 3.x. + + /// 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 /// From 8f1f532f2d72949df277c9055fbb31c5423e9c49 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:05 +0200 Subject: [PATCH 0185/1407] - patchlevel 716 --- 7.4.716 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.4.716 diff --git a/7.4.716 b/7.4.716 new file mode 100644 index 00000000..362a7d2d --- /dev/null +++ b/7.4.716 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.716 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.716 +Problem: When using the 'c' flag of ":substitute" and selecting "a" or "l" + at the prompt the flags are not remembered for ":&&". (Ingo + Karkat) +Solution: Save the flag values and restore them. (Hirohito Higashi) +Files: src/ex_cmds.c + + +*** ../vim-7.4.715/src/ex_cmds.c 2015-04-15 12:43:37.993444528 +0200 +--- src/ex_cmds.c 2015-05-04 10:38:24.853616235 +0200 +*************** +*** 4279,4284 **** +--- 4279,4286 ---- + static int do_list = FALSE; /* list last line with subs. */ + static int do_number = FALSE; /* list last line with line nr*/ + static int do_ic = 0; /* ignore case flag */ ++ int save_do_all; /* remember user specified 'g' flag */ ++ int save_do_ask; /* remember user specified 'c' flag */ + char_u *pat = NULL, *sub = NULL; /* init for GCC */ + int delimiter; + int sublen; +*************** +*** 4514,4519 **** +--- 4516,4524 ---- + if (do_count) + do_ask = FALSE; + ++ save_do_all = do_all; ++ save_do_ask = do_ask; ++ + /* + * check for a trailing count + */ +*************** +*** 5327,5332 **** +--- 5332,5341 ---- + #endif + + vim_regfree(regmatch.regprog); ++ ++ /* Restore the flag values, they can be used for ":&&". */ ++ do_all = save_do_all; ++ do_ask = save_do_ask; + } + + /* +*** ../vim-7.4.715/src/version.c 2015-05-04 10:33:09.633193707 +0200 +--- src/version.c 2015-05-04 10:35:25.235654731 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 716, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +28. You have comandeered your teenager's phone line for the net and even his + friends know not to call on his line anymore. + + /// 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 /// From c388284b4ae7baf06752b0ca9ba9fe46ec291466 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:05 +0200 Subject: [PATCH 0186/1407] - patchlevel 717 --- 7.4.717 | 268 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 268 insertions(+) create mode 100644 7.4.717 diff --git a/7.4.717 b/7.4.717 new file mode 100644 index 00000000..7335b708 --- /dev/null +++ b/7.4.717 @@ -0,0 +1,268 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.717 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.717 +Problem: ":let list += list" can change a locked list. +Solution: Check for the lock earlier. (Olaf Dabrunz) +Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok + + +*** ../vim-7.4.716/src/eval.c 2015-04-21 16:48:55.028917216 +0200 +--- src/eval.c 2015-05-04 11:06:30.878541202 +0200 +*************** +*** 783,789 **** + static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end)); + static int eval_isnamec __ARGS((int c)); + static int eval_isnamec1 __ARGS((int c)); +! static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose, int no_autoload)); + static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose)); + static typval_T *alloc_tv __ARGS((void)); + static typval_T *alloc_string_tv __ARGS((char_u *string)); +--- 783,789 ---- + static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end)); + static int eval_isnamec __ARGS((int c)); + static int eval_isnamec1 __ARGS((int c)); +! static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, dictitem_T **dip, int verbose, int no_autoload)); + static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose)); + static typval_T *alloc_tv __ARGS((void)); + static typval_T *alloc_string_tv __ARGS((char_u *string)); +*************** +*** 2257,2263 **** + { + if (tofree != NULL) + name = tofree; +! if (get_var_tv(name, len, &tv, TRUE, FALSE) == FAIL) + error = TRUE; + else + { +--- 2257,2263 ---- + { + if (tofree != NULL) + name = tofree; +! if (get_var_tv(name, len, &tv, NULL, TRUE, FALSE) == FAIL) + error = TRUE; + else + { +*************** +*** 2926,2935 **** + typval_T tv; + + /* handle +=, -= and .= */ + if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name), +! &tv, TRUE, FALSE) == OK) + { +! if (tv_op(&tv, rettv, op) == OK) + set_var(lp->ll_name, &tv, FALSE); + clear_tv(&tv); + } +--- 2926,2940 ---- + typval_T tv; + + /* handle +=, -= and .= */ ++ di = NULL; + if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name), +! &tv, &di, TRUE, FALSE) == OK) + { +! if ((di == NULL +! || (!var_check_ro(di->di_flags, lp->ll_name, FALSE) +! && !tv_check_lock(di->di_tv.v_lock, lp->ll_name, +! FALSE))) +! && tv_op(&tv, rettv, op) == OK) + set_var(lp->ll_name, &tv, FALSE); + clear_tv(&tv); + } +*************** +*** 5246,5252 **** + } + } + else if (evaluate) +! ret = get_var_tv(s, len, rettv, TRUE, FALSE); + else + ret = OK; + } +--- 5251,5257 ---- + } + } + else if (evaluate) +! ret = get_var_tv(s, len, rettv, NULL, TRUE, FALSE); + else + ret = OK; + } +*************** +*** 10375,10381 **** + { + if (tofree != NULL) + name = tofree; +! n = (get_var_tv(name, len, &tv, FALSE, TRUE) == OK); + if (n) + { + /* handle d.key, l[idx], f(expr) */ +--- 10380,10386 ---- + { + if (tofree != NULL) + name = tofree; +! n = (get_var_tv(name, len, &tv, NULL, FALSE, TRUE) == OK); + if (n) + { + /* handle d.key, l[idx], f(expr) */ +*************** +*** 20646,20655 **** + * Return OK or FAIL. + */ + static int +! get_var_tv(name, len, rettv, verbose, no_autoload) + char_u *name; + int len; /* length of "name" */ + typval_T *rettv; /* NULL when only checking existence */ + int verbose; /* may give error message */ + int no_autoload; /* do not use script autoloading */ + { +--- 20651,20661 ---- + * Return OK or FAIL. + */ + static int +! get_var_tv(name, len, rettv, dip, verbose, no_autoload) + char_u *name; + int len; /* length of "name" */ + typval_T *rettv; /* NULL when only checking existence */ ++ dictitem_T **dip; /* non-NULL when typval's dict item is needed */ + int verbose; /* may give error message */ + int no_autoload; /* do not use script autoloading */ + { +*************** +*** 20680,20686 **** +--- 20686,20696 ---- + { + v = find_var(name, NULL, no_autoload); + if (v != NULL) ++ { + tv = &v->di_tv; ++ if (dip != NULL) ++ *dip = v; ++ } + } + + if (tv == NULL) +*************** +*** 21474,21481 **** + } + + /* +! * Handle setting internal v: variables separately: we don't change +! * the type. + */ + if (ht == &vimvarht) + { +--- 21484,21491 ---- + } + + /* +! * Handle setting internal v: variables separately where needed to +! * prevent changing the type. + */ + if (ht == &vimvarht) + { +*************** +*** 21490,21499 **** + v->di_tv.vval.v_string = tv->vval.v_string; + tv->vval.v_string = NULL; + } + } +! else if (v->di_tv.v_type != VAR_NUMBER) +! EMSG2(_(e_intern2), "set_var()"); +! else + { + v->di_tv.vval.v_number = get_tv_number(tv); + if (STRCMP(varname, "searchforward") == 0) +--- 21500,21508 ---- + v->di_tv.vval.v_string = tv->vval.v_string; + tv->vval.v_string = NULL; + } ++ return; + } +! else if (v->di_tv.v_type == VAR_NUMBER) + { + v->di_tv.vval.v_number = get_tv_number(tv); + if (STRCMP(varname, "searchforward") == 0) +*************** +*** 21505,21512 **** + redraw_all_later(SOME_VALID); + } + #endif + } +! return; + } + + clear_tv(&v->di_tv); +--- 21514,21523 ---- + redraw_all_later(SOME_VALID); + } + #endif ++ return; + } +! else if (v->di_tv.v_type != tv->v_type) +! EMSG2(_(e_intern2), "set_var()"); + } + + clear_tv(&v->di_tv); +*** ../vim-7.4.716/src/testdir/test55.in 2015-04-13 16:16:31.225091428 +0200 +--- src/testdir/test55.in 2015-05-04 10:52:25.892071486 +0200 +*************** +*** 442,447 **** +--- 442,458 ---- + :unlockvar 1 b: + :unlet! b:testvar + :" ++ :$put ='No :let += of locked list variable:' ++ :let l = ['a', 'b', 3] ++ :lockvar 1 l ++ :try ++ : let l += ['x'] ++ : $put ='did :let +=' ++ :catch ++ : $put =v:exception[:14] ++ :endtry ++ :$put =string(l) ++ :" + :unlet l + :let l = [1, 2, 3, 4] + :lockvar! l +*** ../vim-7.4.716/src/testdir/test55.ok 2015-04-13 16:16:31.225091428 +0200 +--- src/testdir/test55.ok 2015-05-04 10:52:25.892071486 +0200 +*************** +*** 144,149 **** +--- 144,152 ---- + Vim(put):E742: + No :unlet of variable in locked scope: + Vim(unlet):E741: ++ No :let += of locked list variable: ++ Vim(let):E741: ++ ['a', 'b', 3] + [1, 2, 3, 4] + [1, 2, 3, 4] + [1, 2, 3, 4] +*** ../vim-7.4.716/src/version.c 2015-05-04 10:45:57.292481564 +0200 +--- src/version.c 2015-05-04 10:52:38.743925636 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 717, + /**/ + +-- +Anyone who is capable of getting themselves made President should on no +account be allowed to do the job. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From e01033ce33ef7f2b93cf42f1a248e90440aa0c8a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:05 +0200 Subject: [PATCH 0187/1407] - patchlevel 718 --- 7.4.718 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.4.718 diff --git a/7.4.718 b/7.4.718 new file mode 100644 index 00000000..703c3698 --- /dev/null +++ b/7.4.718 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.718 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.718 +Problem: Autocommands triggered by quickfix cannot get the current title + value. +Solution: Set w:quickfix_title earlier. (Yannick) + Also move the check for a title into the function. +Files: src/quickfix.c + + +*** ../vim-7.4.717/src/quickfix.c 2015-03-31 13:33:00.801524871 +0200 +--- src/quickfix.c 2015-05-04 11:51:56.583831852 +0200 +*************** +*** 2452,2465 **** + prevwin = win; + } + + /* + * Fill the buffer with the quickfix list. + */ + qf_fill_buffer(qi); + +- if (qi->qf_lists[qi->qf_curlist].qf_title != NULL) +- qf_set_title_var(qi); +- + curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index; + curwin->w_cursor.col = 0; + check_cursor(); +--- 2452,2464 ---- + prevwin = win; + } + ++ qf_set_title_var(qi); ++ + /* + * Fill the buffer with the quickfix list. + */ + qf_fill_buffer(qi); + + curwin->w_cursor.lnum = qi->qf_lists[qi->qf_curlist].qf_index; + curwin->w_cursor.col = 0; + check_cursor(); +*************** +*** 2608,2615 **** + + qf_fill_buffer(qi); + +! if (qi->qf_lists[qi->qf_curlist].qf_title != NULL +! && (win = qf_find_win(qi)) != NULL) + { + curwin_save = curwin; + curwin = win; +--- 2607,2613 ---- + + qf_fill_buffer(qi); + +! if ((win = qf_find_win(qi)) != NULL) + { + curwin_save = curwin; + curwin = win; +*************** +*** 2625,2635 **** + } + } + + static void + qf_set_title_var(qi) + qf_info_T *qi; + { +! set_internal_string_var((char_u *)"w:quickfix_title", + qi->qf_lists[qi->qf_curlist].qf_title); + } + +--- 2623,2637 ---- + } + } + ++ /* ++ * Set "w:quickfix_title" if "qi" has a title. ++ */ + static void + qf_set_title_var(qi) + qf_info_T *qi; + { +! if (qi->qf_lists[qi->qf_curlist].qf_title != NULL) +! set_internal_string_var((char_u *)"w:quickfix_title", + qi->qf_lists[qi->qf_curlist].qf_title); + } + +*** ../vim-7.4.717/src/version.c 2015-05-04 11:10:21.543941803 +0200 +--- src/version.c 2015-05-04 11:53:05.711053186 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 718, + /**/ + +-- +Don't Panic! + -- The Hitchhiker's Guide to the Galaxy + + /// 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 /// From 8e5fba0382ff16220ec864447048c8480fdd3f8d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:05 +0200 Subject: [PATCH 0188/1407] - patchlevel 719 --- 7.4.719 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.719 diff --git a/7.4.719 b/7.4.719 new file mode 100644 index 00000000..e6efcffd --- /dev/null +++ b/7.4.719 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.719 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.719 +Problem: Overflow when adding MAXCOL to a pointer. +Solution: Subtract pointers instead. (James McCoy) +Files: src/screen.c + + +*** ../vim-7.4.718/src/screen.c 2015-04-21 18:33:33.902675797 +0200 +--- src/screen.c 2015-05-04 16:02:20.530421566 +0200 +*************** +*** 4341,4347 **** + || (mb_utf8 && mb_c == 160) + #endif + ) && lcs_nbsp) +! || (c == ' ' && lcs_space && ptr <= line + trailcol))) + { + c = (c == ' ') ? lcs_space : lcs_nbsp; + if (area_attr == 0 && search_attr == 0) +--- 4341,4347 ---- + || (mb_utf8 && mb_c == 160) + #endif + ) && lcs_nbsp) +! || (c == ' ' && lcs_space && ptr - line <= trailcol))) + { + c = (c == ' ') ? lcs_space : lcs_nbsp; + if (area_attr == 0 && search_attr == 0) +*** ../vim-7.4.718/src/version.c 2015-05-04 12:34:17.595202558 +0200 +--- src/version.c 2015-05-04 16:04:11.589169466 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 719, + /**/ + +-- +For a moment, nothing happened. +Then, after a second or so, nothing continued to happen. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 69bc7b22d1e83815d44230b4ddb73abca83b0157 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:06 +0200 Subject: [PATCH 0189/1407] - patchlevel 720 --- 7.4.720 | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 7.4.720 diff --git a/7.4.720 b/7.4.720 new file mode 100644 index 00000000..0e5becef --- /dev/null +++ b/7.4.720 @@ -0,0 +1,133 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.720 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.720 +Problem: Can't build with Visual Studio 2015. +Solution: Recognize the "version 14" numbers and omit /nodefaultlib when + appropriate. (Paul Moore) +Files: src/Make_mvc.mak + + +*** ../vim-7.4.719/src/Make_mvc.mak 2014-11-05 13:53:13.188806497 +0100 +--- src/Make_mvc.mak 2015-05-04 16:16:55.716553990 +0200 +*************** +*** 343,349 **** + # gdi32.lib and comdlg32.lib for printing support + # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT + CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \ +! comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) /nodefaultlib + !if "$(DELAYLOAD)" == "yes" + CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib + !endif +--- 343,349 ---- + # gdi32.lib and comdlg32.lib for printing support + # ole32.lib and uuid.lib are needed for FEAT_SHORTCUT + CON_LIB = oldnames.lib kernel32.lib advapi32.lib shell32.lib gdi32.lib \ +! comdlg32.lib ole32.lib uuid.lib /machine:$(CPU) + !if "$(DELAYLOAD)" == "yes" + CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib + !endif +*************** +*** 446,451 **** +--- 446,454 ---- + !if "$(_NMAKE_VER)" == "12.00.21005.1" + MSVCVER = 12.0 + !endif ++ !if "$(_NMAKE_VER)" == "14.00.22609.0" ++ MSVCVER = 14.0 ++ !endif + !endif + + # Abort building VIM if version of VC is unrecognised. +*************** +*** 460,466 **** + !endif + + # Convert processor ID to MVC-compatible number +! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +--- 463,469 ---- + !endif + + # Convert processor ID to MVC-compatible number +! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") && ("$(MSVCVER)" != "14.0") + !if "$(CPUNR)" == "i386" + CPUARG = /G3 + !elseif "$(CPUNR)" == "i486" +*************** +*** 484,489 **** +--- 487,499 ---- + LIBC = + DEBUGINFO = /Zi + ++ # Don't use /nodefaultlib on MSVC 14 ++ !if "$(MSVCVER)" == "14.0" ++ NODEFAULTLIB = ++ !else ++ NODEFAULTLIB = /nodefaultlib ++ !endif ++ + !ifdef NODEBUG + VIM = vim + !if "$(OPTIMIZE)" == "SPACE" +*************** +*** 655,661 **** + GUI_LIB = \ + gdi32.lib version.lib $(IME_LIB) \ + winspool.lib comctl32.lib advapi32.lib shell32.lib \ +! /machine:$(CPU) /nodefaultlib + !else + SUBSYSTEM = console + !endif +--- 665,671 ---- + GUI_LIB = \ + gdi32.lib version.lib $(IME_LIB) \ + winspool.lib comctl32.lib advapi32.lib shell32.lib \ +! /machine:$(CPU) + !else + SUBSYSTEM = console + !endif +*************** +*** 976,982 **** + !ENDIF + + LINKARGS1 = $(linkdebug) $(conflags) +! LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ + $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \ + $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) + +--- 986,992 ---- + !ENDIF + + LINKARGS1 = $(linkdebug) $(conflags) +! LINKARGS2 = $(CON_LIB) $(GUI_LIB) $(NODEFAULTLIB) $(LIBC) $(OLE_LIB) user32.lib $(SNIFF_LIB) \ + $(LUA_LIB) $(MZSCHEME_LIB) $(PERL_LIB) $(PYTHON_LIB) $(PYTHON3_LIB) $(RUBY_LIB) \ + $(TCL_LIB) $(NETBEANS_LIB) $(XPM_LIB) $(LINK_PDB) + +*** ../vim-7.4.719/src/version.c 2015-05-04 16:10:21.397000027 +0200 +--- src/version.c 2015-05-04 16:14:29.614201353 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 720, + /**/ + +-- +If they don't keep on exercising their lips, he thought, their brains +start working. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 73e29b704ed2853125d64eb89964b2c24fb7c798 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:06 +0200 Subject: [PATCH 0190/1407] - patchlevel 721 --- 7.4.721 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.4.721 diff --git a/7.4.721 b/7.4.721 new file mode 100644 index 00000000..7e976517 --- /dev/null +++ b/7.4.721 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.721 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.721 +Problem: When 'list' is set Visual mode does not highlight anything in + empty lines. (mgaleski) +Solution: Check the value of lcs_eol in another place. (Christian Brabandt) +Files: src/screen.c + + +*** ../vim-7.4.720/src/screen.c 2015-05-04 16:10:21.397000027 +0200 +--- src/screen.c 2015-05-04 16:45:59.044932107 +0200 +*************** +*** 4703,4709 **** + } + } + else if (c == NUL +! && ((wp->w_p_list && lcs_eol > 0) + || ((fromcol >= 0 || fromcol_prev >= 0) + && tocol > vcol + && VIsual_mode != Ctrl_V +--- 4703,4709 ---- + } + } + else if (c == NUL +! && (wp->w_p_list + || ((fromcol >= 0 || fromcol_prev >= 0) + && tocol > vcol + && VIsual_mode != Ctrl_V +*************** +*** 4749,4755 **** + c_extra = NUL; + } + } +! if (wp->w_p_list) + c = lcs_eol; + else + c = ' '; +--- 4749,4755 ---- + c_extra = NUL; + } + } +! if (wp->w_p_list && lcs_eol > 0) + c = lcs_eol; + else + c = ' '; +*** ../vim-7.4.720/src/version.c 2015-05-04 16:18:18.127624758 +0200 +--- src/version.c 2015-05-04 16:51:10.045434371 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 721, + /**/ + +-- +"Making it up? Why should I want to make anything up? Life's bad enough +as it is without wanting to invent any more of it." + -- Marvin, the Paranoid Android in Douglas Adams' + "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 782694073d833cbc5a9d75b4de5a05669aadb888 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:06 +0200 Subject: [PATCH 0191/1407] - patchlevel 722 --- 7.4.722 | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 7.4.722 diff --git a/7.4.722 b/7.4.722 new file mode 100644 index 00000000..bdb756c0 --- /dev/null +++ b/7.4.722 @@ -0,0 +1,94 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.722 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.722 +Problem: 0x202f is not recognized as a non-breaking space character. +Solution: Add 0x202f to the list. (Christian Brabandt) +Files: runtime/doc/options.txt, src/message.c, src/screen.c + + +*** ../vim-7.4.721/runtime/doc/options.txt 2015-04-21 18:33:33.902675797 +0200 +--- runtime/doc/options.txt 2015-05-04 17:27:27.736999723 +0200 +*************** +*** 4743,4750 **** + conceal:c Character to show in place of concealed text, when + 'conceallevel' is set to 1. + *lcs-nbsp* +! nbsp:c Character to show for a non-breakable space (character +! 0xA0, 160). Left blank when omitted. + + The characters ':' and ',' should not be used. UTF-8 characters can + be used when 'encoding' is "utf-8", otherwise only printable +--- 4746,4754 ---- + conceal:c Character to show in place of concealed text, when + 'conceallevel' is set to 1. + *lcs-nbsp* +! nbsp:c Character to show for a non-breakable space character +! (0xA0 (160 decimal) and U+202F). Left blank when +! omitted. + + The characters ':' and ',' should not be used. UTF-8 characters can + be used when 'encoding' is "utf-8", otherwise only printable +*** ../vim-7.4.721/src/message.c 2015-04-22 22:18:14.659662668 +0200 +--- src/message.c 2015-05-04 17:24:48.462778022 +0200 +*************** +*** 1697,1703 **** + else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1) + { + col += (*mb_ptr2cells)(s); +! if (lcs_nbsp != NUL && list && mb_ptr2char(s) == 160) + { + mb_char2bytes(lcs_nbsp, buf); + buf[(*mb_ptr2len)(buf)] = NUL; +--- 1697,1705 ---- + else if (has_mbyte && (l = (*mb_ptr2len)(s)) > 1) + { + col += (*mb_ptr2cells)(s); +! if (lcs_nbsp != NUL && list +! && (mb_ptr2char(s) == 160 +! || mb_ptr2char(s) == 0x202f)) + { + mb_char2bytes(lcs_nbsp, buf); + buf[(*mb_ptr2len)(buf)] = NUL; +*** ../vim-7.4.721/src/screen.c 2015-05-04 16:51:55.708920741 +0200 +--- src/screen.c 2015-05-04 17:01:00.854787665 +0200 +*************** +*** 4338,4344 **** + if (wp->w_p_list + && (((c == 160 + #ifdef FEAT_MBYTE +! || (mb_utf8 && mb_c == 160) + #endif + ) && lcs_nbsp) + || (c == ' ' && lcs_space && ptr - line <= trailcol))) +--- 4338,4344 ---- + if (wp->w_p_list + && (((c == 160 + #ifdef FEAT_MBYTE +! || (mb_utf8 && (mb_c == 160 || mb_c == 0x202f)) + #endif + ) && lcs_nbsp) + || (c == ' ' && lcs_space && ptr - line <= trailcol))) +*** ../vim-7.4.721/src/version.c 2015-05-04 16:51:55.708920741 +0200 +--- src/version.c 2015-05-04 17:02:26.941818964 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 722, + /**/ + +-- +I have a drinking problem -- I can't afford it. + + /// 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 /// From a3094a90bb94139b90fac0727a583faa4d014a0c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:06 +0200 Subject: [PATCH 0192/1407] - patchlevel 723 --- 7.4.723 | 275 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 7.4.723 diff --git a/7.4.723 b/7.4.723 new file mode 100644 index 00000000..38e2e6f8 --- /dev/null +++ b/7.4.723 @@ -0,0 +1,275 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.723 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.723 +Problem: For indenting, finding the C++ baseclass can be slow. +Solution: Cache the result. (Hirohito Higashi) +Files: src/misc1.c + + +*** ../vim-7.4.722/src/misc1.c 2015-03-31 13:33:00.797524914 +0200 +--- src/misc1.c 2015-05-04 17:45:41.108783310 +0200 +*************** +*** 5376,5381 **** +--- 5376,5387 ---- + fixthisline(get_c_indent); + } + ++ /* Find result cache for cpp_baseclass */ ++ typedef struct { ++ int found; ++ lpos_T lpos; ++ } cpp_baseclass_cache_T; ++ + /* + * Functions for C-indenting. + * Most of this originally comes from Eric Fischer. +*************** +*** 5409,5415 **** + static int cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset)); + static int cin_iswhileofdo_end __ARGS((int terminated)); + static int cin_isbreak __ARGS((char_u *)); +! static int cin_is_cpp_baseclass __ARGS((colnr_T *col)); + static int get_baseclass_amount __ARGS((int col)); + static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); + static int cin_starts_with __ARGS((char_u *s, char *word)); +--- 5415,5421 ---- + static int cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset)); + static int cin_iswhileofdo_end __ARGS((int terminated)); + static int cin_isbreak __ARGS((char_u *)); +! static int cin_is_cpp_baseclass __ARGS((cpp_baseclass_cache_T *cached)); + static int get_baseclass_amount __ARGS((int col)); + static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); + static int cin_starts_with __ARGS((char_u *s, char *word)); +*************** +*** 6372,6386 **** + * This is a lot of guessing. Watch out for "cond ? func() : foo". + */ + static int +! cin_is_cpp_baseclass(col) +! colnr_T *col; /* return: column to align with */ + { + char_u *s; + int class_or_struct, lookfor_ctor_init, cpp_base_class; + linenr_T lnum = curwin->w_cursor.lnum; + char_u *line = ml_get_curline(); + +! *col = 0; + + s = skipwhite(line); + if (*s == '#') /* skip #define FOO x ? (x) : x */ +--- 6378,6396 ---- + * This is a lot of guessing. Watch out for "cond ? func() : foo". + */ + static int +! cin_is_cpp_baseclass(cached) +! cpp_baseclass_cache_T *cached; /* input and output */ + { ++ lpos_T *pos = &cached->lpos; /* find position */ + char_u *s; + int class_or_struct, lookfor_ctor_init, cpp_base_class; + linenr_T lnum = curwin->w_cursor.lnum; + char_u *line = ml_get_curline(); + +! if (pos->lnum <= lnum) +! return cached->found; /* Use the cached result */ +! +! pos->col = 0; + + s = skipwhite(line); + if (*s == '#') /* skip #define FOO x ? (x) : x */ +*************** +*** 6424,6429 **** +--- 6434,6440 ---- + --lnum; + } + ++ pos->lnum = lnum; + line = ml_get(lnum); + s = cin_skipcomment(line); + for (;;) +*************** +*** 6456,6462 **** + * cpp-base-class-declaration or constructor-initialization */ + cpp_base_class = TRUE; + lookfor_ctor_init = class_or_struct = FALSE; +! *col = 0; + s = cin_skipcomment(s + 1); + } + else +--- 6467,6473 ---- + * cpp-base-class-declaration or constructor-initialization */ + cpp_base_class = TRUE; + lookfor_ctor_init = class_or_struct = FALSE; +! pos->col = 0; + s = cin_skipcomment(s + 1); + } + else +*************** +*** 6497,6520 **** + class_or_struct = FALSE; + lookfor_ctor_init = FALSE; + } +! else if (*col == 0) + { + /* it can't be a constructor-initialization any more */ + lookfor_ctor_init = FALSE; + + /* the first statement starts here: lineup with this one... */ + if (cpp_base_class) +! *col = (colnr_T)(s - line); + } + + /* When the line ends in a comma don't align with it. */ + if (lnum == curwin->w_cursor.lnum && *s == ',' && cin_nocode(s + 1)) +! *col = 0; + + s = cin_skipcomment(s + 1); + } + } + + return cpp_base_class; + } + +--- 6508,6534 ---- + class_or_struct = FALSE; + lookfor_ctor_init = FALSE; + } +! else if (pos->col == 0) + { + /* it can't be a constructor-initialization any more */ + lookfor_ctor_init = FALSE; + + /* the first statement starts here: lineup with this one... */ + if (cpp_base_class) +! pos->col = (colnr_T)(s - line); + } + + /* When the line ends in a comma don't align with it. */ + if (lnum == curwin->w_cursor.lnum && *s == ',' && cin_nocode(s + 1)) +! pos->col = 0; + + s = cin_skipcomment(s + 1); + } + } + ++ cached->found = cpp_base_class; ++ if (cpp_base_class) ++ pos->lnum = lnum; + return cpp_base_class; + } + +*************** +*** 7047,7053 **** + #define LOOKFOR_CPP_BASECLASS 9 + #define LOOKFOR_ENUM_OR_INIT 10 + #define LOOKFOR_JS_KEY 11 +! #define LOOKFOR_COMMA 12 + + int whilelevel; + linenr_T lnum; +--- 7061,7067 ---- + #define LOOKFOR_CPP_BASECLASS 9 + #define LOOKFOR_ENUM_OR_INIT 10 + #define LOOKFOR_JS_KEY 11 +! #define LOOKFOR_COMMA 12 + + int whilelevel; + linenr_T lnum; +*************** +*** 7059,7064 **** +--- 7073,7079 ---- + int original_line_islabel; + int added_to_amount = 0; + int js_cur_has_key = 0; ++ cpp_baseclass_cache_T cache_cpp_baseclass = { FALSE, { MAXLNUM, 0 } }; + + /* make a copy, value is changed below */ + int ind_continuation = curbuf->b_ind_continuation; +*************** +*** 8089,8095 **** + n = FALSE; + if (lookfor != LOOKFOR_TERM && curbuf->b_ind_cpp_baseclass > 0) + { +! n = cin_is_cpp_baseclass(&col); + l = ml_get_curline(); + } + if (n) +--- 8104,8110 ---- + n = FALSE; + if (lookfor != LOOKFOR_TERM && curbuf->b_ind_cpp_baseclass > 0) + { +! n = cin_is_cpp_baseclass(&cache_cpp_baseclass); + l = ml_get_curline(); + } + if (n) +*************** +*** 8110,8116 **** + } + else + /* XXX */ +! amount = get_baseclass_amount(col); + break; + } + else if (lookfor == LOOKFOR_CPP_BASECLASS) +--- 8125,8132 ---- + } + else + /* XXX */ +! amount = get_baseclass_amount( +! cache_cpp_baseclass.lpos.col); + break; + } + else if (lookfor == LOOKFOR_CPP_BASECLASS) +*************** +*** 8780,8792 **** + n = FALSE; + if (curbuf->b_ind_cpp_baseclass != 0 && theline[0] != '{') + { +! n = cin_is_cpp_baseclass(&col); + l = ml_get_curline(); + } + if (n) + { + /* XXX */ +! amount = get_baseclass_amount(col); + break; + } + +--- 8796,8808 ---- + n = FALSE; + if (curbuf->b_ind_cpp_baseclass != 0 && theline[0] != '{') + { +! n = cin_is_cpp_baseclass(&cache_cpp_baseclass); + l = ml_get_curline(); + } + if (n) + { + /* XXX */ +! amount = get_baseclass_amount(cache_cpp_baseclass.lpos.col); + break; + } + +*** ../vim-7.4.722/src/version.c 2015-05-04 17:28:17.344445737 +0200 +--- src/version.c 2015-05-04 17:30:58.030650914 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 723, + /**/ + +-- +I have a drinking problem -- I don't have a drink! + + /// 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 /// From 00fb98f89986d977f7220e839ea1279989972da8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 4 May 2015 18:00:07 +0200 Subject: [PATCH 0193/1407] - patchlevel 723 --- README.patches | 11 +++++++++++ vim.spec | 27 ++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index f091df28..18750c1b 100644 --- a/README.patches +++ b/README.patches @@ -734,3 +734,14 @@ Individual patches for Vim 7.4: 10791 7.4.710 it is not possible to make spaces visibible in list mode 1437 7.4.711 (after 7.4.710) missing change in one file 1434 7.4.712 missing change in another file + 1657 7.4.713 wrong condition for #ifdef + 1636 7.4.714 illegal memory access when there are illegal bytes + 1778 7.4.715 invalid memory access when there are illegal bytes + 2272 7.4.716 ":substitute" flags are not always remembered + 7430 7.4.717 ":let list += list" can change a locked list + 2800 7.4.718 quickfix autocommands cannot get the current title value + 1682 7.4.719 overflow when adding MAXCOL to a pointer + 4211 7.4.720 can't build with Visual Studio 2015 + 2029 7.4.721 empty lines do not have Visual highligthing if 'list' set + 3246 7.4.722 0x202f is not recognized as a non-breaking space character + 7610 7.4.723 for indenting, finding the C++ baseclass can be slow diff --git a/vim.spec b/vim.spec index 941dac70..18ef3786 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 712 +%define patchlevel 723 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -759,6 +759,17 @@ Patch709: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.709 Patch710: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.710 Patch711: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.711 Patch712: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.712 +Patch713: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.713 +Patch714: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.714 +Patch715: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.715 +Patch716: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.716 +Patch717: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.717 +Patch718: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.718 +Patch719: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.719 +Patch720: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.720 +Patch721: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.721 +Patch722: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.722 +Patch723: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.723 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1621,6 +1632,17 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch710 -p0 %patch711 -p0 %patch712 -p0 +%patch713 -p0 +%patch714 -p0 +%patch715 -p0 +%patch716 -p0 +%patch717 -p0 +%patch718 -p0 +%patch719 -p0 +%patch720 -p0 +%patch721 -p0 +%patch722 -p0 +%patch723 -p0 # install spell files %if %{withvimspell} @@ -2138,6 +2160,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon May 04 2015 Karsten Hopp 7.4.723-1 +- patchlevel 723 + * Thu Apr 23 2015 Karsten Hopp 7.4.712-1 - patchlevel 712 From 12703348930e2eeb1012c7a46566c8f9e96012e1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 5 May 2015 18:00:03 +0200 Subject: [PATCH 0194/1407] - patchlevel 724 --- 7.4.724 | 381 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 7.4.724 diff --git a/7.4.724 b/7.4.724 new file mode 100644 index 00000000..db6ac7ed --- /dev/null +++ b/7.4.724 @@ -0,0 +1,381 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.724 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.724 +Problem: Vim icon does not show in Windows context menu. (issue 249) +Solution: Load the icon in GvimExt. +Files: src/GvimExt/gvimext.cpp, src/GvimExt/gvimext.h + + +*** ../vim-7.4.723/src/GvimExt/gvimext.cpp 2013-05-06 04:06:04.000000000 +0200 +--- src/GvimExt/gvimext.cpp 2015-05-04 18:20:37.345326768 +0200 +*************** +*** 79,97 **** + strcpy(name, searchpath((char *)"gvim.bat")); + if (name[0] == 0) + strcpy(name, "gvim"); // finds gvim.bat or gvim.exe +- +- // avoid that Vim tries to expand wildcards in the file names +- strcat(name, " --literal"); + } + } + + static void +! getGvimNameW(wchar_t *nameW) + { + char *name; + + name = (char *)malloc(BUFSIZE); +! getGvimName(name, 0); + mbstowcs(nameW, name, BUFSIZE); + free(name); + } +--- 79,102 ---- + strcpy(name, searchpath((char *)"gvim.bat")); + if (name[0] == 0) + strcpy(name, "gvim"); // finds gvim.bat or gvim.exe + } + } + + static void +! getGvimInvocation(char *name, int runtime) +! { +! getGvimName(name, runtime); +! // avoid that Vim tries to expand wildcards in the file names +! strcat(name, " --literal"); +! } +! +! static void +! getGvimInvocationW(wchar_t *nameW) + { + char *name; + + name = (char *)malloc(BUFSIZE); +! getGvimInvocation(name, 0); + mbstowcs(nameW, name, BUFSIZE); + free(name); + } +*************** +*** 123,128 **** +--- 128,153 ---- + } + } + ++ HBITMAP IconToBitmap(HICON hIcon, HBRUSH hBackground, int width, int height) ++ { ++ HDC hDC = GetDC(NULL); ++ HDC hMemDC = CreateCompatibleDC(hDC); ++ HBITMAP hMemBmp = CreateCompatibleBitmap(hDC, width, height); ++ HBITMAP hResultBmp = NULL; ++ HGDIOBJ hOrgBMP = SelectObject(hMemDC, hMemBmp); ++ ++ DrawIconEx(hMemDC, 0, 0, hIcon, width, height, 0, hBackground, DI_NORMAL); ++ ++ hResultBmp = hMemBmp; ++ hMemBmp = NULL; ++ ++ SelectObject(hMemDC, hOrgBMP); ++ DeleteDC(hMemDC); ++ ReleaseDC(NULL, hDC); ++ DestroyIcon(hIcon); ++ return hResultBmp; ++ } ++ + // + // GETTEXT: translated messages and menu entries + // +*************** +*** 404,410 **** + { + *ppv = NULL; + +! // Any interface on this object is the object pointer + + if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) + { +--- 429,435 ---- + { + *ppv = NULL; + +! // any interface on this object is the object pointer + + if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IClassFactory)) + { +*************** +*** 448,454 **** + // QueryInterface with IID_IShellExtInit--this is how shell extensions are + // initialized. + +! LPCSHELLEXT pShellExt = new CShellExt(); //Create the CShellExt object + + if (NULL == pShellExt) + return E_OUTOFMEMORY; +--- 473,479 ---- + // QueryInterface with IID_IShellExtInit--this is how shell extensions are + // initialized. + +! LPCSHELLEXT pShellExt = new CShellExt(); // create the CShellExt object + + if (NULL == pShellExt) + return E_OUTOFMEMORY; +*************** +*** 469,474 **** +--- 494,501 ---- + m_pDataObj = NULL; + + inc_cRefThisDLL(); ++ ++ LoadMenuIcon(); + } + + CShellExt::~CShellExt() +*************** +*** 477,482 **** +--- 504,512 ---- + m_pDataObj->Release(); + + dec_cRefThisDLL(); ++ ++ if (m_hVimIconBitmap) ++ DeleteObject(m_hVimIconBitmap); + } + + STDMETHODIMP CShellExt::QueryInterface(REFIID riid, LPVOID FAR *ppv) +*************** +*** 597,602 **** +--- 627,633 ---- + + HKEY keyhandle; + bool showExisting = true; ++ bool showIcons = true; + + // Check whether "Edit with existing Vim" entries are disabled. + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, "Software\\Vim\\Gvim", 0, +*************** +*** 605,610 **** +--- 636,644 ---- + if (RegQueryValueEx(keyhandle, "DisableEditWithExisting", 0, NULL, + NULL, NULL) == ERROR_SUCCESS) + showExisting = false; ++ if (RegQueryValueEx(keyhandle, "DisableContextMenuIcons", 0, NULL, ++ NULL, NULL) == ERROR_SUCCESS) ++ showIcons = false; + RegCloseKey(keyhandle); + } + +*************** +*** 612,639 **** + if (showExisting) + EnumWindows(EnumWindowsProc, (LPARAM)this); + + if (cbFiles > 1) + { +! InsertMenu(hMenu, +! indexMenu++, +! MF_STRING|MF_BYPOSITION, +! idCmd++, +! _("Edit with &multiple Vims")); +! +! InsertMenu(hMenu, +! indexMenu++, +! MF_STRING|MF_BYPOSITION, +! idCmd++, +! _("Edit with single &Vim")); + + if (cbFiles <= 4) + { + // Can edit up to 4 files in diff mode +! InsertMenu(hMenu, +! indexMenu++, +! MF_STRING|MF_BYPOSITION, +! idCmd++, +! _("Diff with Vim")); + m_edit_existing_off = 3; + } + else +--- 646,678 ---- + if (showExisting) + EnumWindows(EnumWindowsProc, (LPARAM)this); + ++ MENUITEMINFO mii = { sizeof(MENUITEMINFO) }; ++ mii.fMask = MIIM_STRING | MIIM_ID; ++ if (showIcons) ++ { ++ mii.fMask |= MIIM_BITMAP; ++ mii.hbmpItem = m_hVimIconBitmap; ++ } ++ + if (cbFiles > 1) + { +! mii.wID = idCmd++; +! mii.dwTypeData = _("Edit with &multiple Vims"); +! mii.cch = lstrlen(mii.dwTypeData); +! InsertMenuItem(hMenu, indexMenu++, TRUE, &mii); +! +! mii.wID = idCmd++; +! mii.dwTypeData = _("Edit with single &Vim"); +! mii.cch = lstrlen(mii.dwTypeData); +! InsertMenuItem(hMenu, indexMenu++, TRUE, &mii); + + if (cbFiles <= 4) + { + // Can edit up to 4 files in diff mode +! mii.wID = idCmd++; +! mii.dwTypeData = _("Diff with Vim"); +! mii.cch = lstrlen(mii.dwTypeData); +! InsertMenuItem(hMenu, indexMenu++, TRUE, &mii); + m_edit_existing_off = 3; + } + else +*************** +*** 642,652 **** + } + else + { +! InsertMenu(hMenu, +! indexMenu++, +! MF_STRING|MF_BYPOSITION, +! idCmd++, +! _("Edit with &Vim")); + m_edit_existing_off = 1; + } + +--- 681,690 ---- + } + else + { +! mii.wID = idCmd++; +! mii.dwTypeData = _("Edit with &Vim"); +! mii.cch = lstrlen(mii.dwTypeData); +! InsertMenuItem(hMenu, indexMenu++, TRUE, &mii); + m_edit_existing_off = 1; + } + +*************** +*** 672,682 **** + temp[BUFSIZE - 1] = '\0'; + strncat(temp, title, BUFSIZE - 1 - strlen(temp)); + temp[BUFSIZE - 1] = '\0'; +! InsertMenu(hMenu, +! indexMenu++, +! MF_STRING|MF_BYPOSITION, +! idCmd++, +! temp); + } + // InsertMenu(hMenu, indexMenu++, MF_SEPARATOR|MF_BYPOSITION, 0, NULL); + +--- 710,720 ---- + temp[BUFSIZE - 1] = '\0'; + strncat(temp, title, BUFSIZE - 1 - strlen(temp)); + temp[BUFSIZE - 1] = '\0'; +! +! mii.wID = idCmd++; +! mii.dwTypeData = temp; +! mii.cch = lstrlen(mii.dwTypeData); +! InsertMenuItem(hMenu, indexMenu++, TRUE, &mii); + } + // InsertMenu(hMenu, indexMenu++, MF_SEPARATOR|MF_BYPOSITION, 0, NULL); + +*************** +*** 813,818 **** +--- 851,872 ---- + return TRUE; // continue enumeration (otherwise this would be false) + } + ++ BOOL CShellExt::LoadMenuIcon() ++ { ++ char vimExeFile[BUFSIZE]; ++ getGvimName(vimExeFile, 1); ++ if (vimExeFile[0] == '\0') ++ return FALSE; ++ HICON hVimIcon; ++ if (ExtractIconEx(vimExeFile, 0, NULL, &hVimIcon, 1) == 0) ++ return FALSE; ++ m_hVimIconBitmap = IconToBitmap(hVimIcon, ++ GetSysColorBrush(COLOR_MENU), ++ GetSystemMetrics(SM_CXSMICON), ++ GetSystemMetrics(SM_CYSMICON)); ++ return TRUE; ++ } ++ + #ifdef WIN32 + // This symbol is not defined in older versions of the SDK or Visual C++. + +*************** +*** 893,899 **** + m_szFileUserClickedOn, + sizeof(m_szFileUserClickedOn)); + +! getGvimNameW(cmdStrW); + wcscat(cmdStrW, L" \""); + + if ((wcslen(cmdStrW) + wcslen(m_szFileUserClickedOn) + 2) < BUFSIZE) +--- 947,953 ---- + m_szFileUserClickedOn, + sizeof(m_szFileUserClickedOn)); + +! getGvimInvocationW(cmdStrW); + wcscat(cmdStrW, L" \""); + + if ((wcslen(cmdStrW) + wcslen(m_szFileUserClickedOn) + 2) < BUFSIZE) +*************** +*** 961,967 **** + + cmdlen = BUFSIZE; + cmdStrW = (wchar_t *) malloc(cmdlen * sizeof(wchar_t)); +! getGvimNameW(cmdStrW); + + if (useDiff) + wcscat(cmdStrW, L" -d"); +--- 1015,1021 ---- + + cmdlen = BUFSIZE; + cmdStrW = (wchar_t *) malloc(cmdlen * sizeof(wchar_t)); +! getGvimInvocationW(cmdStrW); + + if (useDiff) + wcscat(cmdStrW, L" -d"); +*** ../vim-7.4.723/src/GvimExt/gvimext.h 2010-05-26 21:39:23.000000000 +0200 +--- src/GvimExt/gvimext.h 2015-05-04 18:24:28.898738746 +0200 +*************** +*** 110,119 **** +--- 110,123 ---- + class CShellExt : public IContextMenu, + IShellExtInit + { ++ private: ++ BOOL LoadMenuIcon(); ++ + protected: + ULONG m_cRef; + LPDATAOBJECT m_pDataObj; + UINT m_edit_existing_off; ++ HBITMAP m_hVimIconBitmap; + + // For some reason, this callback must be static + static BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam); +*** ../vim-7.4.723/src/version.c 2015-05-04 17:50:25.613605986 +0200 +--- src/version.c 2015-05-04 18:25:12.494251378 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 724, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +3. Every time someone asks you to do something, ask if they want fries + with that. + + /// 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 /// From 0fc4155b243200b80459c72589c2ceb28837111e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 5 May 2015 18:00:04 +0200 Subject: [PATCH 0195/1407] - patchlevel 725 --- 7.4.725 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.725 diff --git a/7.4.725 b/7.4.725 new file mode 100644 index 00000000..18cbc5e3 --- /dev/null +++ b/7.4.725 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.725 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.725 +Problem: ":call setreg('"', [])" reports an internal error. +Solution: Make the register empty. (Yasuhiro Matsumoto) +Files: src/ops.c + + +*** ../vim-7.4.724/src/ops.c 2015-02-03 18:36:40.401033677 +0100 +--- src/ops.c 2015-05-04 20:13:12.357598140 +0200 +*************** +*** 6642,6647 **** +--- 6642,6655 ---- + } + } + ++ /* Without any lines make the register empty. */ ++ if (y_ptr->y_size + newlines == 0) ++ { ++ vim_free(y_ptr->y_array); ++ y_ptr->y_array = NULL; ++ return; ++ } ++ + /* + * Allocate an array to hold the pointers to the new register lines. + * If the register was not empty, move the existing lines to the new array. +*** ../vim-7.4.724/src/version.c 2015-05-04 18:27:29.920714802 +0200 +--- src/version.c 2015-05-04 20:11:52.326492918 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 725, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +6. In the memo field of all your checks, write "for sexual favors". + + /// 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 /// From e3ab2b3332213436419e7b1116d6a6a7e3cff3e8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 5 May 2015 18:00:04 +0200 Subject: [PATCH 0196/1407] - patchlevel 726 --- 7.4.726 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.726 diff --git a/7.4.726 b/7.4.726 new file mode 100644 index 00000000..f5f8b2a3 --- /dev/null +++ b/7.4.726 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.726 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.726 (after 7.4.724) +Problem: Cannot build GvimExt. +Solution: Set APPVER to 5.0. (KF Leong) +Files: src/GvimExt/Makefile + + +*** ../vim-7.4.725/src/GvimExt/Makefile 2012-11-21 19:53:02.000000000 +0100 +--- src/GvimExt/Makefile 2015-05-05 10:21:35.583931121 +0200 +*************** +*** 4,10 **** + # + + TARGETOS=BOTH +! APPVER=4.0 + + !if "$(DEBUG)" != "yes" + NODEBUG = 1 +--- 4,12 ---- + # + + TARGETOS=BOTH +! !ifndef APPVER +! APPVER=5.0 +! !endif + + !if "$(DEBUG)" != "yes" + NODEBUG = 1 +*** ../vim-7.4.725/src/version.c 2015-05-04 20:19:16.941521157 +0200 +--- src/version.c 2015-05-05 10:24:40.825852231 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 726, + /**/ + +-- +If Pacman had affected us as kids we'd be running around in dark rooms, +munching pills and listening to repetitive music. + -- Marcus Brigstocke + + /// 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 /// From 3aeda8cdf4fce2bfbe54c34f063444934c68e530 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 5 May 2015 18:00:04 +0200 Subject: [PATCH 0197/1407] - patchlevel 726 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 18750c1b..1050ed16 100644 --- a/README.patches +++ b/README.patches @@ -745,3 +745,6 @@ Individual patches for Vim 7.4: 2029 7.4.721 empty lines do not have Visual highligthing if 'list' set 3246 7.4.722 0x202f is not recognized as a non-breaking space character 7610 7.4.723 for indenting, finding the C++ baseclass can be slow + 9665 7.4.724 vim icon does not show in Windows context menu (issue 249) + 1569 7.4.725 ":call setreg('"', [])" reports an internal error + 1442 7.4.726 (after 7.4.724) cannot build GvimExt diff --git a/vim.spec b/vim.spec index 18ef3786..158ffba2 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 723 +%define patchlevel 726 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -770,6 +770,9 @@ Patch720: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.720 Patch721: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.721 Patch722: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.722 Patch723: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.723 +Patch724: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.724 +Patch725: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.725 +Patch726: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.726 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1643,6 +1646,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch721 -p0 %patch722 -p0 %patch723 -p0 +%patch724 -p0 +%patch725 -p0 +%patch726 -p0 # install spell files %if %{withvimspell} @@ -2160,6 +2166,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue May 05 2015 Karsten Hopp 7.4.726-1 +- patchlevel 726 + * Mon May 04 2015 Karsten Hopp 7.4.723-1 - patchlevel 723 From f9375f91efe8aa67f3292974bec0fd6af122a5d1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 6 May 2015 18:00:05 +0200 Subject: [PATCH 0198/1407] - patchlevel 727 --- 7.4.727 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.727 diff --git a/7.4.727 b/7.4.727 new file mode 100644 index 00000000..92cbdd0f --- /dev/null +++ b/7.4.727 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.727 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.727 (after 7.4.724) +Problem: Cannot build GvimExt with MingW. +Solution: Add -lgdi32. (KF Leong) +Files: src/GvimExt/Make_ming.mak + +*** ../vim-7.4.726/src/GvimExt/Make_ming.mak 2011-09-30 16:47:09.000000000 +0200 +--- src/GvimExt/Make_ming.mak 2015-05-06 06:47:37.136235840 +0200 +*************** +*** 47,53 **** + WINDRES := $(CROSS_COMPILE)windres + WINDRES_CXX = $(CXX) + WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED +! LIBS := -luuid + RES := gvimext.res + DEFFILE = gvimext_ming.def + OBJ := gvimext.o +--- 47,53 ---- + WINDRES := $(CROSS_COMPILE)windres + WINDRES_CXX = $(CXX) + WINDRES_FLAGS = --preprocessor="$(WINDRES_CXX) -E -xc" -DRC_INVOKED +! LIBS := -luuid -lgdi32 + RES := gvimext.res + DEFFILE = gvimext_ming.def + OBJ := gvimext.o +*** ../vim-7.4.726/src/version.c 2015-05-05 10:25:09.073543436 +0200 +--- src/version.c 2015-05-06 06:49:16.243123422 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 727, + /**/ + +-- +How To Keep A Healthy Level Of Insanity: +15. Five days in advance, tell your friends you can't attend their + party because you're not in the mood. + + /// 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 /// From 41404278ba7995280ceaa3a2698213663709b78d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 6 May 2015 18:00:05 +0200 Subject: [PATCH 0199/1407] - patchlevel 728 --- 7.4.728 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.4.728 diff --git a/7.4.728 b/7.4.728 new file mode 100644 index 00000000..74d262bf --- /dev/null +++ b/7.4.728 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.728 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.728 +Problem: Can't build with some version of Visual Studio 2015. +Solution: Recognize another version 14 number. (Sinan) +Files: src/Make_mvc.mak + + +*** ../vim-7.4.727/src/Make_mvc.mak 2015-05-04 16:18:18.127624758 +0200 +--- src/Make_mvc.mak 2015-05-06 11:32:34.209224175 +0200 +*************** +*** 446,452 **** + !if "$(_NMAKE_VER)" == "12.00.21005.1" + MSVCVER = 12.0 + !endif +! !if "$(_NMAKE_VER)" == "14.00.22609.0" + MSVCVER = 14.0 + !endif + !endif +--- 446,452 ---- + !if "$(_NMAKE_VER)" == "12.00.21005.1" + MSVCVER = 12.0 + !endif +! !if ("$(_NMAKE_VER)" == "14.00.22609.0") || ("$(_NMAKE_VER)" == "14.00.22816.0") + MSVCVER = 14.0 + !endif + !endif +*** ../vim-7.4.727/src/version.c 2015-05-06 06:51:41.909488669 +0200 +--- src/version.c 2015-05-06 11:31:46.601759813 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 728, + /**/ + +-- +In many of the more relaxed civilizations on the Outer Eastern Rim of the +Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the +great "Encyclopedia Galactica" as the standard repository of all knowledge +and wisdom, for though it has many omissions and contains much that is +apocryphal, or at least wildly inaccurate, it scores over the older, more +pedestrian work in two important respects. +First, it is slightly cheaper; and second, it has the words "DON'T PANIC" +inscribed in large friendly letters on its cover. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 54726f6728f25e5d0f3ec1f9c20cd38747bf8f1f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 6 May 2015 18:00:05 +0200 Subject: [PATCH 0200/1407] - patchlevel 728 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 1050ed16..6dad6cea 100644 --- a/README.patches +++ b/README.patches @@ -748,3 +748,5 @@ Individual patches for Vim 7.4: 9665 7.4.724 vim icon does not show in Windows context menu (issue 249) 1569 7.4.725 ":call setreg('"', [])" reports an internal error 1442 7.4.726 (after 7.4.724) cannot build GvimExt + 1709 7.4.727 (after 7.4.724) cannot build GvimExt with MingW + 2037 7.4.728 can't build with some version of Visual Studio 2015 diff --git a/vim.spec b/vim.spec index 158ffba2..744edb3c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 726 +%define patchlevel 728 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -773,6 +773,8 @@ Patch723: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.723 Patch724: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.724 Patch725: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.725 Patch726: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.726 +Patch727: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.727 +Patch728: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.728 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1649,6 +1651,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch724 -p0 %patch725 -p0 %patch726 -p0 +%patch727 -p0 +%patch728 -p0 # install spell files %if %{withvimspell} @@ -2166,6 +2170,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed May 06 2015 Karsten Hopp 7.4.728-1 +- patchlevel 728 + * Tue May 05 2015 Karsten Hopp 7.4.726-1 - patchlevel 726 From ad954313e95ca898915481f920982cab59cca373 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 14 May 2015 18:00:03 +0200 Subject: [PATCH 0201/1407] - patchlevel 729 --- 7.4.729 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.729 diff --git a/7.4.729 b/7.4.729 new file mode 100644 index 00000000..74b9ca76 --- /dev/null +++ b/7.4.729 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.729 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.729 (after 7.4.721) +Problem: Occasional crash with 'list' set. +Solution: Fix off-by-one error. (Christian Brabandt) +Files: src/screen.c + + +*** ../vim-7.4.728/src/screen.c 2015-05-04 17:28:17.344445737 +0200 +--- src/screen.c 2015-05-14 05:49:39.183210016 +0200 +*************** +*** 4715,4721 **** + && !(noinvcur + && lnum == wp->w_cursor.lnum + && (colnr_T)vcol == wp->w_virtcol))) +! && lcs_eol_one >= 0) + { + /* Display a '$' after the line or highlight an extra + * character if the line break is included. */ +--- 4715,4721 ---- + && !(noinvcur + && lnum == wp->w_cursor.lnum + && (colnr_T)vcol == wp->w_virtcol))) +! && lcs_eol_one > 0) + { + /* Display a '$' after the line or highlight an extra + * character if the line break is included. */ +*** ../vim-7.4.728/src/version.c 2015-05-06 11:33:37.168517956 +0200 +--- src/version.c 2015-05-14 05:51:49.949737971 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 729, + /**/ + +-- +He who laughs last, thinks slowest. + + /// 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 /// From 62fee90a4639c77acc56dc0634b8ed0d411f5007 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 14 May 2015 18:00:04 +0200 Subject: [PATCH 0202/1407] - patchlevel 729 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6dad6cea..3767b677 100644 --- a/README.patches +++ b/README.patches @@ -750,3 +750,4 @@ Individual patches for Vim 7.4: 1442 7.4.726 (after 7.4.724) cannot build GvimExt 1709 7.4.727 (after 7.4.724) cannot build GvimExt with MingW 2037 7.4.728 can't build with some version of Visual Studio 2015 + 1647 7.4.729 (after 7.4.721) occasional crash with 'list' set diff --git a/vim.spec b/vim.spec index 744edb3c..5cd26035 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 728 +%define patchlevel 729 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -775,6 +775,7 @@ Patch725: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.725 Patch726: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.726 Patch727: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.727 Patch728: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.728 +Patch729: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.729 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1653,6 +1654,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch726 -p0 %patch727 -p0 %patch728 -p0 +%patch729 -p0 # install spell files %if %{withvimspell} @@ -2170,6 +2172,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu May 14 2015 Karsten Hopp 7.4.729-1 +- patchlevel 729 + * Wed May 06 2015 Karsten Hopp 7.4.728-1 - patchlevel 728 From df43baee22206ff7f8de0600dbeb500bf33466b7 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Wed, 3 Jun 2015 15:45:30 +0200 Subject: [PATCH 0203/1407] Perl 5.22 rebuild --- vim.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index 8336564a..16677402 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 2%{?dist} +Release: 3%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -2079,6 +2079,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jun 03 2015 Jitka Plesnikova - 2:7.4.663-3 +- Perl 5.22 rebuild + * Thu Mar 26 2015 Richard Hughes - 2:7.4.663-2 - Add an AppData file for the software center From 92a43664fc362ce16d4ba72894060d5a8656adc4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:28 +0200 Subject: [PATCH 0204/1407] - patchlevel 730 --- 7.4.730 | 325 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 325 insertions(+) create mode 100644 7.4.730 diff --git a/7.4.730 b/7.4.730 new file mode 100644 index 00000000..24d21c8b --- /dev/null +++ b/7.4.730 @@ -0,0 +1,325 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.730 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.730 +Problem: When setting the crypt key and using a swap file, text may be + encrypted twice or unencrypted text remains in the swap file. + (Issue 369) +Solution: Call ml_preserve() before re-encrypting. Set correct index for + next pointer block. +Files: src/memfile.c, src/memline.c, src/proto/memline.pro, src/option.c + + +*** ../vim-7.4.729/src/memfile.c 2015-02-27 18:25:10.820179062 +0100 +--- src/memfile.c 2015-06-09 18:20:03.021860562 +0200 +*************** +*** 811,816 **** +--- 811,818 ---- + * + * Return the block header to the caller, including the memory block, so + * it can be re-used. Make sure the page_count is right. ++ * ++ * Returns NULL if no block is released. + */ + static bhdr_T * + mf_release(mfp, page_count) +*************** +*** 1219,1225 **** + } + + /* +! * Lookup a translation from the trans lists and delete the entry + * + * Return the positive new number when found, the old number when not found + */ +--- 1221,1227 ---- + } + + /* +! * Lookup a translation from the trans lists and delete the entry. + * + * Return the positive new number when found, the old number when not found + */ +*** ../vim-7.4.729/src/memline.c 2015-03-31 13:33:00.797524914 +0200 +--- src/memline.c 2015-06-09 18:24:46.186622422 +0200 +*************** +*** 488,494 **** + ml_set_crypt_key(buf, old_key, old_cm) + buf_T *buf; + char_u *old_key; +! int old_cm; + { + memfile_T *mfp = buf->b_ml.ml_mfp; + bhdr_T *hp; +--- 488,494 ---- + ml_set_crypt_key(buf, old_key, old_cm) + buf_T *buf; + char_u *old_key; +! char_u *old_cm; + { + memfile_T *mfp = buf->b_ml.ml_mfp; + bhdr_T *hp; +*************** +*** 500,514 **** + DATA_BL *dp; + blocknr_T bnum; + int top; + + if (mfp == NULL) + return; /* no memfile yet, nothing to do */ + + /* Set the key, method and seed to be used for reading, these must be the + * old values. */ + mfp->mf_old_key = old_key; +! mfp->mf_old_cm = old_cm; +! if (old_cm > 0) + mch_memmove(mfp->mf_old_seed, mfp->mf_seed, MF_SEED_LEN); + + /* Update block 0 with the crypt flag and may set a new seed. */ +--- 500,529 ---- + DATA_BL *dp; + blocknr_T bnum; + int top; ++ int old_method; + + if (mfp == NULL) + return; /* no memfile yet, nothing to do */ ++ old_method = crypt_method_nr_from_name(old_cm); ++ ++ /* First make sure the swapfile is in a consistent state, using the old ++ * key and method. */ ++ { ++ char_u *new_key = buf->b_p_key; ++ char_u *new_buf_cm = buf->b_p_cm; ++ ++ buf->b_p_key = old_key; ++ buf->b_p_cm = old_cm; ++ ml_preserve(buf, FALSE); ++ buf->b_p_key = new_key; ++ buf->b_p_cm = new_buf_cm; ++ } + + /* Set the key, method and seed to be used for reading, these must be the + * old values. */ + mfp->mf_old_key = old_key; +! mfp->mf_old_cm = old_method; +! if (old_method > 0 && *old_key != NUL) + mch_memmove(mfp->mf_old_seed, mfp->mf_seed, MF_SEED_LEN); + + /* Update block 0 with the crypt flag and may set a new seed. */ +*************** +*** 561,568 **** + { + if (pp->pb_pointer[idx].pe_bnum < 0) + { +! /* Skip data block with negative block number. */ +! ++idx; /* get same block again for next index */ + continue; + } + +--- 576,585 ---- + { + if (pp->pb_pointer[idx].pe_bnum < 0) + { +! /* Skip data block with negative block number. +! * Should not happen, because of the ml_preserve() +! * above. Get same block again for next index. */ +! ++idx; + continue; + } + +*************** +*** 579,584 **** +--- 596,602 ---- + + bnum = pp->pb_pointer[idx].pe_bnum; + page_count = pp->pb_pointer[idx].pe_page_count; ++ idx = 0; + continue; + } + } +*************** +*** 605,610 **** +--- 623,630 ---- + idx = ip->ip_index + 1; /* go to next index */ + page_count = 1; + } ++ if (hp != NULL) ++ mf_put(mfp, hp, FALSE, FALSE); /* release previous block */ + + if (error > 0) + EMSG(_("E843: Error while updating swap file crypt")); +*************** +*** 4859,4864 **** +--- 4879,4888 ---- + if (dp->db_id != DATA_ID) + return data; + ++ state = ml_crypt_prepare(mfp, offset, FALSE); ++ if (state == NULL) ++ return data; ++ + new_data = (char_u *)alloc(size); + if (new_data == NULL) + return NULL; +*************** +*** 4870,4876 **** + mch_memmove(new_data, dp, head_end - (char_u *)dp); + + /* Encrypt the text. */ +- state = ml_crypt_prepare(mfp, offset, FALSE); + crypt_encode(state, text_start, text_len, new_data + dp->db_txt_start); + crypt_free_state(state); + +--- 4894,4899 ---- +*************** +*** 4882,4888 **** + } + + /* +! * Decrypt the text in "data" if it points to a data block. + */ + void + ml_decrypt_data(mfp, data, offset, size) +--- 4905,4911 ---- + } + + /* +! * Decrypt the text in "data" if it points to an encrypted data block. + */ + void + ml_decrypt_data(mfp, data, offset, size) +*************** +*** 4907,4916 **** + || dp->db_txt_end > size) + return; /* data was messed up */ + +- /* Decrypt the text in place. */ + state = ml_crypt_prepare(mfp, offset, TRUE); +! crypt_decode_inplace(state, text_start, text_len); +! crypt_free_state(state); + } + } + +--- 4930,4942 ---- + || dp->db_txt_end > size) + return; /* data was messed up */ + + state = ml_crypt_prepare(mfp, offset, TRUE); +! if (state != NULL) +! { +! /* Decrypt the text in place. */ +! crypt_decode_inplace(state, text_start, text_len); +! crypt_free_state(state); +! } + } + } + +*************** +*** 4943,4948 **** +--- 4969,4976 ---- + key = buf->b_p_key; + seed = mfp->mf_seed; + } ++ if (*key == NUL) ++ return NULL; + + if (method_nr == CRYPT_M_ZIP) + { +*** ../vim-7.4.729/src/proto/memline.pro 2013-08-10 13:37:18.000000000 +0200 +--- src/proto/memline.pro 2015-06-09 16:30:03.989599819 +0200 +*************** +*** 1,6 **** + /* memline.c */ + int ml_open __ARGS((buf_T *buf)); +! void ml_set_crypt_key __ARGS((buf_T *buf, char_u *old_key, int old_cm)); + void ml_setname __ARGS((buf_T *buf)); + void ml_open_files __ARGS((void)); + void ml_open_file __ARGS((buf_T *buf)); +--- 1,6 ---- + /* memline.c */ + int ml_open __ARGS((buf_T *buf)); +! void ml_set_crypt_key __ARGS((buf_T *buf, char_u *old_key, char_u *old_cm)); + void ml_setname __ARGS((buf_T *buf)); + void ml_open_files __ARGS((void)); + void ml_open_file __ARGS((buf_T *buf)); +*** ../vim-7.4.729/src/option.c 2015-04-21 19:10:41.311067930 +0200 +--- src/option.c 2015-06-09 16:30:37.209226314 +0200 +*************** +*** 6163,6169 **** + # endif + if (STRCMP(curbuf->b_p_key, oldval) != 0) + /* Need to update the swapfile. */ +! ml_set_crypt_key(curbuf, oldval, crypt_get_method_nr(curbuf)); + } + + else if (gvarp == &p_cm) +--- 6163,6170 ---- + # endif + if (STRCMP(curbuf->b_p_key, oldval) != 0) + /* Need to update the swapfile. */ +! ml_set_crypt_key(curbuf, oldval, +! *curbuf->b_p_cm == NUL ? p_cm : curbuf->b_p_cm); + } + + else if (gvarp == &p_cm) +*************** +*** 6207,6214 **** + else + p = curbuf->b_p_cm; + if (STRCMP(s, p) != 0) +! ml_set_crypt_key(curbuf, curbuf->b_p_key, +! crypt_method_nr_from_name(s)); + + /* If the global value changes need to update the swapfile for all + * buffers using that value. */ +--- 6208,6214 ---- + else + p = curbuf->b_p_cm; + if (STRCMP(s, p) != 0) +! ml_set_crypt_key(curbuf, curbuf->b_p_key, s); + + /* If the global value changes need to update the swapfile for all + * buffers using that value. */ +*************** +*** 6218,6225 **** + + for (buf = firstbuf; buf != NULL; buf = buf->b_next) + if (buf != curbuf && *buf->b_p_cm == NUL) +! ml_set_crypt_key(buf, buf->b_p_key, +! crypt_method_nr_from_name(oldval)); + } + } + } +--- 6218,6224 ---- + + for (buf = firstbuf; buf != NULL; buf = buf->b_next) + if (buf != curbuf && *buf->b_p_cm == NUL) +! ml_set_crypt_key(buf, buf->b_p_key, oldval); + } + } + } +*** ../vim-7.4.729/src/version.c 2015-05-14 05:55:59.138935575 +0200 +--- src/version.c 2015-06-09 18:21:27.252897234 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 730, + /**/ + +-- +From "know your smileys": + :-X My lips are sealed + + /// 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 /// From 91fdc3c0cb50ff8c694bff6b0ce80fde3f75862b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:28 +0200 Subject: [PATCH 0205/1407] - patchlevel 731 --- 7.4.731 | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 7.4.731 diff --git a/7.4.731 b/7.4.731 new file mode 100644 index 00000000..65a73fb2 --- /dev/null +++ b/7.4.731 @@ -0,0 +1,131 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.731 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.731 +Problem: The tab menu shows "Close tab" even when it doesn't work. +Solution: Don't show "Close tab" for the last tab. (John Marriott) +Files: src/gui_w48.c, src/gui_gtk_x11.c, src/gui_mac.c, src/gui_motif.c + + +*** ../vim-7.4.730/src/gui_w48.c 2014-08-22 18:44:30.307175276 +0200 +--- src/gui_w48.c 2015-06-09 19:05:35.267157965 +0200 +*************** +*** 2389,2395 **** + if (tab_pmenu == NULL) + return; + +! add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_CLOSE, _("Close tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_NEW, _("New tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_OPEN, + _("Open tab...")); +--- 2389,2397 ---- + if (tab_pmenu == NULL) + return; + +! if (first_tabpage->tp_next != NULL) +! add_tabline_popup_menu_entry(tab_pmenu, +! TABLINE_MENU_CLOSE, _("Close tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_NEW, _("New tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_OPEN, + _("Open tab...")); +*** ../vim-7.4.730/src/gui_gtk_x11.c 2014-06-17 18:46:57.880761027 +0200 +--- src/gui_gtk_x11.c 2015-06-09 19:06:40.962433029 +0200 +*************** +*** 2873,2879 **** + GtkWidget *menu; + + menu = gtk_menu_new(); +! add_tabline_menu_item(menu, (char_u *)_("Close"), TABLINE_MENU_CLOSE); + add_tabline_menu_item(menu, (char_u *)_("New tab"), TABLINE_MENU_NEW); + add_tabline_menu_item(menu, (char_u *)_("Open Tab..."), TABLINE_MENU_OPEN); + +--- 2873,2881 ---- + GtkWidget *menu; + + menu = gtk_menu_new(); +! if (first_tabpage->tp_next != NULL) +! add_tabline_menu_item(menu, (char_u *)_("Close tab"), +! TABLINE_MENU_CLOSE); + add_tabline_menu_item(menu, (char_u *)_("New tab"), TABLINE_MENU_NEW); + add_tabline_menu_item(menu, (char_u *)_("Open Tab..."), TABLINE_MENU_OPEN); + +*** ../vim-7.4.730/src/gui_mac.c 2014-03-23 15:12:29.923264336 +0100 +--- src/gui_mac.c 2015-06-09 19:07:03.406185323 +0200 +*************** +*** 6819,6825 **** + + // create tabline popup menu required by vim docs (see :he tabline-menu) + CreateNewMenu(kTabContextMenuId, 0, &contextMenu); +! AppendMenuItemTextWithCFString(contextMenu, CFSTR("Close"), 0, + TABLINE_MENU_CLOSE, NULL); + AppendMenuItemTextWithCFString(contextMenu, CFSTR("New Tab"), 0, + TABLINE_MENU_NEW, NULL); +--- 6819,6826 ---- + + // create tabline popup menu required by vim docs (see :he tabline-menu) + CreateNewMenu(kTabContextMenuId, 0, &contextMenu); +! if (first_tabpage->tp_next != NULL) +! AppendMenuItemTextWithCFString(contextMenu, CFSTR("Close Tab"), 0, + TABLINE_MENU_CLOSE, NULL); + AppendMenuItemTextWithCFString(contextMenu, CFSTR("New Tab"), 0, + TABLINE_MENU_NEW, NULL); +*** ../vim-7.4.730/src/gui_motif.c 2013-06-22 12:54:44.000000000 +0200 +--- src/gui_motif.c 2015-06-09 19:08:18.837352548 +0200 +*************** +*** 540,553 **** + tabLine_menu = XmCreatePopupMenu(tabLine, "tabline popup", NULL, 0); + + /* Add the buttons to the menu */ +! n = 0; +! XtSetArg(args[n], XmNuserData, TABLINE_MENU_CLOSE); n++; +! xms = XmStringCreate((char *)"Close tab", STRING_TAG); +! XtSetArg(args[n], XmNlabelString, xms); n++; +! button = XmCreatePushButton(tabLine_menu, "Close", args, n); +! XtAddCallback(button, XmNactivateCallback, +! (XtCallbackProc)tabline_button_cb, NULL); +! XmStringFree(xms); + + n = 0; + XtSetArg(args[n], XmNuserData, TABLINE_MENU_NEW); n++; +--- 540,556 ---- + tabLine_menu = XmCreatePopupMenu(tabLine, "tabline popup", NULL, 0); + + /* Add the buttons to the menu */ +! if (first_tabpage->tp_next != NULL) +! { +! n = 0; +! XtSetArg(args[n], XmNuserData, TABLINE_MENU_CLOSE); n++; +! xms = XmStringCreate((char *)"Close tab", STRING_TAG); +! XtSetArg(args[n], XmNlabelString, xms); n++; +! button = XmCreatePushButton(tabLine_menu, "Close", args, n); +! XtAddCallback(button, XmNactivateCallback, +! (XtCallbackProc)tabline_button_cb, NULL); +! XmStringFree(xms); +! } + + n = 0; + XtSetArg(args[n], XmNuserData, TABLINE_MENU_NEW); n++; +*** ../vim-7.4.730/src/version.c 2015-06-09 18:35:17.471406959 +0200 +--- src/version.c 2015-06-09 19:05:02.451520015 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 731, + /**/ + +-- +From "know your smileys": + 8<}} Glasses, big nose, beard + + /// 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 /// From 70e908830b333f7084a90c1688255570f47233fd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:28 +0200 Subject: [PATCH 0206/1407] - patchlevel 732 --- 7.4.732 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.4.732 diff --git a/7.4.732 b/7.4.732 new file mode 100644 index 00000000..4e334084 --- /dev/null +++ b/7.4.732 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.732 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.732 +Problem: The cursor line is not always updated for the "O" command. +Solution: Reset the VALID_CROW flag. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.4.731/src/normal.c 2015-03-31 17:46:16.844128018 +0200 +--- src/normal.c 2015-06-09 19:18:30.394588238 +0200 +*************** +*** 8493,8498 **** +--- 8493,8501 ---- + /* When '#' is in 'cpoptions' ignore the count. */ + if (vim_strchr(p_cpo, CPO_HASH) != NULL) + cap->count1 = 1; ++ if (curwin->w_p_cul) ++ /* force redraw of cursorline */ ++ curwin->w_valid &= ~VALID_CROW; + invoke_edit(cap, FALSE, cap->cmdchar, TRUE); + } + } +*** ../vim-7.4.731/src/version.c 2015-06-09 19:14:18.777373918 +0200 +--- src/version.c 2015-06-09 19:20:00.357591407 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 732, + /**/ + +-- +From "know your smileys": + 8-O "Omigod!!" (done "rm -rf *" ?) + + /// 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 /// From 0d689b5523bd586cf661b18e5c3231ee330b0561 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:28 +0200 Subject: [PATCH 0207/1407] - patchlevel 733 --- 7.4.733 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.733 diff --git a/7.4.733 b/7.4.733 new file mode 100644 index 00000000..fe53fba8 --- /dev/null +++ b/7.4.733 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.733 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.733 +Problem: test_listchars breaks on MS-Windows. (Kenichi Ito) +Solution: Set fileformat to "unix". (Christian Brabandt) +Files: src/testdir/test_listchars.in + + +*** ../vim-7.4.732/src/testdir/test_listchars.in 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/test_listchars.in 2015-06-09 19:49:07.810564783 +0200 +*************** +*** 2,7 **** +--- 2,8 ---- + + STARTTEST + :so small.vim ++ :set ff=unix + :let g:lines = [] + :function GetScreenCharsForLine(lnum) + : return join(map(range(1, virtcol('$')), 'nr2char(screenchar(a:lnum, v:val))'), '') +*** ../vim-7.4.732/src/version.c 2015-06-09 19:23:39.675159547 +0200 +--- src/version.c 2015-06-09 19:51:18.205155704 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 733, + /**/ + +-- +From "know your smileys": + %-) After staring at screen for 15 hours + + /// 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 /// From 9b442907265f590bf3e12a7db046116c59aa3ac3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:29 +0200 Subject: [PATCH 0208/1407] - patchlevel 734 --- 7.4.734 | 389 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 389 insertions(+) create mode 100644 7.4.734 diff --git a/7.4.734 b/7.4.734 new file mode 100644 index 00000000..7a85d541 --- /dev/null +++ b/7.4.734 @@ -0,0 +1,389 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.734 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.734 +Problem: ml_get error when using "p" in a Visual selection in the last + line. +Solution: Change the behavior at the last line. (Yukihiro Nakadaira) +Files: src/normal.c, src/ops.c, src/testdir/test94.in, + src/testdir/test94.ok + + +*** ../vim-7.4.733/src/normal.c 2015-06-09 19:23:39.675159547 +0200 +--- src/normal.c 2015-06-09 20:08:53.853761282 +0200 +*************** +*** 1547,1554 **** + } + + /* In Select mode, a linewise selection is operated upon like a +! * characterwise selection. */ +! if (VIsual_select && VIsual_mode == 'V') + { + if (lt(VIsual, curwin->w_cursor)) + { +--- 1547,1556 ---- + } + + /* In Select mode, a linewise selection is operated upon like a +! * characterwise selection. +! * Special case: gH deletes the last line. */ +! if (VIsual_select && VIsual_mode == 'V' +! && cap->oap->op_type != OP_DELETE) + { + if (lt(VIsual, curwin->w_cursor)) + { +*************** +*** 1770,1793 **** + oap->inclusive = FALSE; + /* Try to include the newline, unless it's an operator + * that works on lines only. */ +! if (*p_sel != 'o' && !op_on_lines(oap->op_type)) + { +! if (oap->end.lnum < curbuf->b_ml.ml_line_count) +! { +! ++oap->end.lnum; +! oap->end.col = 0; + #ifdef FEAT_VIRTUALEDIT +! oap->end.coladd = 0; + #endif +! ++oap->line_count; +! } +! else +! { +! /* Cannot move below the last line, make the op +! * inclusive to tell the operation to include the +! * line break. */ +! oap->inclusive = TRUE; +! } + } + } + } +--- 1772,1787 ---- + oap->inclusive = FALSE; + /* Try to include the newline, unless it's an operator + * that works on lines only. */ +! if (*p_sel != 'o' +! && !op_on_lines(oap->op_type) +! && oap->end.lnum < curbuf->b_ml.ml_line_count) + { +! ++oap->end.lnum; +! oap->end.col = 0; + #ifdef FEAT_VIRTUALEDIT +! oap->end.coladd = 0; + #endif +! ++oap->line_count; + } + } + } +*** ../vim-7.4.733/src/ops.c 2015-05-04 20:19:16.937521201 +0200 +--- src/ops.c 2015-06-09 20:08:53.857761240 +0200 +*************** +*** 1959,2018 **** + curwin->w_cursor.coladd = 0; + } + #endif +! if (oap->op_type == OP_DELETE +! && oap->inclusive +! && oap->end.lnum == curbuf->b_ml.ml_line_count +! && n > (int)STRLEN(ml_get(oap->end.lnum))) +! { +! /* Special case: gH deletes the last line. */ +! del_lines(1L, FALSE); +! } +! else +! { +! (void)del_bytes((long)n, !virtual_op, +! oap->op_type == OP_DELETE && !oap->is_VIsual); +! } + } + else /* delete characters between lines */ + { + pos_T curpos; +- int delete_last_line; + + /* save deleted and changed lines for undo */ + if (u_save((linenr_T)(curwin->w_cursor.lnum - 1), + (linenr_T)(curwin->w_cursor.lnum + oap->line_count)) == FAIL) + return FAIL; + +- delete_last_line = (oap->end.lnum == curbuf->b_ml.ml_line_count); + truncate_line(TRUE); /* delete from cursor to end of line */ + + curpos = curwin->w_cursor; /* remember curwin->w_cursor */ + ++curwin->w_cursor.lnum; + del_lines((long)(oap->line_count - 2), FALSE); + +! if (delete_last_line) +! oap->end.lnum = curbuf->b_ml.ml_line_count; +! + n = (oap->end.col + 1 - !oap->inclusive); +! if (oap->inclusive && delete_last_line +! && n > (int)STRLEN(ml_get(oap->end.lnum))) +! { +! /* Special case: gH deletes the last line. */ +! del_lines(1L, FALSE); +! curwin->w_cursor = curpos; /* restore curwin->w_cursor */ +! if (curwin->w_cursor.lnum > curbuf->b_ml.ml_line_count) +! curwin->w_cursor.lnum = curbuf->b_ml.ml_line_count; +! } +! else +! { +! /* delete from start of line until op_end */ +! curwin->w_cursor.col = 0; +! (void)del_bytes((long)n, !virtual_op, +! oap->op_type == OP_DELETE && !oap->is_VIsual); +! curwin->w_cursor = curpos; /* restore curwin->w_cursor */ +! } +! if (curwin->w_cursor.lnum < curbuf->b_ml.ml_line_count) +! (void)do_join(2, FALSE, FALSE, FALSE, FALSE); + } + } + +--- 1959,1989 ---- + curwin->w_cursor.coladd = 0; + } + #endif +! (void)del_bytes((long)n, !virtual_op, +! oap->op_type == OP_DELETE && !oap->is_VIsual); + } + else /* delete characters between lines */ + { + pos_T curpos; + + /* save deleted and changed lines for undo */ + if (u_save((linenr_T)(curwin->w_cursor.lnum - 1), + (linenr_T)(curwin->w_cursor.lnum + oap->line_count)) == FAIL) + return FAIL; + + truncate_line(TRUE); /* delete from cursor to end of line */ + + curpos = curwin->w_cursor; /* remember curwin->w_cursor */ + ++curwin->w_cursor.lnum; + del_lines((long)(oap->line_count - 2), FALSE); + +! /* delete from start of line until op_end */ + n = (oap->end.col + 1 - !oap->inclusive); +! curwin->w_cursor.col = 0; +! (void)del_bytes((long)n, !virtual_op, +! oap->op_type == OP_DELETE && !oap->is_VIsual); +! curwin->w_cursor = curpos; /* restore curwin->w_cursor */ +! (void)do_join(2, FALSE, FALSE, FALSE, FALSE); + } + } + +*** ../vim-7.4.733/src/testdir/test94.in 2013-05-04 04:03:02.000000000 +0200 +--- src/testdir/test94.in 2015-06-09 20:08:08.058244848 +0200 +*************** +*** 64,69 **** +--- 64,179 ---- + d: :set ma | put = v:errmsg =~# '^E21' ? 'ok' : 'failed' + dv:dV::set noma | let v:errmsg = '' + d::set ma | put = v:errmsg =~# '^E21' ? 'failed' : 'ok' ++ : ++ :$put ='' ++ :$put ='characterwise visual mode: replace last line' ++ :$put ='a' ++ :let @" = 'x' ++ :let v:errmsg = '' ++ v$p ++ :$put ='---' ++ :$put ='v:errmsg='.v:errmsg ++ : ++ :$put ='' ++ :$put ='characterwise visual mode: delete middle line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kkv$d ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='characterwise visual mode: delete middle two line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kkvj$d ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='characterwise visual mode: delete last line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ v$d ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='characterwise visual mode: delete last two line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kvj$d ++ :$put ='---' ++ : ++ :" Select mode maps ++ :snoremap End> ++ :snoremap Down> ++ :snoremap Del> ++ : ++ :$put ='' ++ :$put ='characterwise select mode: delete middle line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kkgh ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='characterwise select mode: delete middle two line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kkgh ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='characterwise select mode: delete last line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ gh ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='characterwise select mode: delete last two line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kgh ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='linewise select mode: delete middle line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kkgH ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='linewise select mode: delete middle two line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kkgH ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='linewise select mode: delete last line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ gH ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='linewise select mode: delete last two line' ++ :$put ='a' ++ :$put ='b' ++ :$put ='c' ++ kgH ++ :$put ='---' + :/^start:/+2,$w! test.out + :q! + ENDTEST +*** ../vim-7.4.733/src/testdir/test94.ok 2013-05-04 04:06:46.000000000 +0200 +--- src/testdir/test94.ok 2015-06-09 20:08:08.058244848 +0200 +*************** +*** 18,20 **** +--- 18,83 ---- + zzz + ok + ok ++ ++ characterwise visual mode: replace last line ++ x ++ --- ++ v:errmsg= ++ ++ characterwise visual mode: delete middle line ++ b ++ c ++ --- ++ ++ characterwise visual mode: delete middle two line ++ c ++ --- ++ ++ characterwise visual mode: delete last line ++ a ++ b ++ ++ --- ++ ++ characterwise visual mode: delete last two line ++ a ++ ++ --- ++ ++ characterwise select mode: delete middle line ++ b ++ c ++ --- ++ ++ characterwise select mode: delete middle two line ++ c ++ --- ++ ++ characterwise select mode: delete last line ++ a ++ b ++ ++ --- ++ ++ characterwise select mode: delete last two line ++ a ++ ++ --- ++ ++ linewise select mode: delete middle line ++ b ++ c ++ --- ++ ++ linewise select mode: delete middle two line ++ c ++ --- ++ ++ linewise select mode: delete last line ++ a ++ b ++ --- ++ ++ linewise select mode: delete last two line ++ a ++ --- +*** ../vim-7.4.733/src/version.c 2015-06-09 19:58:13.664658549 +0200 +--- src/version.c 2015-06-09 20:19:16.815166372 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 734, + /**/ + +-- +From "know your smileys": + <>:-) Bishop + + /// 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 /// From 04c24d30e39642cdc7baa693697329df471cd704 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:29 +0200 Subject: [PATCH 0209/1407] - patchlevel 735 --- 7.4.735 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.735 diff --git a/7.4.735 b/7.4.735 new file mode 100644 index 00000000..a1063162 --- /dev/null +++ b/7.4.735 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.735 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.735 +Problem: Wrong argument for sizeof(). +Solution: Use a pointer argument. (Chris Hall) +Files: src/eval.c + + +*** ../vim-7.4.734/src/eval.c 2015-05-04 11:10:21.539941849 +0200 +--- src/eval.c 2015-06-09 20:24:56.219563938 +0200 +*************** +*** 23164,23170 **** + if (todo == 0) + return; /* nothing to dump */ + +! sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T) * todo)); + + for (hi = func_hashtab.ht_array; todo > 0; ++hi) + { +--- 23164,23170 ---- + if (todo == 0) + return; /* nothing to dump */ + +! sorttab = (ufunc_T **)alloc((unsigned)(sizeof(ufunc_T *) * todo)); + + for (hi = func_hashtab.ht_array; todo > 0; ++hi) + { +*** ../vim-7.4.734/src/version.c 2015-06-09 20:19:57.730732183 +0200 +--- src/version.c 2015-06-09 20:26:31.098557448 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 735, + /**/ + +-- +From "know your smileys": + +<(:-) The Pope + + /// 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 /// From 7ebfd27f6785898a6022337e6efe6ab333c9e83b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:29 +0200 Subject: [PATCH 0210/1407] - patchlevel 736 --- 7.4.736 | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 7.4.736 diff --git a/7.4.736 b/7.4.736 new file mode 100644 index 00000000..e5eb6627 --- /dev/null +++ b/7.4.736 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.736 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.736 +Problem: Invalid memory access. +Solution: Avoid going over the end of a NUL terminated string. (Dominique + Pelle) +Files: src/regexp.c + + +*** ../vim-7.4.735/src/regexp.c 2015-05-04 09:56:41.878096054 +0200 +--- src/regexp.c 2015-06-09 20:37:13.615725284 +0200 +*************** +*** 1157,1163 **** + int l = 1; + char_u *p = *pp; + +! if (p[1] == '.') + { + #ifdef FEAT_MBYTE + if (has_mbyte) +--- 1157,1163 ---- + int l = 1; + char_u *p = *pp; + +! if (p[0] != NUL && p[1] == '.') + { + #ifdef FEAT_MBYTE + if (has_mbyte) +*************** +*** 1228,1235 **** + { + if (get_char_class(&p) == CLASS_NONE + && get_equi_class(&p) == 0 +! && get_coll_element(&p) == 0) +! ++p; /* It was not a class name */ + } + else + ++p; +--- 1228,1236 ---- + { + if (get_char_class(&p) == CLASS_NONE + && get_equi_class(&p) == 0 +! && get_coll_element(&p) == 0 +! && *p != NUL) +! ++p; /* it is not a class name and not NUL */ + } + else + ++p; +*************** +*** 3156,3162 **** + /* + * META contains everything that may be magic sometimes, + * except ^ and $ ("\^" and "\$" are only magic after +! * "\v"). We now fetch the next character and toggle its + * magicness. Therefore, \ is so meta-magic that it is + * not in META. + */ +--- 3157,3163 ---- + /* + * META contains everything that may be magic sometimes, + * except ^ and $ ("\^" and "\$" are only magic after +! * "\V"). We now fetch the next character and toggle its + * magicness. Therefore, \ is so meta-magic that it is + * not in META. + */ +*** ../vim-7.4.735/src/version.c 2015-06-09 20:30:45.495855617 +0200 +--- src/version.c 2015-06-09 20:35:05.465090115 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 736, + /**/ + +-- +From "know your smileys": + 2B|^2B Message from Shakespeare + + /// 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 /// From ca07cf2538bbd3d1c039c144c67193f640b3b268 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:29 +0200 Subject: [PATCH 0211/1407] - patchlevel 737 --- 7.4.737 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.737 diff --git a/7.4.737 b/7.4.737 new file mode 100644 index 00000000..37d92bfa --- /dev/null +++ b/7.4.737 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.737 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.737 +Problem: On MS-Windows vimgrep over arglist doesn't work (Issue 361) +Solution: Only escape backslashes in ## expansion when it is not used as the + path separator. (James McCoy) +Files: src/ex_docmd.c + + +*** ../vim-7.4.736/src/ex_docmd.c 2015-04-21 18:08:21.838719097 +0200 +--- src/ex_docmd.c 2015-06-09 21:32:02.900492033 +0200 +*************** +*** 10746,10752 **** + } + for ( ; *p != NUL; ++p) + { +! if (*p == ' ' || *p == '\\') + { + /* insert a backslash */ + if (retval != NULL) +--- 10746,10756 ---- + } + for ( ; *p != NUL; ++p) + { +! if (*p == ' ' +! #ifndef BACKSLASH_IN_FILENAME +! || *p == '\\' +! #endif +! ) + { + /* insert a backslash */ + if (retval != NULL) +*** ../vim-7.4.736/src/version.c 2015-06-09 20:39:04.322545425 +0200 +--- src/version.c 2015-06-09 21:30:30.001492247 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 737, + /**/ + +-- +From "know your smileys": + :-D Big smile + + /// 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 /// From 64c313ac9d2b60d67959108732cf45cc58746e7e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:19:30 +0200 Subject: [PATCH 0212/1407] - patchlevel 737 --- README.patches | 8 ++++++++ vim.spec | 23 +++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index 3767b677..200e7cbd 100644 --- a/README.patches +++ b/README.patches @@ -751,3 +751,11 @@ Individual patches for Vim 7.4: 1709 7.4.727 (after 7.4.724) cannot build GvimExt with MingW 2037 7.4.728 can't build with some version of Visual Studio 2015 1647 7.4.729 (after 7.4.721) occasional crash with 'list' set + 9012 7.4.730 when setting the crypt key text in swap file may be corrupted + 5005 7.4.731 the tab menu shows "Close tab" even when it doesn't work + 1472 7.4.732 the cursor line is not always updated for the "O" command + 1408 7.4.733 test_listchars breaks on MS-Windows + 9465 7.4.734 ml_get error when using "p" in Visual selection in last line + 1514 7.4.735 wrong argument for sizeof() + 2537 7.4.736 invalid memory access + 1573 7.4.737 on MS-Windows vimgrep over arglist doesn't work (Issue 361) diff --git a/vim.spec b/vim.spec index 98943ee8..6b1b627c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 729 +%define patchlevel 737 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 3%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -776,6 +776,14 @@ Patch726: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.726 Patch727: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.727 Patch728: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.728 Patch729: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.729 +Patch730: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.730 +Patch731: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.731 +Patch732: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.732 +Patch733: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.733 +Patch734: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.734 +Patch735: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.735 +Patch736: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.736 +Patch737: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.737 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1655,6 +1663,14 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch727 -p0 %patch728 -p0 %patch729 -p0 +%patch730 -p0 +%patch731 -p0 +%patch732 -p0 +%patch733 -p0 +%patch734 -p0 +%patch735 -p0 +%patch736 -p0 +%patch737 -p0 # install spell files %if %{withvimspell} @@ -2211,6 +2227,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jun 10 2015 Karsten Hopp 7.4.737-1 +- patchlevel 737 + <<<<<<< HEAD * Thu May 14 2015 Karsten Hopp 7.4.729-1 - patchlevel 729 From 138827fb793fc950aa212e7c6fe7b58338390a4d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:22:14 +0200 Subject: [PATCH 0213/1407] fix merge leftovers --- vim.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/vim.spec b/vim.spec index 6b1b627c..5c0761a6 100644 --- a/vim.spec +++ b/vim.spec @@ -2230,7 +2230,6 @@ rm -rf %{buildroot} * Wed Jun 10 2015 Karsten Hopp 7.4.737-1 - patchlevel 737 -<<<<<<< HEAD * Thu May 14 2015 Karsten Hopp 7.4.729-1 - patchlevel 729 From c6097af1f0359949ab26918555d2fbf1a0ad5ac7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 10:27:18 +0200 Subject: [PATCH 0214/1407] fix invalid changelog dates --- vim.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vim.spec b/vim.spec index 5c0761a6..316aad3d 100644 --- a/vim.spec +++ b/vim.spec @@ -2299,10 +2299,10 @@ rm -rf %{buildroot} * Fri Mar 20 2015 Karsten Hopp 7.4.668-1 - patchlevel 668 -* Wed Jun 03 2015 Jitka Plesnikova - 2:7.4.663-3 +* Thu Mar 19 2015 Jitka Plesnikova - 7.4.663-3 - Perl 5.22 rebuild -* Thu Mar 26 2015 Richard Hughes - 2:7.4.663-2 +* Wed Mar 18 2015 Richard Hughes - 7.4.663-2 - Add an AppData file for the software center * Sat Mar 14 2015 Karsten Hopp 7.4.663-1 @@ -2341,7 +2341,7 @@ rm -rf %{buildroot} * Wed Feb 25 2015 Karsten Hopp 7.4.640-1 - patchlevel 640 -* Sat Feb 21 2015 Till Maas - 2:7.4.629-2 +* Sat Feb 21 2015 Till Maas - 7.4.629-2 - Rebuilt for Fedora 23 Change https://fedoraproject.org/wiki/Changes/Harden_all_packages_with_position-independent_code From 26efd19e297b8abe8e9b08cf2bace489ef93d6cb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 18:00:05 +0200 Subject: [PATCH 0215/1407] - patchlevel 738 --- 7.4.738 | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 7.4.738 diff --git a/7.4.738 b/7.4.738 new file mode 100644 index 00000000..c36aba58 --- /dev/null +++ b/7.4.738 @@ -0,0 +1,102 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.738 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.738 (after 7.4.732) +Problem: Can't compile without the syntax highlighting feature. +Solution: Add #ifdef around use of w_p_cul. (Hirohito Higashi) +Files: src/normal.c, src/screen.c + + +*** ../vim-7.4.737/src/normal.c 2015-06-09 20:19:57.726732226 +0200 +--- src/normal.c 2015-06-10 11:48:14.045128971 +0200 +*************** +*** 8487,8495 **** +--- 8487,8497 ---- + /* When '#' is in 'cpoptions' ignore the count. */ + if (vim_strchr(p_cpo, CPO_HASH) != NULL) + cap->count1 = 1; ++ #ifdef FEAT_SYN_HL + if (curwin->w_p_cul) + /* force redraw of cursorline */ + curwin->w_valid &= ~VALID_CROW; ++ #endif + invoke_edit(cap, FALSE, cap->cmdchar, TRUE); + } + } +*** ../vim-7.4.737/src/screen.c 2015-05-14 05:55:59.138935575 +0200 +--- src/screen.c 2015-06-10 12:16:28.090798579 +0200 +*************** +*** 3750,3773 **** + if (draw_state == WL_BRI - 1 && n_extra == 0) + { + draw_state = WL_BRI; +- # ifdef FEAT_DIFF +- # endif + if (wp->w_p_bri && n_extra == 0 && row != startrow +! #ifdef FEAT_DIFF + && filler_lines == 0 +! #endif + ) + { + char_attr = 0; /* was: hl_attr(HLF_AT); */ +! #ifdef FEAT_DIFF + if (diff_hlf != (hlf_T)0) + { + char_attr = hl_attr(diff_hlf); + if (wp->w_p_cul && lnum == wp->w_cursor.lnum) + char_attr = hl_combine_attr(char_attr, + hl_attr(HLF_CUL)); + } +! #endif + p_extra = NULL; + c_extra = ' '; + n_extra = get_breakindent_win(wp, +--- 3750,3773 ---- + if (draw_state == WL_BRI - 1 && n_extra == 0) + { + draw_state = WL_BRI; + if (wp->w_p_bri && n_extra == 0 && row != startrow +! # ifdef FEAT_DIFF + && filler_lines == 0 +! # endif + ) + { + char_attr = 0; /* was: hl_attr(HLF_AT); */ +! # ifdef FEAT_DIFF + if (diff_hlf != (hlf_T)0) + { + char_attr = hl_attr(diff_hlf); ++ # ifdef FEAT_SYN_HL + if (wp->w_p_cul && lnum == wp->w_cursor.lnum) + char_attr = hl_combine_attr(char_attr, + hl_attr(HLF_CUL)); ++ # endif + } +! # endif + p_extra = NULL; + c_extra = ' '; + n_extra = get_breakindent_win(wp, +*** ../vim-7.4.737/src/version.c 2015-06-09 21:33:24.819610622 +0200 +--- src/version.c 2015-06-10 11:49:51.336075815 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 738, + /**/ + +-- +From "know your smileys": + :-& Eating spaghetti + + /// 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 /// From d1b3b825650321337f008610e855fd2d56ed7c79 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Jun 2015 18:00:05 +0200 Subject: [PATCH 0216/1407] - patchlevel 738 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 200e7cbd..a22ef26c 100644 --- a/README.patches +++ b/README.patches @@ -759,3 +759,4 @@ Individual patches for Vim 7.4: 1514 7.4.735 wrong argument for sizeof() 2537 7.4.736 invalid memory access 1573 7.4.737 on MS-Windows vimgrep over arglist doesn't work (Issue 361) + 2961 7.4.738 (after 7.4.732) can't compile without the syntax HL feature diff --git a/vim.spec b/vim.spec index 316aad3d..cbfd1aa2 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 737 +%define patchlevel 738 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -784,6 +784,7 @@ Patch734: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.734 Patch735: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.735 Patch736: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.736 Patch737: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.737 +Patch738: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.738 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1671,6 +1672,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch735 -p0 %patch736 -p0 %patch737 -p0 +%patch738 -p0 # install spell files %if %{withvimspell} @@ -2227,6 +2229,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jun 10 2015 Karsten Hopp 7.4.738-1 +- patchlevel 738 + * Wed Jun 10 2015 Karsten Hopp 7.4.737-1 - patchlevel 737 From b10b742bde534a2a4de5f39f265491f7c7c71eb8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 12 Jun 2015 13:22:49 +0200 Subject: [PATCH 0217/1407] add vimtutor script to vim-x11 (rhbz#1029810) --- vim.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/vim.spec b/vim.spec index 316aad3d..934bcc62 100644 --- a/vim.spec +++ b/vim.spec @@ -2221,6 +2221,7 @@ rm -rf %{buildroot} %{_bindir}/gvimdiff %{_bindir}/gview %{_bindir}/gex +%{_bindir}/vimtutor %{_bindir}/vimx %{_bindir}/evim %{_mandir}/man1/evim.* From eb05892db15f5b9d96416c3810d78fef9e072201 Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Fri, 19 Jun 2015 02:00:40 +0000 Subject: [PATCH 0218/1407] - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild --- vim.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index 934bcc62..37f96da7 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -2228,6 +2228,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Jun 19 2015 Fedora Release Engineering - 2:7.4.737-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + * Wed Jun 10 2015 Karsten Hopp 7.4.737-1 - patchlevel 737 From 07aa241922ec1cc2c74cc61de12b1b383441c0c8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:03 +0200 Subject: [PATCH 0219/1407] - patchlevel 739 --- 7.4.739 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.4.739 diff --git a/7.4.739 b/7.4.739 new file mode 100644 index 00000000..c5413283 --- /dev/null +++ b/7.4.739 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.739 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.739 +Problem: In a string "\U" only takes 4 digits, while after CTRL-V U eight + digits can be used. +Solution: Make "\U" also take eight digits. (Christian Brabandt) +Files: src/eval.c + + +*** ../vim-7.4.738/src/eval.c 2015-06-09 20:30:45.495855617 +0200 +--- src/eval.c 2015-06-19 11:36:27.818121198 +0200 +*************** +*** 5745,5752 **** + + if (c == 'X') + n = 2; +! else + n = 4; + nr = 0; + while (--n >= 0 && vim_isxdigit(p[1])) + { +--- 5745,5754 ---- + + if (c == 'X') + n = 2; +! else if (*p == 'u') + n = 4; ++ else ++ n = 8; + nr = 0; + while (--n >= 0 && vim_isxdigit(p[1])) + { +*** ../vim-7.4.738/src/version.c 2015-06-10 12:16:41.926648740 +0200 +--- src/version.c 2015-06-19 11:38:52.016606219 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 739, + /**/ + +-- +FIXME and XXX are two common keywords used to mark broken or incomplete code +not only since XXX as a sex reference would grab everybody's attention but +simply due to the fact that Vim would highlight these words. + -- Hendrik Scholz + + /// 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 /// From 2af27debae4da973589d6a0116c6859fb82b0e42 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:03 +0200 Subject: [PATCH 0220/1407] - patchlevel 740 --- 7.4.740 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.4.740 diff --git a/7.4.740 b/7.4.740 new file mode 100644 index 00000000..dea92eaf --- /dev/null +++ b/7.4.740 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.740 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.740 +Problem: ":1quit" works like ":.quit". (Bohr Shaw) +Solution: Don't exit Vim when a range is specified. (Christian Brabandt) +Files: src/ex_docmd.c, src/testdir/test13.in, src/testdir/test13.ok + + +*** ../vim-7.4.739/src/ex_docmd.c 2015-06-09 21:33:24.819610622 +0200 +--- src/ex_docmd.c 2015-06-19 12:42:52.716296921 +0200 +*************** +*** 7092,7098 **** + else + { + #ifdef FEAT_WINDOWS +! if (only_one_window()) /* quit last window */ + #endif + getout(0); + #ifdef FEAT_WINDOWS +--- 7092,7105 ---- + else + { + #ifdef FEAT_WINDOWS +! /* quit last window +! * Note: only_one_window() returns true, even so a help window is +! * still open. In that case only quit, if no address has been +! * specified. Example: +! * :h|wincmd w|1q - don't quit +! * :h|wincmd w|q - quit +! */ +! if (only_one_window() && (firstwin == lastwin || eap->addr_count == 0)) + #endif + getout(0); + #ifdef FEAT_WINDOWS +*** ../vim-7.4.739/src/testdir/test13.in 2012-11-15 22:29:40.000000000 +0100 +--- src/testdir/test13.in 2015-06-19 12:12:26.667433364 +0200 +*************** +*** 48,53 **** +--- 48,59 ---- + :au BufWipeout Xtestje1 buf Xtestje1 + :bwipe + :w >>test.out ++ :only ++ :help ++ :wincmd w ++ :1quit ++ :$put ='Final line' ++ :$w >>test.out + :qa! + ENDTEST + +*** ../vim-7.4.739/src/testdir/test13.ok 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test13.ok 2015-06-19 12:12:26.667433364 +0200 +*************** +*** 28,30 **** +--- 28,31 ---- + contents + contents + end of testfile ++ Final line +*** ../vim-7.4.739/src/version.c 2015-06-19 12:08:08.230151195 +0200 +--- src/version.c 2015-06-19 12:12:14.327563119 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 740, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +115. You are late picking up your kid from school and try to explain + to the teacher you were stuck in Web traffic. + + /// 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 /// From f28f210052add9a910b5c2ea5872d5f26b25d5b7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:04 +0200 Subject: [PATCH 0221/1407] - patchlevel 741 --- 7.4.741 | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 7.4.741 diff --git a/7.4.741 b/7.4.741 new file mode 100644 index 00000000..3afa66e4 --- /dev/null +++ b/7.4.741 @@ -0,0 +1,174 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.741 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.741 +Problem: When using += with ":set" a trailing comma is not recognized. + (Issue 365) +Solution: Don't add a second comma. Add a test. (partly by Christian + Brabandt) +Files: src/option.c, src/testdir/test_set.in, src/testdir/test_set.ok, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile + + +*** ../vim-7.4.740/src/option.c 2015-06-09 18:35:17.471406959 +0200 +--- src/option.c 2015-06-19 14:03:17.869987088 +0200 +*************** +*** 4829,4834 **** +--- 4829,4838 ---- + if (adding) + { + i = (int)STRLEN(origval); ++ /* strip a trailing comma, would get 2 */ ++ if (comma && i > 1 && origval[i - 1] == ',' ++ && origval[i - 2] != '\\') ++ i--; + mch_memmove(newval + i + comma, newval, + STRLEN(newval) + 1); + mch_memmove(newval, origval, (size_t)i); +*** ../vim-7.4.740/src/testdir/test_set.in 2015-06-19 14:06:11.504176595 +0200 +--- src/testdir/test_set.in 2015-06-19 13:40:14.560405399 +0200 +*************** +*** 0 **** +--- 1,12 ---- ++ Tests for :set vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :set wildignore=*.png, ++ :set wildignore+=*.jpg ++ :$put =&wildignore ++ :/^Output goes here/+1,$w! test.out ++ :qa! ++ ENDTEST ++ ++ Output goes here +*** ../vim-7.4.740/src/testdir/test_set.ok 2015-06-19 14:06:11.508176554 +0200 +--- src/testdir/test_set.ok 2015-06-19 13:42:16.731131055 +0200 +*************** +*** 0 **** +--- 1 ---- ++ *.png,*.jpg +*** ../vim-7.4.740/src/testdir/Make_amiga.mak 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/Make_amiga.mak 2015-06-19 13:44:38.885650059 +0200 +*************** +*** 54,59 **** +--- 54,60 ---- + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ ++ test_set.out \ + test_signs.out \ + test_textobjects.out \ + test_utf8.out +*************** +*** 198,203 **** +--- 199,205 ---- + test_nested_function.out: test_nested_function.in + test_options.out: test_options.in + test_qf_title.out: test_qf_title.in ++ test_set.out: test_set.in + test_signs.out: test_signs.in + test_textobjects.out: test_textobjects.in + test_utf8.out: test_utf8.in +*** ../vim-7.4.740/src/testdir/Make_dos.mak 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/Make_dos.mak 2015-06-19 13:44:47.549559793 +0200 +*************** +*** 53,58 **** +--- 53,59 ---- + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ ++ test_set.out \ + test_signs.out \ + test_textobjects.out \ + test_utf8.out +*** ../vim-7.4.740/src/testdir/Make_ming.mak 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/Make_ming.mak 2015-06-19 13:45:00.801421725 +0200 +*************** +*** 75,80 **** +--- 75,81 ---- + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ ++ test_set.out \ + test_signs.out \ + test_textobjects.out \ + test_utf8.out +*** ../vim-7.4.740/src/testdir/Make_os2.mak 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/Make_os2.mak 2015-06-19 13:45:07.781349001 +0200 +*************** +*** 55,60 **** +--- 55,61 ---- + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ ++ test_set.out \ + test_signs.out \ + test_textobjects.out \ + test_utf8.out +*** ../vim-7.4.740/src/testdir/Make_vms.mms 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/Make_vms.mms 2015-06-19 13:45:17.649246188 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Apr 21 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Jun 19 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 114,119 **** +--- 114,120 ---- + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ ++ test_set.out \ + test_signs.out \ + test_textobjects.out \ + test_utf8.out +*** ../vim-7.4.740/src/testdir/Makefile 2015-04-21 18:33:33.906675754 +0200 +--- src/testdir/Makefile 2015-06-19 13:41:02.539904437 +0200 +*************** +*** 51,56 **** +--- 51,57 ---- + test_nested_function.out \ + test_options.out \ + test_qf_title.out \ ++ test_set.out \ + test_signs.out \ + test_textobjects.out \ + test_utf8.out +*** ../vim-7.4.740/src/version.c 2015-06-19 12:43:02.384196168 +0200 +--- src/version.c 2015-06-19 13:30:12.122694151 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 741, + /**/ + +-- +Amnesia is one of my favorite words, but I forgot what it means. + + /// 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 /// From 0b8c992152071c396ee1b18045f4e1afd6de667f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:04 +0200 Subject: [PATCH 0222/1407] - patchlevel 742 --- 7.4.742 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.742 diff --git a/7.4.742 b/7.4.742 new file mode 100644 index 00000000..d2b38fd7 --- /dev/null +++ b/7.4.742 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.742 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.742 +Problem: Cannot specify a vertical split when loading a buffer for a + quickfix command. +Solution: Add the "vsplit" value to 'switchbuf'. (Brook Hong) +Files: runtime/doc/options.txt, src/buffer.c, src/option.h + + +*** ../vim-7.4.741/runtime/doc/options.txt 2015-05-04 17:28:17.340445782 +0200 +--- runtime/doc/options.txt 2015-06-19 14:26:15.447584096 +0200 +*************** +*** 7058,7063 **** +--- 7067,7073 ---- + split If included, split the current window before loading + a buffer for a |quickfix| command that display errors. + Otherwise: do not split, use current window. ++ vsplit Just like "split" but split vertically. + newtab Like "split", but open a new tab page. Overrules + "split" when both are present. + +*** ../vim-7.4.741/src/buffer.c 2015-03-20 18:11:44.963196400 +0100 +--- src/buffer.c 2015-06-19 14:28:36.342100740 +0200 +*************** +*** 2071,2087 **** + * "buf" if one exists */ + if (swb_flags & SWB_USEOPEN) + wp = buf_jump_open_win(buf); + /* If 'switchbuf' contains "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if (wp == NULL && (swb_flags & SWB_USETAB)) + wp = buf_jump_open_tab(buf); +! /* If 'switchbuf' contains "split" or "newtab" and the current buffer +! * isn't empty: open new window */ +! if (wp == NULL && (swb_flags & (SWB_SPLIT | SWB_NEWTAB)) && !bufempty()) + { +! if (swb_flags & SWB_NEWTAB) /* Open in a new tab */ + tabpage_new(); +! else if (win_split(0, 0) == FAIL) /* Open in a new window */ + return FAIL; + RESET_BINDING(curwin); + } +--- 2071,2091 ---- + * "buf" if one exists */ + if (swb_flags & SWB_USEOPEN) + wp = buf_jump_open_win(buf); ++ + /* If 'switchbuf' contains "usetab": jump to first window in any tab + * page containing "buf" if one exists */ + if (wp == NULL && (swb_flags & SWB_USETAB)) + wp = buf_jump_open_tab(buf); +! +! /* If 'switchbuf' contains "split", "vsplit" or "newtab" and the +! * current buffer isn't empty: open new tab or window */ +! if (wp == NULL && (swb_flags & (SWB_VSPLIT | SWB_SPLIT | SWB_NEWTAB)) +! && !bufempty()) + { +! if (swb_flags & SWB_NEWTAB) + tabpage_new(); +! else if (win_split(0, (swb_flags & SWB_VSPLIT) ? WSP_VERT : 0) +! == FAIL) + return FAIL; + RESET_BINDING(curwin); + } +*** ../vim-7.4.741/src/option.h 2014-11-05 17:44:47.676471691 +0100 +--- src/option.h 2015-06-19 14:25:00.364374797 +0200 +*************** +*** 765,776 **** + EXTERN char_u *p_swb; /* 'switchbuf' */ + EXTERN unsigned swb_flags; + #ifdef IN_OPTION_C +! static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", NULL}; + #endif + #define SWB_USEOPEN 0x001 + #define SWB_USETAB 0x002 + #define SWB_SPLIT 0x004 + #define SWB_NEWTAB 0x008 + EXTERN int p_tbs; /* 'tagbsearch' */ + EXTERN long p_tl; /* 'taglength' */ + EXTERN int p_tr; /* 'tagrelative' */ +--- 765,777 ---- + EXTERN char_u *p_swb; /* 'switchbuf' */ + EXTERN unsigned swb_flags; + #ifdef IN_OPTION_C +! static char *(p_swb_values[]) = {"useopen", "usetab", "split", "newtab", "vsplit", NULL}; + #endif + #define SWB_USEOPEN 0x001 + #define SWB_USETAB 0x002 + #define SWB_SPLIT 0x004 + #define SWB_NEWTAB 0x008 ++ #define SWB_VSPLIT 0x010 + EXTERN int p_tbs; /* 'tagbsearch' */ + EXTERN long p_tl; /* 'taglength' */ + EXTERN int p_tr; /* 'tagrelative' */ +*** ../vim-7.4.741/src/version.c 2015-06-19 14:06:29.043993697 +0200 +--- src/version.c 2015-06-19 14:25:32.060040993 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 742, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +116. You are living with your boyfriend who networks your respective + computers so you can sit in separate rooms and email each other + + /// 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 /// From dfc071bdc745e48c0e158a328511dcb6fc03e3de Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:04 +0200 Subject: [PATCH 0223/1407] - patchlevel 743 --- 7.4.743 | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 7.4.743 diff --git a/7.4.743 b/7.4.743 new file mode 100644 index 00000000..1b75474c --- /dev/null +++ b/7.4.743 @@ -0,0 +1,167 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.743 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.743 +Problem: "p" in Visual mode causes an unexpected line split. +Solution: Advance the cursor first. (Yukihiro Nakadaira) +Files: src/ops.c, src/testdir/test94.in, src/testdir/test94.ok + + +*** ../vim-7.4.742/src/ops.c 2015-06-09 20:19:57.730732183 +0200 +--- src/ops.c 2015-06-19 14:50:19.344413102 +0200 +*************** +*** 3459,3475 **** + { + if (flags & PUT_LINE_SPLIT) + { + /* "p" or "P" in Visual mode: split the lines to put the text in + * between. */ + if (u_save_cursor() == FAIL) + goto end; +! ptr = vim_strsave(ml_get_cursor()); + if (ptr == NULL) + goto end; + ml_append(curwin->w_cursor.lnum, ptr, (colnr_T)0, FALSE); + vim_free(ptr); + +! ptr = vim_strnsave(ml_get_curline(), curwin->w_cursor.col); + if (ptr == NULL) + goto end; + ml_replace(curwin->w_cursor.lnum, ptr, FALSE); +--- 3459,3484 ---- + { + if (flags & PUT_LINE_SPLIT) + { ++ char_u *p; ++ + /* "p" or "P" in Visual mode: split the lines to put the text in + * between. */ + if (u_save_cursor() == FAIL) + goto end; +! p = ml_get_cursor(); +! if (dir == FORWARD && *p != NUL) +! mb_ptr_adv(p); +! ptr = vim_strsave(p); + if (ptr == NULL) + goto end; + ml_append(curwin->w_cursor.lnum, ptr, (colnr_T)0, FALSE); + vim_free(ptr); + +! oldp = ml_get_curline(); +! p = oldp + curwin->w_cursor.col; +! if (dir == FORWARD && *p != NUL) +! mb_ptr_adv(p); +! ptr = vim_strnsave(oldp, p - oldp); + if (ptr == NULL) + goto end; + ml_replace(curwin->w_cursor.lnum, ptr, FALSE); +*** ../vim-7.4.742/src/testdir/test94.in 2015-06-09 20:19:57.730732183 +0200 +--- src/testdir/test94.in 2015-06-19 14:49:22.357010930 +0200 +*************** +*** 174,179 **** +--- 174,215 ---- + :$put ='c' + kgH + :$put ='---' ++ : ++ :$put ='' ++ :$put ='v_p: replace last character with line register at middle line' ++ :$put ='aaa' ++ :$put ='bbb' ++ :$put ='ccc' ++ :-2yank ++ k$vp ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='v_p: replace last character with line register at middle line selecting newline' ++ :$put ='aaa' ++ :$put ='bbb' ++ :$put ='ccc' ++ :-2yank ++ k$v$p ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='v_p: replace last character with line register at last line' ++ :$put ='aaa' ++ :$put ='bbb' ++ :$put ='ccc' ++ :-2yank ++ $vp ++ :$put ='---' ++ : ++ :$put ='' ++ :$put ='v_p: replace last character with line register at last line selecting newline' ++ :$put ='aaa' ++ :$put ='bbb' ++ :$put ='ccc' ++ :-2yank ++ $v$p ++ :$put ='---' + :/^start:/+2,$w! test.out + :q! + ENDTEST +*** ../vim-7.4.742/src/testdir/test94.ok 2015-06-09 20:19:57.730732183 +0200 +--- src/testdir/test94.ok 2015-06-19 14:49:57.564641577 +0200 +*************** +*** 81,83 **** +--- 81,114 ---- + linewise select mode: delete last two line + a + --- ++ ++ v_p: replace last character with line register at middle line ++ aaa ++ bb ++ aaa ++ ++ ccc ++ --- ++ ++ v_p: replace last character with line register at middle line selecting newline ++ aaa ++ bb ++ aaa ++ ccc ++ --- ++ ++ v_p: replace last character with line register at last line ++ aaa ++ bbb ++ cc ++ aaa ++ ++ --- ++ ++ v_p: replace last character with line register at last line selecting newline ++ aaa ++ bbb ++ cc ++ aaa ++ ++ --- +*** ../vim-7.4.742/src/version.c 2015-06-19 14:41:44.777813290 +0200 +--- src/version.c 2015-06-19 14:45:13.251624852 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 743, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +117. You are more comfortable typing in html. + + /// 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 /// From 0db91720a783cafb2e0a34258e99dda8ea83a89e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:04 +0200 Subject: [PATCH 0224/1407] - patchlevel 744 --- 7.4.744 | 210 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 210 insertions(+) create mode 100644 7.4.744 diff --git a/7.4.744 b/7.4.744 new file mode 100644 index 00000000..936dfee7 --- /dev/null +++ b/7.4.744 @@ -0,0 +1,210 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.744 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.744 +Problem: No tests for Ruby and Perl. +Solution: Add minimal tests. (Ken Takata) +Files: src/testdir/test_perl.in, src/testdir/test_perl.ok, + src/testdir/test_ruby.in, src/testdir/test_ruby.ok, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile + + +*** ../vim-7.4.743/src/testdir/test_perl.in 2015-06-19 15:45:02.098003107 +0200 +--- src/testdir/test_perl.in 2015-06-19 15:22:58.479839592 +0200 +*************** +*** 0 **** +--- 1,26 ---- ++ Tests for perl interface. vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :set nocompatible viminfo+=nviminfo ++ :if !has('perl') | e! test.ok | wq! test.out | endif ++ :" change buffer contents ++ :perl VIM::DoCommand("normal /^1\n") ++ :perl $curline = VIM::Eval("line('.')") ++ :perl $curbuf->Set($curline, "1 changed line 1") ++ :" evaluate a List ++ :perl VIM::DoCommand("normal /^2\n") ++ :perl $curline = VIM::Eval("line('.')") ++ :let l = ["abc", "def"] ++ :perl << EOF ++ $l = VIM::Eval("l"); ++ $curbuf->Append($curline, $l); ++ EOF ++ :normal j ++ :.perldo s|\n|/|g ++ :?^1?,$w! test.out ++ :qa! ++ ENDTEST ++ ++ 1 line 1 ++ 2 line 2 +*** ../vim-7.4.743/src/testdir/test_perl.ok 2015-06-19 15:45:02.102003065 +0200 +--- src/testdir/test_perl.ok 2015-06-19 15:22:58.479839592 +0200 +*************** +*** 0 **** +--- 1,3 ---- ++ 1 changed line 1 ++ 2 line 2 ++ abc/def/ +*** ../vim-7.4.743/src/testdir/test_ruby.in 2015-06-19 15:45:02.110002982 +0200 +--- src/testdir/test_ruby.in 2015-06-19 15:22:58.479839592 +0200 +*************** +*** 0 **** +--- 1,25 ---- ++ Tests for ruby interface. vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :set nocompatible viminfo+=nviminfo ++ :if !has('ruby') | e! test.ok | wq! test.out | endif ++ :" change buffer contents ++ :ruby VIM.command("normal /^1\n") ++ :ruby $curbuf.line = "1 changed line 1" ++ :" evaluate a List ++ :ruby VIM.command("normal /^2\n") ++ :let l = ["abc", "def"] ++ :ruby << EOF ++ curline = $curbuf.line_number ++ l = VIM.evaluate("l"); ++ $curbuf.append(curline, l.join("\n")) ++ EOF ++ :normal j ++ :.rubydo $_ = $_.gsub(/\n/, '/') ++ :?^1?,$w! test.out ++ :qa! ++ ENDTEST ++ ++ 1 line 1 ++ 2 line 2 +*** ../vim-7.4.743/src/testdir/test_ruby.ok 2015-06-19 15:45:02.114002940 +0200 +--- src/testdir/test_ruby.ok 2015-06-19 15:22:58.479839592 +0200 +*************** +*** 0 **** +--- 1,3 ---- ++ 1 changed line 1 ++ 2 line 2 ++ abc/def +*** ../vim-7.4.743/src/testdir/Make_amiga.mak 2015-06-19 14:06:29.043993697 +0200 +--- src/testdir/Make_amiga.mak 2015-06-19 15:25:07.546490522 +0200 +*************** +*** 53,59 **** +--- 53,61 ---- + test_marks.out \ + test_nested_function.out \ + test_options.out \ ++ test_perl.out \ + test_qf_title.out \ ++ test_ruby.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*************** +*** 198,204 **** +--- 200,208 ---- + test_marks.out: test_marks.in + test_nested_function.out: test_nested_function.in + test_options.out: test_options.in ++ test_perl.out: test_perl.in + test_qf_title.out: test_qf_title.in ++ test_ruby.out: test_ruby.in + test_set.out: test_set.in + test_signs.out: test_signs.in + test_textobjects.out: test_textobjects.in +*** ../vim-7.4.743/src/testdir/Make_dos.mak 2015-06-19 14:06:29.043993697 +0200 +--- src/testdir/Make_dos.mak 2015-06-19 15:25:17.606385377 +0200 +*************** +*** 52,58 **** +--- 52,60 ---- + test_marks.out \ + test_nested_function.out \ + test_options.out \ ++ test_perl.out \ + test_qf_title.out \ ++ test_ruby.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.743/src/testdir/Make_ming.mak 2015-06-19 14:06:29.043993697 +0200 +--- src/testdir/Make_ming.mak 2015-06-19 15:25:30.650249042 +0200 +*************** +*** 74,80 **** +--- 74,82 ---- + test_marks.out \ + test_nested_function.out \ + test_options.out \ ++ test_perl.out \ + test_qf_title.out \ ++ test_ruby.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.743/src/testdir/Make_os2.mak 2015-06-19 14:06:29.043993697 +0200 +--- src/testdir/Make_os2.mak 2015-06-19 15:25:42.358126674 +0200 +*************** +*** 54,60 **** +--- 54,62 ---- + test_marks.out \ + test_nested_function.out \ + test_options.out \ ++ test_perl.out \ + test_qf_title.out \ ++ test_ruby.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.743/src/testdir/Make_vms.mms 2015-06-19 14:06:29.043993697 +0200 +--- src/testdir/Make_vms.mms 2015-06-19 15:25:50.038046403 +0200 +*************** +*** 113,119 **** +--- 113,121 ---- + test_marks.out \ + test_nested_function.out \ + test_options.out \ ++ test_perl.out \ + test_qf_title.out \ ++ test_ruby.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.743/src/testdir/Makefile 2015-06-19 14:06:29.043993697 +0200 +--- src/testdir/Makefile 2015-06-19 15:26:11.261824557 +0200 +*************** +*** 50,56 **** +--- 50,58 ---- + test_marks.out \ + test_nested_function.out \ + test_options.out \ ++ test_perl.out \ + test_qf_title.out \ ++ test_ruby.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.743/src/version.c 2015-06-19 15:17:49.895065569 +0200 +--- src/version.c 2015-06-19 15:24:24.582939585 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 744, + /**/ + +-- +"A clear conscience is usually the sign of a bad memory." + -- Steven Wright + + /// 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 /// From 439679960799a3cddd43711bd19df1878fb870e2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:05 +0200 Subject: [PATCH 0225/1407] - patchlevel 745 --- 7.4.745 | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 7.4.745 diff --git a/7.4.745 b/7.4.745 new file mode 100644 index 00000000..eafbec5a --- /dev/null +++ b/7.4.745 @@ -0,0 +1,157 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.745 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.745 +Problem: The entries added by matchaddpos() are returned by getmatches() + but can't be set with setmatches(). (Lcd) +Solution: Fix setmatches(). (Christian Brabandt) +Files: src/eval.c, src/testdir/test63.in, src/testdir/test63.ok + + +*** ../vim-7.4.744/src/eval.c 2015-06-19 12:08:08.230151195 +0200 +--- src/eval.c 2015-06-19 16:27:05.567692144 +0200 +*************** +*** 17118,17123 **** +--- 17118,17124 ---- + list_T *l; + listitem_T *li; + dict_T *d; ++ list_T *s = NULL; + + rettv->vval.v_number = -1; + if (argvars[0].v_type != VAR_LIST) +*************** +*** 17140,17146 **** + return; + } + if (!(dict_find(d, (char_u *)"group", -1) != NULL +! && dict_find(d, (char_u *)"pattern", -1) != NULL + && dict_find(d, (char_u *)"priority", -1) != NULL + && dict_find(d, (char_u *)"id", -1) != NULL)) + { +--- 17141,17148 ---- + return; + } + if (!(dict_find(d, (char_u *)"group", -1) != NULL +! && (dict_find(d, (char_u *)"pattern", -1) != NULL +! || dict_find(d, (char_u *)"pos1", -1) != NULL) + && dict_find(d, (char_u *)"priority", -1) != NULL + && dict_find(d, (char_u *)"id", -1) != NULL)) + { +*************** +*** 17154,17164 **** + li = l->lv_first; + while (li != NULL) + { + d = li->li_tv.vval.v_dict; +! match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE), + get_dict_string(d, (char_u *)"pattern", FALSE), + (int)get_dict_number(d, (char_u *)"priority"), + (int)get_dict_number(d, (char_u *)"id"), NULL); + li = li->li_next; + } + rettv->vval.v_number = 0; +--- 17156,17208 ---- + li = l->lv_first; + while (li != NULL) + { ++ int i = 0; ++ char_u buf[4]; ++ dictitem_T *di; ++ + d = li->li_tv.vval.v_dict; +! +! if (dict_find(d, (char_u *)"pattern", -1) == NULL) +! { +! if (s == NULL) +! { +! s = list_alloc(); +! if (s == NULL) +! return; +! } +! +! /* match from matchaddpos() */ +! for (i = 1; i < 9; i++) +! { +! sprintf((char *)buf, (char *)"pos%d", i); +! if ((di = dict_find(d, (char_u *)buf, -1)) != NULL) +! { +! if (di->di_tv.v_type != VAR_LIST) +! return; +! +! list_append_tv(s, &di->di_tv); +! s->lv_refcount++; +! } +! else +! break; +! } +! } +! if (i == 0) +! { +! match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE), + get_dict_string(d, (char_u *)"pattern", FALSE), + (int)get_dict_number(d, (char_u *)"priority"), + (int)get_dict_number(d, (char_u *)"id"), NULL); ++ } ++ else ++ { ++ match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE), ++ NULL, (int)get_dict_number(d, (char_u *)"priority"), ++ (int)get_dict_number(d, (char_u *)"id"), s); ++ list_unref(s); ++ s = NULL; ++ } ++ + li = li->li_next; + } + rettv->vval.v_number = 0; +*** ../vim-7.4.744/src/testdir/test63.in 2014-11-27 18:57:07.468605191 +0100 +--- src/testdir/test63.in 2015-06-19 16:22:09.866738185 +0200 +*************** +*** 187,193 **** +--- 187,198 ---- + :else + : let @r .= "FAILED: " . v4 . "/" . v5 . "/" . v6 . "/" . v7 . "/" . v8 . "/" . v9 . "/" . v10 . "\n" + :endif ++ :" Check, that setmatches() can correctly restore the matches from matchaddpos() ++ :call matchadd('MyGroup1', '\%2lmatchadd') ++ :let m=getmatches() + :call clearmatches() ++ :call setmatches(m) ++ :let @r .= string(getmatches())."\n" + G"rp + :/^Results/,$wq! test.out + ENDTEST +*** ../vim-7.4.744/src/testdir/test63.ok 2014-08-16 16:28:31.882272056 +0200 +--- src/testdir/test63.ok 2015-06-19 16:22:09.866738185 +0200 +*************** +*** 14,16 **** +--- 14,17 ---- + OK + [{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1, 9, 2]}] + OK ++ [{'group': 'MyGroup1', 'id': 11, 'priority': 10, 'pos1': [1, 4, 2], 'pos2': [1, 9, 2]}, {'group': 'MyGroup1', 'pattern': '\%2lmatchadd', 'priority': 10, 'id': 12}] +*** ../vim-7.4.744/src/version.c 2015-06-19 15:45:13.005889121 +0200 +--- src/version.c 2015-06-19 16:20:56.127497363 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 745, + /**/ + +-- +An actual excerpt from a classified section of a city newspaper: +"Illiterate? Write today for free help!" + + /// 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 /// From c012562ddee9781f1cd9b361a55f72daab27c494 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:05 +0200 Subject: [PATCH 0226/1407] - patchlevel 746 --- 7.4.746 | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 7.4.746 diff --git a/7.4.746 b/7.4.746 new file mode 100644 index 00000000..85bb775f --- /dev/null +++ b/7.4.746 @@ -0,0 +1,100 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.746 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.746 +Problem: ":[count]tag" is not always working. (cs86661) +Solution: Set cur_match a bit later. (Hirohito Higashi) +Files: src/tag.c, + + +*** ../vim-7.4.745/src/tag.c 2014-04-02 17:18:59.047728202 +0200 +--- src/tag.c 2015-06-19 16:36:56.205600552 +0200 +*************** +*** 508,521 **** + tagmatchname = vim_strsave(name); + } + +! /* +! * If a count is supplied to the ":tag " command, then +! * jump to count'th matching tag. +! */ +! if (type == DT_TAG && *tag != NUL && count > 0) +! cur_match = count - 1; +! +! if (type == DT_SELECT || type == DT_JUMP + #if defined(FEAT_QUICKFIX) + || type == DT_LTAG + #endif +--- 508,514 ---- + tagmatchname = vim_strsave(name); + } + +! if (type == DT_TAG || type == DT_SELECT || type == DT_JUMP + #if defined(FEAT_QUICKFIX) + || type == DT_LTAG + #endif +*************** +*** 594,600 **** + } + else + #endif +! if (type == DT_SELECT || (type == DT_JUMP && num_matches > 1)) + { + /* + * List all the matching tags. +--- 587,599 ---- + } + else + #endif +! if (type == DT_TAG) +! /* +! * If a count is supplied to the ":tag " command, then +! * jump to count'th matching tag. +! */ +! cur_match = count > 0 ? count - 1 : 0; +! else if (type == DT_SELECT || (type == DT_JUMP && num_matches > 1)) + { + /* + * List all the matching tags. +*************** +*** 990,996 **** + + + ic = (matches[cur_match][0] & MT_IC_OFF); +! if (type != DT_SELECT && type != DT_JUMP + #ifdef FEAT_CSCOPE + && type != DT_CSCOPE + #endif +--- 989,995 ---- + + + ic = (matches[cur_match][0] & MT_IC_OFF); +! if (type != DT_TAG && type != DT_SELECT && type != DT_JUMP + #ifdef FEAT_CSCOPE + && type != DT_CSCOPE + #endif +*** ../vim-7.4.745/src/version.c 2015-06-19 16:32:52.328116933 +0200 +--- src/version.c 2015-06-19 16:36:49.121673667 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 746, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +119. You are reading a book and look for the scroll bar to get to + the next page. + + /// 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 /// From 220a824969d31b65b7f48e8c1bb28c370a27a022 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:05 +0200 Subject: [PATCH 0227/1407] - patchlevel 747 --- 7.4.747 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.747 diff --git a/7.4.747 b/7.4.747 new file mode 100644 index 00000000..ba7b82dc --- /dev/null +++ b/7.4.747 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.747 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.747 +Problem: ":cnext" may jump to the wrong column when setting + 'virtualedit=all' (cs86661) +Solution: Reset the coladd field. (Hirohito Higashi) +Files: src/quickfix.c + + +*** ../vim-7.4.746/src/quickfix.c 2015-05-04 12:34:17.595202558 +0200 +--- src/quickfix.c 2015-06-19 18:34:58.491932112 +0200 +*************** +*** 1841,1846 **** +--- 1841,1849 ---- + if (qf_ptr->qf_col > 0) + { + curwin->w_cursor.col = qf_ptr->qf_col - 1; ++ #ifdef FEAT_VIRTUALEDIT ++ curwin->w_cursor.coladd = 0; ++ #endif + if (qf_ptr->qf_viscol == TRUE) + { + /* +*** ../vim-7.4.746/src/version.c 2015-06-19 16:45:38.580205688 +0200 +--- src/version.c 2015-06-19 18:34:32.156210622 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 747, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +120. You ask a friend, "What's that big shiny thing?" He says, "It's the sun." + + /// 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 /// From 2189c9c649e6ab894c0c51567ae063a8393e3127 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:05 +0200 Subject: [PATCH 0228/1407] - patchlevel 748 --- 7.4.748 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.748 diff --git a/7.4.748 b/7.4.748 new file mode 100644 index 00000000..435855be --- /dev/null +++ b/7.4.748 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.748 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.748 (after 7.4.745) +Problem: Buffer overflow. +Solution: Make the buffer larger. (Kazunobu Kuriyama) +Files: src/eval.c + + +*** ../vim-7.4.747/src/eval.c 2015-06-19 16:32:52.328116933 +0200 +--- src/eval.c 2015-06-19 21:03:32.294099699 +0200 +*************** +*** 17157,17163 **** + while (li != NULL) + { + int i = 0; +! char_u buf[4]; + dictitem_T *di; + + d = li->li_tv.vval.v_dict; +--- 17157,17163 ---- + while (li != NULL) + { + int i = 0; +! char_u buf[5]; + dictitem_T *di; + + d = li->li_tv.vval.v_dict; +*** ../vim-7.4.747/src/version.c 2015-06-19 18:35:29.683602295 +0200 +--- src/version.c 2015-06-19 21:05:18.868995774 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 748, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +121. You ask for e-mail adresses instead of telephone numbers. + + /// 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 /// From 290abfa9af96f0fdec1ce36bc37068514e4726f3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:06 +0200 Subject: [PATCH 0229/1407] - patchlevel 749 --- 7.4.749 | 1183 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1183 insertions(+) create mode 100644 7.4.749 diff --git a/7.4.749 b/7.4.749 new file mode 100644 index 00000000..e4362d3e --- /dev/null +++ b/7.4.749 @@ -0,0 +1,1183 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.749 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.749 (after 7.4.741) +Problem: For some options two consecutive commas are OK. (Nikolay Pavlov) +Solution: Add the P_ONECOMMA flag. +Files: src/option.c + + +*** ../vim-7.4.748/src/option.c 2015-06-19 14:06:29.043993697 +0200 +--- src/option.c 2015-06-20 15:00:14.345351620 +0200 +*************** +*** 439,457 **** + #define P_RALL 0x6000 /* redraw all windows */ + #define P_RCLR 0x7000 /* clear and redraw all */ + +! #define P_COMMA 0x8000 /* comma separated list */ +! #define P_NODUP 0x10000L /* don't allow duplicate strings */ +! #define P_FLAGLIST 0x20000L /* list of single-char flags */ +! +! #define P_SECURE 0x40000L /* cannot change in modeline or secure mode */ +! #define P_GETTEXT 0x80000L /* expand default value with _() */ +! #define P_NOGLOB 0x100000L /* do not use local value for global vimrc */ +! #define P_NFNAME 0x200000L /* only normal file name chars allowed */ +! #define P_INSECURE 0x400000L /* option was set from a modeline */ +! #define P_PRI_MKRC 0x800000L /* priority for :mkvimrc (setting option has + side effects) */ +! #define P_NO_ML 0x1000000L /* not allowed in modeline */ +! #define P_CURSWANT 0x2000000L /* update curswant required; not needed when + * there is a redraw flag */ + + #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255" +--- 439,459 ---- + #define P_RALL 0x6000 /* redraw all windows */ + #define P_RCLR 0x7000 /* clear and redraw all */ + +! #define P_COMMA 0x8000 /* comma separated list */ +! #define P_ONECOMMA 0x18000L /* P_COMMA and cannot have two consecutive +! * commas */ +! #define P_NODUP 0x20000L /* don't allow duplicate strings */ +! #define P_FLAGLIST 0x40000L /* list of single-char flags */ +! +! #define P_SECURE 0x80000L /* cannot change in modeline or secure mode */ +! #define P_GETTEXT 0x100000L /* expand default value with _() */ +! #define P_NOGLOB 0x200000L /* do not use local value for global vimrc */ +! #define P_NFNAME 0x400000L /* only normal file name chars allowed */ +! #define P_INSECURE 0x800000L /* option was set from a modeline */ +! #define P_PRI_MKRC 0x1000000L /* priority for :mkvimrc (setting option has + side effects) */ +! #define P_NO_ML 0x2000000L /* not allowed in modeline */ +! #define P_CURSWANT 0x4000000L /* update curswant required; not needed when + * there is a redraw flag */ + + #define ISK_LATIN1 (char_u *)"@,48-57,_,192-255" +*************** +*** 576,588 **** + (char_u *)"light", + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bs, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_bk, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"backupcopy", "bkc", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_bkc, PV_BKC, + #ifdef UNIX + {(char_u *)"yes", (char_u *)"auto"} +--- 578,590 ---- + (char_u *)"light", + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"backspace", "bs", P_STRING|P_VI_DEF|P_VIM|P_ONECOMMA|P_NODUP, + (char_u *)&p_bs, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"backup", "bk", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_bk, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"backupcopy", "bkc", P_STRING|P_VIM|P_ONECOMMA|P_NODUP, + (char_u *)&p_bkc, PV_BKC, + #ifdef UNIX + {(char_u *)"yes", (char_u *)"auto"} +*************** +*** 590,596 **** + {(char_u *)"auto", (char_u *)"auto"} + #endif + SCRIPTID_INIT}, +! {"backupdir", "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_bdir, PV_NONE, + {(char_u *)DFLT_BDIR, (char_u *)0L} SCRIPTID_INIT}, + {"backupext", "bex", P_STRING|P_VI_DEF|P_NFNAME, +--- 592,599 ---- + {(char_u *)"auto", (char_u *)"auto"} + #endif + SCRIPTID_INIT}, +! {"backupdir", "bdir", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA +! |P_NODUP|P_SECURE, + (char_u *)&p_bdir, PV_NONE, + {(char_u *)DFLT_BDIR, (char_u *)0L} SCRIPTID_INIT}, + {"backupext", "bex", P_STRING|P_VI_DEF|P_NFNAME, +*************** +*** 602,608 **** + (char_u *)"~", + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"backupskip", "bsk", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_WILDIGN + (char_u *)&p_bsk, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 605,611 ---- + (char_u *)"~", + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"backupskip", "bsk", P_STRING|P_VI_DEF|P_ONECOMMA, + #ifdef FEAT_WILDIGN + (char_u *)&p_bsk, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 662,668 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"breakindentopt", "briopt", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF|P_COMMA|P_NODUP, + #ifdef FEAT_LINEBREAK + (char_u *)VAR_WIN, PV_BRIOPT, + {(char_u *)"", (char_u *)NULL} +--- 665,672 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"breakindentopt", "briopt", P_STRING|P_ALLOCED|P_VI_DEF|P_RBUF +! |P_ONECOMMA|P_NODUP, + #ifdef FEAT_LINEBREAK + (char_u *)VAR_WIN, PV_BRIOPT, + {(char_u *)"", (char_u *)NULL} +*************** +*** 702,708 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"casemap", "cmp", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_MBYTE + (char_u *)&p_cmp, PV_NONE, + {(char_u *)"internal,keepascii", (char_u *)0L} +--- 706,712 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"casemap", "cmp", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_MBYTE + (char_u *)&p_cmp, PV_NONE, + {(char_u *)"internal,keepascii", (char_u *)0L} +*************** +*** 745,751 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"cinkeys", "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cink, PV_CINK, + {(char_u *)"0{,0},0),:,0#,!^F,o,O,e", (char_u *)0L} +--- 749,755 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"cinkeys", "cink", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cink, PV_CINK, + {(char_u *)"0{,0},0),:,0#,!^F,o,O,e", (char_u *)0L} +*************** +*** 754,767 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"cinoptions", "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cino, PV_CINO, + #else + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"cinwords", "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT) + (char_u *)&p_cinw, PV_CINW, + {(char_u *)"if,else,while,do,for,switch", +--- 758,771 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"cinoptions", "cino", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_CINDENT + (char_u *)&p_cino, PV_CINO, + #else + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"cinwords", "cinw", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + #if defined(FEAT_SMARTINDENT) || defined(FEAT_CINDENT) + (char_u *)&p_cinw, PV_CINW, + {(char_u *)"if,else,while,do,for,switch", +*************** +*** 771,777 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"clipboard", "cb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_CLIPBOARD + (char_u *)&p_cb, PV_NONE, + # ifdef FEAT_XCLIPBOARD +--- 775,781 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"clipboard", "cb", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_CLIPBOARD + (char_u *)&p_cb, PV_NONE, + # ifdef FEAT_XCLIPBOARD +*************** +*** 795,801 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)7L, (char_u *)0L} SCRIPTID_INIT}, +! {"colorcolumn", "cc", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN, + #ifdef FEAT_SYN_HL + (char_u *)VAR_WIN, PV_CC, + #else +--- 799,805 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)7L, (char_u *)0L} SCRIPTID_INIT}, +! {"colorcolumn", "cc", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN, + #ifdef FEAT_SYN_HL + (char_u *)VAR_WIN, PV_CC, + #else +*************** +*** 805,811 **** + {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Columns, PV_NONE, + {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT}, +! {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT, + #ifdef FEAT_COMMENTS + (char_u *)&p_com, PV_COM, + {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-", +--- 809,816 ---- + {"columns", "co", P_NUM|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RCLR, + (char_u *)&Columns, PV_NONE, + {(char_u *)80L, (char_u *)0L} SCRIPTID_INIT}, +! {"comments", "com", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA +! |P_NODUP|P_CURSWANT, + #ifdef FEAT_COMMENTS + (char_u *)&p_com, PV_COM, + {(char_u *)"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-", +*************** +*** 829,835 **** + {"compatible", "cp", P_BOOL|P_RALL, + (char_u *)&p_cp, PV_NONE, + {(char_u *)TRUE, (char_u *)FALSE} SCRIPTID_INIT}, +! {"complete", "cpt", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cpt, PV_CPT, + {(char_u *)".,w,b,u,t,i", (char_u *)0L} +--- 834,840 ---- + {"compatible", "cp", P_BOOL|P_RALL, + (char_u *)&p_cp, PV_NONE, + {(char_u *)TRUE, (char_u *)FALSE} SCRIPTID_INIT}, +! {"complete", "cpt", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cpt, PV_CPT, + {(char_u *)".,w,b,u,t,i", (char_u *)0L} +*************** +*** 864,870 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"completeopt", "cot", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cot, PV_NONE, + {(char_u *)"menu,preview", (char_u *)0L} +--- 869,875 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"completeopt", "cot", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_cot, PV_NONE, + {(char_u *)"menu,preview", (char_u *)0L} +*************** +*** 919,925 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX) + (char_u *)&p_csqf, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 924,930 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"cscopequickfix", "csqf", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #if defined(FEAT_CSCOPE) && defined(FEAT_QUICKFIX) + (char_u *)&p_csqf, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 996,1002 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_dict, PV_DICT, + #else +--- 1001,1007 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"dictionary", "dict", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_dict, PV_DICT, + #else +*************** +*** 1019,1025 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"diffopt", "dip", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_COMMA|P_NODUP, + #ifdef FEAT_DIFF + (char_u *)&p_dip, PV_NONE, + {(char_u *)"filler", (char_u *)NULL} +--- 1024,1031 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"diffopt", "dip", P_STRING|P_ALLOCED|P_VI_DEF|P_RWIN|P_ONECOMMA +! |P_NODUP, + #ifdef FEAT_DIFF + (char_u *)&p_dip, PV_NONE, + {(char_u *)"filler", (char_u *)NULL} +*************** +*** 1035,1044 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"directory", "dir", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_dir, PV_NONE, + {(char_u *)DFLT_DIR, (char_u *)0L} SCRIPTID_INIT}, +! {"display", "dy", P_STRING|P_VI_DEF|P_COMMA|P_RALL|P_NODUP, + (char_u *)&p_dy, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"eadirection", "ead", P_STRING|P_VI_DEF, +--- 1041,1051 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"directory", "dir", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA +! |P_NODUP|P_SECURE, + (char_u *)&p_dir, PV_NONE, + {(char_u *)DFLT_DIR, (char_u *)0L} SCRIPTID_INIT}, +! {"display", "dy", P_STRING|P_VI_DEF|P_ONECOMMA|P_RALL|P_NODUP, + (char_u *)&p_dy, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"eadirection", "ead", P_STRING|P_VI_DEF, +*************** +*** 1083,1089 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"errorformat", "efm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_efm, PV_EFM, + {(char_u *)DFLT_EFM, (char_u *)0L} +--- 1090,1096 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"errorformat", "efm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_efm, PV_EFM, + {(char_u *)DFLT_EFM, (char_u *)0L} +*************** +*** 1095,1101 **** + {"esckeys", "ek", P_BOOL|P_VIM, + (char_u *)&p_ek, PV_NONE, + {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, +! {"eventignore", "ei", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ei, PV_NONE, + #else +--- 1102,1108 ---- + {"esckeys", "ek", P_BOOL|P_VIM, + (char_u *)&p_ek, PV_NONE, + {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, +! {"eventignore", "ei", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_AUTOCMD + (char_u *)&p_ei, PV_NONE, + #else +*************** +*** 1108,1114 **** + {"exrc", "ex", P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_exrc, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF|P_NO_MKRC, + #ifdef FEAT_MBYTE + (char_u *)&p_fenc, PV_FENC, + {(char_u *)"", (char_u *)0L} +--- 1115,1122 ---- + {"exrc", "ex", P_BOOL|P_VI_DEF|P_SECURE, + (char_u *)&p_exrc, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"fileencoding","fenc", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_RBUF +! |P_NO_MKRC, + #ifdef FEAT_MBYTE + (char_u *)&p_fenc, PV_FENC, + {(char_u *)"", (char_u *)0L} +*************** +*** 1117,1123 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"fileencodings","fencs", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_MBYTE + (char_u *)&p_fencs, PV_NONE, + {(char_u *)"ucs-bom", (char_u *)0L} +--- 1125,1131 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"fileencodings","fencs", P_STRING|P_VI_DEF|P_ONECOMMA, + #ifdef FEAT_MBYTE + (char_u *)&p_fencs, PV_NONE, + {(char_u *)"ucs-bom", (char_u *)0L} +*************** +*** 1126,1135 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC|P_CURSWANT, + (char_u *)&p_ff, PV_FF, + {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT}, +! {"fileformats", "ffs", P_STRING|P_VIM|P_COMMA|P_NODUP, + (char_u *)&p_ffs, PV_NONE, + {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM} + SCRIPTID_INIT}, +--- 1134,1144 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"fileformat", "ff", P_STRING|P_ALLOCED|P_VI_DEF|P_RSTAT|P_NO_MKRC +! |P_CURSWANT, + (char_u *)&p_ff, PV_FF, + {(char_u *)DFLT_FF, (char_u *)0L} SCRIPTID_INIT}, +! {"fileformats", "ffs", P_STRING|P_VIM|P_ONECOMMA|P_NODUP, + (char_u *)&p_ffs, PV_NONE, + {(char_u *)DFLT_FFS_VI, (char_u *)DFLT_FFS_VIM} + SCRIPTID_INIT}, +*************** +*** 1151,1157 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"fillchars", "fcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING) + (char_u *)&p_fcs, PV_NONE, + {(char_u *)"vert:|,fold:-", (char_u *)0L} +--- 1160,1166 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"fillchars", "fcs", P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP, + #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING) + (char_u *)&p_fcs, PV_NONE, + {(char_u *)"vert:|,fold:-", (char_u *)0L} +*************** +*** 1171,1177 **** + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + #ifdef FEAT_FOLDING +! {"foldclose", "fcl", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_RWIN, + (char_u *)&p_fcl, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"foldcolumn", "fdc", P_NUM|P_VI_DEF|P_RWIN, +--- 1180,1186 ---- + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + #ifdef FEAT_FOLDING +! {"foldclose", "fcl", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_RWIN, + (char_u *)&p_fcl, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"foldcolumn", "fdc", P_NUM|P_VI_DEF|P_RWIN, +*************** +*** 1199,1205 **** + (char_u *)&p_fdls, PV_NONE, + {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT}, + {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF| +! P_RWIN|P_COMMA|P_NODUP, + (char_u *)VAR_WIN, PV_FMR, + {(char_u *)"{{{,}}}", (char_u *)NULL} + SCRIPTID_INIT}, +--- 1208,1214 ---- + (char_u *)&p_fdls, PV_NONE, + {(char_u *)-1L, (char_u *)0L} SCRIPTID_INIT}, + {"foldmarker", "fmr", P_STRING|P_ALLOCED|P_VIM|P_VI_DEF| +! P_RWIN|P_ONECOMMA|P_NODUP, + (char_u *)VAR_WIN, PV_FMR, + {(char_u *)"{{{,}}}", (char_u *)NULL} + SCRIPTID_INIT}, +*************** +*** 1212,1218 **** + {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDN, + {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, +! {"foldopen", "fdo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_CURSWANT, + (char_u *)&p_fdo, PV_NONE, + {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo", + (char_u *)0L} SCRIPTID_INIT}, +--- 1221,1227 ---- + {"foldnestmax", "fdn", P_NUM|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_FDN, + {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, +! {"foldopen", "fdo", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_CURSWANT, + (char_u *)&p_fdo, PV_NONE, + {(char_u *)"block,hor,mark,percent,quickfix,search,tag,undo", + (char_u *)0L} SCRIPTID_INIT}, +*************** +*** 1261,1267 **** + {"graphic", "gr", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"grepformat", "gfm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_gefm, PV_NONE, + {(char_u *)DFLT_GREPFORMAT, (char_u *)0L} +--- 1270,1276 ---- + {"graphic", "gr", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"grepformat", "gfm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_QUICKFIX + (char_u *)&p_gefm, PV_NONE, + {(char_u *)DFLT_GREPFORMAT, (char_u *)0L} +*************** +*** 1296,1302 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guicursor", "gcr", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef CURSOR_SHAPE + (char_u *)&p_guicursor, PV_NONE, + { +--- 1305,1311 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guicursor", "gcr", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef CURSOR_SHAPE + (char_u *)&p_guicursor, PV_NONE, + { +*************** +*** 1311,1317 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guifont", "gfn", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + #ifdef FEAT_GUI + (char_u *)&p_guifont, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 1320,1326 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guifont", "gfn", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP, + #ifdef FEAT_GUI + (char_u *)&p_guifont, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 1320,1326 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guifontset", "gfs", P_STRING|P_VI_DEF|P_RCLR|P_COMMA, + #if defined(FEAT_GUI) && defined(FEAT_XFONTSET) + (char_u *)&p_guifontset, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 1329,1335 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guifontset", "gfs", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA, + #if defined(FEAT_GUI) && defined(FEAT_XFONTSET) + (char_u *)&p_guifontset, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 1329,1335 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guifontwide", "gfw", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + #if defined(FEAT_GUI) && defined(FEAT_MBYTE) + (char_u *)&p_guifontwide, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 1338,1344 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"guifontwide", "gfw", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP, + #if defined(FEAT_GUI) && defined(FEAT_MBYTE) + (char_u *)&p_guifontwide, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 1397,1403 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, +! {"helplang", "hlg", P_STRING|P_VI_DEF|P_COMMA, + #ifdef FEAT_MULTI_LANG + (char_u *)&p_hlg, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 1406,1412 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)20L, (char_u *)0L} SCRIPTID_INIT}, +! {"helplang", "hlg", P_STRING|P_VI_DEF|P_ONECOMMA, + #ifdef FEAT_MULTI_LANG + (char_u *)&p_hlg, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 1409,1415 **** + {"hidden", "hid", P_BOOL|P_VI_DEF, + (char_u *)&p_hid, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"highlight", "hl", P_STRING|P_VI_DEF|P_RCLR|P_COMMA|P_NODUP, + (char_u *)&p_hl, PV_NONE, + {(char_u *)HIGHLIGHT_INIT, (char_u *)0L} + SCRIPTID_INIT}, +--- 1418,1424 ---- + {"hidden", "hid", P_BOOL|P_VI_DEF, + (char_u *)&p_hid, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"highlight", "hl", P_STRING|P_VI_DEF|P_RCLR|P_ONECOMMA|P_NODUP, + (char_u *)&p_hl, PV_NONE, + {(char_u *)HIGHLIGHT_INIT, (char_u *)0L} + SCRIPTID_INIT}, +*************** +*** 1540,1546 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"indentkeys", "indk", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) + (char_u *)&p_indk, PV_INDK, + {(char_u *)"0{,0},:,0#,!^F,o,O,e", (char_u *)0L} +--- 1549,1555 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"indentkeys", "indk", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + #if defined(FEAT_CINDENT) && defined(FEAT_EVAL) + (char_u *)&p_indk, PV_INDK, + {(char_u *)"0{,0},:,0#,!^F,o,O,e", (char_u *)0L} +*************** +*** 1651,1657 **** + {(char_u *)"", (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"keymodel", "km", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_km, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"keywordprg", "kp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, +--- 1660,1666 ---- + {(char_u *)"", (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"keymodel", "km", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_km, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"keywordprg", "kp", P_STRING|P_EXPAND|P_VI_DEF|P_SECURE, +*************** +*** 1675,1681 **** + #endif + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"langmap", "lmap", P_STRING|P_VI_DEF|P_COMMA|P_NODUP|P_SECURE, + #ifdef FEAT_LANGMAP + (char_u *)&p_langmap, PV_NONE, + {(char_u *)"", /* unmatched } */ +--- 1684,1690 ---- + #endif + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"langmap", "lmap", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP|P_SECURE, + #ifdef FEAT_LANGMAP + (char_u *)&p_langmap, PV_NONE, + {(char_u *)"", /* unmatched } */ +*************** +*** 1743,1749 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_LISP + (char_u *)&p_lispwords, PV_LW, + {(char_u *)LISPWORD_VALUE, (char_u *)0L} +--- 1752,1758 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"lispwords", "lw", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_LISP + (char_u *)&p_lispwords, PV_LW, + {(char_u *)LISPWORD_VALUE, (char_u *)0L} +*************** +*** 1755,1761 **** + {"list", NULL, P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_LIST, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"listchars", "lcs", P_STRING|P_VI_DEF|P_RALL|P_COMMA|P_NODUP, + (char_u *)&p_lcs, PV_NONE, + {(char_u *)"eol:$", (char_u *)0L} SCRIPTID_INIT}, + {"loadplugins", "lpl", P_BOOL|P_VI_DEF, +--- 1764,1770 ---- + {"list", NULL, P_BOOL|P_VI_DEF|P_RWIN, + (char_u *)VAR_WIN, PV_LIST, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"listchars", "lcs", P_STRING|P_VI_DEF|P_RALL|P_ONECOMMA|P_NODUP, + (char_u *)&p_lcs, PV_NONE, + {(char_u *)"eol:$", (char_u *)0L} SCRIPTID_INIT}, + {"loadplugins", "lpl", P_BOOL|P_VI_DEF, +*************** +*** 1791,1797 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"matchpairs", "mps", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_mps, PV_MPS, + {(char_u *)"(:),{:},[:]", (char_u *)0L} + SCRIPTID_INIT}, +--- 1800,1806 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"matchpairs", "mps", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_mps, PV_MPS, + {(char_u *)"(:),{:},[:]", (char_u *)0L} + SCRIPTID_INIT}, +*************** +*** 1896,1902 **** + # endif + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"mouseshape", "mouses", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_MOUSESHAPE + (char_u *)&p_mouseshape, PV_NONE, + {(char_u *)"i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow", (char_u *)0L} +--- 1905,1911 ---- + # endif + #endif + (char_u *)0L} SCRIPTID_INIT}, +! {"mouseshape", "mouses", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_MOUSESHAPE + (char_u *)&p_mouseshape, PV_NONE, + {(char_u *)"i-r:beam,s:updown,sd:udsizing,vs:leftright,vd:lrsizing,m:no,ml:up-arrow,v:rightup-arrow", (char_u *)0L} +*************** +*** 1918,1924 **** + {"novice", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"nrformats", "nf", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_nf, PV_NF, + {(char_u *)"octal,hex", (char_u *)0L} + SCRIPTID_INIT}, +--- 1927,1933 ---- + {"novice", NULL, P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"nrformats", "nf", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_nf, PV_NF, + {(char_u *)"octal,hex", (char_u *)0L} + SCRIPTID_INIT}, +*************** +*** 2082,2088 **** + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"printoptions", "popt", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_PRINTER + (char_u *)&p_popt, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 2091,2097 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"printoptions", "popt", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_PRINTER + (char_u *)&p_popt, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 2132,2138 **** + {"remap", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_remap, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, +! {"renderoptions", "rop", P_STRING|P_COMMA|P_RCLR|P_VI_DEF, + #ifdef FEAT_RENDER_OPTIONS + (char_u *)&p_rop, PV_NONE, + {(char_u *)"", (char_u *)0L} +--- 2141,2147 ---- + {"remap", NULL, P_BOOL|P_VI_DEF, + (char_u *)&p_remap, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, +! {"renderoptions", "rop", P_STRING|P_ONECOMMA|P_RCLR|P_VI_DEF, + #ifdef FEAT_RENDER_OPTIONS + (char_u *)&p_rop, PV_NONE, + {(char_u *)"", (char_u *)0L} +*************** +*** 2188,2194 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"runtimepath", "rtp", P_STRING|P_VI_DEF|P_EXPAND|P_COMMA|P_NODUP|P_SECURE, + (char_u *)&p_rtp, PV_NONE, + {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L} + SCRIPTID_INIT}, +--- 2197,2204 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"runtimepath", "rtp", P_STRING|P_VI_DEF|P_EXPAND|P_ONECOMMA|P_NODUP +! |P_SECURE, + (char_u *)&p_rtp, PV_NONE, + {(char_u *)DFLT_RUNTIMEPATH, (char_u *)0L} + SCRIPTID_INIT}, +*************** +*** 2208,2214 **** + {"scrolloff", "so", P_NUM|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_so, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, +! {"scrollopt", "sbo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SCROLLBIND + (char_u *)&p_sbo, PV_NONE, + {(char_u *)"ver,jump", (char_u *)0L} +--- 2218,2224 ---- + {"scrolloff", "so", P_NUM|P_VI_DEF|P_VIM|P_RALL, + (char_u *)&p_so, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, +! {"scrollopt", "sbo", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_SCROLLBIND + (char_u *)&p_sbo, PV_NONE, + {(char_u *)"ver,jump", (char_u *)0L} +*************** +*** 2228,2237 **** + (char_u *)&p_sel, PV_NONE, + {(char_u *)"inclusive", (char_u *)0L} + SCRIPTID_INIT}, +! {"selectmode", "slm", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_slm, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_ssop, PV_NONE, + {(char_u *)"blank,buffers,curdir,folds,help,options,tabpages,winsize", +--- 2238,2247 ---- + (char_u *)&p_sel, PV_NONE, + {(char_u *)"inclusive", (char_u *)0L} + SCRIPTID_INIT}, +! {"selectmode", "slm", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_slm, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"sessionoptions", "ssop", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_ssop, PV_NONE, + {(char_u *)"blank,buffers,curdir,folds,help,options,tabpages,winsize", +*************** +*** 2440,2446 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"spellfile", "spf", P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE|P_COMMA, + #ifdef FEAT_SPELL + (char_u *)&p_spf, PV_SPF, + {(char_u *)"", (char_u *)0L} +--- 2450,2457 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"spellfile", "spf", P_STRING|P_EXPAND|P_ALLOCED|P_VI_DEF|P_SECURE +! |P_ONECOMMA, + #ifdef FEAT_SPELL + (char_u *)&p_spf, PV_SPF, + {(char_u *)"", (char_u *)0L} +*************** +*** 2449,2455 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"spelllang", "spl", P_STRING|P_ALLOCED|P_VI_DEF|P_COMMA|P_RBUF|P_EXPAND, + #ifdef FEAT_SPELL + (char_u *)&p_spl, PV_SPL, + {(char_u *)"en", (char_u *)0L} +--- 2460,2467 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"spelllang", "spl", P_STRING|P_ALLOCED|P_VI_DEF|P_ONECOMMA +! |P_RBUF|P_EXPAND, + #ifdef FEAT_SPELL + (char_u *)&p_spl, PV_SPL, + {(char_u *)"en", (char_u *)0L} +*************** +*** 2458,2464 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_COMMA, + #ifdef FEAT_SPELL + (char_u *)&p_sps, PV_NONE, + {(char_u *)"best", (char_u *)0L} +--- 2470,2476 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"spellsuggest", "sps", P_STRING|P_VI_DEF|P_EXPAND|P_SECURE|P_ONECOMMA, + #ifdef FEAT_SPELL + (char_u *)&p_sps, PV_NONE, + {(char_u *)"best", (char_u *)0L} +*************** +*** 2491,2501 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"suffixes", "su", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_su, PV_NONE, + {(char_u *)".bak,~,.o,.h,.info,.swp,.obj", + (char_u *)0L} SCRIPTID_INIT}, +! {"suffixesadd", "sua", P_STRING|P_VI_DEF|P_ALLOCED|P_COMMA|P_NODUP, + #ifdef FEAT_SEARCHPATH + (char_u *)&p_sua, PV_SUA, + {(char_u *)"", (char_u *)0L} +--- 2503,2513 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"suffixes", "su", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_su, PV_NONE, + {(char_u *)".bak,~,.o,.h,.info,.swp,.obj", + (char_u *)0L} SCRIPTID_INIT}, +! {"suffixesadd", "sua", P_STRING|P_VI_DEF|P_ALLOCED|P_ONECOMMA|P_NODUP, + #ifdef FEAT_SEARCHPATH + (char_u *)&p_sua, PV_SUA, + {(char_u *)"", (char_u *)0L} +*************** +*** 2510,2516 **** + {"swapsync", "sws", P_STRING|P_VI_DEF, + (char_u *)&p_sws, PV_NONE, + {(char_u *)"fsync", (char_u *)0L} SCRIPTID_INIT}, +! {"switchbuf", "swb", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_swb, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"synmaxcol", "smc", P_NUM|P_VI_DEF|P_RBUF, +--- 2522,2528 ---- + {"swapsync", "sws", P_STRING|P_VI_DEF, + (char_u *)&p_sws, PV_NONE, + {(char_u *)"fsync", (char_u *)0L} SCRIPTID_INIT}, +! {"switchbuf", "swb", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_swb, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"synmaxcol", "smc", P_NUM|P_VI_DEF|P_RBUF, +*************** +*** 2562,2568 **** + {"tagrelative", "tr", P_BOOL|P_VIM, + (char_u *)&p_tr, PV_NONE, + {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, +! {"tags", "tag", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_tags, PV_TAGS, + { + #if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME) +--- 2574,2580 ---- + {"tagrelative", "tr", P_BOOL|P_VIM, + (char_u *)&p_tr, PV_NONE, + {(char_u *)FALSE, (char_u *)TRUE} SCRIPTID_INIT}, +! {"tags", "tag", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_tags, PV_TAGS, + { + #if defined(FEAT_EMACS_TAGS) && !defined(CASE_INSENSITIVE_FILENAME) +*************** +*** 2612,2618 **** + {"textwidth", "tw", P_NUM|P_VI_DEF|P_VIM|P_RBUF, + (char_u *)&p_tw, PV_TW, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, +! {"thesaurus", "tsr", P_STRING|P_EXPAND|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_tsr, PV_TSR, + #else +--- 2624,2630 ---- + {"textwidth", "tw", P_NUM|P_VI_DEF|P_VIM|P_RBUF, + (char_u *)&p_tw, PV_TW, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, +! {"thesaurus", "tsr", P_STRING|P_EXPAND|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_INS_EXPAND + (char_u *)&p_tsr, PV_TSR, + #else +*************** +*** 2660,2666 **** + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) +! {"toolbar", "tb", P_STRING|P_COMMA|P_VI_DEF|P_NODUP, + (char_u *)&p_toolbar, PV_NONE, + {(char_u *)"icons,tooltips", (char_u *)0L} + SCRIPTID_INIT}, +--- 2672,2678 ---- + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) +! {"toolbar", "tb", P_STRING|P_ONECOMMA|P_VI_DEF|P_NODUP, + (char_u *)&p_toolbar, PV_NONE, + {(char_u *)"icons,tooltips", (char_u *)0L} + SCRIPTID_INIT}, +*************** +*** 2695,2701 **** + {"ttytype", "tty", P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL, + (char_u *)&T_NAME, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"undodir", "udir", P_STRING|P_EXPAND|P_COMMA|P_NODUP|P_SECURE|P_VI_DEF, + #ifdef FEAT_PERSISTENT_UNDO + (char_u *)&p_udir, PV_NONE, + {(char_u *)".", (char_u *)0L} +--- 2707,2714 ---- + {"ttytype", "tty", P_STRING|P_EXPAND|P_NODEFAULT|P_NO_MKRC|P_VI_DEF|P_RALL, + (char_u *)&T_NAME, PV_NONE, + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, +! {"undodir", "udir", P_STRING|P_EXPAND|P_ONECOMMA|P_NODUP|P_SECURE +! |P_VI_DEF, + #ifdef FEAT_PERSISTENT_UNDO + (char_u *)&p_udir, PV_NONE, + {(char_u *)".", (char_u *)0L} +*************** +*** 2744,2750 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"viewoptions", "vop", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_vop, PV_NONE, + {(char_u *)"folds,options,cursor", (char_u *)0L} +--- 2757,2763 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"viewoptions", "vop", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_SESSION + (char_u *)&p_vop, PV_NONE, + {(char_u *)"folds,options,cursor", (char_u *)0L} +*************** +*** 2753,2759 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"viminfo", "vi", P_STRING|P_COMMA|P_NODUP|P_SECURE, + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) +--- 2766,2772 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"viminfo", "vi", P_STRING|P_ONECOMMA|P_NODUP|P_SECURE, + #ifdef FEAT_VIMINFO + (char_u *)&p_viminfo, PV_NONE, + #if defined(MSDOS) || defined(MSWIN) || defined(OS2) +*************** +*** 2771,2777 **** + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"virtualedit", "ve", P_STRING|P_COMMA|P_NODUP|P_VI_DEF|P_VIM|P_CURSWANT, + #ifdef FEAT_VIRTUALEDIT + (char_u *)&p_ve, PV_NONE, + {(char_u *)"", (char_u *)""} +--- 2784,2791 ---- + {(char_u *)0L, (char_u *)0L} + #endif + SCRIPTID_INIT}, +! {"virtualedit", "ve", P_STRING|P_ONECOMMA|P_NODUP|P_VI_DEF +! |P_VIM|P_CURSWANT, + #ifdef FEAT_VIRTUALEDIT + (char_u *)&p_ve, PV_NONE, + {(char_u *)"", (char_u *)""} +*************** +*** 2798,2804 **** + {"weirdinvert", "wiv", P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_wiv, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"whichwrap", "ww", P_STRING|P_VIM|P_COMMA|P_FLAGLIST, + (char_u *)&p_ww, PV_NONE, + {(char_u *)"", (char_u *)"b,s"} SCRIPTID_INIT}, + {"wildchar", "wc", P_NUM|P_VIM, +--- 2812,2818 ---- + {"weirdinvert", "wiv", P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_wiv, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"whichwrap", "ww", P_STRING|P_VIM|P_ONECOMMA|P_FLAGLIST, + (char_u *)&p_ww, PV_NONE, + {(char_u *)"", (char_u *)"b,s"} SCRIPTID_INIT}, + {"wildchar", "wc", P_NUM|P_VIM, +*************** +*** 2808,2814 **** + {"wildcharm", "wcm", P_NUM|P_VI_DEF, + (char_u *)&p_wcm, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, +! {"wildignore", "wig", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + #ifdef FEAT_WILDIGN + (char_u *)&p_wig, PV_NONE, + #else +--- 2822,2828 ---- + {"wildcharm", "wcm", P_NUM|P_VI_DEF, + (char_u *)&p_wcm, PV_NONE, + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, +! {"wildignore", "wig", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + #ifdef FEAT_WILDIGN + (char_u *)&p_wig, PV_NONE, + #else +*************** +*** 2825,2831 **** + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"wildmode", "wim", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, + (char_u *)&p_wim, PV_NONE, + {(char_u *)"full", (char_u *)0L} SCRIPTID_INIT}, + {"wildoptions", "wop", P_STRING|P_VI_DEF, +--- 2839,2845 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +! {"wildmode", "wim", P_STRING|P_VI_DEF|P_ONECOMMA|P_NODUP, + (char_u *)&p_wim, PV_NONE, + {(char_u *)"full", (char_u *)0L} SCRIPTID_INIT}, + {"wildoptions", "wop", P_STRING|P_VI_DEF, +*************** +*** 4830,4836 **** + { + i = (int)STRLEN(origval); + /* strip a trailing comma, would get 2 */ +! if (comma && i > 1 && origval[i - 1] == ',' + && origval[i - 2] != '\\') + i--; + mch_memmove(newval + i + comma, newval, +--- 4844,4851 ---- + { + i = (int)STRLEN(origval); + /* strip a trailing comma, would get 2 */ +! if (comma && (flags & P_ONECOMMA) && i > 1 +! && origval[i - 1] == ',' + && origval[i - 2] != '\\') + i--; + mch_memmove(newval + i + comma, newval, +*** ../vim-7.4.748/src/version.c 2015-06-19 21:06:04.664521324 +0200 +--- src/version.c 2015-06-20 15:01:31.732536696 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 749, + /**/ + +-- +"Microsoft is like Coke. It's a secret formula, all the money is from +distribution, and their goal is to get Coke everywhere. Open source is like +selling water. There are water companies like Perrier and Poland Spring, but +you're competing with something that's free." -- Carl Howe + + + /// 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 /// From 87726ce73aeaaed7c36641c648587d276e861432 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:06 +0200 Subject: [PATCH 0230/1407] - patchlevel 750 --- 7.4.750 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 7.4.750 diff --git a/7.4.750 b/7.4.750 new file mode 100644 index 00000000..5fa7ef75 --- /dev/null +++ b/7.4.750 @@ -0,0 +1,79 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.750 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.750 +Problem: Cannot build with clang 3.5 on Cygwin with perl enabled. +Solution: Strip "-fdebug-prefix-map" in configure. (Ken Takata) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.4.749/src/configure.in 2015-03-24 15:14:19.181039379 +0100 +--- src/configure.in 2015-06-21 13:35:26.542813059 +0200 +*************** +*** 942,949 **** + done + AC_SUBST(vi_cv_perl_xsubpp) + dnl Remove "-fno-something", it breaks using cproto. + perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \ +! -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//'` + dnl Remove "-lc", it breaks on FreeBSD when using "-pthread". + perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \ + sed -e '/Warning/d' -e '/Note (probably harmless)/d' \ +--- 942,951 ---- + done + AC_SUBST(vi_cv_perl_xsubpp) + dnl Remove "-fno-something", it breaks using cproto. ++ dnl Remove "-fdebug-prefix-map", it isn't supported by clang. + perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \ +! -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[[^ ]]*//' \ +! -e 's/-fdebug-prefix-map[[^ ]]*//g'` + dnl Remove "-lc", it breaks on FreeBSD when using "-pthread". + perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \ + sed -e '/Warning/d' -e '/Note (probably harmless)/d' \ +*** ../vim-7.4.749/src/auto/configure 2015-03-24 15:14:19.189039146 +0100 +--- src/auto/configure 2015-06-21 13:37:24.189576093 +0200 +*************** +*** 5613,5620 **** + fi + done + +! perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \ +! -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//'` + perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \ + sed -e '/Warning/d' -e '/Note (probably harmless)/d' \ + -e 's/-bE:perl.exp//' -e 's/-lc //'` +--- 5613,5621 ---- + fi + done + +! perlcppflags=`$vi_cv_path_perl -Mlib=$srcdir -MExtUtils::Embed \ +! -e 'ccflags;perl_inc;print"\n"' | sed -e 's/-fno[^ ]*//' \ +! -e 's/-fdebug-prefix-map[^ ]*//g'` + perllibs=`cd $srcdir; $vi_cv_path_perl -MExtUtils::Embed -e 'ldopts' | \ + sed -e '/Warning/d' -e '/Note (probably harmless)/d' \ + -e 's/-bE:perl.exp//' -e 's/-lc //'` +*** ../vim-7.4.749/src/version.c 2015-06-20 15:29:57.202600053 +0200 +--- src/version.c 2015-06-21 13:37:20.145618605 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 750, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +130. You can't get out of your desk even if it's time to eat or time + to go to the bathroom. + + /// 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 /// From f4041c35d15b59b2cdf5262407118b09fda39d38 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:06 +0200 Subject: [PATCH 0231/1407] - patchlevel 751 --- 7.4.751 | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 7.4.751 diff --git a/7.4.751 b/7.4.751 new file mode 100644 index 00000000..d9f21635 --- /dev/null +++ b/7.4.751 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.751 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.751 +Problem: It is not obvious how to enable the address sanitizer. +Solution: Add commented-out flags in the Makefile. (Dominique Pelle) + Also add missing test targets. +Files: src/Makefile + + +*** ../vim-7.4.750/src/Makefile 2014-12-08 04:16:26.257702950 +0100 +--- src/Makefile 2015-06-21 13:43:37.873649912 +0200 +*************** +*** 616,621 **** +--- 616,629 ---- + #PROFILE_LIBS = -pg + #PROFILE_LIBS = -pg -lc + ++ # Uncomment one of the next two lines to compile Vim with the ++ # address sanitizer or with the undefined sanitizer. Works with gcc and ++ # clang. May make Vim twice as slow. Errors reported on stderr. ++ # More at: https://code.google.com/p/address-sanitizer/ ++ #SANITIZER_CFLAGS = -g -O0 -fsanitize=address -fno-omit-frame-pointer ++ #SANITIZER_CFLAGS = -g -O0 -fsanitize=undefined -fno-omit-frame-pointer ++ SANITIZER_LIBS = $(SANITIZER_CFLAGS) ++ + # MEMORY LEAK DETECTION + # Requires installing the ccmalloc library. + # Configuration is in the .ccmalloc or ~/.ccmalloc file. +*************** +*** 1342,1348 **** + PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS) + POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS) + +! ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(LEAK_CFLAGS) $(POST_DEFS) + + # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together + # with "-E". +--- 1350,1356 ---- + PRE_DEFS = -Iproto $(DEFS) $(GUI_DEFS) $(GUI_IPATH) $(CPPFLAGS) $(EXTRA_IPATHS) + POST_DEFS = $(X_CFLAGS) $(MZSCHEME_CFLAGS) $(TCL_CFLAGS) $(EXTRA_DEFS) + +! ALL_CFLAGS = $(PRE_DEFS) $(CFLAGS) $(PROFILE_CFLAGS) $(SANITIZER_CFLAGS) $(LEAK_CFLAGS) $(POST_DEFS) + + # Exclude $CFLAGS for osdef.sh, for Mac 10.4 some flags don't work together + # with "-E". +*************** +*** 1374,1379 **** +--- 1382,1388 ---- + $(TCL_LIBS) \ + $(RUBY_LIBS) \ + $(PROFILE_LIBS) \ ++ $(SANITIZER_LIBS) \ + $(LEAK_LIBS) + + # abbreviations +*************** +*** 1891,1910 **** +--- 1900,1928 ---- + + # Run individual test, assuming that Vim was already compiled. + test1 \ ++ test_argument_0count \ + test_argument_count \ + test_autoformat_join \ + test_breakindent \ + test_changelist \ + test_close_count \ + test_command_count \ ++ test_erasebackword \ + test_eval \ + test_insertcount \ ++ test_listchars \ + test_listlbr \ + test_listlbr_utf8 \ + test_mapping \ ++ test_marks \ ++ test_nested_function \ + test_options \ ++ test_perl \ + test_qf_title \ ++ test_ruby \ ++ test_set \ + test_signs \ ++ test_textobjects \ + test_utf8 \ + test_writefile \ + test2 test3 test4 test5 test6 test7 test8 test9 \ +*** ../vim-7.4.750/src/version.c 2015-06-21 13:41:02.815278555 +0200 +--- src/version.c 2015-06-21 13:43:52.321498196 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 751, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +131. You challenge authority and society by portnuking people + + /// 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 /// From 34d91858a86791f2e38b2861afcecb0863ed2a0b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:06 +0200 Subject: [PATCH 0232/1407] - patchlevel 752 --- 7.4.752 | 247 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 7.4.752 diff --git a/7.4.752 b/7.4.752 new file mode 100644 index 00000000..8884e398 --- /dev/null +++ b/7.4.752 @@ -0,0 +1,247 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.752 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.752 +Problem: Unicode 8.0 not supported. +Solution: Update tables for Unicode 8.0. Avoid E36 when running the script. + (James McCoy) +Files: runtime/tools/unicode.vim, src/mbyte.c + + +*** ../vim-7.4.751/runtime/tools/unicode.vim 2010-05-15 13:04:00.000000000 +0200 +--- runtime/tools/unicode.vim 2015-06-21 14:10:16.768889029 +0200 +*************** +*** 252,257 **** +--- 252,259 ---- + endfunc + + ++ " Try to avoid hitting E36 ++ set equalalways + + " Edit the Unicode text file. Requires the netrw plugin. + edit http://unicode.org/Public/UNIDATA/UnicodeData.txt +*** ../vim-7.4.751/src/mbyte.c 2015-01-14 17:40:04.407125696 +0100 +--- src/mbyte.c 2015-06-21 14:09:42.185250409 +0200 +*************** +*** 2266,2272 **** + {0x0825, 0x0827}, + {0x0829, 0x082d}, + {0x0859, 0x085b}, +! {0x08e4, 0x0903}, + {0x093a, 0x093c}, + {0x093e, 0x094f}, + {0x0951, 0x0957}, +--- 2266,2272 ---- + {0x0825, 0x0827}, + {0x0829, 0x082d}, + {0x0859, 0x085b}, +! {0x08e3, 0x0903}, + {0x093a, 0x093c}, + {0x093e, 0x094f}, + {0x0951, 0x0957}, +*************** +*** 2366,2373 **** + {0x18a9, 0x18a9}, + {0x1920, 0x192b}, + {0x1930, 0x193b}, +- {0x19b0, 0x19c0}, +- {0x19c8, 0x19c9}, + {0x1a17, 0x1a1b}, + {0x1a55, 0x1a5e}, + {0x1a60, 0x1a7c}, +--- 2366,2371 ---- +*************** +*** 2395,2401 **** + {0x3099, 0x309a}, + {0xa66f, 0xa672}, + {0xa674, 0xa67d}, +! {0xa69f, 0xa69f}, + {0xa6f0, 0xa6f1}, + {0xa802, 0xa802}, + {0xa806, 0xa806}, +--- 2393,2399 ---- + {0x3099, 0x309a}, + {0xa66f, 0xa672}, + {0xa674, 0xa67d}, +! {0xa69e, 0xa69f}, + {0xa6f0, 0xa6f1}, + {0xa802, 0xa802}, + {0xa806, 0xa806}, +*************** +*** 2424,2430 **** + {0xabec, 0xabed}, + {0xfb1e, 0xfb1e}, + {0xfe00, 0xfe0f}, +! {0xfe20, 0xfe2d}, + {0x101fd, 0x101fd}, + {0x102e0, 0x102e0}, + {0x10376, 0x1037a}, +--- 2422,2428 ---- + {0xabec, 0xabed}, + {0xfb1e, 0xfb1e}, + {0xfe00, 0xfe0f}, +! {0xfe20, 0xfe2f}, + {0x101fd, 0x101fd}, + {0x102e0, 0x102e0}, + {0x10376, 0x1037a}, +*************** +*** 2443,2451 **** + {0x11173, 0x11173}, + {0x11180, 0x11182}, + {0x111b3, 0x111c0}, + {0x1122c, 0x11237}, + {0x112df, 0x112ea}, +! {0x11301, 0x11303}, + {0x1133c, 0x1133c}, + {0x1133e, 0x11344}, + {0x11347, 0x11348}, +--- 2441,2450 ---- + {0x11173, 0x11173}, + {0x11180, 0x11182}, + {0x111b3, 0x111c0}, ++ {0x111ca, 0x111cc}, + {0x1122c, 0x11237}, + {0x112df, 0x112ea}, +! {0x11300, 0x11303}, + {0x1133c, 0x1133c}, + {0x1133e, 0x11344}, + {0x11347, 0x11348}, +*************** +*** 2457,2464 **** +--- 2456,2465 ---- + {0x114b0, 0x114c3}, + {0x115af, 0x115b5}, + {0x115b8, 0x115c0}, ++ {0x115dc, 0x115dd}, + {0x11630, 0x11640}, + {0x116ab, 0x116b7}, ++ {0x1171d, 0x1172b}, + {0x16af0, 0x16af4}, + {0x16b30, 0x16b36}, + {0x16f51, 0x16f7e}, +*************** +*** 2470,2475 **** +--- 2471,2482 ---- + {0x1d185, 0x1d18b}, + {0x1d1aa, 0x1d1ad}, + {0x1d242, 0x1d244}, ++ {0x1da00, 0x1da36}, ++ {0x1da3b, 0x1da6c}, ++ {0x1da75, 0x1da75}, ++ {0x1da84, 0x1da84}, ++ {0x1da9b, 0x1da9f}, ++ {0x1daa1, 0x1daaf}, + {0x1e8d0, 0x1e8d6}, + {0xe0100, 0xe01ef} + }; +*************** +*** 2742,2747 **** +--- 2749,2755 ---- + {0x531,0x556,1,48}, + {0x10a0,0x10c5,1,7264}, + {0x10c7,0x10cd,6,7264}, ++ {0x13f8,0x13fd,1,-8}, + {0x1e00,0x1e94,2,1}, + {0x1e9b,0x1e9b,-1,-58}, + {0x1e9e,0x1e9e,-1,-7615}, +*************** +*** 2809,2816 **** +--- 2817,2829 ---- + {0xa7ad,0xa7ad,-1,-42305}, + {0xa7b0,0xa7b0,-1,-42258}, + {0xa7b1,0xa7b1,-1,-42282}, ++ {0xa7b2,0xa7b2,-1,-42261}, ++ {0xa7b3,0xa7b3,-1,928}, ++ {0xa7b4,0xa7b6,2,1}, ++ {0xab70,0xabbf,1,-38864}, + {0xff21,0xff3a,1,32}, + {0x10400,0x10427,1,40}, ++ {0x10c80,0x10cb2,1,64}, + {0x118a0,0x118bf,1,32} + }; + +*************** +*** 2952,2957 **** +--- 2965,2972 ---- + {0x531,0x556,1,48}, + {0x10a0,0x10c5,1,7264}, + {0x10c7,0x10cd,6,7264}, ++ {0x13a0,0x13ef,1,38864}, ++ {0x13f0,0x13f5,1,8}, + {0x1e00,0x1e94,2,1}, + {0x1e9e,0x1e9e,-1,-7615}, + {0x1ea0,0x1efe,2,1}, +*************** +*** 3017,3024 **** +--- 3032,3043 ---- + {0xa7ad,0xa7ad,-1,-42305}, + {0xa7b0,0xa7b0,-1,-42258}, + {0xa7b1,0xa7b1,-1,-42282}, ++ {0xa7b2,0xa7b2,-1,-42261}, ++ {0xa7b3,0xa7b3,-1,928}, ++ {0xa7b4,0xa7b6,2,1}, + {0xff21,0xff3a,1,32}, + {0x10400,0x10427,1,40}, ++ {0x10c80,0x10cb2,1,64}, + {0x118a0,0x118bf,1,32} + }; + +*************** +*** 3098,3103 **** +--- 3117,3123 ---- + {0x28a,0x28b,1,-217}, + {0x28c,0x28c,-1,-71}, + {0x292,0x292,-1,-219}, ++ {0x29d,0x29d,-1,42261}, + {0x29e,0x29e,-1,42258}, + {0x345,0x345,-1,84}, + {0x371,0x373,2,-1}, +*************** +*** 3130,3135 **** +--- 3150,3156 ---- + {0x4cf,0x4cf,-1,-15}, + {0x4d1,0x52f,2,-1}, + {0x561,0x586,1,-48}, ++ {0x13f8,0x13fd,1,-8}, + {0x1d79,0x1d79,-1,35332}, + {0x1d7d,0x1d7d,-1,3814}, + {0x1e01,0x1e95,2,-1}, +*************** +*** 3183,3190 **** +--- 3204,3215 ---- + {0xa78c,0xa791,5,-1}, + {0xa793,0xa797,4,-1}, + {0xa799,0xa7a9,2,-1}, ++ {0xa7b5,0xa7b7,2,-1}, ++ {0xab53,0xab53,-1,-928}, ++ {0xab70,0xabbf,1,-38864}, + {0xff41,0xff5a,1,-32}, + {0x10428,0x1044f,1,-40}, ++ {0x10cc0,0x10cf2,1,-64}, + {0x118c0,0x118df,1,-32} + }; + /* +*** ../vim-7.4.751/src/version.c 2015-06-21 13:44:07.297340941 +0200 +--- src/version.c 2015-06-21 14:11:33.092091522 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 752, + /**/ + +-- +Why is it called "Windows"? "Gates" would be more appropriate... + + /// 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 /// From 2a71fc03634c809ffb65c8b98690d090b0e2e922 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 22 Jun 2015 18:00:07 +0200 Subject: [PATCH 0233/1407] - patchlevel 752 --- README.patches | 14 ++++++++++++++ vim.spec | 33 ++++++++++++++++++++++++++++++++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a22ef26c..cab64d59 100644 --- a/README.patches +++ b/README.patches @@ -760,3 +760,17 @@ Individual patches for Vim 7.4: 2537 7.4.736 invalid memory access 1573 7.4.737 on MS-Windows vimgrep over arglist doesn't work (Issue 361) 2961 7.4.738 (after 7.4.732) can't compile without the syntax HL feature + 1749 7.4.739 in a string "\U" only takes 4 digits, should be eight + 2493 7.4.740 ":1quit" works like ":.quit" + 5470 7.4.741 when using += with ":set" a trailing comma is not recognized + 4378 7.4.742 no vertical split when loading buffer for a quickfix command + 4122 7.4.743 "p" in Visual mode causes an unexpected line split + 6095 7.4.744 no tests for Ruby and Perl + 4813 7.4.745 entries returned by getmatches() dont work with setmatches() + 2710 7.4.746 ":[count]tag" is not always working + 1489 7.4.747 ":cnext" may jump to wrong column when 'virtualedit' is "all" + 1459 7.4.748 (after 7.4.745) buffer overflow + 44109 7.4.749 (after 7.4.741) two consecutive commas are OK for some options + 3282 7.4.750 cannot build with clang 3.5 on Cygwin with perl enabled + 3533 7.4.751 it is not obvious how to enable the address sanitizer + 5908 7.4.752 Unicode 8.0 not supported diff --git a/vim.spec b/vim.spec index cbfd1aa2..e1eff501 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 738 +%define patchlevel 752 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -785,6 +785,20 @@ Patch735: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.735 Patch736: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.736 Patch737: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.737 Patch738: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.738 +Patch739: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.739 +Patch740: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.740 +Patch741: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.741 +Patch742: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.742 +Patch743: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.743 +Patch744: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.744 +Patch745: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.745 +Patch746: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.746 +Patch747: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.747 +Patch748: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.748 +Patch749: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.749 +Patch750: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.750 +Patch751: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.751 +Patch752: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.752 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1673,6 +1687,20 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch736 -p0 %patch737 -p0 %patch738 -p0 +%patch739 -p0 +%patch740 -p0 +%patch741 -p0 +%patch742 -p0 +%patch743 -p0 +%patch744 -p0 +%patch745 -p0 +%patch746 -p0 +%patch747 -p0 +%patch748 -p0 +%patch749 -p0 +%patch750 -p0 +%patch751 -p0 +%patch752 -p0 # install spell files %if %{withvimspell} @@ -2229,6 +2257,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Jun 22 2015 Karsten Hopp 7.4.752-1 +- patchlevel 752 + * Wed Jun 10 2015 Karsten Hopp 7.4.738-1 - patchlevel 738 From 7b074b3ad7d703d71f13037d9d003664cbb97ac1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 25 Jun 2015 18:00:05 +0200 Subject: [PATCH 0234/1407] - patchlevel 753 --- 7.4.753 | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 342 insertions(+) create mode 100644 7.4.753 diff --git a/7.4.753 b/7.4.753 new file mode 100644 index 00000000..1af52bef --- /dev/null +++ b/7.4.753 @@ -0,0 +1,342 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.753 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.753 +Problem: Appending in Visual mode with 'linebreak' set does not work + properly. Also when 'selection' is "exclusive". (Ingo Karkat) +Solution: Recalculate virtual columns. (Christian Brabandt) +Files: src/normal.c, src/testdir/test_listlbr.in, + src/testdir/test_listlbr.ok, src/testdir/test_listlbr_utf8.in, + src/testdir/test_listlbr_utf8.ok + + +*** ../vim-7.4.752/src/normal.c 2015-06-10 12:16:41.926648740 +0200 +--- src/normal.c 2015-06-25 12:47:07.989550746 +0200 +*************** +*** 174,179 **** +--- 174,180 ---- + #ifdef FEAT_AUTOCMD + static void nv_cursorhold __ARGS((cmdarg_T *cap)); + #endif ++ static void get_op_vcol __ARGS((oparg_T *oap, colnr_T col, int initial)); + + static char *e_noident = N_("E349: No identifier under cursor"); + +*************** +*** 1418,1423 **** +--- 1419,1426 ---- + { + #ifdef FEAT_LINEBREAK + /* Avoid a problem with unwanted linebreaks in block mode. */ ++ if (curwin->w_p_lbr) ++ curwin->w_valid &= ~VALID_VIRTCOL; + curwin->w_p_lbr = FALSE; + #endif + oap->is_VIsual = VIsual_active; +*************** +*** 1631,1691 **** + + if (VIsual_active || redo_VIsual_busy) + { +! if (VIsual_mode == Ctrl_V) /* block mode */ +! { +! colnr_T start, end; +! +! oap->block_mode = TRUE; +! +! getvvcol(curwin, &(oap->start), +! &oap->start_vcol, NULL, &oap->end_vcol); +! if (!redo_VIsual_busy) +! { +! getvvcol(curwin, &(oap->end), &start, NULL, &end); +! +! if (start < oap->start_vcol) +! oap->start_vcol = start; +! if (end > oap->end_vcol) +! { +! if (*p_sel == 'e' && start >= 1 +! && start - 1 >= oap->end_vcol) +! oap->end_vcol = start - 1; +! else +! oap->end_vcol = end; +! } +! } +! +! /* if '$' was used, get oap->end_vcol from longest line */ +! if (curwin->w_curswant == MAXCOL) +! { +! curwin->w_cursor.col = MAXCOL; +! oap->end_vcol = 0; +! for (curwin->w_cursor.lnum = oap->start.lnum; +! curwin->w_cursor.lnum <= oap->end.lnum; +! ++curwin->w_cursor.lnum) +! { +! getvvcol(curwin, &curwin->w_cursor, NULL, NULL, &end); +! if (end > oap->end_vcol) +! oap->end_vcol = end; +! } +! } +! else if (redo_VIsual_busy) +! oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1; +! /* +! * Correct oap->end.col and oap->start.col to be the +! * upper-left and lower-right corner of the block area. +! * +! * (Actually, this does convert column positions into character +! * positions) +! */ +! curwin->w_cursor.lnum = oap->end.lnum; +! coladvance(oap->end_vcol); +! oap->end = curwin->w_cursor; +! +! curwin->w_cursor = oap->start; +! coladvance(oap->start_vcol); +! oap->start = curwin->w_cursor; +! } + + if (!redo_VIsual_busy && !gui_yank) + { +--- 1634,1640 ---- + + if (VIsual_active || redo_VIsual_busy) + { +! get_op_vcol(oap, redo_VIsual_vcol, TRUE); + + if (!redo_VIsual_busy && !gui_yank) + { +*************** +*** 1982,1988 **** + #ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ +! curwin->w_p_lbr = lbr_saved; + #endif + /* Reset finish_op now, don't want it set inside edit(). */ + finish_op = FALSE; +--- 1931,1941 ---- + #ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ +! if (curwin->w_p_lbr != lbr_saved) +! { +! curwin->w_p_lbr = lbr_saved; +! get_op_vcol(oap, redo_VIsual_mode, FALSE); +! } + #endif + /* Reset finish_op now, don't want it set inside edit(). */ + finish_op = FALSE; +*************** +*** 2082,2088 **** + #ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ +! curwin->w_p_lbr = lbr_saved; + #endif + op_insert(oap, cap->count1); + #ifdef FEAT_LINEBREAK +--- 2035,2045 ---- + #ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ +! if (curwin->w_p_lbr != lbr_saved) +! { +! curwin->w_p_lbr = lbr_saved; +! get_op_vcol(oap, redo_VIsual_mode, FALSE); +! } + #endif + op_insert(oap, cap->count1); + #ifdef FEAT_LINEBREAK +*************** +*** 2114,2124 **** + #ifdef FEAT_VISUALEXTRA + else + { +! #ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ +! curwin->w_p_lbr = lbr_saved; +! #endif + op_replace(oap, cap->nchar); + } + #endif +--- 2071,2085 ---- + #ifdef FEAT_VISUALEXTRA + else + { +! # ifdef FEAT_LINEBREAK + /* Restore linebreak, so that when the user edits it looks as + * before. */ +! if (curwin->w_p_lbr != lbr_saved) +! { +! curwin->w_p_lbr = lbr_saved; +! get_op_vcol(oap, redo_VIsual_mode, FALSE); +! } +! # endif + op_replace(oap, cap->nchar); + } + #endif +*************** +*** 9542,9544 **** +--- 9503,9572 ---- + cap->retval |= CA_COMMAND_BUSY; /* don't call edit() now */ + } + #endif ++ ++ /* ++ * calculate start/end virtual columns for operating in block mode ++ */ ++ static void ++ get_op_vcol(oap, redo_VIsual_vcol, initial) ++ oparg_T *oap; ++ colnr_T redo_VIsual_vcol; ++ int initial; /* when true: adjust position for 'selectmode' */ ++ { ++ colnr_T start, end; ++ ++ if (VIsual_mode != Ctrl_V) ++ return; ++ ++ oap->block_mode = TRUE; ++ ++ #ifdef FEAT_MBYTE ++ /* prevent from moving onto a trail byte */ ++ if (has_mbyte) ++ mb_adjustpos(curwin->w_buffer, &oap->end); ++ #endif ++ ++ getvvcol(curwin, &(oap->start), &oap->start_vcol, NULL, &oap->end_vcol); ++ getvvcol(curwin, &(oap->end), &start, NULL, &end); ++ ++ if (start < oap->start_vcol) ++ oap->start_vcol = start; ++ if (end > oap->end_vcol) ++ { ++ if (initial && *p_sel == 'e' && start >= 1 ++ && start - 1 >= oap->end_vcol) ++ oap->end_vcol = start - 1; ++ else ++ oap->end_vcol = end; ++ } ++ /* if '$' was used, get oap->end_vcol from longest line */ ++ if (curwin->w_curswant == MAXCOL) ++ { ++ curwin->w_cursor.col = MAXCOL; ++ oap->end_vcol = 0; ++ for (curwin->w_cursor.lnum = oap->start.lnum; ++ curwin->w_cursor.lnum <= oap->end.lnum; ++ ++curwin->w_cursor.lnum) ++ { ++ getvvcol(curwin, &curwin->w_cursor, NULL, NULL, &end); ++ if (end > oap->end_vcol) ++ oap->end_vcol = end; ++ } ++ } ++ else if (redo_VIsual_busy) ++ oap->end_vcol = oap->start_vcol + redo_VIsual_vcol - 1; ++ /* ++ * Correct oap->end.col and oap->start.col to be the ++ * upper-left and lower-right corner of the block area. ++ * ++ * (Actually, this does convert column positions into character ++ * positions) ++ */ ++ curwin->w_cursor.lnum = oap->end.lnum; ++ coladvance(oap->end_vcol); ++ oap->end = curwin->w_cursor; ++ ++ curwin->w_cursor = oap->start; ++ coladvance(oap->start_vcol); ++ oap->start = curwin->w_cursor; ++ } +*** ../vim-7.4.752/src/testdir/test_listlbr.in 2014-10-09 13:22:41.804886993 +0200 +--- src/testdir/test_listlbr.in 2015-06-25 12:45:05.854814853 +0200 +*************** +*** 59,69 **** +--- 59,79 ---- + :set cpo&vim linebreak + :let g:test ="Test 6: set linebreak with visual block mode" + :let line="REMOVE: this not" ++ :$put =g:test + :$put =line + :let line="REMOVE: aaaaaaaaaaaaa" + :$put =line + :1/^REMOVE: + 0jf x:$put ++ :set cpo&vim linebreak ++ :let g:test ="Test 7: set linebreak with visual block mode and v_b_A" ++ :$put =g:test ++ Golong line: 40afoobar aTARGET at end ++ :exe "norm! $3B\eAx\" ++ :set cpo&vim linebreak sbr= ++ :let g:test ="Test 8: set linebreak with visual char mode and changing block" ++ :$put =g:test ++ Go1111-1111-1111-11-1111-1111-11110f-lv3lc2222bgj. + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.752/src/testdir/test_listlbr.ok 2014-10-09 13:22:41.808886993 +0200 +--- src/testdir/test_listlbr.ok 2015-06-25 12:45:05.854814853 +0200 +*************** +*** 32,38 **** +--- 32,43 ---- + ~ + ~ + ~ ++ Test 6: set linebreak with visual block mode + this not + aaaaaaaaaaaaa + REMOVE: + REMOVE: ++ Test 7: set linebreak with visual block mode and v_b_A ++ long line: foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar TARGETx at end ++ Test 8: set linebreak with visual char mode and changing block ++ 1111-2222-1111-11-1111-2222-1111 +*** ../vim-7.4.752/src/testdir/test_listlbr_utf8.in 2015-02-17 17:26:04.561123749 +0100 +--- src/testdir/test_listlbr_utf8.in 2015-06-25 13:28:00.739775396 +0200 +*************** +*** 91,96 **** +--- 91,101 ---- + :else + : call append('$', "Not all attributes are different") + :endif ++ :set cpo&vim linebreak selection=exclusive ++ :let g:test ="Test 8: set linebreak with visual block mode and v_b_A and selection=exclusive and multibyte char" ++ :$put =g:test ++ Golong line: 40afoobar aTARGETÃ' at end ++ :exe "norm! $3B\eAx\" + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.752/src/testdir/test_listlbr_utf8.ok 2015-02-17 17:26:04.561123749 +0100 +--- src/testdir/test_listlbr_utf8.ok 2015-06-25 13:28:20.459568969 +0200 +*************** +*** 44,46 **** +--- 44,48 ---- + /* and some more */ + ScreenAttributes for test6: + Attribut 0 and 1 and 3 and 5 are different! ++ Test 8: set linebreak with visual block mode and v_b_A and selection=exclusive and multibyte char ++ long line: foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar TARGETÃx' at end +*** ../vim-7.4.752/src/version.c 2015-06-21 14:21:54.477599972 +0200 +--- src/version.c 2015-06-25 12:44:49.274986455 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 753, + /**/ + +-- +Drink wet cement and get really stoned. + + /// 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 /// From 4e1a0b80db8922391f9fa7e1bb3aa8c5d17b6504 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 25 Jun 2015 18:00:05 +0200 Subject: [PATCH 0235/1407] - patchlevel 754 --- 7.4.754 | 1093 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1093 insertions(+) create mode 100644 7.4.754 diff --git a/7.4.754 b/7.4.754 new file mode 100644 index 00000000..c3a0b8fe --- /dev/null +++ b/7.4.754 @@ -0,0 +1,1093 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.754 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.754 +Problem: Using CTRL-A in Visual mode does not work well. (Gary Johnson) +Solution: Make it increment all numbers in the Visual area. (Christian + Brabandt) +Files: runtime/doc/change.txt, src/normal.c, src/ops.c, + src/proto/ops.pro, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_increment.in, + src/testdir/test_increment.ok + + +*** ../vim-7.4.753/runtime/doc/change.txt 2015-01-27 18:43:42.134535513 +0100 +--- runtime/doc/change.txt 2015-06-25 13:55:43.686428819 +0200 +*************** +*** 156,161 **** +--- 156,164 ---- + The 'B' and 'M' flags in 'formatoptions' change the behavior for inserting + spaces before and after a multi-byte character |fo-table|. + ++ The '[ mark is set at the end of the first line that was joined, '] at the end ++ of the resulting line. ++ + + ============================================================================== + 2. Delete and insert *delete-insert* *replacing* +*************** +*** 376,385 **** +--- 379,421 ---- + CTRL-A Add [count] to the number or alphabetic character at + or after the cursor. {not in Vi} + ++ *v_CTRL-A* ++ {Visual}CTRL-A Add [count] to the number or alphabetic character in ++ the highlighted text. {not in Vi} ++ ++ *v_g_CTRL-A* ++ {Visual}g CTRL-A Add [count] to the number or alphabetic character in ++ the highlighted text. If several lines are ++ highlighted, each one will be incremented by an ++ additional [count] (so effectively creating a ++ [count] incrementing sequence). {not in Vi} ++ For Example, if you have this list of numbers: ++ 1. ~ ++ 1. ~ ++ 1. ~ ++ 1. ~ ++ Move to the second "1." and Visually select three ++ lines, pressing g CTRL-A results in: ++ 1. ~ ++ 2. ~ ++ 3. ~ ++ 4. ~ ++ + *CTRL-X* + CTRL-X Subtract [count] from the number or alphabetic + character at or after the cursor. {not in Vi} + ++ *v_CTRL-X* ++ {Visual}CTRL-X Subtract [count] from the number or alphabetic ++ character in the highlighted text. {not in Vi} ++ ++ *v_g_CTRL-X* ++ {Visual}g CTRL-X Subtract [count] from the number or alphabetic ++ character in the highlighted text. If several lines ++ are highlighted, each value will be decremented by an ++ additional [count] (so effectively creating a [count] ++ decrementing sequence). {not in Vi} ++ + The CTRL-A and CTRL-X commands work for (signed) decimal numbers, unsigned + octal and hexadecimal numbers and alphabetic characters. This depends on the + 'nrformats' option. +*************** +*** 396,401 **** +--- 432,440 ---- + under or after the cursor. This is useful to make lists with an alphabetic + index. + ++ For decimals a leading negative sign is considered for incrementing/ ++ decrementing, for octal and hey values, it won't be considered. ++ + For numbers with leading zeros (including all octal and hexadecimal numbers), + Vim preserves the number of characters in the number when possible. CTRL-A on + "0077" results in "0100", CTRL-X on "0x100" results in "0x0ff". +*** ../vim-7.4.753/src/normal.c 2015-06-25 13:30:41.206095684 +0200 +--- src/normal.c 2015-06-25 13:42:06.342924954 +0200 +*************** +*** 4201,4209 **** + nv_addsub(cap) + cmdarg_T *cap; + { +! if (!checkclearopq(cap->oap) +! && do_addsub((int)cap->cmdchar, cap->count1) == OK) + prep_redo_cmd(cap); + } + + /* +--- 4201,4217 ---- + nv_addsub(cap) + cmdarg_T *cap; + { +! int visual = VIsual_active; +! if (cap->oap->op_type == OP_NOP +! && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK) + prep_redo_cmd(cap); ++ else ++ clearopbeep(cap->oap); ++ if (visual) ++ { ++ VIsual_active = FALSE; ++ redraw_later(CLEAR); ++ } + } + + /* +*************** +*** 7841,7854 **** + + switch (cap->nchar) + { + #ifdef MEM_PROFILE + /* + * "g^A": dump log of used memory. + */ +! case Ctrl_A: +! vim_mem_profile_dump(); +! break; + #endif + + #ifdef FEAT_VREPLACE + /* +--- 7849,7876 ---- + + switch (cap->nchar) + { ++ case Ctrl_A: ++ case Ctrl_X: + #ifdef MEM_PROFILE + /* + * "g^A": dump log of used memory. + */ +! if (!VIsual_active && cap->nchar == Ctrl_A) +! vim_mem_profile_dump(); +! else + #endif ++ /* ++ * "g^A/g^X": sequentially increment visually selected region ++ */ ++ if (VIsual_active) ++ { ++ cap->arg = TRUE; ++ cap->cmdchar = cap->nchar; ++ nv_addsub(cap); ++ } ++ else ++ clearopbeep(oap); ++ break; + + #ifdef FEAT_VREPLACE + /* +*** ../vim-7.4.753/src/ops.c 2015-06-19 15:17:49.891065610 +0200 +--- src/ops.c 2015-06-25 13:44:44.285272132 +0200 +*************** +*** 5375,5383 **** + * return FAIL for failure, OK otherwise + */ + int +! do_addsub(command, Prenum1) + int command; + linenr_T Prenum1; + { + int col; + char_u *buf1; +--- 5375,5384 ---- + * return FAIL for failure, OK otherwise + */ + int +! do_addsub(command, Prenum1, g_cmd) + int command; + linenr_T Prenum1; ++ int g_cmd; /* was g/g */ + { + int col; + char_u *buf1; +*************** +*** 5385,5390 **** +--- 5386,5392 ---- + int hex; /* 'X' or 'x': hex; '0': octal */ + static int hexupper = FALSE; /* 0xABC */ + unsigned long n; ++ long offset = 0; /* line offset for Ctrl_V mode */ + long_u oldn; + char_u *ptr; + int c; +*************** +*** 5394,5640 **** + int dooct; + int doalp; + int firstdigit; +- int negative; + int subtract; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ + dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL); /* "Octal" */ + doalp = (vim_strchr(curbuf->b_p_nf, 'p') != NULL); /* "alPha" */ + +- ptr = ml_get_curline(); +- RLADDSUBFIX(ptr); +- + /* + * First check if we are on a hexadecimal number, after the "0x". + */ + col = curwin->w_cursor.col; +! if (dohex) +! while (col > 0 && vim_isxdigit(ptr[col])) +! --col; +! if ( dohex +! && col > 0 +! && (ptr[col] == 'X' +! || ptr[col] == 'x') +! && ptr[col - 1] == '0' +! && vim_isxdigit(ptr[col + 1])) + { +! /* +! * Found hexadecimal number, move to its start. +! */ +! --col; + } + else + { +! /* +! * Search forward and then backward to find the start of number. +! */ +! col = curwin->w_cursor.col; + +! while (ptr[col] != NUL +! && !vim_isdigit(ptr[col]) +! && !(doalp && ASCII_ISALPHA(ptr[col]))) +! ++col; +! +! while (col > 0 +! && vim_isdigit(ptr[col - 1]) +! && !(doalp && ASCII_ISALPHA(ptr[col]))) + --col; + } + +! /* +! * If a number was found, and saving for undo works, replace the number. +! */ +! firstdigit = ptr[col]; +! RLADDSUBFIX(ptr); +! if ((!VIM_ISDIGIT(firstdigit) && !(doalp && ASCII_ISALPHA(firstdigit))) +! || u_save_cursor() != OK) + { +! beep_flush(); +! return FAIL; +! } + +! /* get ptr again, because u_save() may have changed it */ +! ptr = ml_get_curline(); +! RLADDSUBFIX(ptr); + +! if (doalp && ASCII_ISALPHA(firstdigit)) +! { +! /* decrement or increment alphabetic character */ +! if (command == Ctrl_X) + { +! if (CharOrd(firstdigit) < Prenum1) + { +! if (isupper(firstdigit)) +! firstdigit = 'A'; + else +- firstdigit = 'a'; +- } +- else + #ifdef EBCDIC +! firstdigit = EBCDIC_CHAR_ADD(firstdigit, -Prenum1); + #else +! firstdigit -= Prenum1; + #endif +- } +- else +- { +- if (26 - CharOrd(firstdigit) - 1 < Prenum1) +- { +- if (isupper(firstdigit)) +- firstdigit = 'Z'; +- else +- firstdigit = 'z'; + } + else + #ifdef EBCDIC +! firstdigit = EBCDIC_CHAR_ADD(firstdigit, Prenum1); + #else +! firstdigit += Prenum1; + #endif + } +! curwin->w_cursor.col = col; +! (void)del_char(FALSE); +! ins_char(firstdigit); +! } +! else +! { +! negative = FALSE; +! if (col > 0 && ptr[col - 1] == '-') /* negative number */ + { +! --col; +! negative = TRUE; +! } + +! /* get the number value (unsigned) */ +! vim_str2nr(ptr + col, &hex, &length, dooct, dohex, NULL, &n); + +! /* ignore leading '-' for hex and octal numbers */ +! if (hex && negative) +! { +! ++col; +! --length; +! negative = FALSE; +! } + +! /* add or subtract */ +! subtract = FALSE; +! if (command == Ctrl_X) +! subtract ^= TRUE; +! if (negative) +! subtract ^= TRUE; +! +! oldn = n; +! if (subtract) +! n -= (unsigned long)Prenum1; +! else +! n += (unsigned long)Prenum1; + +! /* handle wraparound for decimal numbers */ +! if (!hex) +! { + if (subtract) + { +! if (n > oldn) + { +! n = 1 + (n ^ (unsigned long)-1); +! negative ^= TRUE; + } + } +! else /* add */ + { +! if (n < oldn) + { +! n = (n ^ (unsigned long)-1); +! negative ^= TRUE; + } + } +- if (n == 0) +- negative = FALSE; +- } + +! /* +! * Delete the old number. +! */ +! curwin->w_cursor.col = col; +! todel = length; +! c = gchar_cursor(); +! /* +! * Don't include the '-' in the length, only the length of the part +! * after it is kept the same. +! */ +! if (c == '-') +! --length; +! while (todel-- > 0) +! { +! if (c < 0x100 && isalpha(c)) + { +! if (isupper(c)) +! hexupper = TRUE; +! else +! hexupper = FALSE; + } +- /* del_char() will mark line needing displaying */ +- (void)del_char(FALSE); +- c = gchar_cursor(); +- } + +! /* +! * Prepare the leading characters in buf1[]. +! * When there are many leading zeros it could be very long. Allocate +! * a bit too much. +! */ +! buf1 = alloc((unsigned)length + NUMBUFLEN); +! if (buf1 == NULL) +! return FAIL; +! ptr = buf1; +! if (negative) +! { +! *ptr++ = '-'; +! } +! if (hex) +! { +! *ptr++ = '0'; +! --length; +! } +! if (hex == 'x' || hex == 'X') +! { +! *ptr++ = hex; +! --length; +! } + +! /* +! * Put the number characters in buf2[]. +! */ +! if (hex == 0) +! sprintf((char *)buf2, "%lu", n); +! else if (hex == '0') +! sprintf((char *)buf2, "%lo", n); +! else if (hex && hexupper) +! sprintf((char *)buf2, "%lX", n); +! else +! sprintf((char *)buf2, "%lx", n); +! length -= (int)STRLEN(buf2); + +! /* +! * Adjust number of zeros to the new number of digits, so the +! * total length of the number remains the same. +! * Don't do this when +! * the result may look like an octal number. +! */ +! if (firstdigit == '0' && !(dooct && hex == 0)) +! while (length-- > 0) +! *ptr++ = '0'; +! *ptr = NUL; +! STRCAT(buf1, buf2); +! ins_str(buf1); /* insert the new number */ +! vim_free(buf1); +! } +! --curwin->w_cursor.col; +! curwin->w_set_curswant = TRUE; + #ifdef FEAT_RIGHTLEFT +! ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); +! RLADDSUBFIX(ptr); + #endif + return OK; + } + +--- 5396,5697 ---- + int dooct; + int doalp; + int firstdigit; + int subtract; ++ int negative = FALSE; ++ int visual = VIsual_active; ++ int i; ++ int lnum = curwin->w_cursor.lnum; ++ int lnume = curwin->w_cursor.lnum; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ + dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL); /* "Octal" */ + doalp = (vim_strchr(curbuf->b_p_nf, 'p') != NULL); /* "alPha" */ + + /* + * First check if we are on a hexadecimal number, after the "0x". + */ + col = curwin->w_cursor.col; +! if (VIsual_active) + { +! if (lt(curwin->w_cursor, VIsual)) +! { +! pos_T t; +! t = curwin->w_cursor; +! curwin->w_cursor = VIsual; +! VIsual = t; +! } +! if (VIsual_mode == 'V') +! VIsual.col = 0; +! +! ptr = ml_get(VIsual.lnum); +! RLADDSUBFIX(ptr); +! +! /* store visual area for 'gv' */ +! curbuf->b_visual.vi_start = VIsual; +! curbuf->b_visual.vi_end = curwin->w_cursor; +! curbuf->b_visual.vi_mode = VIsual_mode; +! +! col = VIsual.col; +! lnum = VIsual.lnum; +! lnume = curwin->w_cursor.lnum; +! if (ptr[col] == '-') +! { +! negative = TRUE; +! col++; +! } + } + else + { +! ptr = ml_get_curline(); +! RLADDSUBFIX(ptr); + +! if (dohex) +! while (col > 0 && vim_isxdigit(ptr[col])) +! --col; +! if ( dohex +! && col > 0 +! && (ptr[col] == 'X' +! || ptr[col] == 'x') +! && ptr[col - 1] == '0' +! && vim_isxdigit(ptr[col + 1])) +! { +! /* Found hexadecimal number, move to its start. */ + --col; ++ } ++ else ++ { ++ /* ++ * Search forward and then backward to find the start of number. ++ */ ++ col = curwin->w_cursor.col; ++ ++ while (ptr[col] != NUL ++ && !vim_isdigit(ptr[col]) ++ && !(doalp && ASCII_ISALPHA(ptr[col]))) ++ ++col; ++ ++ while (col > 0 ++ && vim_isdigit(ptr[col - 1]) ++ && !(doalp && ASCII_ISALPHA(ptr[col]))) ++ --col; ++ } + } + +! for (i = lnum; i <= lnume; i++) + { +! curwin->w_cursor.lnum = i; +! ptr = ml_get_curline(); +! RLADDSUBFIX(ptr); +! if ((int)STRLEN(ptr) <= col) +! col = 0; +! /* +! * If a number was found, and saving for undo works, replace the number. +! */ +! firstdigit = ptr[col]; +! RLADDSUBFIX(ptr); +! if ((!VIM_ISDIGIT(firstdigit) && !(doalp && ASCII_ISALPHA(firstdigit))) +! || u_save_cursor() != OK) +! { +! if (lnum < lnume) +! /* Try again on next line */ +! continue; +! beep_flush(); +! return FAIL; +! } + +! ptr = ml_get_curline(); +! RLADDSUBFIX(ptr); + +! if (doalp && ASCII_ISALPHA(firstdigit)) + { +! /* decrement or increment alphabetic character */ +! if (command == Ctrl_X) + { +! if (CharOrd(firstdigit) < Prenum1) +! { +! if (isupper(firstdigit)) +! firstdigit = 'A'; +! else +! firstdigit = 'a'; +! } + else + #ifdef EBCDIC +! firstdigit = EBCDIC_CHAR_ADD(firstdigit, -Prenum1); + #else +! firstdigit -= Prenum1; + #endif + } + else ++ { ++ if (26 - CharOrd(firstdigit) - 1 < Prenum1) ++ { ++ if (isupper(firstdigit)) ++ firstdigit = 'Z'; ++ else ++ firstdigit = 'z'; ++ } ++ else + #ifdef EBCDIC +! firstdigit = EBCDIC_CHAR_ADD(firstdigit, Prenum1); + #else +! firstdigit += Prenum1; + #endif ++ } ++ curwin->w_cursor.col = col; ++ (void)del_char(FALSE); ++ ins_char(firstdigit); + } +! else + { +! if (col > 0 && ptr[col - 1] == '-' && !visual) +! { +! /* negative number */ +! --col; +! negative = TRUE; +! } + +! /* get the number value (unsigned) */ +! vim_str2nr(ptr + col, &hex, &length, dooct, dohex, NULL, &n); + +! /* ignore leading '-' for hex and octal numbers */ +! if (hex && negative) +! { +! ++col; +! --length; +! negative = FALSE; +! } + +! /* add or subtract */ +! subtract = FALSE; +! if (command == Ctrl_X) +! subtract ^= TRUE; +! if (negative) +! subtract ^= TRUE; + +! oldn = n; + if (subtract) ++ n -= (unsigned long)Prenum1; ++ else ++ n += (unsigned long)Prenum1; ++ ++ /* handle wraparound for decimal numbers */ ++ if (!hex) + { +! if (subtract) +! { +! if (n > oldn) +! { +! n = 1 + (n ^ (unsigned long)-1); +! negative ^= TRUE; +! } +! } +! else + { +! /* add */ +! if (n < oldn) +! { +! n = (n ^ (unsigned long)-1); +! negative ^= TRUE; +! } + } ++ if (n == 0) ++ negative = FALSE; + } +! +! /* +! * Delete the old number. +! */ +! curwin->w_cursor.col = col; +! todel = length; +! c = gchar_cursor(); +! +! /* +! * Don't include the '-' in the length, only the length of the +! * part after it is kept the same. +! */ +! if (c == '-') +! --length; +! while (todel-- > 0) + { +! if (c < 0x100 && isalpha(c)) + { +! if (isupper(c)) +! hexupper = TRUE; +! else +! hexupper = FALSE; + } ++ /* del_char() will mark line needing displaying */ ++ (void)del_char(FALSE); ++ c = gchar_cursor(); + } + +! /* +! * Prepare the leading characters in buf1[]. +! * When there are many leading zeros it could be very long. +! * Allocate a bit too much. +! */ +! buf1 = alloc((unsigned)length + NUMBUFLEN); +! if (buf1 == NULL) +! return FAIL; +! ptr = buf1; +! /* do not add leading '-' for visual mode */ +! if (negative && !visual) + { +! *ptr++ = '-'; +! } +! if (hex) +! { +! *ptr++ = '0'; +! --length; +! } +! if (hex == 'x' || hex == 'X') +! { +! *ptr++ = hex; +! --length; + } + +! /* +! * Put the number characters in buf2[]. +! */ +! if (hex == 0) +! sprintf((char *)buf2, "%lu", n + offset); +! else if (hex == '0') +! sprintf((char *)buf2, "%lo", n + offset); +! else if (hex && hexupper) +! sprintf((char *)buf2, "%lX", n + offset); +! else +! sprintf((char *)buf2, "%lx", n + offset); +! length -= (int)STRLEN(buf2); + +! if (g_cmd) +! { +! if (subtract) +! offset -= (unsigned long)Prenum1; +! else +! offset += (unsigned long)Prenum1; +! } + +! /* +! * Adjust number of zeros to the new number of digits, so the +! * total length of the number remains the same. +! * Don't do this when +! * the result may look like an octal number. +! */ +! if (firstdigit == '0' && !(dooct && hex == 0)) +! while (length-- > 0) +! *ptr++ = '0'; +! *ptr = NUL; +! STRCAT(buf1, buf2); +! ins_str(buf1); /* insert the new number */ +! vim_free(buf1); +! } +! --curwin->w_cursor.col; +! curwin->w_set_curswant = TRUE; + #ifdef FEAT_RIGHTLEFT +! ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); +! RLADDSUBFIX(ptr); + #endif ++ } + return OK; + } + +*** ../vim-7.4.753/src/proto/ops.pro 2014-12-17 14:36:10.363090985 +0100 +--- src/proto/ops.pro 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 43,49 **** + int fex_format __ARGS((linenr_T lnum, long count, int c)); + void format_lines __ARGS((linenr_T line_count, int avoid_fex)); + int paragraph_start __ARGS((linenr_T lnum)); +! int do_addsub __ARGS((int command, linenr_T Prenum1)); + int read_viminfo_register __ARGS((vir_T *virp, int force)); + void write_viminfo_registers __ARGS((FILE *fp)); + void x11_export_final_selection __ARGS((void)); +--- 43,49 ---- + int fex_format __ARGS((linenr_T lnum, long count, int c)); + void format_lines __ARGS((linenr_T line_count, int avoid_fex)); + int paragraph_start __ARGS((linenr_T lnum)); +! int do_addsub __ARGS((int command, linenr_T Prenum1, int g_cmd)); + int read_viminfo_register __ARGS((vir_T *virp, int force)); + void write_viminfo_registers __ARGS((FILE *fp)); + void x11_export_final_selection __ARGS((void)); +*** ../vim-7.4.753/src/testdir/Make_amiga.mak 2015-06-19 15:45:13.005889121 +0200 +--- src/testdir/Make_amiga.mak 2015-06-25 13:45:32.340769261 +0200 +*************** +*** 45,50 **** +--- 45,51 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_increment.out \ + test_insertcount.out \ + test_listchars.out \ + test_listlbr.out \ +*************** +*** 192,197 **** +--- 193,199 ---- + test_command_count.out: test_command_count.in + test_erasebackword.out: test_erasebackword.in + test_eval.out: test_eval.in ++ test_increment.out: test_increment.in + test_insertcount.out: test_insertcount.in + test_listchars.out: test_listchars.in + test_listlbr.out: test_listlbr.in +*** ../vim-7.4.753/src/testdir/Make_dos.mak 2015-06-19 15:45:13.005889121 +0200 +--- src/testdir/Make_dos.mak 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_increment.out \ + test_insertcount.out \ + test_listchars.out \ + test_listlbr.out \ +*** ../vim-7.4.753/src/testdir/Make_ming.mak 2015-06-19 15:45:13.005889121 +0200 +--- src/testdir/Make_ming.mak 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 66,71 **** +--- 66,72 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_increment.out \ + test_insertcount.out \ + test_listchars.out \ + test_listlbr.out \ +*** ../vim-7.4.753/src/testdir/Make_os2.mak 2015-06-19 15:45:13.005889121 +0200 +--- src/testdir/Make_os2.mak 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 46,51 **** +--- 46,52 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_increment.out \ + test_insertcount.out \ + test_listchars.out \ + test_listlbr.out \ +*** ../vim-7.4.753/src/testdir/Make_vms.mms 2015-06-19 15:45:13.005889121 +0200 +--- src/testdir/Make_vms.mms 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 105,110 **** +--- 105,111 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_increment.out \ + test_insertcount.out \ + test_listchars.out \ + test_listlbr.out \ +*** ../vim-7.4.753/src/testdir/Makefile 2015-06-19 15:45:13.005889121 +0200 +--- src/testdir/Makefile 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 42,47 **** +--- 42,48 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_increment.out \ + test_insertcount.out \ + test_listchars.out \ + test_listlbr.out \ +*** ../vim-7.4.753/src/testdir/test_increment.in 2015-06-25 13:56:12.046135151 +0200 +--- src/testdir/test_increment.in 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 0 **** +--- 1,143 ---- ++ Tests for using Ctrl-A/Ctrl-X on visual selections ++ ++ Test cases ++ ========== ++ ++ 1) Ctrl-A on visually selected number ++ Text: ++ foobar-10 ++ 1) Ctrl-A on start of line: ++ foobar-9 ++ 2) Ctrl-A on visually selected "-10": ++ foobar-9 ++ 3) Ctrl-A on visually selected "10": ++ foobar-11 ++ 4) Ctrl-X on visually selected "-10" ++ foobar-11 ++ 5) Ctrl-X on visually selected "10" ++ foobar-9 ++ ++ 2) Ctrl-A on visually selected lines ++ Text: ++ 10 ++ 20 ++ 30 ++ 40 ++ ++ 1) Ctrl-A on visually selected lines: ++ 11 ++ 21 ++ 31 ++ 41 ++ ++ 2) Ctrl-X on visually selected lines: ++ 9 ++ 19 ++ 29 ++ 39 ++ ++ 3) g Ctrl-A on visually selected lines, with non-numbers in between ++ Text: ++ 10 ++ ++ 20 ++ ++ 30 ++ ++ 40 ++ ++ 1) 2 g Ctrl-A on visually selected lines: ++ 12 ++ ++ 24 ++ ++ 36 ++ ++ 48 ++ 2) 2 g Ctrl-X on visually selected lines ++ 8 ++ ++ 16 ++ ++ 24 ++ ++ 32 ++ ++ 4) Ctrl-A on non-number ++ Text: ++ foobar-10 ++ 1) visually select foobar: ++ foobar-10 ++ ++ STARTTEST ++ :so small.vim ++ ++ :" Test 1 ++ :/^S1=/+,/^E1=/-y a ++ :/^E1/+put a ++ :/^E1/+2put a ++ f-v$:/^E1/+3put a ++ f1v$:/^E1/+4put a ++ f-v$:/^E1/+5put a ++ f1v$ ++ ++ :" Test 22 ++ :/^S2=/+,/^E2=/-y a ++ :/^E2/+put a ++ V3k$:.+put a ++ V3k$ ++ ++ :" Test 3 ++ :/^S3=/+,/^E3=/-y a ++ :/^E3=/+put a ++ V6k2g:.+put a ++ V6k2g ++ ++ :" Test 4 ++ :/^S4=/+,/^E4=/-y a ++ :/^E4=/+put a ++ vf- ++ ++ :" Save the report ++ :/^# Test 1/,$w! test.out ++ :qa! ++ ++ ++ # Test 1 ++ S1====== ++ foobar-10 ++ E1====== ++ ++ ++ ++ # Test 2 ++ S2===== ++ 10 ++ 20 ++ 30 ++ 40 ++ E2===== ++ ++ ++ ++ # Test 3 ++ S3===== ++ 10 ++ ++ 20 ++ ++ 30 ++ ++ 40 ++ E3===== ++ ++ ++ ++ # Test 4 ++ S4===== ++ foobar-10 ++ E4===== ++ ++ ++ ENDTEST ++ +*** ../vim-7.4.753/src/testdir/test_increment.ok 2015-06-25 13:56:12.050135109 +0200 +--- src/testdir/test_increment.ok 2015-06-25 13:38:28.429205490 +0200 +*************** +*** 0 **** +--- 1,66 ---- ++ # Test 1 ++ S1====== ++ foobar-10 ++ E1====== ++ ++ foobar-9 ++ foobar-9 ++ foobar-11 ++ foobar-11 ++ foobar-9 ++ ++ ++ # Test 2 ++ S2===== ++ 10 ++ 20 ++ 30 ++ 40 ++ E2===== ++ ++ 11 ++ 21 ++ 31 ++ 41 ++ ++ 9 ++ 19 ++ 29 ++ 39 ++ ++ # Test 3 ++ S3===== ++ 10 ++ ++ 20 ++ ++ 30 ++ ++ 40 ++ E3===== ++ ++ 12 ++ ++ 24 ++ ++ 36 ++ ++ 48 ++ ++ 8 ++ ++ 16 ++ ++ 24 ++ ++ 32 ++ ++ # Test 4 ++ S4===== ++ foobar-10 ++ E4===== ++ ++ foobar-10 ++ ++ ENDTEST ++ +*** ../vim-7.4.753/src/version.c 2015-06-25 13:30:41.206095684 +0200 +--- src/version.c 2015-06-25 13:38:07.853420831 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 754, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +144. You eagerly await the update of the "Cool Site of the Day." + + /// 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 /// From 67b4e0fe69dfb2121a1132e416f42ea1ea2b9de3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 25 Jun 2015 18:00:06 +0200 Subject: [PATCH 0236/1407] - patchlevel 755 --- 7.4.755 | 245 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 7.4.755 diff --git a/7.4.755 b/7.4.755 new file mode 100644 index 00000000..e425422d --- /dev/null +++ b/7.4.755 @@ -0,0 +1,245 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.755 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.755 +Problem: It is not easy to count the number of characters. +Solution: Add the skipcc argument to strchars(). (Hirohito Higashi, Ken + Takata) +Files: runtime/doc/eval.txt, src/eval.c, src/testdir/test_utf8.in, + src/testdir/test_utf8.ok + + +*** ../vim-7.4.754/runtime/doc/eval.txt 2015-03-20 17:36:38.618949214 +0100 +--- runtime/doc/eval.txt 2015-06-25 15:59:53.104434430 +0200 +*************** +*** 1984,1990 **** + sqrt( {expr}) Float square root of {expr} + str2float( {expr}) Float convert String to Float + str2nr( {expr} [, {base}]) Number convert String to Number +! strchars( {expr}) Number character length of the String {expr} + strdisplaywidth( {expr} [, {col}]) Number display length of the String {expr} + strftime( {format}[, {time}]) String time in specified format + stridx( {haystack}, {needle}[, {start}]) +--- 1985,1991 ---- + sqrt( {expr}) Float square root of {expr} + str2float( {expr}) Float convert String to Float + str2nr( {expr} [, {base}]) Number convert String to Number +! strchars( {expr} [, {skipcc}]) Number character length of the String {expr} + strdisplaywidth( {expr} [, {col}]) Number display length of the String {expr} + strftime( {format}[, {time}]) String time in specified format + stridx( {haystack}, {needle}[, {start}]) +*************** +*** 5792,5806 **** + Text after the number is silently ignored. + + +! strchars({expr}) *strchars()* + The result is a Number, which is the number of characters +! String {expr} occupies. Composing characters are counted +! separately. + Also see |strlen()|, |strdisplaywidth()| and |strwidth()|. + + strdisplaywidth({expr}[, {col}]) *strdisplaywidth()* + The result is a Number, which is the number of display cells +! String {expr} occupies on the screen. + When {col} is omitted zero is used. Otherwise it is the + screen column where to start. This matters for Tab + characters. +--- 5839,5855 ---- + Text after the number is silently ignored. + + +! strchars({expr} [, {skipcc}]) *strchars()* + The result is a Number, which is the number of characters +! in String {expr}. +! When {skipcc} is omitted or zero, composing characters are +! counted separately. +! When {skipcc} set to 1, Composing characters are ignored. + Also see |strlen()|, |strdisplaywidth()| and |strwidth()|. + + strdisplaywidth({expr}[, {col}]) *strdisplaywidth()* + The result is a Number, which is the number of display cells +! String {expr} occupies on the screen when it starts a {col}. + When {col} is omitted zero is used. Otherwise it is the + screen column where to start. This matters for Tab + characters. +*************** +*** 5866,5880 **** + *strlen()* + strlen({expr}) The result is a Number, which is the length of the String + {expr} in bytes. +- If you want to count the number of multi-byte characters (not +- counting composing characters) use something like this: > +- +- :let len = strlen(substitute(str, ".", "x", "g")) +- < + If the argument is a Number it is first converted to a String. + For other types an error is given. +! Also see |len()|, |strchars()|, |strdisplaywidth()| and +! |strwidth()|. + + strpart({src}, {start}[, {len}]) *strpart()* + The result is a String, which is part of {src}, starting from +--- 5915,5925 ---- + *strlen()* + strlen({expr}) The result is a Number, which is the length of the String + {expr} in bytes. + If the argument is a Number it is first converted to a String. + For other types an error is given. +! If you want to count the number of multi-byte characters use +! |strchars()|. +! Also see |len()|, |strdisplaywidth()| and |strwidth()|. + + strpart({src}, {start}[, {len}]) *strpart()* + The result is a String, which is part of {src}, starting from +*** ../vim-7.4.754/src/eval.c 2015-06-19 21:06:04.664521324 +0200 +--- src/eval.c 2015-06-25 15:53:55.992189567 +0200 +*************** +*** 3810,3816 **** + /* (un)lock a List item. */ + item_lock(&lp->ll_li->li_tv, deep, lock); + else +! /* un(lock) a Dictionary item. */ + item_lock(&lp->ll_di->di_tv, deep, lock); + + return ret; +--- 3810,3816 ---- + /* (un)lock a List item. */ + item_lock(&lp->ll_li->li_tv, deep, lock); + else +! /* (un)lock a Dictionary item. */ + item_lock(&lp->ll_di->di_tv, deep, lock); + + return ret; +*************** +*** 8309,8315 **** + {"str2float", 1, 1, f_str2float}, + #endif + {"str2nr", 1, 2, f_str2nr}, +! {"strchars", 1, 1, f_strchars}, + {"strdisplaywidth", 1, 2, f_strdisplaywidth}, + #ifdef HAVE_STRFTIME + {"strftime", 1, 2, f_strftime}, +--- 8309,8315 ---- + {"str2float", 1, 1, f_str2float}, + #endif + {"str2nr", 1, 2, f_str2nr}, +! {"strchars", 1, 2, f_strchars}, + {"strdisplaywidth", 1, 2, f_strdisplaywidth}, + #ifdef HAVE_STRFTIME + {"strftime", 1, 2, f_strftime}, +*************** +*** 18372,18389 **** + typval_T *rettv; + { + char_u *s = get_tv_string(&argvars[0]); + #ifdef FEAT_MBYTE + varnumber_T len = 0; + +! while (*s != NUL) + { +! mb_cptr2char_adv(&s); +! ++len; +! } +! rettv->vval.v_number = len; + #else +! rettv->vval.v_number = (varnumber_T)(STRLEN(s)); + #endif + } + + /* +--- 18372,18401 ---- + typval_T *rettv; + { + char_u *s = get_tv_string(&argvars[0]); ++ int skipcc = 0; + #ifdef FEAT_MBYTE + varnumber_T len = 0; ++ int (*func_mb_ptr2char_adv)(char_u **pp); ++ #endif + +! if (argvars[1].v_type != VAR_UNKNOWN) +! skipcc = get_tv_number_chk(&argvars[1], NULL); +! if (skipcc < 0 || skipcc > 1) +! EMSG(_(e_invarg)); +! else + { +! #ifdef FEAT_MBYTE +! func_mb_ptr2char_adv = skipcc ? mb_ptr2char_adv : mb_cptr2char_adv; +! while (*s != NUL) +! { +! func_mb_ptr2char_adv(&s); +! ++len; +! } +! rettv->vval.v_number = len; + #else +! rettv->vval.v_number = (varnumber_T)(STRLEN(s)); + #endif ++ } + } + + /* +*** ../vim-7.4.754/src/testdir/test_utf8.in 2014-08-16 18:36:38.593993280 +0200 +--- src/testdir/test_utf8.in 2015-06-25 15:53:55.992189567 +0200 +*************** +*** 11,16 **** +--- 11,22 ---- + : + :bwipeout! + :$put=r ++ :" Test for built-in function strchars() ++ :for str in ["a", "ã‚ã„a", "A\u20dd", "A\u20dd\u20dd", "\u20dd"] ++ : $put=strchars(str) ++ : $put=strchars(str, 0) ++ : $put=strchars(str, 1) ++ :endfor + :call garbagecollect(1) + :/^start:/,$wq! test.out + ENDTEST +*** ../vim-7.4.754/src/testdir/test_utf8.ok 2014-08-16 18:36:38.593993280 +0200 +--- src/testdir/test_utf8.ok 2015-06-25 15:53:55.992189567 +0200 +*************** +*** 2,4 **** +--- 2,19 ---- + axaa + xã‚ã‚ã‚ + bxbb ++ 1 ++ 1 ++ 1 ++ 3 ++ 3 ++ 3 ++ 2 ++ 2 ++ 1 ++ 3 ++ 3 ++ 1 ++ 1 ++ 1 ++ 1 +*** ../vim-7.4.754/src/version.c 2015-06-25 13:57:20.033431073 +0200 +--- src/version.c 2015-06-25 15:55:26.071242187 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 755, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +145. You e-mail your boss, informing him you'll be late. + + /// 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 /// From 46d71575bf97d48028c5bf8c9fa3cbcdab74dea0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 25 Jun 2015 18:00:06 +0200 Subject: [PATCH 0237/1407] - patchlevel 756 --- 7.4.756 | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 7.4.756 diff --git a/7.4.756 b/7.4.756 new file mode 100644 index 00000000..48d6cff3 --- /dev/null +++ b/7.4.756 @@ -0,0 +1,176 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.756 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.756 +Problem: Can't use strawberry Perl 5.22 x64 on MS-Windows. +Solution: Add new defines and #if. (Ken Takata) +Files: src/Make_cyg_ming.mak, src/Make_mvc.mak, src/if_perl.xs + + +*** ../vim-7.4.755/src/Make_cyg_ming.mak 2014-12-13 20:50:01.793994592 +0100 +--- src/Make_cyg_ming.mak 2015-06-25 16:11:38.321009757 +0200 +*************** +*** 397,403 **** + endif + + ifdef PERL +! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL + ifeq (yes, $(DYNAMIC_PERL)) + CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" + EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER) +--- 397,403 ---- + endif + + ifdef PERL +! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS + ifeq (yes, $(DYNAMIC_PERL)) + CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" + EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER) +*** ../vim-7.4.755/src/Make_mvc.mak 2015-05-06 11:33:37.168517956 +0200 +--- src/Make_mvc.mak 2015-06-25 16:11:38.325009715 +0200 +*************** +*** 874,880 **** + !endif + !endif + +! CFLAGS = $(CFLAGS) -DFEAT_PERL + + # Do we want to load Perl dynamically? + !if "$(DYNAMIC_PERL)" == "yes" +--- 874,880 ---- + !endif + !endif + +! CFLAGS = $(CFLAGS) -DFEAT_PERL -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS + + # Do we want to load Perl dynamically? + !if "$(DYNAMIC_PERL)" == "yes" +*** ../vim-7.4.755/src/if_perl.xs 2014-06-12 16:03:24.268046589 +0200 +--- src/if_perl.xs 2015-06-25 16:11:38.325009715 +0200 +*************** +*** 197,206 **** + # define Perl_stack_grow dll_Perl_stack_grow + # define Perl_set_context dll_Perl_set_context + # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) +! # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags +! # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck + # else +! # define Perl_sv_2bool dll_Perl_sv_2bool + # endif + # define Perl_sv_2iv dll_Perl_sv_2iv + # define Perl_sv_2mortal dll_Perl_sv_2mortal +--- 197,208 ---- + # define Perl_stack_grow dll_Perl_stack_grow + # define Perl_set_context dll_Perl_set_context + # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) +! # define Perl_sv_2bool_flags dll_Perl_sv_2bool_flags +! # if (PERL_REVISION == 5) && (PERL_VERSION < 22) +! # define Perl_xs_apiversion_bootcheck dll_Perl_xs_apiversion_bootcheck +! # endif + # else +! # define Perl_sv_2bool dll_Perl_sv_2bool + # endif + # define Perl_sv_2iv dll_Perl_sv_2iv + # define Perl_sv_2mortal dll_Perl_sv_2mortal +*************** +*** 268,273 **** +--- 270,279 ---- + # define Perl_call_list dll_Perl_call_list + # define Perl_Iscopestack_ix_ptr dll_Perl_Iscopestack_ix_ptr + # define Perl_Iunitcheckav_ptr dll_Perl_Iunitcheckav_ptr ++ # if (PERL_REVISION == 5) && (PERL_VERSION >= 22) ++ # define Perl_xs_handshake dll_Perl_xs_handshake ++ # define Perl_xs_boot_epilog dll_Perl_xs_boot_epilog ++ # endif + # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) + # ifdef USE_ITHREADS + # define PL_thr_key *dll_PL_thr_key +*************** +*** 299,305 **** +--- 305,315 ---- + static I32 (*Perl_dowantarray)(pTHX); + static void (*Perl_free_tmps)(pTHX); + static HV* (*Perl_gv_stashpv)(pTHX_ const char*, I32); ++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 22) ++ static I32* (*Perl_markstack_grow)(pTHX); ++ #else + static void (*Perl_markstack_grow)(pTHX); ++ #endif + static MAGIC* (*Perl_mg_find)(pTHX_ SV*, int); + static CV* (*Perl_newXS)(pTHX_ char*, XSUBADDR_t, char*); + static SV* (*Perl_newSV)(pTHX_ STRLEN); +*************** +*** 321,327 **** +--- 331,339 ---- + static SV** (*Perl_set_context)(void*); + #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) + static bool (*Perl_sv_2bool_flags)(pTHX_ SV*, I32); ++ # if (PERL_REVISION == 5) && (PERL_VERSION < 22) + static void (*Perl_xs_apiversion_bootcheck)(pTHX_ SV *module, const char *api_p, STRLEN api_len); ++ # endif + #else + static bool (*Perl_sv_2bool)(pTHX_ SV*); + #endif +*************** +*** 394,399 **** +--- 406,415 ---- + static AV** (*Perl_Iunitcheckav_ptr)(register PerlInterpreter*); + # endif + #endif ++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 22) ++ static I32 (*Perl_xs_handshake)(const U32, void *, const char *, ...); ++ static void (*Perl_xs_boot_epilog)(pTHX_ const U32); ++ #endif + + #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) + # ifdef USE_ITHREADS +*************** +*** 453,459 **** +--- 469,477 ---- + {"Perl_set_context", (PERL_PROC*)&Perl_set_context}, + #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) + {"Perl_sv_2bool_flags", (PERL_PROC*)&Perl_sv_2bool_flags}, ++ # if (PERL_REVISION == 5) && (PERL_VERSION < 22) + {"Perl_xs_apiversion_bootcheck",(PERL_PROC*)&Perl_xs_apiversion_bootcheck}, ++ # endif + #else + {"Perl_sv_2bool", (PERL_PROC*)&Perl_sv_2bool}, + #endif +*************** +*** 521,526 **** +--- 539,548 ---- + {"Perl_Iunitcheckav_ptr", (PERL_PROC*)&Perl_Iunitcheckav_ptr}, + # endif + #endif ++ #if (PERL_REVISION == 5) && (PERL_VERSION >= 22) ++ {"Perl_xs_handshake", (PERL_PROC*)&Perl_xs_handshake}, ++ {"Perl_xs_boot_epilog", (PERL_PROC*)&Perl_xs_boot_epilog}, ++ #endif + #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) + # ifdef USE_ITHREADS + {"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key}, +*** ../vim-7.4.755/src/version.c 2015-06-25 16:09:20.706461152 +0200 +--- src/version.c 2015-06-25 16:12:35.536406396 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 756, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +146. You experience ACTUAL physical withdrawal symptoms when away + from your 'puter and the net. + + /// 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 /// From 26e32e8cb6d4e36bc0f896c0cc9506d231fb4b74 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 25 Jun 2015 18:00:06 +0200 Subject: [PATCH 0238/1407] - patchlevel 757 --- 7.4.757 | 273 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 7.4.757 diff --git a/7.4.757 b/7.4.757 new file mode 100644 index 00000000..081af2c7 --- /dev/null +++ b/7.4.757 @@ -0,0 +1,273 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.757 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.757 +Problem: Cannot detect the background color of a terminal. +Solution: Add T_RBG to request the background color if possible. (Lubomir + Rintel) +Files: src/main.c, src/term.c, src/term.h, src/proto/term.pro + + +*** ../vim-7.4.756/src/main.c 2015-04-17 22:08:10.998772925 +0200 +--- src/main.c 2015-06-25 17:01:47.917747345 +0200 +*************** +*** 837,844 **** + + starttermcap(); /* start termcap if not done by wait_return() */ + TIME_MSG("start termcap"); +! #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE) + may_req_ambiguous_char_width(); + #endif + + #ifdef FEAT_MOUSE +--- 837,847 ---- + + starttermcap(); /* start termcap if not done by wait_return() */ + TIME_MSG("start termcap"); +! #if defined(FEAT_TERMRESPONSE) +! # if defined(FEAT_MBYTE) + may_req_ambiguous_char_width(); ++ # endif ++ may_req_bg_color(); + #endif + + #ifdef FEAT_MOUSE +*** ../vim-7.4.756/src/term.c 2015-03-31 18:30:09.139370916 +0200 +--- src/term.c 2015-06-25 16:52:59.359131386 +0200 +*************** +*** 124,129 **** +--- 124,134 ---- + # define U7_SENT 2 /* did send T_U7, waiting for answer */ + # define U7_GOT 3 /* received T_U7 response */ + static int u7_status = U7_GET; ++ /* Request background color report: */ ++ # define RBG_GET 1 /* send T_RBG when switched to RAW mode */ ++ # define RBG_SENT 2 /* did send T_RBG, waiting for answer */ ++ # define RBG_GOT 3 /* received T_RBG response */ ++ static int rbg_status = RBG_GET; + # endif + + /* +*************** +*** 949,954 **** +--- 954,960 ---- + {(int)KS_CWP, IF_EB("\033[3;%d;%dt", ESC_STR "[3;%d;%dt")}, + # endif + {(int)KS_CRV, IF_EB("\033[>c", ESC_STR "[>c")}, ++ {(int)KS_RBG, IF_EB("\033]11;?\007", ESC_STR "]11;?\007")}, + {(int)KS_U7, IF_EB("\033[6n", ESC_STR "[6n")}, + + {K_UP, IF_EB("\033O*A", ESC_STR "O*A")}, +*************** +*** 1240,1245 **** +--- 1246,1252 ---- + # endif + {(int)KS_CRV, "[CRV]"}, + {(int)KS_U7, "[U7]"}, ++ {(int)KS_RBG, "[RBG]"}, + {K_UP, "[KU]"}, + {K_DOWN, "[KD]"}, + {K_LEFT, "[KL]"}, +*************** +*** 3224,3230 **** + * doesn't work in Cooked mode, an external program may get + * them. */ + if (tmode != TMODE_RAW && (crv_status == CRV_SENT +! || u7_status == U7_SENT)) + (void)vpeekc_nomap(); + check_for_codes_from_term(); + } +--- 3231,3238 ---- + * doesn't work in Cooked mode, an external program may get + * them. */ + if (tmode != TMODE_RAW && (crv_status == CRV_SENT +! || u7_status == U7_SENT +! || rbg_status == RBG_SENT)) + (void)vpeekc_nomap(); + check_for_codes_from_term(); + } +*************** +*** 3285,3292 **** + if (!gui.in_use && !gui.starting) + # endif + { +! /* May need to discard T_CRV or T_U7 response. */ +! if (crv_status == CRV_SENT || u7_status == U7_SENT) + { + # ifdef UNIX + /* Give the terminal a chance to respond. */ +--- 3293,3301 ---- + if (!gui.in_use && !gui.starting) + # endif + { +! /* May need to discard T_CRV, T_U7 or T_RBG response. */ +! if (crv_status == CRV_SENT || u7_status == U7_SENT +! || rbg_status == RBG_SENT) + { + # ifdef UNIX + /* Give the terminal a chance to respond. */ +*************** +*** 3398,3403 **** +--- 3407,3447 ---- + } + # endif + ++ #if defined(FEAT_TERMRESPONSE) || defined(PROTO) ++ /* ++ * Check how the terminal treats ambiguous character width (UAX #11). ++ * First, we move the cursor to (1, 0) and print a test ambiguous character ++ * \u25bd (WHITE DOWN-POINTING TRIANGLE) and query current cursor position. ++ * If the terminal treats \u25bd as single width, the position is (1, 1), ++ * or if it is treated as double width, that will be (1, 2). ++ * This function has the side effect that changes cursor position, so ++ * it must be called immediately after entering termcap mode. ++ */ ++ void ++ may_req_bg_color() ++ { ++ if (rbg_status == RBG_GET ++ && cur_tmode == TMODE_RAW ++ && termcap_active ++ && p_ek ++ # ifdef UNIX ++ && isatty(1) ++ && isatty(read_cmd_fd) ++ # endif ++ && *T_RBG != NUL ++ && !option_was_set((char_u *)"bg")) ++ { ++ LOG_TR("Sending BG request"); ++ out_str(T_RBG); ++ rbg_status = RBG_SENT; ++ /* check for the characters now, otherwise they might be eaten by ++ * get_keystroke() */ ++ out_flush(); ++ (void)vpeekc_nomap(); ++ } ++ } ++ # endif ++ + # ifdef DEBUG_TERMRESPONSE + static void + log_tr(char *msg) +*************** +*** 4222,4233 **** + * - Cursor position report: [{row};{col}R + * The final byte must be 'R'. It is used for checking the + * ambiguous-width character state. + */ +! p = tp[0] == CSI ? tp + 1 : tp + 2; +! if ((*T_CRV != NUL || *T_U7 != NUL) + && ((tp[0] == ESC && tp[1] == '[' && len >= 3) + || (tp[0] == CSI && len >= 2)) +! && (VIM_ISDIGIT(*p) || *p == '>' || *p == '?')) + { + #ifdef FEAT_MBYTE + int col; +--- 4266,4283 ---- + * - Cursor position report: [{row};{col}R + * The final byte must be 'R'. It is used for checking the + * ambiguous-width character state. ++ * ++ * - Background color response: ++ * ]11;rgb:{rrrr}/{gggg}/{bbbb}\007 ++ * The final byte must be '\007'. + */ +! char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2; +! +! if ((*T_CRV != NUL || *T_U7 != NUL || *T_RBG != NUL) + && ((tp[0] == ESC && tp[1] == '[' && len >= 3) ++ || (tp[0] == ESC && tp[1] == ']' && len >= 24) + || (tp[0] == CSI && len >= 2)) +! && (VIM_ISDIGIT(*argp) || *argp == '>' || *argp == '?')) + { + #ifdef FEAT_MBYTE + int col; +*************** +*** 4363,4368 **** +--- 4413,4439 ---- + key_name[1] = (int)KE_IGNORE; + slen = i + 1; + } ++ else if (*T_RBG != NUL && len >= 24 - (tp[0] == CSI) ++ && argp[0] == '1' && argp[1] == '1' ++ && argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g' ++ && argp[5] == 'b' && argp[6] == ':' ++ && argp[11] == '/' && argp[16] == '/' ++ && argp[21] == '\007') ++ { ++ LOG_TR("Received RBG"); ++ rbg_status = RBG_GOT; ++ if (!option_was_set((char_u *)"bg")) ++ { ++ set_option_value((char_u *)"bg", 0L, (char_u *)( ++ (3 * '6' < argp[7] + argp[12] + argp[17]) ++ ? "light" : "dark"), 0); ++ reset_option_was_set((char_u *)"bg"); ++ redraw_asap(CLEAR); ++ } ++ key_name[0] = (int)KS_EXTRA; ++ key_name[1] = (int)KE_IGNORE; ++ slen = 24; ++ } + } + + /* Check for 'P1+r\'. A "0" instead of the +*** ../vim-7.4.756/src/term.h 2015-03-31 18:30:09.143370872 +0200 +--- src/term.h 2015-06-25 16:21:55.222506530 +0200 +*************** +*** 79,84 **** +--- 79,85 ---- + KS_CWP, /* set window position in pixels */ + KS_CWS, /* set window size in characters */ + KS_CRV, /* request version string */ ++ KS_RBG, /* request background color */ + KS_CSI, /* start insert mode (bar cursor) */ + KS_CEI, /* end insert mode (block cursor) */ + KS_CSR, /* start replace mode (underline cursor) */ +*************** +*** 162,167 **** +--- 163,169 ---- + #define T_CEI (term_str(KS_CEI)) /* end insert mode */ + #define T_CSR (term_str(KS_CSR)) /* start replace mode */ + #define T_CRV (term_str(KS_CRV)) /* request version string */ ++ #define T_RBG (term_str(KS_RBG)) /* request background RGB */ + #define T_OP (term_str(KS_OP)) /* original color pair */ + #define T_U7 (term_str(KS_U7)) /* request cursor position */ + +*** ../vim-7.4.756/src/proto/term.pro 2014-07-30 17:21:53.819518506 +0200 +--- src/proto/term.pro 2015-06-25 16:39:46.095228111 +0200 +*************** +*** 36,41 **** +--- 36,42 ---- + void stoptermcap __ARGS((void)); + void may_req_termresponse __ARGS((void)); + void may_req_ambiguous_char_width __ARGS((void)); ++ void may_req_bg_color __ARGS((void)); + int swapping_screen __ARGS((void)); + void setmouse __ARGS((void)); + int mouse_has __ARGS((int c)); +*** ../vim-7.4.756/src/version.c 2015-06-25 16:13:37.779750062 +0200 +--- src/version.c 2015-06-25 16:20:48.475209933 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 757, + /**/ + +-- +We are the Borg of GNU GPL. We will assimilate your source code. +Resistance is futile. + + /// 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 /// From 95421e7e22cff54e6eb16d00056eed097e1e6a3f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 25 Jun 2015 18:00:06 +0200 Subject: [PATCH 0239/1407] - patchlevel 757 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index cab64d59..14bdb062 100644 --- a/README.patches +++ b/README.patches @@ -774,3 +774,8 @@ Individual patches for Vim 7.4: 3282 7.4.750 cannot build with clang 3.5 on Cygwin with perl enabled 3533 7.4.751 it is not obvious how to enable the address sanitizer 5908 7.4.752 Unicode 8.0 not supported + 10679 7.4.753 appending in Visual mode with 'linebreak' set is wrong + 24821 7.4.754 using CTRL-A in Visual mode does not work well + 7572 7.4.755 it is not easy to count the number of characters + 6051 7.4.756 can't use strawberry Perl 5.22 x64 on MS-Windows + 8830 7.4.757 cannot detect the background color of a terminal diff --git a/vim.spec b/vim.spec index e1eff501..1cc37a8d 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 752 +%define patchlevel 757 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -799,6 +799,11 @@ Patch749: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.749 Patch750: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.750 Patch751: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.751 Patch752: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.752 +Patch753: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.753 +Patch754: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.754 +Patch755: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.755 +Patch756: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.756 +Patch757: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.757 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1701,6 +1706,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch750 -p0 %patch751 -p0 %patch752 -p0 +%patch753 -p0 +%patch754 -p0 +%patch755 -p0 +%patch756 -p0 +%patch757 -p0 # install spell files %if %{withvimspell} @@ -2257,6 +2267,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Jun 25 2015 Karsten Hopp 7.4.757-1 +- patchlevel 757 + * Mon Jun 22 2015 Karsten Hopp 7.4.752-1 - patchlevel 752 From e36e7c27d5aecacd1d4b04fd7dfe1d5fa2319393 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 26 Jun 2015 18:00:03 +0200 Subject: [PATCH 0240/1407] - patchlevel 758 --- 7.4.758 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.4.758 diff --git a/7.4.758 b/7.4.758 new file mode 100644 index 00000000..c76f4795 --- /dev/null +++ b/7.4.758 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.758 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.758 +Problem: When 'conceallevel' is 1 and quitting the command-line window with + CTRL-C the first character ':' is erased. +Solution: Reset 'conceallevel' in the command-line window. (Hirohito + Higashi) +Files: src/ex_getln.c + + +*** ../vim-7.4.757/src/ex_getln.c 2015-04-03 17:06:21.744398370 +0200 +--- src/ex_getln.c 2015-06-25 18:18:53.118270102 +0200 +*************** +*** 6611,6616 **** +--- 6611,6620 ---- + /* Don't execute autocommands while deleting the window. */ + block_autocmds(); + # endif ++ # ifdef FEAT_CONCEAL ++ /* Avoid command-line window first character being concealed. */ ++ curwin->w_p_cole = 0; ++ # endif + wp = curwin; + bp = curbuf; + win_goto(old_curwin); +*** ../vim-7.4.757/src/version.c 2015-06-25 17:03:32.584666216 +0200 +--- src/version.c 2015-06-25 18:17:36.035060772 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 758, + /**/ + +-- +You are not really successful until someone claims he sat +beside you in school. + + /// 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 /// From e0ae174b354af9a7a3f4be248d964a4c6ab3c578 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 26 Jun 2015 18:00:04 +0200 Subject: [PATCH 0241/1407] - patchlevel 759 --- 7.4.759 | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 7.4.759 diff --git a/7.4.759 b/7.4.759 new file mode 100644 index 00000000..1815a5a5 --- /dev/null +++ b/7.4.759 @@ -0,0 +1,139 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.759 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.759 +Problem: Building with Lua 5.3 doesn't work, symbols have changed. +Solution: Use the new names for the new version. (Felix Schnizlein) +Files: src/if_lua.c + + +*** ../vim-7.4.758/src/if_lua.c 2015-02-17 16:28:51.365508352 +0100 +--- src/if_lua.c 2015-06-25 18:24:28.026834336 +0200 +*************** +*** 111,117 **** +--- 111,122 ---- + #define lua_tointeger dll_lua_tointeger + #define lua_call dll_lua_call + #define lua_pcall dll_lua_pcall ++ ++ #elif LUA_VERSION_NUM <= 502 ++ #define lua_replace dll_lua_replace ++ #define lua_remove dll_lua_remove + #else ++ #define lua_rotate dll_lua_rotate + #define lua_tonumberx dll_lua_tonumberx + #define lua_tointegerx dll_lua_tointegerx + #define lua_callk dll_lua_callk +*************** +*** 124,131 **** + #define lua_gettop dll_lua_gettop + #define lua_settop dll_lua_settop + #define lua_pushvalue dll_lua_pushvalue +! #define lua_replace dll_lua_replace +! #define lua_remove dll_lua_remove + #define lua_isnumber dll_lua_isnumber + #define lua_isstring dll_lua_isstring + #define lua_type dll_lua_type +--- 129,135 ---- + #define lua_gettop dll_lua_gettop + #define lua_settop dll_lua_settop + #define lua_pushvalue dll_lua_pushvalue +! #define lua_copy dll_lua_copy + #define lua_isnumber dll_lua_isnumber + #define lua_isstring dll_lua_isstring + #define lua_type dll_lua_type +*************** +*** 195,201 **** +--- 199,210 ---- + lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx); + void (*dll_lua_call) (lua_State *L, int nargs, int nresults); + int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); ++ #elif LUA_VERSION_NUM <= 502 ++ void (*dll_lua_replace) (lua_State *L, int idx); ++ void (*dll_lua_remove) (lua_State *L, int idx); + #else ++ ++ void (*dll_lua_rotate) (lua_State *L, int idx, int n); + lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum); + lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum); + void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx, +*************** +*** 204,217 **** + int ctx, lua_CFunction k); + void (*dll_lua_getglobal) (lua_State *L, const char *var); + void (*dll_lua_setglobal) (lua_State *L, const char *var); + #endif + const char *(*dll_lua_typename) (lua_State *L, int tp); + void (*dll_lua_close) (lua_State *L); + int (*dll_lua_gettop) (lua_State *L); + void (*dll_lua_settop) (lua_State *L, int idx); + void (*dll_lua_pushvalue) (lua_State *L, int idx); +- void (*dll_lua_replace) (lua_State *L, int idx); +- void (*dll_lua_remove) (lua_State *L, int idx); + int (*dll_lua_isnumber) (lua_State *L, int idx); + int (*dll_lua_isstring) (lua_State *L, int idx); + int (*dll_lua_type) (lua_State *L, int idx); +--- 213,225 ---- + int ctx, lua_CFunction k); + void (*dll_lua_getglobal) (lua_State *L, const char *var); + void (*dll_lua_setglobal) (lua_State *L, const char *var); ++ void (*dll_lua_copy) (lua_State *L, int fromidx, int toidx); + #endif + const char *(*dll_lua_typename) (lua_State *L, int tp); + void (*dll_lua_close) (lua_State *L); + int (*dll_lua_gettop) (lua_State *L); + void (*dll_lua_settop) (lua_State *L, int idx); + void (*dll_lua_pushvalue) (lua_State *L, int idx); + int (*dll_lua_isnumber) (lua_State *L, int idx); + int (*dll_lua_isstring) (lua_State *L, int idx); + int (*dll_lua_type) (lua_State *L, int idx); +*************** +*** 288,294 **** +--- 296,307 ---- + {"lua_tointeger", (luaV_function) &dll_lua_tointeger}, + {"lua_call", (luaV_function) &dll_lua_call}, + {"lua_pcall", (luaV_function) &dll_lua_pcall}, ++ #elif LUA_VERSION_NUM <= 502 ++ {"lua_replace", (luaV_function) &dll_lua_replace}, ++ {"lua_remove", (luaV_function) &dll_lua_remove}, + #else ++ {"lua_rotate", (luaV_function) &dll_lua_rotate}, ++ {"lua_copy", (luaV_function) &dll_lua_copy}, + {"lua_tonumberx", (luaV_function) &dll_lua_tonumberx}, + {"lua_tointegerx", (luaV_function) &dll_lua_tointegerx}, + {"lua_callk", (luaV_function) &dll_lua_callk}, +*************** +*** 301,308 **** + {"lua_gettop", (luaV_function) &dll_lua_gettop}, + {"lua_settop", (luaV_function) &dll_lua_settop}, + {"lua_pushvalue", (luaV_function) &dll_lua_pushvalue}, +- {"lua_replace", (luaV_function) &dll_lua_replace}, +- {"lua_remove", (luaV_function) &dll_lua_remove}, + {"lua_isnumber", (luaV_function) &dll_lua_isnumber}, + {"lua_isstring", (luaV_function) &dll_lua_isstring}, + {"lua_type", (luaV_function) &dll_lua_type}, +--- 314,319 ---- +*** ../vim-7.4.758/src/version.c 2015-06-25 18:20:30.437271806 +0200 +--- src/version.c 2015-06-25 18:25:17.978321826 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 759, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +150. You find yourself counting emoticons to get to sleep. + + /// 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 /// From 4304f15b2b379bf058c9fdf933c71eb9254d4124 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 26 Jun 2015 18:00:04 +0200 Subject: [PATCH 0242/1407] - patchlevel 760 --- 7.4.760 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.760 diff --git a/7.4.760 b/7.4.760 new file mode 100644 index 00000000..700112db --- /dev/null +++ b/7.4.760 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.760 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.760 +Problem: Spelling mistakes are not displayed after ":syn spell". +Solution: Force a redraw after ":syn spell" command. (Christian Brabandt) +Files: src/syntax.c + + +*** ../vim-7.4.759/src/syntax.c 2015-03-21 21:46:07.562423678 +0100 +--- src/syntax.c 2015-06-25 18:35:12.860164934 +0200 +*************** +*** 3469,3475 **** +--- 3469,3481 ---- + else if (STRNICMP(arg, "default", 7) == 0 && next - arg == 7) + curwin->w_s->b_syn_spell = SYNSPL_DEFAULT; + else ++ { + EMSG2(_("E390: Illegal argument: %s"), arg); ++ return; ++ } ++ ++ /* assume spell checking changed, force a redraw */ ++ redraw_win_later(curwin, NOT_VALID); + } + + /* +*** ../vim-7.4.759/src/version.c 2015-06-25 18:27:27.312991420 +0200 +--- src/version.c 2015-06-25 18:31:07.810705103 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 760, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +151. You find yourself engaged to someone you've never actually met, + except through e-mail. + + /// 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 /// From cf25df0d604764bae6c43ac62b09db02ff75baf0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 26 Jun 2015 18:00:04 +0200 Subject: [PATCH 0243/1407] - patchlevel 761 --- 7.4.761 | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 7.4.761 diff --git a/7.4.761 b/7.4.761 new file mode 100644 index 00000000..570d581b --- /dev/null +++ b/7.4.761 @@ -0,0 +1,141 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.761 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.761 (after 7.4.757) +Problem: The request-background termcode implementation is incomplete. +Solution: Add the missing pieces. +Files: src/option.c, src/term.c + + +*** ../vim-7.4.760/src/option.c 2015-06-20 15:29:57.202600053 +0200 +--- src/option.c 2015-06-25 19:16:40.602023280 +0200 +*************** +*** 2953,2963 **** + #ifdef FEAT_VERTSPLIT + p_term("t_CV", T_CSV) + #endif +- p_term("t_ut", T_UT) + p_term("t_da", T_DA) + p_term("t_db", T_DB) + p_term("t_DL", T_CDL) + p_term("t_dl", T_DL) + p_term("t_fs", T_FS) + p_term("t_IE", T_CIE) + p_term("t_IS", T_CIS) +--- 2953,2963 ---- + #ifdef FEAT_VERTSPLIT + p_term("t_CV", T_CSV) + #endif + p_term("t_da", T_DA) + p_term("t_db", T_DB) + p_term("t_DL", T_CDL) + p_term("t_dl", T_DL) ++ p_term("t_EI", T_CEI) + p_term("t_fs", T_FS) + p_term("t_IE", T_CIE) + p_term("t_IS", T_CIS) +*************** +*** 2971,2998 **** + p_term("t_ms", T_MS) + p_term("t_nd", T_ND) + p_term("t_op", T_OP) + p_term("t_RI", T_CRI) + p_term("t_RV", T_CRV) +- p_term("t_u7", T_U7) + p_term("t_Sb", T_CSB) +- p_term("t_Sf", T_CSF) + p_term("t_se", T_SE) + p_term("t_so", T_SO) + p_term("t_sr", T_SR) +- p_term("t_ts", T_TS) + p_term("t_te", T_TE) + p_term("t_ti", T_TI) + p_term("t_ue", T_UE) + p_term("t_us", T_US) + p_term("t_vb", T_VB) + p_term("t_ve", T_VE) + p_term("t_vi", T_VI) + p_term("t_vs", T_VS) + p_term("t_WP", T_CWP) + p_term("t_WS", T_CWS) +- p_term("t_SI", T_CSI) +- p_term("t_EI", T_CEI) +- p_term("t_SR", T_CSR) + p_term("t_xn", T_XN) + p_term("t_xs", T_XS) + p_term("t_ZH", T_CZH) +--- 2971,2999 ---- + p_term("t_ms", T_MS) + p_term("t_nd", T_ND) + p_term("t_op", T_OP) ++ p_term("t_RB", T_RBG) + p_term("t_RI", T_CRI) + p_term("t_RV", T_CRV) + p_term("t_Sb", T_CSB) + p_term("t_se", T_SE) ++ p_term("t_Sf", T_CSF) ++ p_term("t_SI", T_CSI) + p_term("t_so", T_SO) ++ p_term("t_SR", T_CSR) + p_term("t_sr", T_SR) + p_term("t_te", T_TE) + p_term("t_ti", T_TI) ++ p_term("t_ts", T_TS) ++ p_term("t_u7", T_U7) + p_term("t_ue", T_UE) + p_term("t_us", T_US) ++ p_term("t_ut", T_UT) + p_term("t_vb", T_VB) + p_term("t_ve", T_VE) + p_term("t_vi", T_VI) + p_term("t_vs", T_VS) + p_term("t_WP", T_CWP) + p_term("t_WS", T_CWS) + p_term("t_xn", T_XN) + p_term("t_xs", T_XS) + p_term("t_ZH", T_CZH) +*** ../vim-7.4.760/src/term.c 2015-06-25 17:03:32.580666257 +0200 +--- src/term.c 2015-06-25 19:12:02.025021491 +0200 +*************** +*** 1622,1628 **** + {KS_TS, "ts"}, {KS_FS, "fs"}, + {KS_CWP, "WP"}, {KS_CWS, "WS"}, + {KS_CSI, "SI"}, {KS_CEI, "EI"}, +! {KS_U7, "u7"}, + {(enum SpecialKey)0, NULL} + }; + +--- 1622,1628 ---- + {KS_TS, "ts"}, {KS_FS, "fs"}, + {KS_CWP, "WP"}, {KS_CWS, "WS"}, + {KS_CSI, "SI"}, {KS_CEI, "EI"}, +! {KS_U7, "u7"}, {KS_RBG, "RB"}, + {(enum SpecialKey)0, NULL} + }; + +*** ../vim-7.4.760/src/version.c 2015-06-25 18:36:20.511463791 +0200 +--- src/version.c 2015-06-25 19:13:01.972375858 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 761, + /**/ + +-- +Although the scythe isn't pre-eminent among the weapons of war, anyone who +has been on the wrong end of, say, a peasants' revolt will know that in +skilled hands it is fearsome. + -- (Terry Pratchett, Mort) + + /// 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 /// From 11e021a61357470c20932f11733e382bb7b95be5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 26 Jun 2015 18:00:04 +0200 Subject: [PATCH 0244/1407] - patchlevel 761 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 14bdb062..673116ff 100644 --- a/README.patches +++ b/README.patches @@ -779,3 +779,7 @@ Individual patches for Vim 7.4: 7572 7.4.755 it is not easy to count the number of characters 6051 7.4.756 can't use strawberry Perl 5.22 x64 on MS-Windows 8830 7.4.757 cannot detect the background color of a terminal + 1573 7.4.758 'conceallevel' in command-line window hides first character + 5370 7.4.759 building with Lua 5.3 doesn't work, symbols have changed + 1596 7.4.760 spelling mistakes are not displayed after ":syn spell" + 4055 7.4.761 (after 7.4.757) incomplete request-background implementation diff --git a/vim.spec b/vim.spec index 1cc37a8d..595e0121 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 757 +%define patchlevel 761 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -804,6 +804,10 @@ Patch754: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.754 Patch755: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.755 Patch756: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.756 Patch757: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.757 +Patch758: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.758 +Patch759: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.759 +Patch760: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.760 +Patch761: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.761 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1711,6 +1715,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch755 -p0 %patch756 -p0 %patch757 -p0 +%patch758 -p0 +%patch759 -p0 +%patch760 -p0 +%patch761 -p0 # install spell files %if %{withvimspell} @@ -2267,6 +2275,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Jun 26 2015 Karsten Hopp 7.4.761-1 +- patchlevel 761 + * Thu Jun 25 2015 Karsten Hopp 7.4.757-1 - patchlevel 757 From c2ece9c0942354755472bbabb250f46ff95d4083 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 28 Jun 2015 18:00:03 +0200 Subject: [PATCH 0245/1407] - patchlevel 762 --- 7.4.762 | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 7.4.762 diff --git a/7.4.762 b/7.4.762 new file mode 100644 index 00000000..54020b2f --- /dev/null +++ b/7.4.762 @@ -0,0 +1,60 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.762 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.762 (after 7.4.757) +Problem: Comment for may_req_bg_color() is wrong. (Christ van Willegen) +Solution: Rewrite the comment. +Files: src/term.c + + +*** ../vim-7.4.761/src/term.c 2015-06-25 19:16:51.489906203 +0200 +--- src/term.c 2015-06-25 20:07:42.969433277 +0200 +*************** +*** 3409,3421 **** + + #if defined(FEAT_TERMRESPONSE) || defined(PROTO) + /* +! * Check how the terminal treats ambiguous character width (UAX #11). +! * First, we move the cursor to (1, 0) and print a test ambiguous character +! * \u25bd (WHITE DOWN-POINTING TRIANGLE) and query current cursor position. +! * If the terminal treats \u25bd as single width, the position is (1, 1), +! * or if it is treated as double width, that will be (1, 2). +! * This function has the side effect that changes cursor position, so +! * it must be called immediately after entering termcap mode. + */ + void + may_req_bg_color() +--- 3409,3416 ---- + + #if defined(FEAT_TERMRESPONSE) || defined(PROTO) + /* +! * Similar to requesting the version string: Request the terminal background +! * color when it is the right moment. + */ + void + may_req_bg_color() +*** ../vim-7.4.761/src/version.c 2015-06-25 19:16:51.489906203 +0200 +--- src/version.c 2015-06-27 18:33:02.632450430 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 762, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +163. You go outside for the fresh air (at -30 degrees) but open the + window first to hear new mail arrive. + + /// 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 /// From 8d3a2be853428b60f83bd0aca2db4d07418fa1a6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 28 Jun 2015 18:00:03 +0200 Subject: [PATCH 0246/1407] - patchlevel 763 --- 7.4.763 | 146 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 7.4.763 diff --git a/7.4.763 b/7.4.763 new file mode 100644 index 00000000..880e34e9 --- /dev/null +++ b/7.4.763 @@ -0,0 +1,146 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.763 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.763 (after 7.4.759) +Problem: Building with Lua 5.1 doesn't work. +Solution: Define lua_replace and lua_remove. (KF Leong) +Files: src/if_lua.c + + +*** ../vim-7.4.762/src/if_lua.c 2015-06-25 18:27:27.312991420 +0200 +--- src/if_lua.c 2015-06-27 18:30:11.046265315 +0200 +*************** +*** 111,122 **** + #define lua_tointeger dll_lua_tointeger + #define lua_call dll_lua_call + #define lua_pcall dll_lua_pcall +- +- #elif LUA_VERSION_NUM <= 502 +- #define lua_replace dll_lua_replace +- #define lua_remove dll_lua_remove + #else +- #define lua_rotate dll_lua_rotate + #define lua_tonumberx dll_lua_tonumberx + #define lua_tointegerx dll_lua_tointegerx + #define lua_callk dll_lua_callk +--- 111,117 ---- +*************** +*** 124,135 **** + #define lua_getglobal dll_lua_getglobal + #define lua_setglobal dll_lua_setglobal + #endif + #define lua_typename dll_lua_typename + #define lua_close dll_lua_close + #define lua_gettop dll_lua_gettop + #define lua_settop dll_lua_settop + #define lua_pushvalue dll_lua_pushvalue +- #define lua_copy dll_lua_copy + #define lua_isnumber dll_lua_isnumber + #define lua_isstring dll_lua_isstring + #define lua_type dll_lua_type +--- 119,137 ---- + #define lua_getglobal dll_lua_getglobal + #define lua_setglobal dll_lua_setglobal + #endif ++ #if LUA_VERSION_NUM <= 502 ++ #define lua_replace dll_lua_replace ++ #define lua_remove dll_lua_remove ++ #endif ++ #if LUA_VERSION_NUM >= 503 ++ #define lua_rotate dll_lua_rotate ++ #define lua_copy dll_lua_copy ++ #endif + #define lua_typename dll_lua_typename + #define lua_close dll_lua_close + #define lua_gettop dll_lua_gettop + #define lua_settop dll_lua_settop + #define lua_pushvalue dll_lua_pushvalue + #define lua_isnumber dll_lua_isnumber + #define lua_isstring dll_lua_isstring + #define lua_type dll_lua_type +*************** +*** 199,210 **** + lua_Integer (*dll_lua_tointeger) (lua_State *L, int idx); + void (*dll_lua_call) (lua_State *L, int nargs, int nresults); + int (*dll_lua_pcall) (lua_State *L, int nargs, int nresults, int errfunc); +- #elif LUA_VERSION_NUM <= 502 +- void (*dll_lua_replace) (lua_State *L, int idx); +- void (*dll_lua_remove) (lua_State *L, int idx); + #else +- +- void (*dll_lua_rotate) (lua_State *L, int idx, int n); + lua_Number (*dll_lua_tonumberx) (lua_State *L, int idx, int *isnum); + lua_Integer (*dll_lua_tointegerx) (lua_State *L, int idx, int *isnum); + void (*dll_lua_callk) (lua_State *L, int nargs, int nresults, int ctx, +--- 201,207 ---- +*************** +*** 213,218 **** +--- 210,222 ---- + int ctx, lua_CFunction k); + void (*dll_lua_getglobal) (lua_State *L, const char *var); + void (*dll_lua_setglobal) (lua_State *L, const char *var); ++ #endif ++ #if LUA_VERSION_NUM <= 502 ++ void (*dll_lua_replace) (lua_State *L, int idx); ++ void (*dll_lua_remove) (lua_State *L, int idx); ++ #endif ++ #if LUA_VERSION_NUM >= 503 ++ void (*dll_lua_rotate) (lua_State *L, int idx, int n); + void (*dll_lua_copy) (lua_State *L, int fromidx, int toidx); + #endif + const char *(*dll_lua_typename) (lua_State *L, int tp); +*************** +*** 296,307 **** + {"lua_tointeger", (luaV_function) &dll_lua_tointeger}, + {"lua_call", (luaV_function) &dll_lua_call}, + {"lua_pcall", (luaV_function) &dll_lua_pcall}, +- #elif LUA_VERSION_NUM <= 502 +- {"lua_replace", (luaV_function) &dll_lua_replace}, +- {"lua_remove", (luaV_function) &dll_lua_remove}, + #else +- {"lua_rotate", (luaV_function) &dll_lua_rotate}, +- {"lua_copy", (luaV_function) &dll_lua_copy}, + {"lua_tonumberx", (luaV_function) &dll_lua_tonumberx}, + {"lua_tointegerx", (luaV_function) &dll_lua_tointegerx}, + {"lua_callk", (luaV_function) &dll_lua_callk}, +--- 300,306 ---- +*************** +*** 309,314 **** +--- 308,321 ---- + {"lua_getglobal", (luaV_function) &dll_lua_getglobal}, + {"lua_setglobal", (luaV_function) &dll_lua_setglobal}, + #endif ++ #if LUA_VERSION_NUM <= 502 ++ {"lua_replace", (luaV_function) &dll_lua_replace}, ++ {"lua_remove", (luaV_function) &dll_lua_remove}, ++ #endif ++ #if LUA_VERSION_NUM >= 503 ++ {"lua_rotate", (luaV_function) &dll_lua_rotate}, ++ {"lua_copy", (luaV_function) &dll_lua_copy}, ++ #endif + {"lua_typename", (luaV_function) &dll_lua_typename}, + {"lua_close", (luaV_function) &dll_lua_close}, + {"lua_gettop", (luaV_function) &dll_lua_gettop}, +*** ../vim-7.4.762/src/version.c 2015-06-27 18:34:19.503618396 +0200 +--- src/version.c 2015-06-27 18:35:56.010574502 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 763, + /**/ + +-- +If you feel lonely, try schizophrenia. + + /// 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 /// From 551e60bcf142ea699f83011040c5c22c0634615f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 28 Jun 2015 18:00:04 +0200 Subject: [PATCH 0247/1407] - patchlevel 763 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 673116ff..1c9a5e22 100644 --- a/README.patches +++ b/README.patches @@ -783,3 +783,5 @@ Individual patches for Vim 7.4: 5370 7.4.759 building with Lua 5.3 doesn't work, symbols have changed 1596 7.4.760 spelling mistakes are not displayed after ":syn spell" 4055 7.4.761 (after 7.4.757) incomplete request-background implementation + 2084 7.4.762 (after 7.4.757) comment for may_req_bg_color() is wrong + 5135 7.4.763 (after 7.4.759) building with Lua 5.1 doesn't work diff --git a/vim.spec b/vim.spec index 595e0121..76a0f3d6 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 761 +%define patchlevel 763 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -808,6 +808,8 @@ Patch758: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.758 Patch759: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.759 Patch760: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.760 Patch761: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.761 +Patch762: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.762 +Patch763: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.763 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1719,6 +1721,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch759 -p0 %patch760 -p0 %patch761 -p0 +%patch762 -p0 +%patch763 -p0 # install spell files %if %{withvimspell} @@ -2275,6 +2279,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Jun 28 2015 Karsten Hopp 7.4.763-1 +- patchlevel 763 + * Fri Jun 26 2015 Karsten Hopp 7.4.761-1 - patchlevel 761 From 27f4b4a541c397172e73e4b644c3f8019047528b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 29 Jun 2015 18:00:03 +0200 Subject: [PATCH 0248/1407] - patchlevel 764 --- 7.4.764 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.764 diff --git a/7.4.764 b/7.4.764 new file mode 100644 index 00000000..0cd91faa --- /dev/null +++ b/7.4.764 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.764 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.764 (after 7.4.754) +Problem: test_increment fails on MS-Windows. (Ken Takata) +Solution: Clear Visual mappings. (Taro Muraoka) +Files: src/testdir/test_increment.in + + +*** ../vim-7.4.763/src/testdir/test_increment.in 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/test_increment.in 2015-06-28 19:19:13.182284987 +0200 +*************** +*** 71,77 **** + + STARTTEST + :so small.vim +! + :" Test 1 + :/^S1=/+,/^E1=/-y a + :/^E1/+put a +--- 71,80 ---- + + STARTTEST + :so small.vim +! :" +! :" Avoid CTRL-X being mapped in Visual mode for MS-Windows +! :vmapclear +! :" + :" Test 1 + :/^S1=/+,/^E1=/-y a + :/^E1/+put a +*** ../vim-7.4.763/src/version.c 2015-06-27 18:36:09.110432861 +0200 +--- src/version.c 2015-06-28 19:20:11.649666515 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 764, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +166. You have been on your computer soo long that you didn't realize + you had grandchildren. + + /// 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 /// From ee1ea47b4e03d2646e9b98ee5858ac0c34d5a7d0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 29 Jun 2015 18:00:04 +0200 Subject: [PATCH 0249/1407] - patchlevel 764 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 1c9a5e22..ff809eb7 100644 --- a/README.patches +++ b/README.patches @@ -785,3 +785,4 @@ Individual patches for Vim 7.4: 4055 7.4.761 (after 7.4.757) incomplete request-background implementation 2084 7.4.762 (after 7.4.757) comment for may_req_bg_color() is wrong 5135 7.4.763 (after 7.4.759) building with Lua 5.1 doesn't work + 1553 7.4.764 (after 7.4.754) test_increment fails on MS-Windows diff --git a/vim.spec b/vim.spec index 76a0f3d6..4c86d14a 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 763 +%define patchlevel 764 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -810,6 +810,7 @@ Patch760: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.760 Patch761: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.761 Patch762: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.762 Patch763: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.763 +Patch764: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.764 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1723,6 +1724,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch761 -p0 %patch762 -p0 %patch763 -p0 +%patch764 -p0 # install spell files %if %{withvimspell} @@ -2279,6 +2281,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Jun 29 2015 Karsten Hopp 7.4.764-1 +- patchlevel 764 + * Sun Jun 28 2015 Karsten Hopp 7.4.763-1 - patchlevel 763 From 887d8018bb27e17efc2b85f48dde1c6ae21324d6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Jul 2015 18:00:04 +0200 Subject: [PATCH 0250/1407] - patchlevel 765 --- 7.4.765 | 759 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 759 insertions(+) create mode 100644 7.4.765 diff --git a/7.4.765 b/7.4.765 new file mode 100644 index 00000000..768422a4 --- /dev/null +++ b/7.4.765 @@ -0,0 +1,759 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.765 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.765 (after 7.4.754) +Problem: CTRL-A and CTRL-X in Visual mode do not always work well. +Solution: Improvements for increment and decrement. (Christian Brabandt) +Files: src/normal.c, src/ops.c, src/testdir/test_increment.in, + src/testdir/test_increment.ok + + +*** ../vim-7.4.764/src/normal.c 2015-06-25 13:57:20.029431114 +0200 +--- src/normal.c 2015-07-03 11:43:43.250141166 +0200 +*************** +*** 4204,4210 **** + int visual = VIsual_active; + if (cap->oap->op_type == OP_NOP + && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK) +! prep_redo_cmd(cap); + else + clearopbeep(cap->oap); + if (visual) +--- 4204,4227 ---- + int visual = VIsual_active; + if (cap->oap->op_type == OP_NOP + && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK) +! { +! if (visual) +! { +! ResetRedobuff(); +! AppendCharToRedobuff(VIsual_mode); +! if (VIsual_mode == 'V') +! { +! AppendNumberToRedobuff(cap->oap->line_count); +! AppendCharToRedobuff('j'); +! } +! AppendNumberToRedobuff(cap->count1); +! if (cap->nchar != NUL) +! AppendCharToRedobuff(cap->nchar); +! AppendCharToRedobuff(cap->cmdchar); +! } +! else +! prep_redo_cmd(cap); +! } + else + clearopbeep(cap->oap); + if (visual) +*** ../vim-7.4.764/src/ops.c 2015-06-25 13:57:20.033431073 +0200 +--- src/ops.c 2015-07-03 12:31:42.315559376 +0200 +*************** +*** 5386,5392 **** + int hex; /* 'X' or 'x': hex; '0': octal */ + static int hexupper = FALSE; /* 0xABC */ + unsigned long n; +! long offset = 0; /* line offset for Ctrl_V mode */ + long_u oldn; + char_u *ptr; + int c; +--- 5386,5392 ---- + int hex; /* 'X' or 'x': hex; '0': octal */ + static int hexupper = FALSE; /* 0xABC */ + unsigned long n; +! unsigned long offset = 0; /* line offset for Ctrl_V mode */ + long_u oldn; + char_u *ptr; + int c; +*************** +*** 5398,5407 **** +--- 5398,5409 ---- + int firstdigit; + int subtract; + int negative = FALSE; ++ int was_positive = TRUE; + int visual = VIsual_active; + int i; + int lnum = curwin->w_cursor.lnum; + int lnume = curwin->w_cursor.lnum; ++ int startcol; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ + dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL); /* "Octal" */ +*************** +*** 5431,5444 **** + curbuf->b_visual.vi_end = curwin->w_cursor; + curbuf->b_visual.vi_mode = VIsual_mode; + +! col = VIsual.col; + lnum = VIsual.lnum; + lnume = curwin->w_cursor.lnum; +- if (ptr[col] == '-') +- { +- negative = TRUE; +- col++; +- } + } + else + { +--- 5433,5446 ---- + curbuf->b_visual.vi_end = curwin->w_cursor; + curbuf->b_visual.vi_mode = VIsual_mode; + +! if (VIsual_mode != 'v') +! startcol = VIsual.col < curwin->w_cursor.col ? VIsual.col +! : curwin->w_cursor.col; +! else +! startcol = VIsual.col; +! col = startcol; + lnum = VIsual.lnum; + lnume = curwin->w_cursor.lnum; + } + else + { +*************** +*** 5481,5489 **** + { + curwin->w_cursor.lnum = i; + ptr = ml_get_curline(); +- RLADDSUBFIX(ptr); + if ((int)STRLEN(ptr) <= col) +! col = 0; + /* + * If a number was found, and saving for undo works, replace the number. + */ +--- 5483,5498 ---- + { + curwin->w_cursor.lnum = i; + ptr = ml_get_curline(); + if ((int)STRLEN(ptr) <= col) +! /* try again on next line */ +! continue; +! if (visual && ptr[col] == '-') +! { +! negative = TRUE; +! was_positive = FALSE; +! col++; +! } +! RLADDSUBFIX(ptr); + /* + * If a number was found, and saving for undo works, replace the number. + */ +*************** +*** 5598,5603 **** +--- 5607,5620 ---- + negative = FALSE; + } + ++ if (visual && !was_positive && !negative) ++ { ++ /* need to remove the '-' */ ++ col--; ++ length++; ++ } ++ ++ + /* + * Delete the old number. + */ +*************** +*** 5634,5641 **** + if (buf1 == NULL) + return FAIL; + ptr = buf1; +! /* do not add leading '-' for visual mode */ +! if (negative && !visual) + { + *ptr++ = '-'; + } +--- 5651,5657 ---- + if (buf1 == NULL) + return FAIL; + ptr = buf1; +! if (negative && (!visual || (visual && was_positive))) + { + *ptr++ = '-'; + } +*************** +*** 5654,5676 **** + * Put the number characters in buf2[]. + */ + if (hex == 0) +! sprintf((char *)buf2, "%lu", n + offset); + else if (hex == '0') +! sprintf((char *)buf2, "%lo", n + offset); + else if (hex && hexupper) +! sprintf((char *)buf2, "%lX", n + offset); + else +! sprintf((char *)buf2, "%lx", n + offset); + length -= (int)STRLEN(buf2); + +- if (g_cmd) +- { +- if (subtract) +- offset -= (unsigned long)Prenum1; +- else +- offset += (unsigned long)Prenum1; +- } +- + /* + * Adjust number of zeros to the new number of digits, so the + * total length of the number remains the same. +--- 5670,5684 ---- + * Put the number characters in buf2[]. + */ + if (hex == 0) +! sprintf((char *)buf2, "%lu", n); + else if (hex == '0') +! sprintf((char *)buf2, "%lo", n); + else if (hex && hexupper) +! sprintf((char *)buf2, "%lX", n); + else +! sprintf((char *)buf2, "%lx", n); + length -= (int)STRLEN(buf2); + + /* + * Adjust number of zeros to the new number of digits, so the + * total length of the number remains the same. +*************** +*** 5685,5697 **** + ins_str(buf1); /* insert the new number */ + vim_free(buf1); + } +! --curwin->w_cursor.col; + curwin->w_set_curswant = TRUE; + #ifdef FEAT_RIGHTLEFT + ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); + RLADDSUBFIX(ptr); + #endif + } + return OK; + } + +--- 5693,5719 ---- + ins_str(buf1); /* insert the new number */ + vim_free(buf1); + } +! +! if (g_cmd) +! { +! offset = (unsigned long)Prenum1; +! g_cmd = 0; +! } +! /* reset */ +! subtract = FALSE; +! negative = FALSE; +! if (visual && VIsual_mode != Ctrl_V) +! col = 0; +! else +! col = startcol; +! Prenum1 += offset; + curwin->w_set_curswant = TRUE; + #ifdef FEAT_RIGHTLEFT + ptr = ml_get_buf(curbuf, curwin->w_cursor.lnum, TRUE); + RLADDSUBFIX(ptr); + #endif + } ++ --curwin->w_cursor.col; + return OK; + } + +*** ../vim-7.4.764/src/testdir/test_increment.in 2015-06-28 19:24:32.198911433 +0200 +--- src/testdir/test_increment.in 2015-07-03 11:47:53.111483406 +0200 +*************** +*** 6,11 **** +--- 6,12 ---- + 1) Ctrl-A on visually selected number + Text: + foobar-10 ++ Expected: + 1) Ctrl-A on start of line: + foobar-9 + 2) Ctrl-A on visually selected "-10": +*************** +*** 24,29 **** +--- 25,31 ---- + 30 + 40 + ++ Expected: + 1) Ctrl-A on visually selected lines: + 11 + 21 +*************** +*** 46,51 **** +--- 48,54 ---- + + 40 + ++ Expected: + 1) 2 g Ctrl-A on visually selected lines: + 12 + +*************** +*** 66,74 **** +--- 69,190 ---- + 4) Ctrl-A on non-number + Text: + foobar-10 ++ Expected: + 1) visually select foobar: + foobar-10 + ++ 5) g on letter ++ Test: ++ a ++ a ++ a ++ a ++ Expected: ++ 1) g Ctrl-A on visually selected lines ++ b ++ c ++ d ++ e ++ ++ 6) g on letter ++ Test: ++ z ++ z ++ z ++ z ++ Expected: ++ 1) g Ctrl-X on visually selected lines ++ y ++ x ++ w ++ v ++ ++ 7) on letter ++ Test: ++ 2 ++ 1 ++ 0 ++ -1 ++ -2 ++ ++ Expected: ++ 1) Ctrl-A on visually selected lines ++ 3 ++ 2 ++ 1 ++ 0 ++ -1 ++ ++ 2) Ctrl-X on visually selected lines ++ 1 ++ 0 ++ -1 ++ -2 ++ -3 ++ 8) Block increment on 0x9 ++ Text: ++ 0x9 ++ 0x9 ++ Expected: ++ 1) Ctrl-A on visually block selected region (cursor at beginning): ++ 0xa ++ 0xa ++ 2) Ctrl-A on visually block selected region (cursor at end) ++ 0xa ++ 0xa ++ ++ 9) Increment and redo ++ Text: ++ 2 ++ 2 ++ ++ 3 ++ 3 ++ ++ Expected: ++ 1) 2 Ctrl-A on first 2 visually selected lines ++ 4 ++ 4 ++ 2) redo (.) on 3 ++ 5 ++ 5 ++ 10) sequentially decrement 1 ++ Text: ++ 1 ++ 1 ++ 1 ++ 1 ++ Expected: ++ 1) g Ctrl-X on visually selected lines ++ 0 ++ -1 ++ -2 ++ -3 ++ ++ 11) visually block selected indented lines ++ Text: ++ 1 ++ 1 ++ 1 ++ 1 ++ Expexted: ++ 1) g Ctrl-A on block selected indented lines ++ 2 ++ 1 ++ 3 ++ 4 ++ ++ 12) visually selected several columns ++ Text: ++ 0 0 ++ 0 0 ++ 0 0 ++ Expected: ++ 1) 'v' select last zero and first zeroes ++ 0 1 ++ 1 0 ++ 1 0 ++ + STARTTEST + :so small.vim + :" +*************** +*** 77,92 **** + :" + :" Test 1 + :/^S1=/+,/^E1=/-y a +! :/^E1/+put a +! :/^E1/+2put a +! f-v$:/^E1/+3put a +! f1v$:/^E1/+4put a +! f-v$:/^E1/+5put a + f1v$ + + :" Test 22 + :/^S2=/+,/^E2=/-y a +! :/^E2/+put a + V3k$:.+put a + V3k$ + +--- 193,208 ---- + :" + :" Test 1 + :/^S1=/+,/^E1=/-y a +! :/^E1=/+put a +! :/^E1=/+2put a +! f-v$:/^E1=/+3put a +! f1v$:/^E1=/+4put a +! f-v$:/^E1=/+5put a + f1v$ + + :" Test 22 + :/^S2=/+,/^E2=/-y a +! :/^E2=/+put a + V3k$:.+put a + V3k$ + +*************** +*** 101,106 **** +--- 217,265 ---- + :/^E4=/+put a + vf- + ++ :" Test 5 ++ :set nrformats+=alpha ++ :/^S5=/+,/^E5=/-y a ++ :/^E5=/+put a ++ v3kg ++ ++ :" Test 6 ++ :/^S6=/+,/^E6=/-y a ++ :/^E6=/+put a ++ v3kg ++ ++ :" Test 7 ++ :/^S7=/+,/^E7=/-y a ++ :/^E7=/+put a ++ V4k:.+put a ++ V4k ++ ++ :" Test 8 ++ :/^S8=/+,/^E8=/-y a ++ :/^E8=/+put a ++ kj$:.+put a ++ k$+ ++ ++ :" Test 9 ++ :/^S9=/+,/^E9=/-y a ++ :/^E9=/+put a ++ 5kVj22j. ++ ++ :" Test 10 ++ :/^S10=/+,/^E10=/-y a ++ :/^E10=/+put a ++ V3kg ++ ++ : Test 11 ++ :/^S11=/+,/^E11=/-y a ++ :/^E11=/+put a ++ 3kf13jg ++ ++ :" Test 12 ++ :/^S12=/+,/^E12=/-y a ++ :/^E12=/+put a ++ 2k$v++ ++ + :" Save the report + :/^# Test 1/,$w! test.out + :qa! +*************** +*** 142,146 **** +--- 301,393 ---- + E4===== + + ++ ++ # Test 5 ++ S5==== ++ a ++ a ++ a ++ a ++ E5==== ++ ++ ++ # Test 6 ++ S6==== ++ z ++ z ++ z ++ z ++ E6==== ++ ++ ++ ++ # Test 7 ++ S7==== ++ 2 ++ 1 ++ 0 ++ -1 ++ -2 ++ E7==== ++ ++ ++ ++ # Test 8 ++ S8==== ++ 0x9 ++ 0x9 ++ E8==== ++ ++ ++ ++ ++ # Test 9 ++ S9==== ++ 2 ++ 2 ++ ++ 3 ++ 3 ++ ++ E9==== ++ ++ ++ ++ ++ # Test 10 ++ S10==== ++ 1 ++ 1 ++ 1 ++ 1 ++ E10==== ++ ++ ++ ++ ++ # Test 11 ++ S11==== ++ 1 ++ 1 ++ 1 ++ 1 ++ E11==== ++ ++ ++ ++ # Test 12 ++ S12==== ++ 0 0 ++ 0 0 ++ 0 0 ++ E12==== ++ ++ ++ ++ ++ ++ ++ ++ + ENDTEST + +*** ../vim-7.4.764/src/testdir/test_increment.ok 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/test_increment.ok 2015-07-03 11:43:43.254141124 +0200 +*************** +*** 62,66 **** +--- 62,193 ---- + + foobar-10 + ++ ++ # Test 5 ++ S5==== ++ a ++ a ++ a ++ a ++ E5==== ++ ++ b ++ c ++ d ++ e ++ ++ # Test 6 ++ S6==== ++ z ++ z ++ z ++ z ++ E6==== ++ ++ y ++ x ++ w ++ v ++ ++ ++ # Test 7 ++ S7==== ++ 2 ++ 1 ++ 0 ++ -1 ++ -2 ++ E7==== ++ ++ 3 ++ 2 ++ 1 ++ 0 ++ -1 ++ ++ 1 ++ 0 ++ -1 ++ -2 ++ -3 ++ ++ # Test 8 ++ S8==== ++ 0x9 ++ 0x9 ++ E8==== ++ ++ 0xa ++ 0xa ++ ++ 0xa ++ 0xa ++ ++ ++ # Test 9 ++ S9==== ++ 2 ++ 2 ++ ++ 3 ++ 3 ++ ++ E9==== ++ ++ 4 ++ 4 ++ ++ 5 ++ 5 ++ ++ ++ ++ ++ # Test 10 ++ S10==== ++ 1 ++ 1 ++ 1 ++ 1 ++ E10==== ++ ++ 0 ++ -1 ++ -2 ++ -3 ++ ++ ++ ++ # Test 11 ++ S11==== ++ 1 ++ 1 ++ 1 ++ 1 ++ E11==== ++ ++ 2 ++ 1 ++ 3 ++ 4 ++ ++ ++ # Test 12 ++ S12==== ++ 0 0 ++ 0 0 ++ 0 0 ++ E12==== ++ ++ 0 1 ++ 1 0 ++ 1 0 ++ ++ ++ ++ ++ ++ ++ + ENDTEST + +*** ../vim-7.4.764/src/version.c 2015-06-28 19:24:32.198911433 +0200 +--- src/version.c 2015-07-03 11:45:07.697242802 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 765, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +171. You invent another person and chat with yourself in empty chat rooms. + + /// 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 /// From 1277481499e89d710060f4572af62a9466f53e3e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Jul 2015 18:00:04 +0200 Subject: [PATCH 0251/1407] - patchlevel 766 --- 7.4.766 | 101 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 7.4.766 diff --git a/7.4.766 b/7.4.766 new file mode 100644 index 00000000..48adf532 --- /dev/null +++ b/7.4.766 @@ -0,0 +1,101 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.766 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.766 (after 7.4.757) +Problem: Background color check does not work on Tera Term. +Solution: Also recognize ST as a termination character. (Hirohito Higashi) +Files: src/term.c + + +*** ../vim-7.4.765/src/term.c 2015-06-27 18:34:19.503618396 +0200 +--- src/term.c 2015-07-03 12:49:14.224448432 +0200 +*************** +*** 4264,4270 **** + * + * - Background color response: + * ]11;rgb:{rrrr}/{gggg}/{bbbb}\007 +! * The final byte must be '\007'. + */ + char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2; + +--- 4264,4272 ---- + * + * - Background color response: + * ]11;rgb:{rrrr}/{gggg}/{bbbb}\007 +! * Or +! * ]11;rgb:{rrrr}/{gggg}/{bbbb}ST +! * The final byte must be '\007' or ST(0x9c or ESC\). + */ + char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2; + +*************** +*** 4408,4419 **** + key_name[1] = (int)KE_IGNORE; + slen = i + 1; + } +! else if (*T_RBG != NUL && len >= 24 - (tp[0] == CSI) + && argp[0] == '1' && argp[1] == '1' + && argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g' + && argp[5] == 'b' && argp[6] == ':' + && argp[11] == '/' && argp[16] == '/' +! && argp[21] == '\007') + { + LOG_TR("Received RBG"); + rbg_status = RBG_GOT; +--- 4410,4424 ---- + key_name[1] = (int)KE_IGNORE; + slen = i + 1; + } +! else if (*T_RBG != NUL +! && len >= 24 - (tp[0] == CSI) +! && len >= 24 - (tp[0] == CSI) + (argp[21] == ESC) + && argp[0] == '1' && argp[1] == '1' + && argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g' + && argp[5] == 'b' && argp[6] == ':' + && argp[11] == '/' && argp[16] == '/' +! && (argp[21] == '\007' || argp[21] == STERM +! || (argp[21] == ESC && argp[22] == '\\'))) + { + LOG_TR("Received RBG"); + rbg_status = RBG_GOT; +*************** +*** 4427,4433 **** + } + key_name[0] = (int)KS_EXTRA; + key_name[1] = (int)KE_IGNORE; +! slen = 24; + } + } + +--- 4432,4438 ---- + } + key_name[0] = (int)KS_EXTRA; + key_name[1] = (int)KE_IGNORE; +! slen = 24 - (tp[0] == CSI) + (argp[21] == ESC); + } + } + +*** ../vim-7.4.765/src/version.c 2015-07-03 12:44:01.739748554 +0200 +--- src/version.c 2015-07-03 12:49:06.288532246 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 766, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +172. You join listservers just for the extra e-mail. + + /// 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 /// From e1f24e005baa7ea9955d89ae0d3eb4a35ff84a85 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Jul 2015 18:00:04 +0200 Subject: [PATCH 0252/1407] - patchlevel 767 --- 7.4.767 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 7.4.767 diff --git a/7.4.767 b/7.4.767 new file mode 100644 index 00000000..f52e5689 --- /dev/null +++ b/7.4.767 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.767 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.767 +Problem: --remote-tab-silent can fail on MS-Windows. +Solution: Use single quotes to avoid problems with backslashes. (Idea by + Weiyong Mao) +Files: src/main.c + + +*** ../vim-7.4.766/src/main.c 2015-06-25 17:03:32.580666257 +0200 +--- src/main.c 2015-07-03 13:23:10.479096992 +0200 +*************** +*** 4008,4022 **** + * if haslocaldir() + * cd - + * lcd - +! * elseif getcwd() ==# "current path" + * cd - + * endif + * endif + */ + ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|"); +! ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# \""); + ga_concat(&ga, cdp); +! ga_concat(&ga, (char_u *)"\"|cd -|endif|endif"); + vim_free(cdp); + + if (sendReply) +--- 4008,4022 ---- + * if haslocaldir() + * cd - + * lcd - +! * elseif getcwd() ==# 'current path' + * cd - + * endif + * endif + */ + ga_concat(&ga, (char_u *)":if !exists('+acd')||!&acd|if haslocaldir()|"); +! ga_concat(&ga, (char_u *)"cd -|lcd -|elseif getcwd() ==# '"); + ga_concat(&ga, cdp); +! ga_concat(&ga, (char_u *)"'|cd -|endif|endif"); + vim_free(cdp); + + if (sendReply) +*** ../vim-7.4.766/src/version.c 2015-07-03 13:05:45.833974396 +0200 +--- src/version.c 2015-07-03 13:31:49.905707437 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 767, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +173. You keep tracking down the email addresses of all your friends + (even childhood friends). + + /// 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 /// From 91d9c0041846c3ce69b7c6cdea474fdbdd3b3219 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Jul 2015 18:00:04 +0200 Subject: [PATCH 0253/1407] - patchlevel 768 --- 7.4.768 | 234 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 234 insertions(+) create mode 100644 7.4.768 diff --git a/7.4.768 b/7.4.768 new file mode 100644 index 00000000..d0046fb7 --- /dev/null +++ b/7.4.768 @@ -0,0 +1,234 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.768 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.768 +Problem: :diffoff only works properly once. +Solution: Also make :diffoff work when used a second time. (Olaf Dabrunz) +Files: src/diff.c + + +*** ../vim-7.4.767/src/diff.c 2015-03-31 13:33:00.781525085 +0200 +--- src/diff.c 2015-07-03 14:55:54.953220651 +0200 +*************** +*** 1138,1169 **** + curwin = old_curwin; + # endif + +- wp->w_p_diff = TRUE; +- + /* Use 'scrollbind' and 'cursorbind' when available */ + #ifdef FEAT_SCROLLBIND +! if (!wp->w_p_diff_saved) + wp->w_p_scb_save = wp->w_p_scb; + wp->w_p_scb = TRUE; + #endif + #ifdef FEAT_CURSORBIND +! if (!wp->w_p_diff_saved) + wp->w_p_crb_save = wp->w_p_crb; + wp->w_p_crb = TRUE; + #endif +! if (!wp->w_p_diff_saved) + wp->w_p_wrap_save = wp->w_p_wrap; + wp->w_p_wrap = FALSE; + # ifdef FEAT_FOLDING + curwin = wp; + curbuf = curwin->w_buffer; +! if (!wp->w_p_diff_saved) + wp->w_p_fdm_save = vim_strsave(wp->w_p_fdm); + set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff", + OPT_LOCAL|OPT_FREE, 0); + curwin = old_curwin; + curbuf = curwin->w_buffer; +! if (!wp->w_p_diff_saved) + { + wp->w_p_fdc_save = wp->w_p_fdc; + wp->w_p_fen_save = wp->w_p_fen; +--- 1138,1171 ---- + curwin = old_curwin; + # endif + + /* Use 'scrollbind' and 'cursorbind' when available */ + #ifdef FEAT_SCROLLBIND +! if (!wp->w_p_diff) + wp->w_p_scb_save = wp->w_p_scb; + wp->w_p_scb = TRUE; + #endif + #ifdef FEAT_CURSORBIND +! if (!wp->w_p_diff) + wp->w_p_crb_save = wp->w_p_crb; + wp->w_p_crb = TRUE; + #endif +! if (!wp->w_p_diff) + wp->w_p_wrap_save = wp->w_p_wrap; + wp->w_p_wrap = FALSE; + # ifdef FEAT_FOLDING + curwin = wp; + curbuf = curwin->w_buffer; +! if (!wp->w_p_diff) +! { +! if (wp->w_p_diff_saved) +! free_string_option(wp->w_p_fdm_save); + wp->w_p_fdm_save = vim_strsave(wp->w_p_fdm); ++ } + set_string_option_direct((char_u *)"fdm", -1, (char_u *)"diff", + OPT_LOCAL|OPT_FREE, 0); + curwin = old_curwin; + curbuf = curwin->w_buffer; +! if (!wp->w_p_diff) + { + wp->w_p_fdc_save = wp->w_p_fdc; + wp->w_p_fen_save = wp->w_p_fen; +*************** +*** 1183,1188 **** +--- 1185,1192 ---- + /* Saved the current values, to be restored in ex_diffoff(). */ + wp->w_p_diff_saved = TRUE; + ++ wp->w_p_diff = TRUE; ++ + if (addbuf) + diff_buf_add(wp->w_buffer); + redraw_win_later(wp, NOT_VALID); +*************** +*** 1197,1203 **** + exarg_T *eap; + { + win_T *wp; +- win_T *old_curwin = curwin; + #ifdef FEAT_SCROLLBIND + int diffwin = FALSE; + #endif +--- 1201,1206 ---- +*************** +*** 1206,1262 **** + { + if (eap->forceit ? wp->w_p_diff : wp == curwin) + { +! /* Set 'diff', 'scrollbind' off and 'wrap' on. If option values +! * were saved in diff_win_options() restore them. */ + wp->w_p_diff = FALSE; + + #ifdef FEAT_SCROLLBIND +! if (wp->w_p_scb) +! wp->w_p_scb = wp->w_p_diff_saved ? wp->w_p_scb_save : FALSE; + #endif + #ifdef FEAT_CURSORBIND +! if (wp->w_p_crb) +! wp->w_p_crb = wp->w_p_diff_saved ? wp->w_p_crb_save : FALSE; + #endif +! if (!wp->w_p_wrap) +! wp->w_p_wrap = wp->w_p_diff_saved ? wp->w_p_wrap_save : TRUE; + #ifdef FEAT_FOLDING +- curwin = wp; +- curbuf = curwin->w_buffer; +- if (wp->w_p_diff_saved) +- { + free_string_option(wp->w_p_fdm); +! wp->w_p_fdm = wp->w_p_fdm_save; +! wp->w_p_fdm_save = empty_option; +! } +! else +! set_string_option_direct((char_u *)"fdm", -1, +! (char_u *)"manual", OPT_LOCAL|OPT_FREE, 0); +! curwin = old_curwin; +! curbuf = curwin->w_buffer; +! if (wp->w_p_fdc == diff_foldcolumn) +! wp->w_p_fdc = wp->w_p_diff_saved ? wp->w_p_fdc_save : 0; +! if (wp->w_p_fdl == 0 && wp->w_p_diff_saved) +! wp->w_p_fdl = wp->w_p_fdl_save; + +- if (wp->w_p_fen) +- { + /* Only restore 'foldenable' when 'foldmethod' is not + * "manual", otherwise we continue to show the diff folds. */ +! if (foldmethodIsManual(wp) || !wp->w_p_diff_saved) +! wp->w_p_fen = FALSE; +! else +! wp->w_p_fen = wp->w_p_fen_save; + } + +- foldUpdateAll(wp); +- /* make sure topline is not halfway a fold */ +- changed_window_setting_win(wp); +- #endif + /* Note: 'sbo' is not restored, it's a global option. */ + diff_buf_adjust(wp); +- +- wp->w_p_diff_saved = FALSE; + } + #ifdef FEAT_SCROLLBIND + diffwin |= wp->w_p_diff; +--- 1209,1255 ---- + { + if (eap->forceit ? wp->w_p_diff : wp == curwin) + { +! /* Set 'diff' off. If option values were saved in +! * diff_win_options(), restore the ones whose settings seem to have +! * been left over from diff mode. */ + wp->w_p_diff = FALSE; + ++ if (wp->w_p_diff_saved) ++ { ++ + #ifdef FEAT_SCROLLBIND +! if (wp->w_p_scb) +! wp->w_p_scb = wp->w_p_scb_save; + #endif + #ifdef FEAT_CURSORBIND +! if (wp->w_p_crb) +! wp->w_p_crb = wp->w_p_crb_save; + #endif +! if (!wp->w_p_wrap) +! wp->w_p_wrap = wp->w_p_wrap_save; + #ifdef FEAT_FOLDING + free_string_option(wp->w_p_fdm); +! wp->w_p_fdm = vim_strsave(wp->w_p_fdm_save); +! +! if (wp->w_p_fdc == diff_foldcolumn) +! wp->w_p_fdc = wp->w_p_fdc_save; +! if (wp->w_p_fdl == 0) +! wp->w_p_fdl = wp->w_p_fdl_save; + + /* Only restore 'foldenable' when 'foldmethod' is not + * "manual", otherwise we continue to show the diff folds. */ +! if (wp->w_p_fen) +! wp->w_p_fen = foldmethodIsManual(wp) ? FALSE +! : wp->w_p_fen_save; +! +! foldUpdateAll(wp); +! /* make sure topline is not halfway a fold */ +! changed_window_setting_win(wp); +! #endif + } + + /* Note: 'sbo' is not restored, it's a global option. */ + diff_buf_adjust(wp); + } + #ifdef FEAT_SCROLLBIND + diffwin |= wp->w_p_diff; +*** ../vim-7.4.767/src/version.c 2015-07-03 13:32:56.125020856 +0200 +--- src/version.c 2015-07-03 14:54:09.850320403 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 768, + /**/ + +-- +If Apple would build a car... +... it would be powered by the sun, be reliable, five times +as fast and twice as easy to drive; but would only run on +five percent of the roads. + + /// 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 /// From cdfafb39dd96bf0b84c7d1ce377054f098dd7473 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 3 Jul 2015 18:00:05 +0200 Subject: [PATCH 0254/1407] - patchlevel 768 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index ff809eb7..8c57e7da 100644 --- a/README.patches +++ b/README.patches @@ -786,3 +786,7 @@ Individual patches for Vim 7.4: 2084 7.4.762 (after 7.4.757) comment for may_req_bg_color() is wrong 5135 7.4.763 (after 7.4.759) building with Lua 5.1 doesn't work 1553 7.4.764 (after 7.4.754) test_increment fails on MS-Windows + 12311 7.4.765 (after 7.4.754) CTRL-A/CTRL-X in Visual mode do not work well + 3085 7.4.766 (after 7.4.757) bg color check does not work on Tera Term + 2200 7.4.767 --remote-tab-silent can fail on MS-Windows + 6780 7.4.768 :diffoff only works properly once diff --git a/vim.spec b/vim.spec index 4c86d14a..d76be2b8 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 764 +%define patchlevel 768 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -811,6 +811,10 @@ Patch761: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.761 Patch762: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.762 Patch763: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.763 Patch764: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.764 +Patch765: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.765 +Patch766: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.766 +Patch767: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.767 +Patch768: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.768 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1725,6 +1729,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch762 -p0 %patch763 -p0 %patch764 -p0 +%patch765 -p0 +%patch766 -p0 +%patch767 -p0 +%patch768 -p0 # install spell files %if %{withvimspell} @@ -2281,6 +2289,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Jul 03 2015 Karsten Hopp 7.4.768-1 +- patchlevel 768 + * Mon Jun 29 2015 Karsten Hopp 7.4.764-1 - patchlevel 764 From 0588a39aa1f0a70a73cae2b64514300e9f89a48c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 4 Jul 2015 18:00:03 +0200 Subject: [PATCH 0255/1407] - patchlevel 769 --- 7.4.769 | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 7.4.769 diff --git a/7.4.769 b/7.4.769 new file mode 100644 index 00000000..bcda2dcf --- /dev/null +++ b/7.4.769 @@ -0,0 +1,169 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.769 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.769 (after 7.4 768) +Problem: Behavior of :diffoff is not tested. +Solution: Add a bit of testing. (Olaf Dabrunz) +Files: src/testdir/test47.in, src/testdir/test47.ok + + +*** ../vim-7.4.768/src/testdir/test47.in 2012-10-21 22:08:44.000000000 +0200 +--- src/testdir/test47.in 2015-07-04 15:00:48.065450222 +0200 +*************** +*** 1,5 **** +--- 1,7 ---- + Tests for vertical splits and filler lines in diff mode + ++ Also tests restoration of saved options by :diffoff. ++ + STARTTEST + :so small.vim + :" Disable the title to avoid xterm keeping the wrong one. +*************** +*** 10,17 **** +--- 12,26 ---- + ddGpkkrXoxxx:w! Xtest2 + :file Nop + ggoyyyjjjozzzz ++ :set foldmethod=marker foldcolumn=4 ++ :redir => nodiffsettings ++ :silent! :set diff? fdm? fdc? scb? crb? wrap? ++ :redir END + :vert diffsplit Xtest + :vert diffsplit Xtest2 ++ :redir => diffsettings ++ :silent! :set diff? fdm? fdc? scb? crb? wrap? ++ :redir END + :" jump to second window for a moment to have filler line appear at start of + :" first window + ggpgg:let one = winline() +*************** +*** 36,43 **** + :call append("$", two) + :call append("$", three) + :$-2,$w! test.out +! :" Test that diffing shows correct filler lines + :diffoff! + :windo :bw! + :enew + :put =range(4,10) +--- 45,74 ---- + :call append("$", two) + :call append("$", three) + :$-2,$w! test.out +! :" +! :" Test diffoff + :diffoff! ++ :$put =nodiffsettings ++ :$put =diffsettings ++ 1 ++ :redir => nd1 ++ :silent! :set diff? fdm? fdc? scb? crb? wrap? ++ :redir END ++  ++ :redir => nd2 ++ :silent! :set diff? fdm? fdc? scb? crb? wrap? ++ :redir END ++  ++ :redir => nd3 ++ :silent! :set diff? fdm? fdc? scb? crb? wrap? ++ :redir END ++  ++ :$put =nd1 ++ :$put =nd2 ++ :$put =nd3 ++ :$-39,$w >> test.out ++ :" ++ :" Test that diffing shows correct filler lines + :windo :bw! + :enew + :put =range(4,10) +*************** +*** 51,57 **** + :enew + :put =w0 + :.w >> test.out +! :unlet! one two three w0 + :qa! + ENDTEST + +--- 82,88 ---- + :enew + :put =w0 + :.w >> test.out +! :unlet! one two three nodiffsettings diffsettings nd1 nd2 nd3 w0 + :qa! + ENDTEST + +*** ../vim-7.4.768/src/testdir/test47.ok 2012-10-21 22:08:44.000000000 +0200 +--- src/testdir/test47.ok 2015-07-04 15:00:48.065450222 +0200 +*************** +*** 1,4 **** +--- 1,44 ---- + 2-4-5-6-8-9 + 1-2-4-5-8 + 2-3-4-5-6-7-8 ++ ++ ++ nodiff ++ foldmethod=marker ++ foldcolumn=4 ++ noscrollbind ++ nocursorbind ++ wrap ++ ++ ++ diff ++ foldmethod=diff ++ foldcolumn=2 ++ scrollbind ++ cursorbind ++ nowrap ++ ++ ++ nodiff ++ foldmethod=marker ++ foldcolumn=4 ++ noscrollbind ++ nocursorbind ++ wrap ++ ++ ++ nodiff ++ foldmethod=marker ++ foldcolumn=4 ++ noscrollbind ++ nocursorbind ++ wrap ++ ++ ++ nodiff ++ foldmethod=marker ++ foldcolumn=4 ++ noscrollbind ++ nocursorbind ++ wrap + 1 +*** ../vim-7.4.768/src/version.c 2015-07-03 15:06:49.718360566 +0200 +--- src/version.c 2015-07-04 15:02:15.644538282 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 769, + /**/ + +-- +The CIA drives around in cars with the "Intel inside" logo. + + /// 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 /// From 1371c9bbb4a355157b97c5f417bcb7915a63075a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 4 Jul 2015 18:00:04 +0200 Subject: [PATCH 0256/1407] - patchlevel 769 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 8c57e7da..25cf4527 100644 --- a/README.patches +++ b/README.patches @@ -790,3 +790,4 @@ Individual patches for Vim 7.4: 3085 7.4.766 (after 7.4.757) bg color check does not work on Tera Term 2200 7.4.767 --remote-tab-silent can fail on MS-Windows 6780 7.4.768 :diffoff only works properly once + 3627 7.4.769 (after 7.4 768) behavior of :diffoff is not tested diff --git a/vim.spec b/vim.spec index d76be2b8..ed72ec8e 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 768 +%define patchlevel 769 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -815,6 +815,7 @@ Patch765: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.765 Patch766: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.766 Patch767: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.767 Patch768: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.768 +Patch769: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.769 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1733,6 +1734,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch766 -p0 %patch767 -p0 %patch768 -p0 +%patch769 -p0 # install spell files %if %{withvimspell} @@ -2289,6 +2291,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Jul 04 2015 Karsten Hopp 7.4.769-1 +- patchlevel 769 + * Fri Jul 03 2015 Karsten Hopp 7.4.768-1 - patchlevel 768 From 6d189defced65e1b8cfc1be80d04be6d4d2d9b10 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 6 Jul 2015 12:50:37 +0200 Subject: [PATCH 0257/1407] fix changelog --- vim.spec | 3 --- 1 file changed, 3 deletions(-) diff --git a/vim.spec b/vim.spec index db093d85..12d0cac8 100644 --- a/vim.spec +++ b/vim.spec @@ -2313,9 +2313,6 @@ rm -rf %{buildroot} * Mon Jun 22 2015 Karsten Hopp 7.4.752-1 - patchlevel 752 -* Wed Jun 10 2015 Karsten Hopp 7.4.738-1 -- patchlevel 738 - * Fri Jun 19 2015 Fedora Release Engineering - 2:7.4.737-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild From 6b2d30ae018c31dda772ff63af945a2f39669aed Mon Sep 17 00:00:00 2001 From: Lubomir Rintel Date: Fri, 10 Jul 2015 19:53:39 +0200 Subject: [PATCH 0258/1407] - drop forcing background, vim detects this since 7.4.757, rhbz#1159920 --- vim.spec | 5 ++++- vimrc | 7 ------- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/vim.spec b/vim.spec index 12d0cac8..ccef51c2 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 2%{?dist} +Release: 3%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -2292,6 +2292,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Jul 10 2015 Lubomir Rintel 7.4.769-3 +- drop forcing background, vim detects this since 7.4.757, rhbz#1159920 + * Sat Jul 04 2015 Karsten Hopp 7.4.769-1 - patchlevel 769 diff --git a/vimrc b/vimrc index a60ce244..cf660612 100644 --- a/vimrc +++ b/vimrc @@ -59,13 +59,6 @@ if &term=="xterm" set t_Sf=[3%dm endif -" rhbz 1159920 -if $COLORTERM=="gnome-terminal" - set background=light -else - set background=dark -endif - " Don't wake up system with blinking cursor: " http://www.linuxpowertop.org/known.php let &guicursor = &guicursor . ",a:blinkon0" From 51da7cddaa7fd58606e503ba3b56940500a0f9a4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:26 +0200 Subject: [PATCH 0259/1407] - patchlevel 770 --- 7.4.770 | 282 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 282 insertions(+) create mode 100644 7.4.770 diff --git a/7.4.770 b/7.4.770 new file mode 100644 index 00000000..67e7ac52 --- /dev/null +++ b/7.4.770 @@ -0,0 +1,282 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.770 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.770 (after 7.4.766) +Problem: Background color response with transparency is not ignored. +Solution: Change the way escape sequences are recognized. (partly by + Hirohito Higashi) +Files: src/ascii.h, src/term.c + + +*** ../vim-7.4.769/src/ascii.h 2011-12-17 21:38:36.000000000 +0100 +--- src/ascii.h 2015-07-10 12:02:02.379313390 +0200 +*************** +*** 34,43 **** + #define ESC_STR_nc "\033" + #define DEL 0x7f + #define DEL_STR (char_u *)"\177" +- #define CSI 0x9b /* Control Sequence Introducer */ +- #define CSI_STR "\233" +- #define DCS 0x90 /* Device Control String */ +- #define STERM 0x9c /* String Terminator */ + + #define POUND 0xA3 + +--- 34,39 ---- +*************** +*** 117,127 **** + #define ESC_STR_nc "\x27" + #define DEL 0x07 + #define DEL_STR (char_u *)"\007" +- /* TODO: EBCDIC Code page dependent (here 1047) */ +- #define CSI 0x9b /* Control Sequence Introducer */ +- #define CSI_STR "\233" +- #define DCS 0x90 /* Device Control String */ +- #define STERM 0x9c /* String Terminator */ + + #define POUND 0xB1 + +--- 113,118 ---- +*************** +*** 173,178 **** +--- 164,176 ---- + + #endif /* defined EBCDIC */ + ++ /* TODO: EBCDIC Code page dependent (here 1047) */ ++ #define CSI 0x9b /* Control Sequence Introducer */ ++ #define CSI_STR "\233" ++ #define DCS 0x90 /* Device Control String */ ++ #define OSC 0x9d /* Operating System Command */ ++ #define STERM 0x9c /* String Terminator */ ++ + /* + * Character that separates dir names in a path. + * For MS-DOS, WIN32 and OS/2 we use a backslash. A slash mostly works +*** ../vim-7.4.769/src/term.c 2015-07-03 13:05:45.833974396 +0200 +--- src/term.c 2015-07-10 13:53:28.744975532 +0200 +*************** +*** 2364,2370 **** + if (p[1] == '[') + return CSI; + if (p[1] == ']') +! return 0x9d; + if (p[1] == 'O') + return 0x8f; + } +--- 2364,2370 ---- + if (p[1] == '[') + return CSI; + if (p[1] == ']') +! return OSC; + if (p[1] == 'O') + return 0x8f; + } +*************** +*** 4261,4278 **** + * - Cursor position report: [{row};{col}R + * The final byte must be 'R'. It is used for checking the + * ambiguous-width character state. +- * +- * - Background color response: +- * ]11;rgb:{rrrr}/{gggg}/{bbbb}\007 +- * Or +- * ]11;rgb:{rrrr}/{gggg}/{bbbb}ST +- * The final byte must be '\007' or ST(0x9c or ESC\). + */ +! char_u *argp = tp[0] == CSI ? tp + 1 : tp + 2; + +! if ((*T_CRV != NUL || *T_U7 != NUL || *T_RBG != NUL) +! && ((tp[0] == ESC && tp[1] == '[' && len >= 3) +! || (tp[0] == ESC && tp[1] == ']' && len >= 24) + || (tp[0] == CSI && len >= 2)) + && (VIM_ISDIGIT(*argp) || *argp == '>' || *argp == '?')) + { +--- 4261,4271 ---- + * - Cursor position report: [{row};{col}R + * The final byte must be 'R'. It is used for checking the + * ambiguous-width character state. + */ +! char_u *argp = tp[0] == ESC ? tp + 2 : tp + 1; + +! if ((*T_CRV != NUL || *T_U7 != NUL) +! && ((tp[0] == ESC && len >= 3 && tp[1] == '[') + || (tp[0] == CSI && len >= 2)) + && (VIM_ISDIGIT(*argp) || *argp == '>' || *argp == '?')) + { +*************** +*** 4410,4453 **** + key_name[1] = (int)KE_IGNORE; + slen = i + 1; + } +! else if (*T_RBG != NUL +! && len >= 24 - (tp[0] == CSI) +! && len >= 24 - (tp[0] == CSI) + (argp[21] == ESC) +! && argp[0] == '1' && argp[1] == '1' +! && argp[2] == ';' && argp[3] == 'r' && argp[4] == 'g' +! && argp[5] == 'b' && argp[6] == ':' +! && argp[11] == '/' && argp[16] == '/' +! && (argp[21] == '\007' || argp[21] == STERM +! || (argp[21] == ESC && argp[22] == '\\'))) +! { +! LOG_TR("Received RBG"); +! rbg_status = RBG_GOT; +! if (!option_was_set((char_u *)"bg")) + { +! set_option_value((char_u *)"bg", 0L, (char_u *)( +! (3 * '6' < argp[7] + argp[12] + argp[17]) +! ? "light" : "dark"), 0); +! reset_option_was_set((char_u *)"bg"); +! redraw_asap(CLEAR); + } +! key_name[0] = (int)KS_EXTRA; +! key_name[1] = (int)KE_IGNORE; +! slen = 24 - (tp[0] == CSI) + (argp[21] == ESC); + } + } + +! /* Check for 'P1+r\'. A "0" instead of the +! * "1" means an invalid request. */ + else if (check_for_codes +! && ((tp[0] == ESC && tp[1] == 'P' && len >= 2) + || tp[0] == DCS)) + { +! j = 1 + (tp[0] != DCS); +! for (i = j; i < len; ++i) +! if ((tp[i] == ESC && tp[i + 1] == '\\' && i + 1 < len) + || tp[i] == STERM) + { +! if (i - j >= 3 && tp[j + 1] == '+' && tp[j + 2] == 'r') + got_code_from_term(tp + j, i); + key_name[0] = (int)KS_EXTRA; + key_name[1] = (int)KE_IGNORE; +--- 4403,4482 ---- + key_name[1] = (int)KE_IGNORE; + slen = i + 1; + } +! } +! +! /* Check for background color response from the terminal: +! * +! * {lead}11;rgb:{rrrr}/{gggg}/{bbbb}{tail} +! * +! * {lead} can be ] or OSC +! * {tail} can be '\007', \ or STERM. +! * +! * Consume any code that starts with "{lead}11;", it's also +! * possible that "rgba" is following. +! */ +! else if (*T_RBG != NUL +! && ((tp[0] == ESC && len >= 2 && tp[1] == ']') +! || tp[0] == OSC)) +! { +! j = 1 + (tp[0] == ESC); +! if (len >= j + 3 && (argp[0] != '1' +! || argp[1] != '1' || argp[2] != ';')) +! i = 0; /* no match */ +! else +! for (i = j; i < len; ++i) +! if (tp[i] == '\007' || (tp[0] == OSC ? tp[i] == STERM +! : (tp[i] == ESC && i + 1 < len && tp[i + 1] == '\\'))) + { +! if (i - j >= 21 && STRNCMP(tp + j + 3, "rgb:", 4) == 0 +! && tp[j + 11] == '/' && tp[j + 16] == '/' +! && !option_was_set((char_u *)"bg")) +! {/* TODO: don't set option when already the right value */ +! LOG_TR("Received RBG"); +! rbg_status = RBG_GOT; +! set_option_value((char_u *)"bg", 0L, (char_u *)( +! (3 * '6' < tp[j+7] + tp[j+12] + tp[j+17]) +! ? "light" : "dark"), 0); +! reset_option_was_set((char_u *)"bg"); +! redraw_asap(CLEAR); +! } +! +! /* got finished code: consume it */ +! key_name[0] = (int)KS_EXTRA; +! key_name[1] = (int)KE_IGNORE; +! slen = i + 1 + (tp[i] == ESC); +! break; + } +! if (i == len) +! { +! LOG_TR("not enough characters for RB"); +! return -1; + } + } + +! /* Check for key code response from xterm: +! * +! * {lead}{flag}+r<{tail} +! * +! * {lead} can be P or DCS +! * {flag} can be '0' or '1' +! * {tail} can be Esc>\ or STERM +! * +! * Consume any code that starts with "{lead}.+r". +! */ + else if (check_for_codes +! && ((tp[0] == ESC && len >= 2 && tp[1] == 'P') + || tp[0] == DCS)) + { +! j = 1 + (tp[0] == ESC); +! if (len >= j + 3 && (argp[1] != '+' || argp[2] != 'r')) +! i = 0; /* no match */ +! else +! for (i = j; i < len; ++i) +! if ((tp[i] == ESC && i + 1 < len && tp[i + 1] == '\\') + || tp[i] == STERM) + { +! if (i - j >= 3) + got_code_from_term(tp + j, i); + key_name[0] = (int)KS_EXTRA; + key_name[1] = (int)KE_IGNORE; +*************** +*** 4457,4464 **** + + if (i == len) + { + LOG_TR("not enough characters for XT"); +! return -1; /* not enough characters */ + } + } + } +--- 4486,4495 ---- + + if (i == len) + { ++ /* These codes arrive many together, each code can be ++ * truncated at any point. */ + LOG_TR("not enough characters for XT"); +! return -1; + } + } + } +*** ../vim-7.4.769/src/version.c 2015-07-04 15:05:08.606736259 +0200 +--- src/version.c 2015-07-10 12:04:22.282011343 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 770, + /**/ + +-- +Some of the well known MS-Windows errors: + ETIME Wrong time, wait a little while + ECRASH Try again... + EDETECT Unable to detect errors + EOVER You lost! Play another game? + ENOCLUE Eh, what did you want? + + /// 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 /// From 8395f759862022ae6863ca553d5c1c7a0d89c4d0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:27 +0200 Subject: [PATCH 0260/1407] - patchlevel 771 --- 7.4.771 | 275 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 275 insertions(+) create mode 100644 7.4.771 diff --git a/7.4.771 b/7.4.771 new file mode 100644 index 00000000..455e13ca --- /dev/null +++ b/7.4.771 @@ -0,0 +1,275 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.771 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.771 +Problem: Search does not handle multi-byte character at the start position + correctly. +Solution: Take byte size of character into account. (Yukihiro Nakadaira) +Files: src/search.c, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_search_mbyte.in, + src/testdir/test_search_mbyte.ok + + +*** ../vim-7.4.770/src/search.c 2015-03-13 15:02:46.254059251 +0100 +--- src/search.c 2015-07-10 14:37:49.055931842 +0200 +*************** +*** 548,553 **** +--- 548,554 ---- + pos_T start_pos; + int at_first_line; + int extra_col; ++ int start_char_len; + int match_ok; + long nmatched; + int submatch = 0; +*************** +*** 574,596 **** + /* When not accepting a match at the start position set "extra_col" to + * a non-zero value. Don't do that when starting at MAXCOL, since + * MAXCOL + 1 is zero. */ +! if ((options & SEARCH_START) || pos->col == MAXCOL) +! extra_col = 0; + #ifdef FEAT_MBYTE + /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */ +! else if (dir != BACKWARD && has_mbyte +! && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count +! && pos->col < MAXCOL - 2) + { + ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col; + if (*ptr == NUL) +! extra_col = 1; + else +! extra_col = (*mb_ptr2len)(ptr); + } + #endif + else +! extra_col = 1; + + start_pos = *pos; /* remember start pos for detecting no match */ + found = 0; /* default: not found */ +--- 575,611 ---- + /* When not accepting a match at the start position set "extra_col" to + * a non-zero value. Don't do that when starting at MAXCOL, since + * MAXCOL + 1 is zero. */ +! if (pos->col == MAXCOL) +! start_char_len = 0; + #ifdef FEAT_MBYTE + /* Watch out for the "col" being MAXCOL - 2, used in a closed fold. */ +! else if (has_mbyte +! && pos->lnum >= 1 && pos->lnum <= buf->b_ml.ml_line_count +! && pos->col < MAXCOL - 2) + { + ptr = ml_get_buf(buf, pos->lnum, FALSE) + pos->col; + if (*ptr == NUL) +! start_char_len = 1; + else +! start_char_len = (*mb_ptr2len)(ptr); + } + #endif + else +! start_char_len = 1; +! if (dir == FORWARD) +! { +! if (options & SEARCH_START) +! extra_col = 0; +! else +! extra_col = start_char_len; +! } +! else +! { +! if (options & SEARCH_START) +! extra_col = start_char_len; +! else +! extra_col = 0; +! } + + start_pos = *pos; /* remember start pos for detecting no match */ + found = 0; /* default: not found */ +*************** +*** 779,793 **** + || (lnum + regmatch.endpos[0].lnum + == start_pos.lnum + && (int)regmatch.endpos[0].col - 1 +! + extra_col +! <= (int)start_pos.col)) + : (lnum + regmatch.startpos[0].lnum + < start_pos.lnum + || (lnum + regmatch.startpos[0].lnum + == start_pos.lnum + && (int)regmatch.startpos[0].col +! + extra_col +! <= (int)start_pos.col)))) + { + match_ok = TRUE; + matchpos = regmatch.startpos[0]; +--- 794,808 ---- + || (lnum + regmatch.endpos[0].lnum + == start_pos.lnum + && (int)regmatch.endpos[0].col - 1 +! < (int)start_pos.col +! + extra_col)) + : (lnum + regmatch.startpos[0].lnum + < start_pos.lnum + || (lnum + regmatch.startpos[0].lnum + == start_pos.lnum + && (int)regmatch.startpos[0].col +! < (int)start_pos.col +! + extra_col)))) + { + match_ok = TRUE; + matchpos = regmatch.startpos[0]; +*** ../vim-7.4.770/src/testdir/Make_amiga.mak 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/Make_amiga.mak 2015-07-10 14:36:33.776641084 +0200 +*************** +*** 57,62 **** +--- 57,63 ---- + test_perl.out \ + test_qf_title.out \ + test_ruby.out \ ++ test_search_mbyte.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*************** +*** 205,210 **** +--- 206,212 ---- + test_perl.out: test_perl.in + test_qf_title.out: test_qf_title.in + test_ruby.out: test_ruby.in ++ test_search_mbyte.out: test_search_mbyte.in + test_set.out: test_set.in + test_signs.out: test_signs.in + test_textobjects.out: test_textobjects.in +*** ../vim-7.4.770/src/testdir/Make_dos.mak 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/Make_dos.mak 2015-07-10 14:36:43.384550582 +0200 +*************** +*** 56,61 **** +--- 56,62 ---- + test_perl.out \ + test_qf_title.out \ + test_ruby.out \ ++ test_search_mbyte.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.770/src/testdir/Make_ming.mak 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/Make_ming.mak 2015-07-10 14:36:50.716481518 +0200 +*************** +*** 78,83 **** +--- 78,84 ---- + test_perl.out \ + test_qf_title.out \ + test_ruby.out \ ++ test_search_mbyte.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.770/src/testdir/Make_os2.mak 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/Make_os2.mak 2015-07-10 14:36:52.820461700 +0200 +*************** +*** 58,63 **** +--- 58,64 ---- + test_perl.out \ + test_qf_title.out \ + test_ruby.out \ ++ test_search_mbyte.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.770/src/testdir/Make_vms.mms 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/Make_vms.mms 2015-07-10 14:36:58.240410647 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Jun 19 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Jul 10 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 117,122 **** +--- 117,123 ---- + test_perl.out \ + test_qf_title.out \ + test_ruby.out \ ++ test_search_mbyte.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.770/src/testdir/Makefile 2015-06-25 13:57:20.033431073 +0200 +--- src/testdir/Makefile 2015-07-10 14:37:09.404305492 +0200 +*************** +*** 54,59 **** +--- 54,60 ---- + test_perl.out \ + test_qf_title.out \ + test_ruby.out \ ++ test_search_mbyte.out \ + test_set.out \ + test_signs.out \ + test_textobjects.out \ +*** ../vim-7.4.770/src/testdir/test_search_mbyte.in 2015-07-10 14:42:43.513156459 +0200 +--- src/testdir/test_search_mbyte.in 2015-07-10 14:33:38.430293025 +0200 +*************** +*** 0 **** +--- 1,15 ---- ++ Test for search('multi-byte char', 'bce') ++ ++ STARTTEST ++ :source small.vim ++ :source mbyte.vim ++ :set encoding=utf-8 ++ :/^Test bce:/+1 ++ :$put =search('A', 'bce', line('.')) ++ :1;/^Results:/,$wq! test.out ++ ENDTEST ++ ++ Results: ++ ++ Test bce: ++ A +*** ../vim-7.4.770/src/testdir/test_search_mbyte.ok 2015-07-10 14:42:43.517156422 +0200 +--- src/testdir/test_search_mbyte.ok 2015-07-10 14:34:23.409869226 +0200 +*************** +*** 0 **** +--- 1,5 ---- ++ Results: ++ ++ Test bce: ++ A ++ 15 +*** ../vim-7.4.770/src/version.c 2015-07-10 14:05:03.930436893 +0200 +--- src/version.c 2015-07-10 14:37:46.207958692 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 771, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +197. Your desk collapses under the weight of your computer peripherals. + + /// 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 /// From e23139a7f34a0351526ca561654f90235cb58660 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:27 +0200 Subject: [PATCH 0261/1407] - patchlevel 772 --- 7.4.772 | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 7.4.772 diff --git a/7.4.772 b/7.4.772 new file mode 100644 index 00000000..b0887ce2 --- /dev/null +++ b/7.4.772 @@ -0,0 +1,110 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.772 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.772 +Problem: Racket 6.2 is not supported on MS-Windows. +Solution: Check for the "racket" subdirectory. (Weiyong Mao) +Files: src/Make_mvc.mak, src/if_mzsch.c + + +*** ../vim-7.4.771/src/Make_mvc.mak 2015-06-25 16:13:37.779750062 +0200 +--- src/Make_mvc.mak 2015-07-10 16:00:35.125149663 +0200 +*************** +*** 797,803 **** + !endif + CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include + !if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \ +! || EXIST("$(MZSCHEME)\collects\scheme\base.rkt") + # for MzScheme >= 4 we need to include byte code for basic Scheme stuff + MZSCHEME_EXTRA_DEP = mzscheme_base.c + CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE +--- 797,804 ---- + !endif + CFLAGS = $(CFLAGS) -DFEAT_MZSCHEME -I $(MZSCHEME)\include + !if EXIST("$(MZSCHEME)\collects\scheme\base.ss") \ +! || EXIST("$(MZSCHEME)\collects\scheme\base.rkt") \ +! || EXIST("$(MZSCHEME)\collects\racket\base.rkt") + # for MzScheme >= 4 we need to include byte code for basic Scheme stuff + MZSCHEME_EXTRA_DEP = mzscheme_base.c + CFLAGS = $(CFLAGS) -DINCLUDE_MZSCHEME_BASE +*************** +*** 1170,1176 **** +--- 1171,1181 ---- + $(CC) $(CFLAGS) if_mzsch.c \ + -DMZSCHEME_COLLECTS=\"$(MZSCHEME:\=\\)\\collects\" + mzscheme_base.c: ++ !IF "$(MZSCHEME_MAIN_LIB)" == "racket" ++ $(MZSCHEME)\raco ctool --c-mods mzscheme_base.c ++lib scheme/base ++ !ELSE + $(MZSCHEME)\mzc --c-mods mzscheme_base.c ++lib scheme/base ++ !ENDIF + + $(OUTDIR)/if_python.obj: $(OUTDIR) if_python.c if_py_both.h $(INCL) + $(CC) $(CFLAGS) $(PYTHON_INC) if_python.c +*** ../vim-7.4.771/src/if_mzsch.c 2013-05-06 04:06:04.000000000 +0200 +--- src/if_mzsch.c 2015-07-10 16:04:38.714856066 +0200 +*************** +*** 851,857 **** + #endif + } + +! #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL) + static __declspec(thread) void *tls_space; + #endif + +--- 851,863 ---- + #endif + } + +! /* +! * scheme_register_tls_space is only available on 32-bit Windows. +! * See http://docs.racket-lang.org/inside/im_memoryalloc.html?q=scheme_register_tls_space +! */ +! #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) \ +! && defined(USE_THREAD_LOCAL) && !defined(_WIN64) +! # define HAVE_TLS_SPACE 1 + static __declspec(thread) void *tls_space; + #endif + +*************** +*** 870,876 **** + int + mzscheme_main(int argc, char** argv) + { +! #if MZSCHEME_VERSION_MAJOR >= 500 && defined(WIN32) && defined(USE_THREAD_LOCAL) + scheme_register_tls_space(&tls_space, 0); + #endif + #ifdef TRAMPOLINED_MZVIM_STARTUP +--- 876,882 ---- + int + mzscheme_main(int argc, char** argv) + { +! #ifdef HAVE_TLS_SPACE + scheme_register_tls_space(&tls_space, 0); + #endif + #ifdef TRAMPOLINED_MZVIM_STARTUP +*** ../vim-7.4.771/src/version.c 2015-07-10 14:43:29.560722567 +0200 +--- src/version.c 2015-07-10 16:11:54.982749248 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 772, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +199. You read this entire list of symptoms, looking for something + that doesn't describe you. + + /// 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 /// From ac4b301ed3fd6f6af88465a1acdd77ea5934004b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:28 +0200 Subject: [PATCH 0262/1407] - patchlevel 773 --- 7.4.773 | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 7.4.773 diff --git a/7.4.773 b/7.4.773 new file mode 100644 index 00000000..db46fad2 --- /dev/null +++ b/7.4.773 @@ -0,0 +1,97 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.773 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.773 +Problem: 'langmap' is used in command-line mode when checking for mappings. + Issue 376. +Solution: Do not use 'langmap' in command-line mode. (Larry Velazquez) +Files: src/getchar.c, src/testdir/test_mapping.in, + src/testdir/test_mapping.ok + + +*** ../vim-7.4.772/src/getchar.c 2015-01-14 14:08:40.360402421 +0100 +--- src/getchar.c 2015-07-10 17:12:33.408498532 +0200 +*************** +*** 2145,2151 **** + nolmaplen = 2; + else + { +! LANGMAP_ADJUST(c1, (State & INSERT) == 0); + nolmaplen = 0; + } + #endif +--- 2145,2152 ---- + nolmaplen = 2; + else + { +! LANGMAP_ADJUST(c1, +! (State & (CMDLINE | INSERT)) == 0); + nolmaplen = 0; + } + #endif +*** ../vim-7.4.772/src/testdir/test_mapping.in 2015-02-03 16:53:47.151669335 +0100 +--- src/testdir/test_mapping.in 2015-07-10 17:11:22.857163361 +0200 +*************** +*** 28,36 **** + :inoremap { FAIL_ilangmap + :set langmap=+{ langnoremap + o+ +! : " expr mapping with langmap + :inoremap { "FAIL_iexplangmap" + o+ + :" issue #212 (feedkeys insert mapping at current position) + :nnoremap . :call feedkeys(".", "in") + :/^a b +--- 28,45 ---- + :inoremap { FAIL_ilangmap + :set langmap=+{ langnoremap + o+ +! :" Insert-mode expr mapping with langmap + :inoremap { "FAIL_iexplangmap" + o+ ++ :" langmap should not get remapped in Command-line mode ++ :cnoremap { FAIL_clangmap ++ :call append(line('$'), '+') ++ :cunmap { ++ :" Command-line mode expr mapping with langmap ++ :cnoremap { "FAIL_cexplangmap" ++ :call append(line('$'), '+') ++ :cunmap { ++ :" + :" issue #212 (feedkeys insert mapping at current position) + :nnoremap . :call feedkeys(".", "in") + :/^a b +*** ../vim-7.4.772/src/testdir/test_mapping.ok 2015-02-03 16:53:47.151669335 +0100 +--- src/testdir/test_mapping.ok 2015-07-10 17:11:22.857163361 +0200 +*************** +*** 8,10 **** +--- 8,12 ---- + vmap works + + + + ++ + ++ + +*** ../vim-7.4.772/src/version.c 2015-07-10 16:12:43.146296071 +0200 +--- src/version.c 2015-07-10 17:11:00.021378557 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 773, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +200. You really believe in the concept of a "paperless" office. + + /// 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 /// From 1144a10aecc307c7302dfb30667131e54abca76a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:29 +0200 Subject: [PATCH 0263/1407] - patchlevel 774 --- 7.4.774 | 236 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 7.4.774 diff --git a/7.4.774 b/7.4.774 new file mode 100644 index 00000000..c75b8eb7 --- /dev/null +++ b/7.4.774 @@ -0,0 +1,236 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.774 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.774 +Problem: When using the CompleteDone autocommand event it's difficult to + get to the completed items. +Solution: Add the v:completed_items variable. (Shougo Matsu) +Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/edit.c, + src/eval.c, src/macros.h, src/proto/eval.pro, src/vim.h + + +*** ../vim-7.4.773/runtime/doc/autocmd.txt 2014-08-22 23:05:50.098606614 +0200 +--- runtime/doc/autocmd.txt 2015-07-10 17:37:59.618121125 +0200 +*************** +*** 502,507 **** +--- 505,512 ---- + CompleteDone After Insert mode completion is done. Either + when something was completed or abandoning + completion. |ins-completion| ++ The |v:completed_item| variable contains ++ information about the completed item. + + *CursorHold* + CursorHold When the user doesn't press a key for the time +*** ../vim-7.4.773/runtime/doc/eval.txt 2015-06-25 16:09:20.698461237 +0200 +--- runtime/doc/eval.txt 2015-07-10 17:39:36.641207424 +0200 +*************** +*** 1330,1335 **** +--- 1330,1341 ---- + can only be used in autocommands. For user commands || + can be used. + ++ *v:completed_item* *completed_item-variable* ++ v:completed_item ++ |Dictionary| containing the |complete-items| for the most ++ recently completed word after |CompleteDone|. The ++ |Dictionary| is empty if the completion failed. ++ + *v:count* *count-variable* + v:count The count given for the last Normal mode command. Can be used + to get the count before a mapping. Read-only. Example: > +*** ../vim-7.4.773/src/edit.c 2015-03-31 19:17:55.620054448 +0200 +--- src/edit.c 2015-07-10 17:37:22.574469987 +0200 +*************** +*** 3372,3377 **** +--- 3372,3379 ---- + vim_free(compl_orig_text); + compl_orig_text = NULL; + compl_enter_selects = FALSE; ++ /* clear v:completed_item */ ++ set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc()); + } + + /* +*************** +*** 4606,4622 **** +--- 4608,4646 ---- + /* TODO: is this sufficient for redrawing? Redrawing everything causes + * flicker, thus we can't do that. */ + changed_cline_bef_curs(); ++ /* clear v:completed_item */ ++ set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc()); + } + + /* Insert the new text being completed. */ + static void + ins_compl_insert() + { ++ dict_T *dict; ++ + ins_bytes(compl_shown_match->cp_str + ins_compl_len()); + if (compl_shown_match->cp_flags & ORIGINAL_TEXT) + compl_used_match = FALSE; + else + compl_used_match = TRUE; ++ ++ /* Set completed item. */ ++ /* { word, abbr, menu, kind, info } */ ++ dict = dict_alloc(); ++ if (dict != NULL) ++ { ++ dict_add_nr_str(dict, "word", 0L, ++ EMPTY_IF_NULL(compl_shown_match->cp_str)); ++ dict_add_nr_str(dict, "abbr", 0L, ++ EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_ABBR])); ++ dict_add_nr_str(dict, "menu", 0L, ++ EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_MENU])); ++ dict_add_nr_str(dict, "kind", 0L, ++ EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_KIND])); ++ dict_add_nr_str(dict, "info", 0L, ++ EMPTY_IF_NULL(compl_shown_match->cp_text[CPT_INFO])); ++ } ++ set_vim_var_dict(VV_COMPLETED_ITEM, dict); + } + + /* +*** ../vim-7.4.773/src/eval.c 2015-06-25 16:09:20.702461194 +0200 +--- src/eval.c 2015-07-10 17:42:52.831359939 +0200 +*************** +*** 364,369 **** +--- 364,370 ---- + {VV_NAME("oldfiles", VAR_LIST), 0}, + {VV_NAME("windowid", VAR_NUMBER), VV_RO}, + {VV_NAME("progpath", VAR_STRING), VV_RO}, ++ {VV_NAME("completed_item", VAR_DICT), VV_RO}, + }; + + /* shorthand */ +*************** +*** 372,377 **** +--- 373,379 ---- + #define vv_float vv_di.di_tv.vval.v_float + #define vv_str vv_di.di_tv.vval.v_string + #define vv_list vv_di.di_tv.vval.v_list ++ #define vv_dict vv_di.di_tv.vval.v_dict + #define vv_tv vv_di.di_tv + + static dictitem_T vimvars_var; /* variable used for v: */ +*************** +*** 888,893 **** +--- 890,896 ---- + } + set_vim_var_nr(VV_SEARCHFORWARD, 1L); + set_vim_var_nr(VV_HLSEARCH, 1L); ++ set_vim_var_dict(VV_COMPLETED_ITEM, dict_alloc()); + set_reg_var(0); /* default for v:register is not 0 but '"' */ + + #ifdef EBCDIC +*************** +*** 20577,20582 **** +--- 20580,20614 ---- + } + + /* ++ * Set Dictionary v: variable to "val". ++ */ ++ void ++ set_vim_var_dict(idx, val) ++ int idx; ++ dict_T *val; ++ { ++ int todo; ++ hashitem_T *hi; ++ ++ dict_unref(vimvars[idx].vv_dict); ++ vimvars[idx].vv_dict = val; ++ if (val != NULL) ++ { ++ ++val->dv_refcount; ++ ++ /* Set readonly */ ++ todo = (int)val->dv_hashtab.ht_used; ++ for (hi = val->dv_hashtab.ht_array; todo > 0 ; ++hi) ++ { ++ if (HASHITEM_EMPTY(hi)) ++ continue; ++ --todo; ++ HI2DI(hi)->di_flags = DI_FLAGS_RO | DI_FLAGS_FIX; ++ } ++ } ++ } ++ ++ /* + * Set v:register if needed. + */ + void +*** ../vim-7.4.773/src/macros.h 2014-11-05 17:44:47.676471691 +0100 +--- src/macros.h 2015-07-10 17:25:46.129029911 +0200 +*************** +*** 118,123 **** +--- 118,126 ---- + # define ASCII_ISALNUM(c) (ASCII_ISALPHA(c) || VIM_ISDIGIT(c)) + #endif + ++ /* Returns empty string if it is NULL. */ ++ #define EMPTY_IF_NULL(x) ((x) ? (x) : (u_char *)"") ++ + /* macro version of chartab(). + * Only works with values 0-255! + * Doesn't work for UTF-8 mode with chars >= 0x80. */ +*** ../vim-7.4.773/src/proto/eval.pro 2015-02-03 12:55:11.140179551 +0100 +--- src/proto/eval.pro 2015-07-10 17:25:46.129029911 +0200 +*************** +*** 91,96 **** +--- 91,97 ---- + void set_vcount __ARGS((long count, long count1, int set_prevcount)); + void set_vim_var_string __ARGS((int idx, char_u *val, int len)); + void set_vim_var_list __ARGS((int idx, list_T *val)); ++ void set_vim_var_dict __ARGS((int idx, dict_T *val)); + void set_reg_var __ARGS((int c)); + char_u *v_exception __ARGS((char_u *oldval)); + char_u *v_throwpoint __ARGS((char_u *oldval)); +*** ../vim-7.4.773/src/vim.h 2015-03-21 17:32:14.058780006 +0100 +--- src/vim.h 2015-07-10 17:37:04.970635775 +0200 +*************** +*** 1897,1903 **** + #define VV_OLDFILES 55 + #define VV_WINDOWID 56 + #define VV_PROGPATH 57 +! #define VV_LEN 58 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +--- 1897,1904 ---- + #define VV_OLDFILES 55 + #define VV_WINDOWID 56 + #define VV_PROGPATH 57 +! #define VV_COMPLETED_ITEM 58 +! #define VV_LEN 59 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +*** ../vim-7.4.773/src/version.c 2015-07-10 17:19:25.024620239 +0200 +--- src/version.c 2015-07-10 17:27:37.643979391 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 774, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +201. When somebody asks you where you are, you tell them in which chat room. + + /// 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 /// From ee793c6b9adf7526078222bd7fb2f0f82af03cbb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:29 +0200 Subject: [PATCH 0264/1407] - patchlevel 775 --- 7.4.775 | 232 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 232 insertions(+) create mode 100644 7.4.775 diff --git a/7.4.775 b/7.4.775 new file mode 100644 index 00000000..34c988be --- /dev/null +++ b/7.4.775 @@ -0,0 +1,232 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.775 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.775 +Problem: It is not possible to avoid using the first item of completion. +Solution: Add the "noinsert" and "noselect" values to 'completeopt'. (Shougo + Matsu) +Files: runtime/doc/options.txt, src/edit.c, src/option.c + + +*** ../vim-7.4.774/runtime/doc/options.txt 2015-06-19 14:41:44.773813332 +0200 +--- runtime/doc/options.txt 2015-07-10 18:02:02.584539984 +0200 +*************** +*** 1818,1823 **** +--- 1819,1832 ---- + completion in the preview window. Only works in + combination with "menu" or "menuone". + ++ noinsert Do not insert any text for a match until the user selects ++ a match from the menu. Only works in combination with ++ "menu" or "menuone". No effect if "longest" is present. ++ ++ noselect Do not select a match in the menu, force the user to ++ select one from the menu. Only works in combination with ++ "menu" or "menuone". ++ + + *'concealcursor'* *'cocu'* + 'concealcursor' 'cocu' string (default: "") +*** ../vim-7.4.774/src/edit.c 2015-07-10 17:56:18.215777193 +0200 +--- src/edit.c 2015-07-10 18:05:16.054721894 +0200 +*************** +*** 108,113 **** +--- 108,118 ---- + static int compl_get_longest = FALSE; /* put longest common string + in compl_leader */ + ++ static int compl_no_insert = FALSE; /* FALSE: select & insert ++ TRUE: noinsert */ ++ static int compl_no_select = FALSE; /* FALSE: select & insert ++ TRUE: noselect */ ++ + static int compl_used_match; /* Selected one of the matches. When + FALSE the match was edited or using + the longest common string. */ +*************** +*** 2788,2794 **** + compl_cont_status = 0; + + compl_curr_match = compl_first_match; +! ins_complete(Ctrl_N); + out_flush(); + } + +--- 2793,2809 ---- + compl_cont_status = 0; + + compl_curr_match = compl_first_match; +! if (compl_no_insert) +! { +! if (!compl_no_select) +! ins_complete(K_DOWN); +! } +! else +! { +! ins_complete(Ctrl_N); +! if (compl_no_select) +! ins_complete(Ctrl_P); +! } + out_flush(); + } + +*************** +*** 3657,3666 **** + if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET + || (ctrl_x_mode == 0 && !compl_started)) + { +! compl_get_longest = (vim_strchr(p_cot, 'l') != NULL); + compl_used_match = TRUE; + } + + if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET) + { + /* +--- 3672,3689 ---- + if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET + || (ctrl_x_mode == 0 && !compl_started)) + { +! compl_get_longest = (strstr((char *)p_cot, "longest") != NULL); + compl_used_match = TRUE; ++ + } + ++ compl_no_insert = FALSE; ++ compl_no_select = FALSE; ++ if (strstr((char *)p_cot, "noselect") != NULL) ++ compl_no_select = TRUE; ++ if (strstr((char *)p_cot, "noinsert") != NULL) ++ compl_no_insert = TRUE; ++ + if (ctrl_x_mode == CTRL_X_NOT_DEFINED_YET) + { + /* +*************** +*** 4672,4677 **** +--- 4695,4701 ---- + compl_T *found_compl = NULL; + int found_end = FALSE; + int advance; ++ int started = compl_started; + + /* When user complete function return -1 for findstart which is next + * time of 'always', compl_shown_match become NULL. */ +*************** +*** 4753,4759 **** + return -1; + } + +! if (advance) + { + if (compl_shows_dir == BACKWARD) + --compl_pending; +--- 4777,4783 ---- + return -1; + } + +! if (!compl_no_select && advance) + { + if (compl_shows_dir == BACKWARD) + --compl_pending; +*************** +*** 4805,4811 **** + } + + /* Insert the text of the new completion, or the compl_leader. */ +! if (insert_match) + { + if (!compl_get_longest || compl_used_match) + ins_compl_insert(); +--- 4829,4840 ---- + } + + /* Insert the text of the new completion, or the compl_leader. */ +! if (compl_no_insert && !started) +! { +! ins_bytes(compl_orig_text + ins_compl_len()); +! compl_used_match = FALSE; +! } +! else if (insert_match) + { + if (!compl_get_longest || compl_used_match) + ins_compl_insert(); +*************** +*** 4842,4848 **** + + /* Enter will select a match when the match wasn't inserted and the popup + * menu is visible. */ +! compl_enter_selects = !insert_match && compl_match_array != NULL; + + /* + * Show the file name for the match (if any) +--- 4871,4880 ---- + + /* Enter will select a match when the match wasn't inserted and the popup + * menu is visible. */ +! if (compl_no_insert && !started) +! compl_enter_selects = TRUE; +! else +! compl_enter_selects = !insert_match && compl_match_array != NULL; + + /* + * Show the file name for the match (if any) +*************** +*** 4917,4923 **** + } + } + } +! if (compl_pending != 0 && !got_int) + { + int todo = compl_pending > 0 ? compl_pending : -compl_pending; + +--- 4949,4955 ---- + } + } + } +! if (compl_pending != 0 && !got_int && !compl_no_insert) + { + int todo = compl_pending > 0 ? compl_pending : -compl_pending; + +*** ../vim-7.4.774/src/option.c 2015-06-25 19:16:51.485906246 +0200 +--- src/option.c 2015-07-10 17:59:17.526091062 +0200 +*************** +*** 3054,3060 **** + static char *(p_fcl_values[]) = {"all", NULL}; + #endif + #ifdef FEAT_INS_EXPAND +! static char *(p_cot_values[]) = {"menu", "menuone", "longest", "preview", NULL}; + #endif + + static void set_option_default __ARGS((int, int opt_flags, int compatible)); +--- 3054,3060 ---- + static char *(p_fcl_values[]) = {"all", NULL}; + #endif + #ifdef FEAT_INS_EXPAND +! static char *(p_cot_values[]) = {"menu", "menuone", "longest", "preview", "noinsert", "noselect", NULL}; + #endif + + static void set_option_default __ARGS((int, int opt_flags, int compatible)); +*** ../vim-7.4.774/src/version.c 2015-07-10 17:56:18.219777154 +0200 +--- src/version.c 2015-07-10 18:01:22.548916206 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 775, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +202. You're amazed to find out Spam is a food. + + /// 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 /// From 5e2d484f909a66b125518efcffcc37dea2ceba1a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:30 +0200 Subject: [PATCH 0265/1407] - patchlevel 776 --- 7.4.776 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 7.4.776 diff --git a/7.4.776 b/7.4.776 new file mode 100644 index 00000000..5b6a86e3 --- /dev/null +++ b/7.4.776 @@ -0,0 +1,92 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.776 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.776 +Problem: Equivalence class for 'd' does not work correctly. +Solution: Fix 0x1e0f and 0x1d0b. (Dominique Pelle) +Files: src/regexp.c, src/regexp_nfa.c + + +*** ../vim-7.4.775/src/regexp.c 2015-06-09 20:39:04.322545425 +0200 +--- src/regexp.c 2015-07-10 18:53:07.391711695 +0200 +*************** +*** 1011,1020 **** + REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b) + REGMBC(0x10d) + return; +! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) +! CASEMBC(0x1e11) + regmbc('d'); REGMBC(0x10f) REGMBC(0x111) +! REGMBC(0x1e0b) REGMBC(0x01e0f) REGMBC(0x1e11) + return; + case 'e': case 0xe8: case 0xe9: case 0xea: case 0xeb: + CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) +--- 1011,1020 ---- + REGMBC(0x107) REGMBC(0x109) REGMBC(0x10b) + REGMBC(0x10d) + return; +! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1e0b) +! CASEMBC(0x1e0f) CASEMBC(0x1e11) + regmbc('d'); REGMBC(0x10f) REGMBC(0x111) +! REGMBC(0x1e0b) REGMBC(0x1e0f) REGMBC(0x1e11) + return; + case 'e': case 0xe8: case 0xe9: case 0xea: case 0xeb: + CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) +*** ../vim-7.4.775/src/regexp_nfa.c 2015-05-04 10:33:09.633193707 +0200 +--- src/regexp_nfa.c 2015-07-10 18:53:07.391711695 +0200 +*************** +*** 542,548 **** + ret = alloc(len); + if (ret != NULL) + { +- len = 0; + p = start->out->out; /* skip first char, it goes into regstart */ + s = ret; + while (p->c > 0) +--- 542,547 ---- +*************** +*** 946,955 **** + EMITMBC(0x10b) EMITMBC(0x10d) + return OK; + +! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) +! CASEMBC(0x1e11) +! EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) +! EMITMBC(0x01e0f) EMITMBC(0x1e11) + return OK; + + case 'e': case 0350: case 0351: case 0352: case 0353: +--- 945,954 ---- + EMITMBC(0x10b) EMITMBC(0x10d) + return OK; + +! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1e0b) +! CASEMBC(0x1e0f) CASEMBC(0x1e11) +! EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) +! EMITMBC(0x1e0b) EMITMBC(0x1e0f) EMITMBC(0x1e11) + return OK; + + case 'e': case 0350: case 0351: case 0352: case 0353: +*** ../vim-7.4.775/src/version.c 2015-07-10 18:18:35.579206260 +0200 +--- src/version.c 2015-07-10 18:55:20.974449842 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 776, + /**/ + +-- +$ echo pizza > /dev/oven + + /// 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 /// From f4dd0be53a9df27547ceffab6bdfeacd1074a45b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:30 +0200 Subject: [PATCH 0266/1407] - patchlevel 777 --- 7.4.777 | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 7.4.777 diff --git a/7.4.777 b/7.4.777 new file mode 100644 index 00000000..f573f663 --- /dev/null +++ b/7.4.777 @@ -0,0 +1,162 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.777 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.777 +Problem: The README file doesn't look nice on github. +Solution: Add a markdown version of the README file. +Files: Filelist, README.md + + +*** ../vim-7.4.776/Filelist 2014-11-05 17:04:10.516530418 +0100 +--- Filelist 2015-07-10 16:29:19.472923927 +0200 +*************** +*** 481,486 **** +--- 481,487 ---- + # runtime files for all distributions + RT_ALL = \ + README.txt \ ++ README.md \ + runtime/bugreport.vim \ + runtime/doc/*.awk \ + runtime/doc/*.pl \ +*** ../vim-7.4.776/README.md 2015-07-10 19:21:37.767563658 +0200 +--- README.md 2015-07-10 16:28:55.569148732 +0200 +*************** +*** 0 **** +--- 1,112 ---- ++ `README.md` for version 7.4 of Vim: Vi IMproved. ++ ++ ++ ## What is VIM ## ++ ++ Vim is an almost compatible version of the UNIX editor Vi. Many new features ++ have been added: multi-level undo, syntax highlighting, command line history, ++ on-line help, spell checking, filename completion, block operations, etc. ++ There is also a Graphical User Interface (GUI) available. See ++ `runtime/doc/vi_diff.txt` for differences with Vi. ++ ++ This editor is very useful for editing programs and other plain text files. ++ All commands are given with normal keyboard characters, so those who can type ++ with ten fingers can work very fast. Additionally, function keys can be ++ defined by the user, and the mouse can be used. ++ ++ Vim runs under Amiga DOS, MS-DOS, MS-Windows (95, 98, Me, NT, 2000, XP, Vista, ++ 7), Atari MiNT, Macintosh, BeOS, VMS, RISC OS, OS/2 and almost all flavours of ++ UNIX. Porting to other systems should not be very difficult. ++ ++ ++ ## Distribution ## ++ ++ There are separate distributions for Unix, PC, Amiga and some other systems. ++ This `README.md` file comes with the runtime archive. It includes the ++ documentation, syntax files and other files that are used at runtime. To run ++ Vim you must get either one of the binary archives or a source archive. ++ Which one you need depends on the system you want to run it on and whether you ++ want or must compile it yourself. Check http://www.vim.org/download.php for ++ an overview of currently available distributions. ++ ++ ++ ## Documentation ## ++ ++ The vim tutor is a one hour training course for beginners. Mostly it can be ++ started as `vimtutor`. See `:help tutor` for more information. ++ ++ The best is to use `:help` in Vim. If you don't have an executable yet, read ++ `runtime/doc/help.txt`. It contains pointers to the other documentation ++ files. The User Manual reads like a book and is recommended to learn to use ++ Vim. See `:help user-manual`. ++ ++ ++ ## Copying ## ++ ++ Vim is Charityware. You can use and copy it as much as you like, but you are ++ encouraged to make a donation to help orphans in Uganda. Please read the file ++ `runtime/doc/uganda.txt` for details (do `:help uganda` inside Vim). ++ ++ Summary of the license: There are no restrictions on using or distributing an ++ unmodified copy of Vim. Parts of Vim may also be distributed, but the license ++ text must always be included. For modified versions a few restrictions apply. ++ The license is GPL compatible, you may compile Vim with GPL libraries and ++ distribute it. ++ ++ ++ ## Sponsoring ## ++ ++ Fixing bugs and adding new features takes a lot of time and effort. To show ++ your appreciation for the work and motivate Bram and others to continue ++ working on Vim please send a donation. ++ ++ Since Bram is back to a paid job the money will now be used to help children ++ in Uganda. See `runtime/doc/uganda.txt`. But at the same time donations ++ increase Bram's motivation to keep working on Vim! ++ ++ For the most recent information about sponsoring look on the Vim web site: ++ http://www.vim.org/sponsor/ ++ ++ ++ ## Compiling ## ++ ++ If you obtained a binary distribution you don't need to compile Vim. If you ++ obtained a source distribution, all the stuff for compiling Vim is in the ++ `src` directory. See `src/INSTALL` for instructions. ++ ++ ++ ## Installation ## ++ ++ See one of these files for system-specific instructions: ++ ++ README_ami.txt Amiga ++ README_unix.txt Unix ++ README_dos.txt MS-DOS and MS-Windows ++ README_os2.txt OS/2 ++ README_mac.txt Macintosh ++ README_vms.txt VMS ++ ++ There are more `README_*.txt` files, depending on the distribution you used. ++ ++ ++ ## Information ## ++ ++ The latest news about Vim can be found on the Vim home page: ++ http://www.vim.org/ ++ ++ If you have problems, have a look at the Vim documentation or tips: ++ http://www.vim.org/docs.php ++ http://vim.wikia.com/wiki/Vim_Tips_Wiki ++ ++ If you still have problems or any other questions, use one of the mailing ++ lists to discuss them with Vim users and developers: ++ http://www.vim.org/maillist.php ++ ++ If nothing else works, report bugs directly: ++ Bram Moolenaar ++ ++ ++ ## Main author ## ++ ++ Send any other comments, patches, flowers and suggestions to: ++ Bram Moolenaar +*** ../vim-7.4.776/src/version.c 2015-07-10 19:16:27.302493581 +0200 +--- src/version.c 2015-07-10 19:20:17.560320543 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 777, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +203. You're an active member of more than 20 newsgroups. + + /// 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 /// From 9c86fdfa7b5cd3d2e6b57a0c00d6f63e342e0377 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:31 +0200 Subject: [PATCH 0267/1407] - patchlevel 778 --- 7.4.778 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.4.778 diff --git a/7.4.778 b/7.4.778 new file mode 100644 index 00000000..1d394645 --- /dev/null +++ b/7.4.778 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.778 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.778 +Problem: Coverity warns for uninitialized variable. +Solution: Change condition of assignment. +Files: src/ops.c + + +*** ../vim-7.4.777/src/ops.c 2015-07-03 12:44:01.735748596 +0200 +--- src/ops.c 2015-07-10 21:44:12.118882050 +0200 +*************** +*** 5702,5711 **** + /* reset */ + subtract = FALSE; + negative = FALSE; +! if (visual && VIsual_mode != Ctrl_V) +! col = 0; +! else + col = startcol; + Prenum1 += offset; + curwin->w_set_curswant = TRUE; + #ifdef FEAT_RIGHTLEFT +--- 5702,5711 ---- + /* reset */ + subtract = FALSE; + negative = FALSE; +! if (visual && VIsual_mode == Ctrl_V) + col = startcol; ++ else ++ col = 0; + Prenum1 += offset; + curwin->w_set_curswant = TRUE; + #ifdef FEAT_RIGHTLEFT +*** ../vim-7.4.777/src/version.c 2015-07-10 19:21:45.667489110 +0200 +--- src/version.c 2015-07-10 22:37:05.097309995 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 778, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +206. You religiously respond immediately to e-mail, while ignoring + your growing pile of snail mail. + + /// 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 /// From c061842915edaed13ce672cb071107a4c061c02c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:32 +0200 Subject: [PATCH 0268/1407] - patchlevel 779 --- 7.4.779 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.4.779 diff --git a/7.4.779 b/7.4.779 new file mode 100644 index 00000000..066ab181 --- /dev/null +++ b/7.4.779 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.779 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.779 +Problem: Using CTRL-A in a line without a number moves the cursor. May + cause a crash when at the start of the line. (Urtica Dioica) +Solution: Do not move the cursor if no number was changed. +Files: src/ops.c + + +*** ../vim-7.4.778/src/ops.c 2015-07-10 22:37:54.312853901 +0200 +--- src/ops.c 2015-07-12 14:56:33.707974480 +0200 +*************** +*** 5404,5409 **** +--- 5404,5410 ---- + int lnum = curwin->w_cursor.lnum; + int lnume = curwin->w_cursor.lnum; + int startcol; ++ int did_change = FALSE; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ + dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL); /* "Octal" */ +*************** +*** 5547,5552 **** +--- 5548,5554 ---- + #endif + } + curwin->w_cursor.col = col; ++ did_change = TRUE; + (void)del_char(FALSE); + ins_char(firstdigit); + } +*************** +*** 5619,5624 **** +--- 5621,5627 ---- + * Delete the old number. + */ + curwin->w_cursor.col = col; ++ did_change = TRUE; + todel = length; + c = gchar_cursor(); + +*************** +*** 5713,5719 **** + RLADDSUBFIX(ptr); + #endif + } +! --curwin->w_cursor.col; + return OK; + } + +--- 5716,5723 ---- + RLADDSUBFIX(ptr); + #endif + } +! if (did_change && curwin->w_cursor.col > 0) +! --curwin->w_cursor.col; + return OK; + } + +*** ../vim-7.4.778/src/version.c 2015-07-10 22:37:54.312853901 +0200 +--- src/version.c 2015-07-12 15:01:11.605349725 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 779, + /**/ + +-- +Your mouse has moved. Windows must be restarted for the change +to take effect. Reboot now? + + /// 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 /// From bedd77fe18dbb1bff80b02516d6f292a99b7365f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:32 +0200 Subject: [PATCH 0269/1407] - patchlevel 780 --- 7.4.780 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.4.780 diff --git a/7.4.780 b/7.4.780 new file mode 100644 index 00000000..ad8374be --- /dev/null +++ b/7.4.780 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.780 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.780 +Problem: Compiler complains about uninitialized variable and clobbered + variables. +Solution: Add Initialization. Make variables static. +Files: src/ops.c, src/main.c + + +*** ../vim-7.4.779/src/ops.c 2015-07-12 15:02:27.396634029 +0200 +--- src/ops.c 2015-07-12 16:14:53.815524705 +0200 +*************** +*** 5403,5409 **** + int i; + int lnum = curwin->w_cursor.lnum; + int lnume = curwin->w_cursor.lnum; +! int startcol; + int did_change = FALSE; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ +--- 5403,5409 ---- + int i; + int lnum = curwin->w_cursor.lnum; + int lnume = curwin->w_cursor.lnum; +! int startcol = 0; + int did_change = FALSE; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ +*** ../vim-7.4.779/src/main.c 2015-07-03 13:32:56.121020898 +0200 +--- src/main.c 2015-07-12 16:18:30.961478337 +0200 +*************** +*** 1069,1077 **** + oparg_T oa; /* operator arguments */ + volatile int previous_got_int = FALSE; /* "got_int" was TRUE */ + #ifdef FEAT_CONCEAL +! linenr_T conceal_old_cursor_line = 0; +! linenr_T conceal_new_cursor_line = 0; +! int conceal_update_lines = FALSE; + #endif + + #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD) +--- 1069,1078 ---- + oparg_T oa; /* operator arguments */ + volatile int previous_got_int = FALSE; /* "got_int" was TRUE */ + #ifdef FEAT_CONCEAL +! /* these are static to avoid a compiler warning */ +! static linenr_T conceal_old_cursor_line = 0; +! static linenr_T conceal_new_cursor_line = 0; +! static int conceal_update_lines = FALSE; + #endif + + #if defined(FEAT_X11) && defined(FEAT_XCLIPBOARD) +*** ../vim-7.4.779/src/version.c 2015-07-12 15:02:27.396634029 +0200 +--- src/version.c 2015-07-12 16:15:42.383065560 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 780, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +211. Your husband leaves you...taking the computer with him and you + call him crying, and beg him to bring the computer back. + + /// 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 /// From 5db26bf4431cb557d23aea2e03e1cd3084b3079c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:33 +0200 Subject: [PATCH 0270/1407] - patchlevel 781 --- 7.4.781 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.781 diff --git a/7.4.781 b/7.4.781 new file mode 100644 index 00000000..9ee84a0b --- /dev/null +++ b/7.4.781 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.781 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.781 +Problem: line2byte() returns one less when 'bin' and 'noeol' are set. +Solution: Only adjust the size for the last line. (Rob Wu) +Files: src/memline.c + + +*** ../vim-7.4.780/src/memline.c 2015-06-09 18:35:17.467406952 +0200 +--- src/memline.c 2015-07-12 17:45:59.252002071 +0200 +*************** +*** 5362,5368 **** + size += lnum - 1; + + /* Don't count the last line break if 'bin' and 'noeol'. */ +! if (buf->b_p_bin && !buf->b_p_eol) + size -= ffdos + 1; + } + +--- 5362,5368 ---- + size += lnum - 1; + + /* Don't count the last line break if 'bin' and 'noeol'. */ +! if (buf->b_p_bin && !buf->b_p_eol && buf->b_ml.ml_line_count == lnum) + size -= ffdos + 1; + } + +*** ../vim-7.4.780/src/version.c 2015-07-12 16:21:17.795908369 +0200 +--- src/version.c 2015-07-12 17:47:20.723228449 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 781, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +213. Your kids start referring to you as "that guy in front of the monitor." + + /// 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 /// From 792bd32ca2a74b1038fc19697d046daa49147fe9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:34 +0200 Subject: [PATCH 0271/1407] - patchlevel 782 --- 7.4.782 | 1080 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1080 insertions(+) create mode 100644 7.4.782 diff --git a/7.4.782 b/7.4.782 new file mode 100644 index 00000000..32adcba8 --- /dev/null +++ b/7.4.782 @@ -0,0 +1,1080 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.782 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.782 +Problem: Still a few problems with CTRL-A and CTRL-X in Visual mode. +Solution: Fix the reported problems. (Christian Brabandt) +Files: src/charset.c, src/eval.c, src/ex_cmds.c, src/ex_getln.c, + src/misc2.c, src/normal.c, src/ops.c, src/option.c, + src/proto/charset.pro, src/testdir/test_increment.in, + src/testdir/test_increment.ok + + +*** ../vim-7.4.781/src/charset.c 2015-01-14 19:35:10.963756142 +0100 +--- src/charset.c 2015-07-17 12:48:43.296898014 +0200 +*************** +*** 1835,1843 **** + * octal number. + * If "dohex" is non-zero recognize hex numbers, when > 1 always assume + * hex number. + */ + void +! vim_str2nr(start, hexp, len, dooct, dohex, nptr, unptr) + char_u *start; + int *hexp; /* return: type of number 0 = decimal, 'x' + or 'X' is hex, '0' = octal */ +--- 1835,1844 ---- + * octal number. + * If "dohex" is non-zero recognize hex numbers, when > 1 always assume + * hex number. ++ * If maxlen > 0, check at a maximum maxlen chars + */ + void +! vim_str2nr(start, hexp, len, dooct, dohex, nptr, unptr, maxlen) + char_u *start; + int *hexp; /* return: type of number 0 = decimal, 'x' + or 'X' is hex, '0' = octal */ +*************** +*** 1846,1851 **** +--- 1847,1853 ---- + int dohex; /* recognize hex number */ + long *nptr; /* return: signed result */ + unsigned long *unptr; /* return: unsigned result */ ++ int maxlen; /* max length of string to check */ + { + char_u *ptr = start; + int hex = 0; /* default is decimal */ +*************** +*** 1860,1869 **** + } + + /* Recognize hex and octal. */ +! if (ptr[0] == '0' && ptr[1] != '8' && ptr[1] != '9') + { + hex = ptr[1]; +! if (dohex && (hex == 'X' || hex == 'x') && vim_isxdigit(ptr[2])) + ptr += 2; /* hexadecimal */ + else + { +--- 1862,1873 ---- + } + + /* Recognize hex and octal. */ +! if (ptr[0] == '0' && ptr[1] != '8' && ptr[1] != '9' +! && (maxlen == 0 || maxlen > 1)) + { + hex = ptr[1]; +! if (dohex && (hex == 'X' || hex == 'x') && vim_isxdigit(ptr[2]) +! && (maxlen == 0 || maxlen > 2)) + ptr += 2; /* hexadecimal */ + else + { +*************** +*** 1880,1885 **** +--- 1884,1891 ---- + } + if (ptr[n] >= '0') + hex = '0'; /* assume octal */ ++ if (n == maxlen) ++ break; + } + } + } +*************** +*** 1888,1893 **** +--- 1894,1900 ---- + /* + * Do the string-to-numeric conversion "manually" to avoid sscanf quirks. + */ ++ n = 1; + if (hex == '0' || dooct > 1) + { + /* octal */ +*************** +*** 1895,1900 **** +--- 1902,1909 ---- + { + un = 8 * un + (unsigned long)(*ptr - '0'); + ++ptr; ++ if (n++ == maxlen) ++ break; + } + } + else if (hex != 0 || dohex > 1) +*************** +*** 1904,1909 **** +--- 1913,1920 ---- + { + un = 16 * un + (unsigned long)hex2nr(*ptr); + ++ptr; ++ if (n++ == maxlen) ++ break; + } + } + else +*************** +*** 1913,1918 **** +--- 1924,1931 ---- + { + un = 10 * un + (unsigned long)(*ptr - '0'); + ++ptr; ++ if (n++ == maxlen) ++ break; + } + } + +*** ../vim-7.4.781/src/eval.c 2015-07-10 17:56:18.219777154 +0200 +--- src/eval.c 2015-07-17 12:45:16.778860576 +0200 +*************** +*** 1615,1621 **** + len = 0; + else + /* Recognize a number argument, the others must be strings. */ +! vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL); + if (len != 0 && len == (int)STRLEN(argv[i])) + { + argvars[i].v_type = VAR_NUMBER; +--- 1615,1621 ---- + len = 0; + else + /* Recognize a number argument, the others must be strings. */ +! vim_str2nr(argv[i], NULL, &len, TRUE, TRUE, &n, NULL, 0); + if (len != 0 && len == (int)STRLEN(argv[i])) + { + argvars[i].v_type = VAR_NUMBER; +*************** +*** 5128,5134 **** + else + #endif + { +! vim_str2nr(*arg, NULL, &len, TRUE, TRUE, &n, NULL); + *arg += len; + if (evaluate) + { +--- 5128,5134 ---- + else + #endif + { +! vim_str2nr(*arg, NULL, &len, TRUE, TRUE, &n, NULL, 0); + *arg += len; + if (evaluate) + { +*************** +*** 18233,18239 **** + p = skipwhite(get_tv_string(&argvars[0])); + if (*p == '+') + p = skipwhite(p + 1); +! vim_str2nr(p, NULL, NULL, base == 8 ? 2 : 0, base == 16 ? 2 : 0, &n, NULL); + rettv->vval.v_number = n; + } + +--- 18233,18239 ---- + p = skipwhite(get_tv_string(&argvars[0])); + if (*p == '+') + p = skipwhite(p + 1); +! vim_str2nr(p, NULL, NULL, base == 8 ? 2 : 0, base == 16 ? 2 : 0, &n, NULL, 0); + rettv->vval.v_number = n; + } + +*************** +*** 21039,21045 **** + case VAR_STRING: + if (varp->vval.v_string != NULL) + vim_str2nr(varp->vval.v_string, NULL, NULL, +! TRUE, TRUE, &n, NULL); + return n; + case VAR_LIST: + EMSG(_("E745: Using a List as a Number")); +--- 21039,21045 ---- + case VAR_STRING: + if (varp->vval.v_string != NULL) + vim_str2nr(varp->vval.v_string, NULL, NULL, +! TRUE, TRUE, &n, NULL, 0); + return n; + case VAR_LIST: + EMSG(_("E745: Using a List as a Number")); +*** ../vim-7.4.781/src/ex_cmds.c 2015-05-04 10:45:57.288481610 +0200 +--- src/ex_cmds.c 2015-07-17 12:45:16.782860538 +0200 +*************** +*** 500,506 **** + nrs[lnum - eap->line1].start_col_nr = -MAXLNUM; + else + vim_str2nr(s, NULL, NULL, sort_oct, sort_hex, +! &nrs[lnum - eap->line1].start_col_nr, NULL); + *s2 = c; + } + else +--- 500,506 ---- + nrs[lnum - eap->line1].start_col_nr = -MAXLNUM; + else + vim_str2nr(s, NULL, NULL, sort_oct, sort_hex, +! &nrs[lnum - eap->line1].start_col_nr, NULL, 0); + *s2 = c; + } + else +*** ../vim-7.4.781/src/ex_getln.c 2015-06-25 18:20:30.437271806 +0200 +--- src/ex_getln.c 2015-07-17 12:45:16.782860538 +0200 +*************** +*** 5917,5923 **** + *str = skipwhite(*str); + if (**str == '-' || vim_isdigit(**str)) /* parse "from" part of range */ + { +! vim_str2nr(*str, NULL, &len, FALSE, FALSE, &num, NULL); + *str += len; + *num1 = (int)num; + first = TRUE; +--- 5917,5923 ---- + *str = skipwhite(*str); + if (**str == '-' || vim_isdigit(**str)) /* parse "from" part of range */ + { +! vim_str2nr(*str, NULL, &len, FALSE, FALSE, &num, NULL, 0); + *str += len; + *num1 = (int)num; + first = TRUE; +*************** +*** 5926,5932 **** + if (**str == ',') /* parse "to" part of range */ + { + *str = skipwhite(*str + 1); +! vim_str2nr(*str, NULL, &len, FALSE, FALSE, &num, NULL); + if (len > 0) + { + *num2 = (int)num; +--- 5926,5932 ---- + if (**str == ',') /* parse "to" part of range */ + { + *str = skipwhite(*str + 1); +! vim_str2nr(*str, NULL, &len, FALSE, FALSE, &num, NULL, 0); + if (len > 0) + { + *num2 = (int)num; +*** ../vim-7.4.781/src/misc2.c 2015-04-21 14:02:28.489694393 +0200 +--- src/misc2.c 2015-07-17 12:45:16.782860538 +0200 +*************** +*** 2813,2819 **** + bp += 3; /* skip t_xx, xx may be '-' or '>' */ + else if (STRNICMP(bp, "char-", 5) == 0) + { +! vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL); + bp += l + 5; + break; + } +--- 2813,2819 ---- + bp += 3; /* skip t_xx, xx may be '-' or '>' */ + else if (STRNICMP(bp, "char-", 5) == 0) + { +! vim_str2nr(bp + 5, NULL, &l, TRUE, TRUE, NULL, NULL, 0); + bp += l + 5; + break; + } +*************** +*** 2845,2851 **** + && VIM_ISDIGIT(last_dash[6])) + { + /* or or */ +! vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n); + key = (int)n; + } + else +--- 2845,2851 ---- + && VIM_ISDIGIT(last_dash[6])) + { + /* or or */ +! vim_str2nr(last_dash + 6, NULL, NULL, TRUE, TRUE, NULL, &n, 0); + key = (int)n; + } + else +*** ../vim-7.4.781/src/normal.c 2015-07-03 12:44:01.735748596 +0200 +--- src/normal.c 2015-07-17 12:49:38.748371068 +0200 +*************** +*** 40,45 **** +--- 40,46 ---- + static void find_end_of_word __ARGS((pos_T *)); + static int get_mouse_class __ARGS((char_u *p)); + #endif ++ static void prep_redo_visual __ARGS((cmdarg_T *cap)); + static void prep_redo_cmd __ARGS((cmdarg_T *cap)); + static void prep_redo __ARGS((int regname, long, int, int, int, int, int)); + static int checkclearop __ARGS((oparg_T *oap)); +*************** +*** 3613,3618 **** +--- 3614,3656 ---- + } + + /* ++ * Add commands to reselect Visual mode into the redo buffer. ++ */ ++ static void ++ prep_redo_visual(cap) ++ cmdarg_T *cap; ++ { ++ ResetRedobuff(); ++ AppendCharToRedobuff(VIsual_mode); ++ if (VIsual_mode == 'V' && curbuf->b_visual.vi_end.lnum ++ != curbuf->b_visual.vi_start.lnum) ++ { ++ AppendNumberToRedobuff(curbuf->b_visual.vi_end.lnum ++ - curbuf->b_visual.vi_start.lnum); ++ AppendCharToRedobuff('j'); ++ } ++ else if (VIsual_mode == 'v' || VIsual_mode == Ctrl_V) ++ { ++ /* block visual mode or char visual mmode*/ ++ if (curbuf->b_visual.vi_end.lnum != curbuf->b_visual.vi_start.lnum) ++ { ++ AppendNumberToRedobuff(curbuf->b_visual.vi_end.lnum - ++ curbuf->b_visual.vi_start.lnum); ++ AppendCharToRedobuff('j'); ++ } ++ if (curbuf->b_visual.vi_curswant == MAXCOL) ++ AppendCharToRedobuff('$'); ++ else if (curbuf->b_visual.vi_end.col > curbuf->b_visual.vi_start.col) ++ { ++ AppendNumberToRedobuff(curbuf->b_visual.vi_end.col ++ - curbuf->b_visual.vi_start.col - 1); ++ AppendCharToRedobuff(' '); ++ } ++ } ++ AppendNumberToRedobuff(cap->count1); ++ } ++ ++ /* + * Prepare for redo of a normal command. + */ + static void +*************** +*** 4207,4222 **** + { + if (visual) + { +! ResetRedobuff(); +! AppendCharToRedobuff(VIsual_mode); +! if (VIsual_mode == 'V') +! { +! AppendNumberToRedobuff(cap->oap->line_count); +! AppendCharToRedobuff('j'); +! } +! AppendNumberToRedobuff(cap->count1); +! if (cap->nchar != NUL) +! AppendCharToRedobuff(cap->nchar); + AppendCharToRedobuff(cap->cmdchar); + } + else +--- 4245,4253 ---- + { + if (visual) + { +! prep_redo_visual(cap); +! if (cap->arg) +! AppendCharToRedobuff('g'); + AppendCharToRedobuff(cap->cmdchar); + } + else +*************** +*** 4227,4233 **** + if (visual) + { + VIsual_active = FALSE; +! redraw_later(CLEAR); + } + } + +--- 4258,4265 ---- + if (visual) + { + VIsual_active = FALSE; +! redo_VIsual_busy = FALSE; +! redraw_later(INVERTED); + } + } + +*** ../vim-7.4.781/src/ops.c 2015-07-12 16:21:17.791908408 +0200 +--- src/ops.c 2015-07-17 12:58:11.083502711 +0200 +*************** +*** 5405,5410 **** +--- 5405,5412 ---- + int lnume = curwin->w_cursor.lnum; + int startcol = 0; + int did_change = FALSE; ++ pos_T t = curwin->w_cursor; ++ int maxlen = 0; + + dohex = (vim_strchr(curbuf->b_p_nf, 'x') != NULL); /* "heX" */ + dooct = (vim_strchr(curbuf->b_p_nf, 'o') != NULL); /* "Octal" */ +*************** +*** 5418,5438 **** + { + if (lt(curwin->w_cursor, VIsual)) + { +- pos_T t; +- t = curwin->w_cursor; + curwin->w_cursor = VIsual; + VIsual = t; + } +- if (VIsual_mode == 'V') +- VIsual.col = 0; + + ptr = ml_get(VIsual.lnum); + RLADDSUBFIX(ptr); + + /* store visual area for 'gv' */ + curbuf->b_visual.vi_start = VIsual; + curbuf->b_visual.vi_end = curwin->w_cursor; + curbuf->b_visual.vi_mode = VIsual_mode; + + if (VIsual_mode != 'v') + startcol = VIsual.col < curwin->w_cursor.col ? VIsual.col +--- 5420,5449 ---- + { + if (lt(curwin->w_cursor, VIsual)) + { + curwin->w_cursor = VIsual; + VIsual = t; + } + + ptr = ml_get(VIsual.lnum); + RLADDSUBFIX(ptr); ++ if (VIsual_mode == 'V') ++ { ++ VIsual.col = 0; ++ curwin->w_cursor.col = STRLEN(ptr); ++ } ++ else if (VIsual_mode == Ctrl_V && ++ VIsual.col > curwin->w_cursor.col) ++ { ++ t = VIsual; ++ VIsual.col = curwin->w_cursor.col; ++ curwin->w_cursor.col = t.col; ++ } + + /* store visual area for 'gv' */ + curbuf->b_visual.vi_start = VIsual; + curbuf->b_visual.vi_end = curwin->w_cursor; + curbuf->b_visual.vi_mode = VIsual_mode; ++ curbuf->b_visual.vi_curswant = curwin->w_curswant; + + if (VIsual_mode != 'v') + startcol = VIsual.col < curwin->w_cursor.col ? VIsual.col +*************** +*** 5482,5517 **** + + for (i = lnum; i <= lnume; i++) + { + curwin->w_cursor.lnum = i; + ptr = ml_get_curline(); + if ((int)STRLEN(ptr) <= col) + /* try again on next line */ + continue; + if (visual && ptr[col] == '-') + { + negative = TRUE; + was_positive = FALSE; + col++; + } +- RLADDSUBFIX(ptr); + /* + * If a number was found, and saving for undo works, replace the number. + */ + firstdigit = ptr[col]; +- RLADDSUBFIX(ptr); + if ((!VIM_ISDIGIT(firstdigit) && !(doalp && ASCII_ISALPHA(firstdigit))) + || u_save_cursor() != OK) + { + if (lnum < lnume) + /* Try again on next line */ + continue; + beep_flush(); + return FAIL; + } + +- ptr = ml_get_curline(); +- RLADDSUBFIX(ptr); +- + if (doalp && ASCII_ISALPHA(firstdigit)) + { + /* decrement or increment alphabetic character */ +--- 5493,5552 ---- + + for (i = lnum; i <= lnume; i++) + { ++ t = curwin->w_cursor; + curwin->w_cursor.lnum = i; + ptr = ml_get_curline(); ++ RLADDSUBFIX(ptr); + if ((int)STRLEN(ptr) <= col) + /* try again on next line */ + continue; ++ if (visual) ++ { ++ if (doalp) /* search for ascii chars */ ++ { ++ while (!ASCII_ISALPHA(ptr[col]) && ptr[col]) ++ col++; ++ } ++ /* skip to first digit, but allow for leading '-' */ ++ else if (dohex) ++ { ++ while (!(vim_isxdigit(ptr[col]) || (ptr[col] == '-' ++ && vim_isxdigit(ptr[col+1]))) && ptr[col]) ++ col++; ++ } ++ else /* decimal */ ++ { ++ while (!(vim_isdigit(ptr[col]) || (ptr[col] == '-' ++ && vim_isdigit(ptr[col+1]))) && ptr[col]) ++ col++; ++ } ++ } + if (visual && ptr[col] == '-') + { + negative = TRUE; + was_positive = FALSE; + col++; + } + /* + * If a number was found, and saving for undo works, replace the number. + */ + firstdigit = ptr[col]; + if ((!VIM_ISDIGIT(firstdigit) && !(doalp && ASCII_ISALPHA(firstdigit))) + || u_save_cursor() != OK) + { + if (lnum < lnume) ++ { ++ if (visual && VIsual_mode != Ctrl_V) ++ col = 0; ++ else ++ col = startcol; + /* Try again on next line */ + continue; ++ } + beep_flush(); + return FAIL; + } + + if (doalp && ASCII_ISALPHA(firstdigit)) + { + /* decrement or increment alphabetic character */ +*************** +*** 5560,5568 **** + --col; + negative = TRUE; + } +- + /* get the number value (unsigned) */ +! vim_str2nr(ptr + col, &hex, &length, dooct, dohex, NULL, &n); + + /* ignore leading '-' for hex and octal numbers */ + if (hex && negative) +--- 5595,5621 ---- + --col; + negative = TRUE; + } + /* get the number value (unsigned) */ +! if (visual && VIsual_mode != 'V') +! { +! if (VIsual_mode == 'v') +! { +! if (i == lnum) +! maxlen = (lnum == lnume +! ? curwin->w_cursor.col - col + 1 +! : (int)STRLEN(ptr) - col); +! else +! maxlen = (i == lnume ? curwin->w_cursor.col - col + 1 +! : (int)STRLEN(ptr) - col); +! } +! else if (VIsual_mode == Ctrl_V) +! maxlen = (curbuf->b_visual.vi_curswant == MAXCOL +! ? (int)STRLEN(ptr) - col +! : curwin->w_cursor.col - col + 1); +! } +! +! vim_str2nr(ptr + col, &hex, &length, dooct, dohex, NULL, &n, +! maxlen); + + /* ignore leading '-' for hex and octal numbers */ + if (hex && negative) +*************** +*** 5609,5615 **** + negative = FALSE; + } + +! if (visual && !was_positive && !negative) + { + /* need to remove the '-' */ + col--; +--- 5662,5668 ---- + negative = FALSE; + } + +! if (visual && !was_positive && !negative && col > 0) + { + /* need to remove the '-' */ + col--; +*************** +*** 5695,5700 **** +--- 5748,5757 ---- + STRCAT(buf1, buf2); + ins_str(buf1); /* insert the new number */ + vim_free(buf1); ++ if (lnum < lnume) ++ curwin->w_cursor.col = t.col; ++ else if (did_change && curwin->w_cursor.col) ++ --curwin->w_cursor.col; + } + + if (g_cmd) +*************** +*** 5705,5710 **** +--- 5762,5768 ---- + /* reset */ + subtract = FALSE; + negative = FALSE; ++ was_positive = TRUE; + if (visual && VIsual_mode == Ctrl_V) + col = startcol; + else +*************** +*** 5716,5723 **** + RLADDSUBFIX(ptr); + #endif + } +! if (did_change && curwin->w_cursor.col > 0) +! --curwin->w_cursor.col; + return OK; + } + +--- 5774,5782 ---- + RLADDSUBFIX(ptr); + #endif + } +! if (visual) +! /* cursor at the top of the selection */ +! curwin->w_cursor = VIsual; + return OK; + } + +*** ../vim-7.4.781/src/option.c 2015-07-10 18:18:35.579206260 +0200 +--- src/option.c 2015-07-17 12:45:16.786860499 +0200 +*************** +*** 4561,4567 **** + { + /* Allow negative (for 'undolevels'), octal and + * hex numbers. */ +! vim_str2nr(arg, NULL, &i, TRUE, TRUE, &value, NULL); + if (arg[i] != NUL && !vim_iswhite(arg[i])) + { + errmsg = e_invarg; +--- 4561,4567 ---- + { + /* Allow negative (for 'undolevels'), octal and + * hex numbers. */ +! vim_str2nr(arg, NULL, &i, TRUE, TRUE, &value, NULL, 0); + if (arg[i] != NUL && !vim_iswhite(arg[i])) + { + errmsg = e_invarg; +*** ../vim-7.4.781/src/proto/charset.pro 2014-06-25 14:39:35.110348584 +0200 +--- src/proto/charset.pro 2015-07-17 12:45:22.098810018 +0200 +*************** +*** 49,55 **** + char_u *skiptowhite_esc __ARGS((char_u *p)); + long getdigits __ARGS((char_u **pp)); + int vim_isblankline __ARGS((char_u *lbuf)); +! void vim_str2nr __ARGS((char_u *start, int *hexp, int *len, int dooct, int dohex, long *nptr, unsigned long *unptr)); + int hex2nr __ARGS((int c)); + int hexhex2nr __ARGS((char_u *p)); + int rem_backslash __ARGS((char_u *str)); +--- 49,55 ---- + char_u *skiptowhite_esc __ARGS((char_u *p)); + long getdigits __ARGS((char_u **pp)); + int vim_isblankline __ARGS((char_u *lbuf)); +! void vim_str2nr __ARGS((char_u *start, int *hexp, int *len, int dooct, int dohex, long *nptr, unsigned long *unptr, int strlen)); + int hex2nr __ARGS((int c)); + int hexhex2nr __ARGS((char_u *p)); + int rem_backslash __ARGS((char_u *str)); +*** ../vim-7.4.781/src/testdir/test_increment.in 2015-07-03 12:44:01.735748596 +0200 +--- src/testdir/test_increment.in 2015-07-17 12:45:27.426759384 +0200 +*************** +*** 185,190 **** +--- 185,267 ---- + 1 0 + 1 0 + ++ 13) visually selected part of columns ++ Text: ++ max: 100px ++ max: 200px ++ max: 300px ++ max: 400px ++ Expected: ++ 1) 'v' on first two numbers Ctrl-A ++ max: 110px ++ max: 220px ++ max: 330px ++ max: 400px ++ 2) 'v' on first two numbers Ctrl-X ++ max: 90px ++ max: 190px ++ max: 290px ++ max: 400px ++ ++ 14) redo in block mode ++ Text: ++ 1 1 ++ 1 1 ++ Expected: ++ 1) Ctrl-a on first column, redo on second column ++ 2 2 ++ 2 2 ++ ++ 15) block select single numbers ++ Text: ++ 101 ++ Expected: ++ 1) Ctrl-a on visually selected zero ++ 111 ++ ++ 16) increment right aligned numbers ++ Text: ++ 1 ++ 19 ++ 119 ++ Expected: ++ 1) Ctrl-a on line selected region ++ 2 ++ 20 ++ 120 ++ ++ 17) block-wise increment and redo ++ Text: ++ 100 ++ 1 ++ ++ 100 ++ 1 ++ ++ Expected: ++ 1) Ctrl-V j $ on first block, afterwards '.' on second ++ 101 ++ 2 ++ ++ 101 ++ 2 ++ ++ 18) repeat of g ++ Text: ++ 0 ++ 0 ++ 0 ++ 0 ++ ++ Expected: ++ 1) V 4j g, repeat twice afterwards with . ++ 3 ++ 6 ++ 9 ++ 12 ++ ++ ++ + STARTTEST + :so small.vim + :" +*************** +*** 200,215 **** + f-v$:/^E1=/+5put a + f1v$ + +! :" Test 22 + :/^S2=/+,/^E2=/-y a + :/^E2=/+put a +! V3k$:.+put a + V3k$ + + :" Test 3 + :/^S3=/+,/^E3=/-y a + :/^E3=/+put a +! V6k2g:.+put a + V6k2g + + :" Test 4 +--- 277,292 ---- + f-v$:/^E1=/+5put a + f1v$ + +! :" Test 2 + :/^S2=/+,/^E2=/-y a + :/^E2=/+put a +! V3k$3j:.+put a + V3k$ + + :" Test 3 + :/^S3=/+,/^E3=/-y a + :/^E3=/+put a +! V6k2g6j:.+put a + V6k2g + + :" Test 4 +*************** +*** 229,249 **** + v3kg + + :" Test 7 + :/^S7=/+,/^E7=/-y a + :/^E7=/+put a +! V4k:.+put a + V4k + + :" Test 8 + :/^S8=/+,/^E8=/-y a + :/^E8=/+put a +! kj$:.+put a + k$+ + + :" Test 9 + :/^S9=/+,/^E9=/-y a + :/^E9=/+put a +! 5kVj22j. + + :" Test 10 + :/^S10=/+,/^E10=/-y a +--- 306,327 ---- + v3kg + + :" Test 7 ++ :set nrformats&vim + :/^S7=/+,/^E7=/-y a + :/^E7=/+put a +! V4k4j:.+put a + V4k + + :" Test 8 + :/^S8=/+,/^E8=/-y a + :/^E8=/+put a +! kj$j:.+put a + k$+ + + :" Test 9 + :/^S9=/+,/^E9=/-y a + :/^E9=/+put a +! 5kVj23j. + + :" Test 10 + :/^S10=/+,/^E10=/-y a +*************** +*** 260,265 **** +--- 338,374 ---- + :/^E12=/+put a + 2k$v++ + ++ :" Test 13 ++ :/^S13=/+,/^E13=/-y a ++ :/^E13=/+put a ++ 3kf1l2j3j:.+put a ++ 3kf1l2j ++ ++ :" Test 14 ++ :/^S14=/+,/^E14=/-y a ++ :/^E14=/+put a ++ kw. ++ ++ :" Test 15 ++ :/^S15=/+,/^E15=/-y a ++ :/^E15=/+put a ++ lv ++ ++ :" Test 16 ++ :/^S16=/+,/^E16=/-y a ++ :/^E16=/+put a ++ V3k ++ ++ :" Test 17 ++ :/^S17=/+,/^E17=/-y a ++ :/^E17=/+put a ++ 4kj$2j. ++ ++ :" Test 18 ++ :/^S18=/+,/^E18=/-y a ++ :/^E18=/+put a ++ V3kg.. ++ + :" Save the report + :/^# Test 1/,$w! test.out + :qa! +*************** +*** 384,389 **** +--- 493,549 ---- + + + ++ # Test 13 ++ S13==== ++ max: 100px ++ max: 200px ++ max: 300px ++ max: 400px ++ E13==== ++ ++ ++ ++ # Test 14 ++ S14==== ++ 1 1 ++ 1 1 ++ E14==== ++ ++ ++ ++ # Test 15 ++ S15==== ++ 101 ++ E15==== ++ ++ ++ ++ # Test 16 ++ S16==== ++ 1 ++ 19 ++ 119 ++ E16==== ++ ++ ++ ++ # Test 17 ++ S17==== ++ 100 ++ 1 ++ ++ 100 ++ 1 ++ E17==== ++ ++ ++ # Test 18 ++ S18==== ++ 0 ++ 0 ++ 0 ++ 0 ++ E18==== + + + +*** ../vim-7.4.781/src/testdir/test_increment.ok 2015-07-03 12:44:01.739748554 +0200 +--- src/testdir/test_increment.ok 2015-07-17 12:45:34.094696017 +0200 +*************** +*** 184,190 **** + 1 0 + + +! + + + +--- 184,264 ---- + 1 0 + + +! # Test 13 +! S13==== +! max: 100px +! max: 200px +! max: 300px +! max: 400px +! E13==== +! +! max: 110px +! max: 210px +! max: 310px +! max: 400px +! +! max: 90px +! max: 190px +! max: 290px +! max: 400px +! +! # Test 14 +! S14==== +! 1 1 +! 1 1 +! E14==== +! +! 2 2 +! 2 2 +! +! +! # Test 15 +! S15==== +! 101 +! E15==== +! +! 111 +! +! +! # Test 16 +! S16==== +! 1 +! 19 +! 119 +! E16==== +! +! 2 +! 20 +! 120 +! +! +! # Test 17 +! S17==== +! 100 +! 1 +! +! 100 +! 1 +! E17==== +! +! 101 +! 2 +! +! 101 +! 1 +! +! # Test 18 +! S18==== +! 0 +! 0 +! 0 +! 0 +! E18==== +! +! 3 +! 6 +! 9 +! 12 + + + +*** ../vim-7.4.781/src/version.c 2015-07-12 17:52:50.728095726 +0200 +--- src/version.c 2015-07-17 12:46:37.590092608 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 782, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +226. You sit down at the computer right after dinner and your spouse + says "See you in the morning." + + /// 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 /// From ef8d68de586d3a82492ec21077888449532ad950 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:34 +0200 Subject: [PATCH 0272/1407] - patchlevel 783 --- 7.4.783 | 365 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 7.4.783 diff --git a/7.4.783 b/7.4.783 new file mode 100644 index 00000000..82ee889c --- /dev/null +++ b/7.4.783 @@ -0,0 +1,365 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.783 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.783 +Problem: copy_chars() and copy_spaces() are inefficient. +Solution: Use memset() instead. (Dominique Pelle) +Files: src/ex_getln.c, src/misc2.c, src/ops.c, src/proto/misc2.pro, + src/screen.c + + +*** ../vim-7.4.782/src/ex_getln.c 2015-07-17 13:03:42.100357542 +0200 +--- src/ex_getln.c 2015-07-17 13:11:12.608078272 +0200 +*************** +*** 250,256 **** + /* autoindent for :insert and :append */ + if (firstc <= 0) + { +! copy_spaces(ccline.cmdbuff, indent); + ccline.cmdbuff[indent] = NUL; + ccline.cmdpos = indent; + ccline.cmdspos = indent; +--- 250,256 ---- + /* autoindent for :insert and :append */ + if (firstc <= 0) + { +! vim_memset(ccline.cmdbuff, ' ', indent); + ccline.cmdbuff[indent] = NUL; + ccline.cmdpos = indent; + ccline.cmdspos = indent; +*** ../vim-7.4.782/src/misc2.c 2015-07-17 13:03:42.104357503 +0200 +--- src/misc2.c 2015-07-17 13:11:12.608078272 +0200 +*************** +*** 1600,1639 **** + #endif + + /* +- * copy a space a number of times +- */ +- void +- copy_spaces(ptr, count) +- char_u *ptr; +- size_t count; +- { +- size_t i = count; +- char_u *p = ptr; +- +- while (i--) +- *p++ = ' '; +- } +- +- #if defined(FEAT_VISUALEXTRA) || defined(PROTO) +- /* +- * Copy a character a number of times. +- * Does not work for multi-byte characters! +- */ +- void +- copy_chars(ptr, count, c) +- char_u *ptr; +- size_t count; +- int c; +- { +- size_t i = count; +- char_u *p = ptr; +- +- while (i--) +- *p++ = c; +- } +- #endif +- +- /* + * delete spaces at the end of a string + */ + void +--- 1600,1605 ---- +*** ../vim-7.4.782/src/ops.c 2015-07-17 13:03:42.108357465 +0200 +--- src/ops.c 2015-07-17 13:11:12.612078233 +0200 +*************** +*** 442,449 **** + return; + vim_memset(newp, NUL, (size_t)(bd.textcol + i + j + len)); + mch_memmove(newp, oldp, (size_t)bd.textcol); +! copy_chars(newp + bd.textcol, (size_t)i, TAB); +! copy_spaces(newp + bd.textcol + i, (size_t)j); + /* the end */ + mch_memmove(newp + bd.textcol + i + j, bd.textstart, (size_t)len); + } +--- 442,449 ---- + return; + vim_memset(newp, NUL, (size_t)(bd.textcol + i + j + len)); + mch_memmove(newp, oldp, (size_t)bd.textcol); +! vim_memset(newp + bd.textcol, TAB, (size_t)i); +! vim_memset(newp + bd.textcol + i, ' ', (size_t)j); + /* the end */ + mch_memmove(newp + bd.textcol + i + j, bd.textstart, (size_t)len); + } +*************** +*** 535,541 **** + if (newp == NULL) + return; + mch_memmove(newp, oldp, (size_t)(verbatim_copy_end - oldp)); +! copy_spaces(newp + (verbatim_copy_end - oldp), (size_t)fill); + STRMOVE(newp + (verbatim_copy_end - oldp) + fill, non_white); + } + /* replace the line */ +--- 535,541 ---- + if (newp == NULL) + return; + mch_memmove(newp, oldp, (size_t)(verbatim_copy_end - oldp)); +! vim_memset(newp + (verbatim_copy_end - oldp), ' ', (size_t)fill); + STRMOVE(newp + (verbatim_copy_end - oldp) + fill, non_white); + } + /* replace the line */ +*************** +*** 638,644 **** + oldp += offset; + + /* insert pre-padding */ +! copy_spaces(newp + offset, (size_t)spaces); + + /* copy the new text */ + mch_memmove(newp + offset + spaces, s, (size_t)s_len); +--- 638,644 ---- + oldp += offset; + + /* insert pre-padding */ +! vim_memset(newp + offset, ' ', (size_t)spaces); + + /* copy the new text */ + mch_memmove(newp + offset + spaces, s, (size_t)s_len); +*************** +*** 647,653 **** + if (spaces && !bdp->is_short) + { + /* insert post-padding */ +! copy_spaces(newp + offset + spaces, (size_t)(p_ts - spaces)); + /* We're splitting a TAB, don't copy it. */ + oldp++; + /* We allowed for that TAB, remember this now */ +--- 647,653 ---- + if (spaces && !bdp->is_short) + { + /* insert post-padding */ +! vim_memset(newp + offset + spaces, ' ', (size_t)(p_ts - spaces)); + /* We're splitting a TAB, don't copy it. */ + oldp++; + /* We allowed for that TAB, remember this now */ +*************** +*** 1831,1837 **** + /* copy up to deleted part */ + mch_memmove(newp, oldp, (size_t)bd.textcol); + /* insert spaces */ +! copy_spaces(newp + bd.textcol, + (size_t)(bd.startspaces + bd.endspaces)); + /* copy the part after the deleted part */ + oldp += bd.textcol + bd.textlen; +--- 1831,1837 ---- + /* copy up to deleted part */ + mch_memmove(newp, oldp, (size_t)bd.textcol); + /* insert spaces */ +! vim_memset(newp + bd.textcol, ' ', + (size_t)(bd.startspaces + bd.endspaces)); + /* copy the part after the deleted part */ + oldp += bd.textcol + bd.textlen; +*************** +*** 2132,2138 **** + mch_memmove(newp, oldp, (size_t)bd.textcol); + oldp += bd.textcol + bd.textlen; + /* insert pre-spaces */ +! copy_spaces(newp + bd.textcol, (size_t)bd.startspaces); + /* insert replacement chars CHECK FOR ALLOCATED SPACE */ + /* -1/-2 is used for entering CR literally. */ + if (had_ctrl_v_cr || (c != '\r' && c != '\n')) +--- 2132,2138 ---- + mch_memmove(newp, oldp, (size_t)bd.textcol); + oldp += bd.textcol + bd.textlen; + /* insert pre-spaces */ +! vim_memset(newp + bd.textcol, ' ', (size_t)bd.startspaces); + /* insert replacement chars CHECK FOR ALLOCATED SPACE */ + /* -1/-2 is used for entering CR literally. */ + if (had_ctrl_v_cr || (c != '\r' && c != '\n')) +*************** +*** 2146,2156 **** + } + else + #endif +! copy_chars(newp + STRLEN(newp), (size_t)numc, c); + if (!bd.is_short) + { + /* insert post-spaces */ +! copy_spaces(newp + STRLEN(newp), (size_t)bd.endspaces); + /* copy the part after the changed part */ + STRMOVE(newp + STRLEN(newp), oldp); + } +--- 2146,2156 ---- + } + else + #endif +! vim_memset(newp + STRLEN(newp), c, (size_t)numc); + if (!bd.is_short) + { + /* insert post-spaces */ +! vim_memset(newp + STRLEN(newp), ' ', (size_t)bd.endspaces); + /* copy the part after the changed part */ + STRMOVE(newp + STRLEN(newp), oldp); + } +*************** +*** 2831,2837 **** + mch_memmove(newp, oldp, (size_t)bd.textcol); + offset = bd.textcol; + # ifdef FEAT_VIRTUALEDIT +! copy_spaces(newp + offset, (size_t)vpos.coladd); + offset += vpos.coladd; + # endif + mch_memmove(newp + offset, ins_text, (size_t)ins_len); +--- 2831,2837 ---- + mch_memmove(newp, oldp, (size_t)bd.textcol); + offset = bd.textcol; + # ifdef FEAT_VIRTUALEDIT +! vim_memset(newp + offset, ' ', (size_t)vpos.coladd); + offset += vpos.coladd; + # endif + mch_memmove(newp + offset, ins_text, (size_t)ins_len); +*************** +*** 3272,3282 **** + == NULL) + return FAIL; + y_current->y_array[y_idx] = pnew; +! copy_spaces(pnew, (size_t)bd->startspaces); + pnew += bd->startspaces; + mch_memmove(pnew, bd->textstart, (size_t)bd->textlen); + pnew += bd->textlen; +! copy_spaces(pnew, (size_t)bd->endspaces); + pnew += bd->endspaces; + *pnew = NUL; + return OK; +--- 3272,3282 ---- + == NULL) + return FAIL; + y_current->y_array[y_idx] = pnew; +! vim_memset(pnew, ' ', (size_t)bd->startspaces); + pnew += bd->startspaces; + mch_memmove(pnew, bd->textstart, (size_t)bd->textlen); + pnew += bd->textlen; +! vim_memset(pnew, ' ', (size_t)bd->endspaces); + pnew += bd->endspaces; + *pnew = NUL; + return OK; +*************** +*** 3690,3696 **** + mch_memmove(ptr, oldp, (size_t)bd.textcol); + ptr += bd.textcol; + /* may insert some spaces before the new text */ +! copy_spaces(ptr, (size_t)bd.startspaces); + ptr += bd.startspaces; + /* insert the new text */ + for (j = 0; j < count; ++j) +--- 3690,3696 ---- + mch_memmove(ptr, oldp, (size_t)bd.textcol); + ptr += bd.textcol; + /* may insert some spaces before the new text */ +! vim_memset(ptr, ' ', (size_t)bd.startspaces); + ptr += bd.startspaces; + /* insert the new text */ + for (j = 0; j < count; ++j) +*************** +*** 3701,3712 **** + /* insert block's trailing spaces only if there's text behind */ + if ((j < count - 1 || !shortline) && spaces) + { +! copy_spaces(ptr, (size_t)spaces); + ptr += spaces; + } + } + /* may insert some spaces after the new text */ +! copy_spaces(ptr, (size_t)bd.endspaces); + ptr += bd.endspaces; + /* move the text after the cursor to the end of the line. */ + mch_memmove(ptr, oldp + bd.textcol + delcount, +--- 3701,3712 ---- + /* insert block's trailing spaces only if there's text behind */ + if ((j < count - 1 || !shortline) && spaces) + { +! vim_memset(ptr, ' ', (size_t)spaces); + ptr += spaces; + } + } + /* may insert some spaces after the new text */ +! vim_memset(ptr, ' ', (size_t)bd.endspaces); + ptr += bd.endspaces; + /* move the text after the cursor to the end of the line. */ + mch_memmove(ptr, oldp + bd.textcol + delcount, +*************** +*** 4522,4528 **** + if (spaces[t] > 0) + { + cend -= spaces[t]; +! copy_spaces(cend, (size_t)(spaces[t])); + } + mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t, + (long)(cend - newp + spaces[t] - (curr - curr_start))); +--- 4522,4528 ---- + if (spaces[t] > 0) + { + cend -= spaces[t]; +! vim_memset(cend, ' ', (size_t)(spaces[t])); + } + mark_col_adjust(curwin->w_cursor.lnum + t, (colnr_T)0, (linenr_T)-t, + (long)(cend - newp + spaces[t] - (curr - curr_start))); +*** ../vim-7.4.782/src/proto/misc2.pro 2014-08-10 13:34:59.064785459 +0200 +--- src/proto/misc2.pro 2015-07-17 13:11:12.612078233 +0200 +*************** +*** 37,44 **** + char_u *vim_strnsave_up __ARGS((char_u *string, int len)); + void vim_strup __ARGS((char_u *p)); + char_u *strup_save __ARGS((char_u *orig)); +- void copy_spaces __ARGS((char_u *ptr, size_t count)); +- void copy_chars __ARGS((char_u *ptr, size_t count, int c)); + void del_trailing_spaces __ARGS((char_u *ptr)); + void vim_strncpy __ARGS((char_u *to, char_u *from, size_t len)); + void vim_strcat __ARGS((char_u *to, char_u *from, size_t tosize)); +--- 37,42 ---- +*** ../vim-7.4.782/src/screen.c 2015-06-10 12:16:41.926648740 +0200 +--- src/screen.c 2015-07-17 13:11:12.612078233 +0200 +*************** +*** 2833,2839 **** + int fdc = compute_foldcolumn(wp, 0); + + /* Init to all spaces. */ +! copy_spaces(p, (size_t)fdc); + + level = win_foldinfo.fi_level; + if (level > 0) +--- 2833,2839 ---- + int fdc = compute_foldcolumn(wp, 0); + + /* Init to all spaces. */ +! vim_memset(p, ' ', (size_t)fdc); + + level = win_foldinfo.fi_level; + if (level > 0) +*** ../vim-7.4.782/src/version.c 2015-07-17 13:03:42.108357465 +0200 +--- src/version.c 2015-07-17 13:06:43.742631736 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 783, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +228. You spend Saturday night making the counter on your home page + pass that 2000 mark. + + /// 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 /// From 930bb9f2551d7106b12319518f9cd5d1324aa0d3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:35 +0200 Subject: [PATCH 0273/1407] - patchlevel 784 --- 7.4.784 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 7.4.784 diff --git a/7.4.784 b/7.4.784 new file mode 100644 index 00000000..5677b8ed --- /dev/null +++ b/7.4.784 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.784 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.784 +Problem: Using both "noinsert" and "noselect" in 'completeopt' does not + work properly. +Solution: Change the ins_complete() calls. (Ozaki Kiichi) +Files: src/edit.c + + +*** ../vim-7.4.783/src/edit.c 2015-07-10 18:18:35.575206298 +0200 +--- src/edit.c 2015-07-17 13:36:48.597498614 +0200 +*************** +*** 2794,2809 **** + + compl_curr_match = compl_first_match; + if (compl_no_insert) +! { +! if (!compl_no_select) +! ins_complete(K_DOWN); +! } + else +- { + ins_complete(Ctrl_N); +! if (compl_no_select) +! ins_complete(Ctrl_P); +! } + out_flush(); + } + +--- 2794,2804 ---- + + compl_curr_match = compl_first_match; + if (compl_no_insert) +! ins_complete(K_DOWN); + else + ins_complete(Ctrl_N); +! if (compl_no_select) +! ins_complete(Ctrl_P); + out_flush(); + } + +*** ../vim-7.4.783/src/version.c 2015-07-17 13:22:43.161523633 +0200 +--- src/version.c 2015-07-17 13:39:08.552170118 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 784, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +230. You spend your Friday nights typing away at your keyboard + + /// 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 /// From 90cef3f17eb194eed9e72113c3293e19a068baf0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:35 +0200 Subject: [PATCH 0274/1407] - patchlevel 785 --- 7.4.785 | 567 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 567 insertions(+) create mode 100644 7.4.785 diff --git a/7.4.785 b/7.4.785 new file mode 100644 index 00000000..08774d6a --- /dev/null +++ b/7.4.785 @@ -0,0 +1,567 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.785 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.785 +Problem: On some systems automatically adding the missing EOL causes + problems. Setting 'binary' has too many side effects. +Solution: Add the 'fixeol' option, default on. (Pavel Samarkin) +Files: src/buffer.c, src/fileio.c, src/memline.c, src/netbeans.c, + src/ops.c, src/option.c, src/option.h, src/os_unix.c, + src/os_win32.c, src/structs.h, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_fixeol.in, + src/testdir/test_fixeol.ok, runtime/doc/options.txt, + runtime/optwin.vim + + +*** ../vim-7.4.784/src/buffer.c 2015-06-19 14:41:44.777813290 +0200 +--- src/buffer.c 2015-07-17 13:55:33.174783882 +0200 +*************** +*** 547,552 **** +--- 547,553 ---- + buf->b_shortname = FALSE; + #endif + buf->b_p_eol = TRUE; ++ buf->b_p_fixeol = TRUE; + buf->b_start_eol = TRUE; + #ifdef FEAT_MBYTE + buf->b_p_bomb = FALSE; +*** ../vim-7.4.784/src/fileio.c 2015-03-31 13:33:00.793524956 +0200 +--- src/fileio.c 2015-07-17 13:57:26.777699252 +0200 +*************** +*** 2623,2632 **** + #endif + + /* +! * Trick: We remember if the last line of the read didn't have +! * an eol even when 'binary' is off, for when writing it again with +! * 'binary' on. This is required for +! * ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work. + */ + curbuf->b_no_eol_lnum = read_no_eol_lnum; + +--- 2623,2632 ---- + #endif + + /* +! * We remember if the last line of the read didn't have +! * an eol even when 'binary' is off, to support turning 'fixeol' off, +! * or writing the read again with 'binary' on. The latter is required +! * for ":autocmd FileReadPost *.gz set bin|'[,']!gunzip" to work. + */ + curbuf->b_no_eol_lnum = read_no_eol_lnum; + +*************** +*** 4547,4553 **** + /* write failed or last line has no EOL: stop here */ + if (end == 0 + || (lnum == end +! && write_bin + && (lnum == buf->b_no_eol_lnum + || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol)))) + { +--- 4547,4553 ---- + /* write failed or last line has no EOL: stop here */ + if (end == 0 + || (lnum == end +! && (write_bin || !buf->b_p_fixeol) + && (lnum == buf->b_no_eol_lnum + || (lnum == buf->b_ml.ml_line_count && !buf->b_p_eol)))) + { +*** ../vim-7.4.784/src/memline.c 2015-07-12 17:52:50.728095726 +0200 +--- src/memline.c 2015-07-17 13:58:04.193342051 +0200 +*************** +*** 5361,5368 **** + if (ffdos) + size += lnum - 1; + +! /* Don't count the last line break if 'bin' and 'noeol'. */ +! if (buf->b_p_bin && !buf->b_p_eol && buf->b_ml.ml_line_count == lnum) + size -= ffdos + 1; + } + +--- 5361,5370 ---- + if (ffdos) + size += lnum - 1; + +! /* Don't count the last line break if 'noeol' and ('bin' or +! * 'nofixeol'). */ +! if ((!buf->b_p_fixeol || buf->b_p_bin) && !buf->b_p_eol +! && buf->b_ml.ml_line_count == lnum) + size -= ffdos + 1; + } + +*** ../vim-7.4.784/src/netbeans.c 2015-03-20 18:11:44.967196356 +0100 +--- src/netbeans.c 2015-07-17 13:55:33.182783805 +0200 +*************** +*** 3802,3808 **** + } + } + /* Correction for when last line doesn't have an EOL. */ +! if (!bufp->b_p_eol && bufp->b_p_bin) + char_count -= eol_size; + } + +--- 3802,3808 ---- + } + } + /* Correction for when last line doesn't have an EOL. */ +! if (!bufp->b_p_eol && (bufp->b_p_bin || !bufp->b_p_fixeol)) + char_count -= eol_size; + } + +*** ../vim-7.4.784/src/ops.c 2015-07-17 13:22:43.157523671 +0200 +--- src/ops.c 2015-07-17 13:58:25.945134391 +0200 +*************** +*** 7052,7058 **** + &char_count_cursor, len, eol_size); + if (lnum == curbuf->b_ml.ml_line_count + && !curbuf->b_p_eol +! && curbuf->b_p_bin + && (long)STRLEN(s) < len) + byte_count_cursor -= eol_size; + } +--- 7052,7058 ---- + &char_count_cursor, len, eol_size); + if (lnum == curbuf->b_ml.ml_line_count + && !curbuf->b_p_eol +! && (curbuf->b_p_bin || !curbuf->b_p_fixeol) + && (long)STRLEN(s) < len) + byte_count_cursor -= eol_size; + } +*************** +*** 7076,7082 **** + } + + /* Correction for when last line doesn't have an EOL. */ +! if (!curbuf->b_p_eol && curbuf->b_p_bin) + byte_count -= eol_size; + + if (VIsual_active) +--- 7076,7082 ---- + } + + /* Correction for when last line doesn't have an EOL. */ +! if (!curbuf->b_p_eol && (curbuf->b_p_bin || !curbuf->b_p_fixeol)) + byte_count -= eol_size; + + if (VIsual_active) +*** ../vim-7.4.784/src/option.c 2015-07-17 13:03:42.108357465 +0200 +--- src/option.c 2015-07-17 13:55:33.186783767 +0200 +*************** +*** 98,103 **** +--- 98,104 ---- + # define PV_INC OPT_BOTH(OPT_BUF(BV_INC)) + #endif + #define PV_EOL OPT_BUF(BV_EOL) ++ #define PV_FIXEOL OPT_BUF(BV_FIXEOL) + #define PV_EP OPT_BOTH(OPT_BUF(BV_EP)) + #define PV_ET OPT_BUF(BV_ET) + #ifdef FEAT_MBYTE +*************** +*** 306,311 **** +--- 307,313 ---- + static char_u *p_ofu; + #endif + static int p_eol; ++ static int p_fixeol; + static int p_et; + #ifdef FEAT_MBYTE + static char_u *p_fenc; +*************** +*** 1169,1174 **** +--- 1171,1179 ---- + {(char_u *)"", (char_u *)0L} + #endif + SCRIPTID_INIT}, ++ {"fixendofline", "fixeol", P_BOOL|P_VI_DEF|P_RSTAT, ++ (char_u *)&p_fixeol, PV_FIXEOL, ++ {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, + {"fkmap", "fk", P_BOOL|P_VI_DEF, + #ifdef FEAT_FKMAP + (char_u *)&p_fkmap, PV_NONE, +*************** +*** 7781,7786 **** +--- 7786,7796 ---- + { + redraw_titles(); + } ++ /* when 'fixeol' is changed, redraw the window title */ ++ else if ((int *)varp == &curbuf->b_p_fixeol) ++ { ++ redraw_titles(); ++ } + # ifdef FEAT_MBYTE + /* when 'bomb' is changed, redraw the window title and tab page text */ + else if ((int *)varp == &curbuf->b_p_bomb) +*************** +*** 10176,10181 **** +--- 10186,10192 ---- + case PV_OFU: return (char_u *)&(curbuf->b_p_ofu); + #endif + case PV_EOL: return (char_u *)&(curbuf->b_p_eol); ++ case PV_FIXEOL: return (char_u *)&(curbuf->b_p_fixeol); + case PV_ET: return (char_u *)&(curbuf->b_p_et); + #ifdef FEAT_MBYTE + case PV_FENC: return (char_u *)&(curbuf->b_p_fenc); +*************** +*** 11894,11899 **** +--- 11905,11911 ---- + * from when editing started (save_file_ff() called). + * Also when 'endofline' was changed and 'binary' is set, or when 'bomb' was + * changed and 'binary' is not set. ++ * Also when 'endofline' was changed and 'fixeol' is not set. + * When "ignore_empty" is true don't consider a new, empty buffer to be + * changed. + */ +*************** +*** 11912,11918 **** + return FALSE; + if (buf->b_start_ffc != *buf->b_p_ff) + return TRUE; +! if (buf->b_p_bin && buf->b_start_eol != buf->b_p_eol) + return TRUE; + #ifdef FEAT_MBYTE + if (!buf->b_p_bin && buf->b_start_bomb != buf->b_p_bomb) +--- 11924,11930 ---- + return FALSE; + if (buf->b_start_ffc != *buf->b_p_ff) + return TRUE; +! if ((buf->b_p_bin || !buf->b_p_fixeol) && buf->b_start_eol != buf->b_p_eol) + return TRUE; + #ifdef FEAT_MBYTE + if (!buf->b_p_bin && buf->b_start_bomb != buf->b_p_bomb) +*** ../vim-7.4.784/src/option.h 2015-06-19 14:41:44.777813290 +0200 +--- src/option.h 2015-07-17 13:55:33.186783767 +0200 +*************** +*** 962,967 **** +--- 962,968 ---- + , BV_INC + #endif + , BV_EOL ++ , BV_FIXEOL + , BV_EP + , BV_ET + , BV_FENC +*** ../vim-7.4.784/src/os_unix.c 2015-03-31 13:33:00.801524871 +0200 +--- src/os_unix.c 2015-07-17 13:55:33.186783767 +0200 +*************** +*** 4624,4630 **** + /* Finished a line, add a NL, unless this line + * should not have one. */ + if (lnum != curbuf->b_op_end.lnum +! || !curbuf->b_p_bin + || (lnum != curbuf->b_no_eol_lnum + && (lnum != + curbuf->b_ml.ml_line_count +--- 4624,4631 ---- + /* Finished a line, add a NL, unless this line + * should not have one. */ + if (lnum != curbuf->b_op_end.lnum +! || (!curbuf->b_p_bin +! && curbuf->b_p_fixeol) + || (lnum != curbuf->b_no_eol_lnum + && (lnum != + curbuf->b_ml.ml_line_count +*** ../vim-7.4.784/src/os_win32.c 2015-03-24 17:12:04.477113277 +0100 +--- src/os_win32.c 2015-07-17 13:55:33.190783729 +0200 +*************** +*** 4173,4179 **** + /* Finished a line, add a NL, unless this line should not have + * one. */ + if (lnum != curbuf->b_op_end.lnum +! || !curbuf->b_p_bin + || (lnum != curbuf->b_no_eol_lnum + && (lnum != curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) +--- 4173,4180 ---- + /* Finished a line, add a NL, unless this line should not have + * one. */ + if (lnum != curbuf->b_op_end.lnum +! || (!curbuf->b_p_bin +! && curbuf->b_p_fixeol) + || (lnum != curbuf->b_no_eol_lnum + && (lnum != curbuf->b_ml.ml_line_count + || curbuf->b_p_eol))) +*** ../vim-7.4.784/src/structs.h 2015-04-13 16:16:31.221091470 +0200 +--- src/structs.h 2015-07-17 13:55:33.190783729 +0200 +*************** +*** 635,641 **** + int ml_flags; + + infoptr_T *ml_stack; /* stack of pointer blocks (array of IPTRs) */ +! int ml_stack_top; /* current top if ml_stack */ + int ml_stack_size; /* total number of entries in ml_stack */ + + linenr_T ml_line_lnum; /* line number of cached line, 0 if not valid */ +--- 635,641 ---- + int ml_flags; + + infoptr_T *ml_stack; /* stack of pointer blocks (array of IPTRs) */ +! int ml_stack_top; /* current top of ml_stack */ + int ml_stack_size; /* total number of entries in ml_stack */ + + linenr_T ml_line_lnum; /* line number of cached line, 0 if not valid */ +*************** +*** 1586,1591 **** +--- 1586,1592 ---- + char_u *b_p_ofu; /* 'omnifunc' */ + #endif + int b_p_eol; /* 'endofline' */ ++ int b_p_fixeol; /* 'fixendofline' */ + int b_p_et; /* 'expandtab' */ + int b_p_et_nobin; /* b_p_et saved for binary mode */ + #ifdef FEAT_MBYTE +*** ../vim-7.4.784/src/testdir/Make_amiga.mak 2015-07-10 14:43:29.556722605 +0200 +--- src/testdir/Make_amiga.mak 2015-07-17 14:01:03.567629733 +0200 +*************** +*** 45,50 **** +--- 45,51 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_fixeol.out \ + test_increment.out \ + test_insertcount.out \ + test_listchars.out \ +*************** +*** 195,200 **** +--- 196,202 ---- + test_erasebackword.out: test_erasebackword.in + test_eval.out: test_eval.in + test_increment.out: test_increment.in ++ test_fixeol.out: test_fixeol.in + test_insertcount.out: test_insertcount.in + test_listchars.out: test_listchars.in + test_listlbr.out: test_listlbr.in +*** ../vim-7.4.784/src/testdir/Make_dos.mak 2015-07-10 14:43:29.556722605 +0200 +--- src/testdir/Make_dos.mak 2015-07-17 14:00:58.519677917 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_fixeol.out \ + test_increment.out \ + test_insertcount.out \ + test_listchars.out \ +*** ../vim-7.4.784/src/testdir/Make_ming.mak 2015-07-10 14:43:29.556722605 +0200 +--- src/testdir/Make_ming.mak 2015-07-17 14:01:15.847512519 +0200 +*************** +*** 66,71 **** +--- 66,72 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_fixeol.out \ + test_increment.out \ + test_insertcount.out \ + test_listchars.out \ +*** ../vim-7.4.784/src/testdir/Make_os2.mak 2015-07-10 14:43:29.556722605 +0200 +--- src/testdir/Make_os2.mak 2015-07-17 14:01:25.883416724 +0200 +*************** +*** 46,51 **** +--- 46,52 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_fixeol.out \ + test_increment.out \ + test_insertcount.out \ + test_listchars.out \ +*** ../vim-7.4.784/src/testdir/Make_vms.mms 2015-07-10 14:43:29.556722605 +0200 +--- src/testdir/Make_vms.mms 2015-07-17 14:01:36.355316767 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Jul 10 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Jul 17 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 105,110 **** +--- 105,111 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_fixeol.out \ + test_increment.out \ + test_insertcount.out \ + test_listchars.out \ +*** ../vim-7.4.784/src/testdir/Makefile 2015-07-10 14:43:29.556722605 +0200 +--- src/testdir/Makefile 2015-07-17 14:01:46.679218225 +0200 +*************** +*** 42,47 **** +--- 42,48 ---- + test_command_count.out \ + test_erasebackword.out \ + test_eval.out \ ++ test_fixeol.out \ + test_increment.out \ + test_insertcount.out \ + test_listchars.out \ +*** ../vim-7.4.784/src/testdir/test_fixeol.in 2015-07-17 14:14:20.856020508 +0200 +--- src/testdir/test_fixeol.in 2015-07-17 13:55:33.190783729 +0200 +*************** +*** 0 **** +--- 1,40 ---- ++ Tests for 'fixeol' vim: set ft=vim : ++ ++ STARTTEST ++ :" first write two test files – with and without trailing EOL ++ :" use Unix fileformat for consistency ++ :set ff=unix ++ :enew! ++ awith eol:w! XXEol ++ :enew! ++ :set noeol nofixeol ++ awithout eol:w! XXNoEol ++ :set eol fixeol ++ :bwipe XXEol XXNoEol ++ :" ++ :" try editing files with 'fixeol' disabled ++ :e! XXEol ++ ostays eol:set nofixeol ++ :w! XXTestEol ++ :e! XXNoEol ++ ostays without:set nofixeol ++ :w! XXTestNoEol ++ :bwipe XXEol XXNoEol XXTestEol XXTestNoEol ++ :set fixeol ++ :" ++ :" Append "END" to each file so that we can see what the last written char was. ++ ggdGaEND:w >>XXEol ++ :w >>XXNoEol ++ :w >>XXTestEol ++ :w >>XXTestNoEol ++ :" ++ :" Concatenate the results ++ :e! test.out ++ a0:$r XXEol ++ :$r XXNoEol ++ Go1:$r XXTestEol ++ :$r XXTestNoEol ++ :w ++ :qa! ++ ENDTEST ++ +*** ../vim-7.4.784/src/testdir/test_fixeol.ok 2015-07-17 14:14:20.860020470 +0200 +--- src/testdir/test_fixeol.ok 2015-07-17 13:55:33.190783729 +0200 +*************** +*** 0 **** +--- 1,10 ---- ++ 0 ++ with eol ++ END ++ without eolEND ++ 1 ++ with eol ++ stays eol ++ END ++ without eol ++ stays withoutEND +*** ../vim-7.4.784/runtime/doc/options.txt 2015-07-10 18:18:35.575206298 +0200 +--- runtime/doc/options.txt 2015-07-17 14:13:33.036477520 +0200 +*************** +*** 2670,2684 **** + local to buffer + {not in Vi} + When writing a file and this option is off and the 'binary' option +! is on, no will be written for the last line in the file. This +! option is automatically set when starting to edit a new file, unless +! the file does not have an for the last line in the file, in +! which case it is reset. Normally you don't have to set or reset this +! option. When 'binary' is off the value is not used when writing the +! file. When 'binary' is on it is used to remember the presence of a +! for the last line in the file, so that when you write the file +! the situation from the original file can be kept. But you can change +! it if you want to. + + *'equalalways'* *'ea'* *'noequalalways'* *'noea'* + 'equalalways' 'ea' boolean (default on) +--- 2671,2686 ---- + local to buffer + {not in Vi} + When writing a file and this option is off and the 'binary' option +! is on, or 'fixeol' option is off, no will be written for the +! last line in the file. This option is automatically set or reset when +! starting to edit a new file, depending on whether file has an +! for the last line in the file. Normally you don't have to set or +! reset this option. +! When 'binary' is off and 'fixeol' is on the value is not used when +! writing the file. When 'binary' is on or 'fixeol' is off it is used +! to remember the presence of a for the last line in the file, so +! that when you write the file the situation from the original file can +! be kept. But you can change it if you want to. + + *'equalalways'* *'ea'* *'noequalalways'* *'noea'* + 'equalalways' 'ea' boolean (default on) +*************** +*** 3063,3068 **** +--- 3065,3081 ---- + fold:c Folded |hl-Folded| + diff:c DiffDelete |hl-DiffDelete| + ++ *'fixendofline'* *'fixeol'* *'nofixendofline'* *'nofixeol'* ++ 'fixendofline' 'fixeol' boolean (default on) ++ local to buffer ++ {not in Vi} ++ When writing a file and this option is on, at the end of file ++ will be restored if missing. Turn this option off if you want to ++ preserve the situation from the original file. ++ When the 'binary' option is set the value of this option doesn't ++ matter. ++ See the 'endofline' option. ++ + *'fkmap'* *'fk'* *'nofkmap'* *'nofk'* + 'fkmap' 'fk' boolean (default off) *E198* + global +*** ../vim-7.4.784/runtime/optwin.vim 2014-06-25 14:39:35.098348584 +0200 +--- runtime/optwin.vim 2015-07-17 14:04:18.181772220 +0200 +*************** +*** 949,954 **** +--- 954,962 ---- + call append("$", "endofline\tlast line in the file has an end-of-line") + call append("$", "\t(local to buffer)") + call BinOptionL("eol") ++ call append("$", "fixeol\tfixes missing end-of-line at end of text file") ++ call append("$", "\t(local to buffer)") ++ call BinOptionL("fixeol") + if has("multi_byte") + call append("$", "bomb\tprepend a Byte Order Mark to the file") + call append("$", "\t(local to buffer)") +*** ../vim-7.4.784/src/version.c 2015-07-17 13:42:17.778373909 +0200 +--- src/version.c 2015-07-17 13:54:24.543439196 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 785, + /**/ + +-- +A computer without Windows is like a fish without a bicycle. + + /// 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 /// From ab04bca09d3efdf922fc5e222910aabfbfbec426 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:36 +0200 Subject: [PATCH 0275/1407] - patchlevel 786 --- 7.4.786 | 700 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 700 insertions(+) create mode 100644 7.4.786 diff --git a/7.4.786 b/7.4.786 new file mode 100644 index 00000000..0160fc40 --- /dev/null +++ b/7.4.786 @@ -0,0 +1,700 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.786 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.786 +Problem: It is not possible for a plugin to adjust to a changed setting. +Solution: Add the OptionSet autocommand event. (Christian Brabandt) +Files: runtime/doc/autocmd.txt, runtime/doc/eval.txt, src/eval.c, + src/fileio.c, src/option.c, src/proto/eval.pro, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms, src/testdir/Makefile, + src/testdir/test_autocmd_option.in, + src/testdir/test_autocmd_option.ok, src/vim.h + + +*** ../vim-7.4.785/runtime/doc/autocmd.txt 2015-07-10 17:56:18.211777230 +0200 +--- runtime/doc/autocmd.txt 2015-07-17 15:03:42.523751972 +0200 +*************** +*** 259,264 **** +--- 259,265 ---- + |Syntax| when the 'syntax' option has been set + |EncodingChanged| after the 'encoding' option has been changed + |TermChanged| after the value of 'term' has changed ++ |OptionSet| after setting any option + + Startup and exit + |VimEnter| after doing all the startup stuff +*************** +*** 732,737 **** +--- 745,771 ---- + o Operator-pending + i Insert + c Command line ++ *OptionSet* ++ OptionSet After setting an option. The pattern is ++ matched against the long option name. ++ The |v:option_old| variable indicates the ++ old option value, |v:option_new| variable ++ indicates the newly set value, the ++ |v:option_type| variable indicates whether ++ it's global or local scoped and || ++ indicates what option has been set. ++ ++ Is not triggered on startup and for the 'key' ++ option for obvious reasons. ++ ++ Note: It's a bad idea, to reset an option ++ during this autocommand, since this will ++ probably break plugins. You can always use ++ |noa| to prevent triggering this autocommand. ++ Could be used, to check for existence of the ++ 'backupdir' and 'undodir' options and create ++ directories, if they don't exist yet. ++ + *QuickFixCmdPre* + QuickFixCmdPre Before a quickfix command is run (|:make|, + |:lmake|, |:grep|, |:lgrep|, |:grepadd|, +*** ../vim-7.4.785/runtime/doc/eval.txt 2015-07-10 17:56:18.211777230 +0200 +--- runtime/doc/eval.txt 2015-07-17 15:05:12.834890842 +0200 +*************** +*** 1533,1538 **** +--- 1535,1549 ---- + than String this will cause trouble. + {only when compiled with the |+viminfo| feature} + ++ *v:option_new* ++ v:option_new New value of the option. Valid while executing an |OptionSet| ++ autocommand. ++ *v:option_old* ++ v:option_old Old value of the option. Valid while executing an |OptionSet| ++ autocommand. ++ *v:option_type* ++ v:option_type Scope of the set command. Valid while executing an ++ |OptionSet| autocommand. Can be either "global" or "local" + *v:operator* *operator-variable* + v:operator The last operator given in Normal mode. This is a single + character except for commands starting with or , +*** ../vim-7.4.785/src/eval.c 2015-07-17 13:03:42.096357579 +0200 +--- src/eval.c 2015-07-17 15:07:24.513630864 +0200 +*************** +*** 365,370 **** +--- 365,373 ---- + {VV_NAME("windowid", VAR_NUMBER), VV_RO}, + {VV_NAME("progpath", VAR_STRING), VV_RO}, + {VV_NAME("completed_item", VAR_DICT), VV_RO}, ++ {VV_NAME("option_new", VAR_STRING), VV_RO}, ++ {VV_NAME("option_old", VAR_STRING), VV_RO}, ++ {VV_NAME("option_type", VAR_STRING), VV_RO}, + }; + + /* shorthand */ +*************** +*** 24720,24725 **** +--- 24723,24738 ---- + } + } + ++ /* reset v:option_new, v:option_old and v:option_type */ ++ void ++ reset_v_option_vars() ++ { ++ set_vim_var_string(VV_OPTION_NEW, NULL, -1); ++ set_vim_var_string(VV_OPTION_OLD, NULL, -1); ++ set_vim_var_string(VV_OPTION_TYPE, NULL, -1); ++ } ++ ++ + #endif /* FEAT_EVAL */ + + +*** ../vim-7.4.785/src/fileio.c 2015-07-17 14:16:49.846596759 +0200 +--- src/fileio.c 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 7699,7704 **** +--- 7699,7705 ---- + {"InsertLeave", EVENT_INSERTLEAVE}, + {"InsertCharPre", EVENT_INSERTCHARPRE}, + {"MenuPopup", EVENT_MENUPOPUP}, ++ {"OptionSet", EVENT_OPTIONSET}, + {"QuickFixCmdPost", EVENT_QUICKFIXCMDPOST}, + {"QuickFixCmdPre", EVENT_QUICKFIXCMDPRE}, + {"QuitPre", EVENT_QUITPRE}, +*************** +*** 7736,7742 **** + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, +! NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + }; + + /* +--- 7737,7743 ---- + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, +! NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL + }; + + /* +*************** +*** 9321,9327 **** + */ + if (fname_io == NULL) + { +! if (event == EVENT_COLORSCHEME) + autocmd_fname = NULL; + else if (fname != NULL && *fname != NUL) + autocmd_fname = fname; +--- 9322,9328 ---- + */ + if (fname_io == NULL) + { +! if (event == EVENT_COLORSCHEME || event == EVENT_OPTIONSET) + autocmd_fname = NULL; + else if (fname != NULL && *fname != NUL) + autocmd_fname = fname; +*************** +*** 9385,9390 **** +--- 9386,9392 ---- + || event == EVENT_SPELLFILEMISSING + || event == EVENT_QUICKFIXCMDPRE + || event == EVENT_COLORSCHEME ++ || event == EVENT_OPTIONSET + || event == EVENT_QUICKFIXCMDPOST) + fname = vim_strsave(fname); + else +*** ../vim-7.4.785/src/option.c 2015-07-17 14:16:49.850596721 +0200 +--- src/option.c 2015-07-17 17:30:22.703747129 +0200 +*************** +*** 4592,4600 **** + { + char_u *save_arg = NULL; + char_u *s = NULL; +! char_u *oldval; /* previous value if *varp */ + char_u *newval; +! char_u *origval; + unsigned newlen; + int comma; + int bs; +--- 4592,4603 ---- + { + char_u *save_arg = NULL; + char_u *s = NULL; +! char_u *oldval = NULL; /* previous value if *varp */ + char_u *newval; +! char_u *origval = NULL; +! #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) +! char_u *saved_origval = NULL; +! #endif + unsigned newlen; + int comma; + int bs; +*************** +*** 4914,4919 **** +--- 4917,4930 ---- + /* Set the new value. */ + *(char_u **)(varp) = newval; + ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ if (!starting && options[opt_idx].indir != PV_KEY ++ && origval != NULL) ++ /* origval may be freed by ++ * did_set_string_option(), make a copy. */ ++ saved_origval = vim_strsave(origval); ++ #endif ++ + /* Handle side effects, and set the global value for + * ":set" on local options. */ + errmsg = did_set_string_option(opt_idx, (char_u **)varp, +*************** +*** 4922,4927 **** +--- 4933,4956 ---- + /* If error detected, print the error message. */ + if (errmsg != NULL) + goto skip; ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ if (saved_origval != NULL) ++ { ++ char_u buf_type[7]; ++ ++ sprintf((char *)buf_type, "%s", ++ (opt_flags & OPT_LOCAL) ? "local" : "global"); ++ set_vim_var_string(VV_OPTION_NEW, newval, -1); ++ set_vim_var_string(VV_OPTION_OLD, saved_origval, -1); ++ set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); ++ apply_autocmds(EVENT_OPTIONSET, ++ (char_u *)options[opt_idx].fullname, ++ NULL, FALSE, NULL); ++ reset_v_option_vars(); ++ vim_free(saved_origval); ++ } ++ #endif ++ + } + else /* key code option */ + { +*************** +*** 5668,5673 **** +--- 5697,5705 ---- + char_u *s; + char_u **varp; + char_u *oldval; ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ char_u *saved_oldval = NULL; ++ #endif + char_u *r = NULL; + + if (options[opt_idx].var == NULL) /* don't set hidden option */ +*************** +*** 5683,5691 **** +--- 5715,5744 ---- + : opt_flags); + oldval = *varp; + *varp = s; ++ ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ if (!starting && options[opt_idx].indir != PV_KEY) ++ saved_oldval = vim_strsave(oldval); ++ #endif + if ((r = did_set_string_option(opt_idx, varp, TRUE, oldval, NULL, + opt_flags)) == NULL) + did_set_option(opt_idx, opt_flags, TRUE); ++ ++ /* call autocomamnd after handling side effects */ ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ if (saved_oldval != NULL) ++ { ++ char_u buf_type[7]; ++ sprintf((char *)buf_type, "%s", ++ (opt_flags & OPT_LOCAL) ? "local" : "global"); ++ set_vim_var_string(VV_OPTION_NEW, s, -1); ++ set_vim_var_string(VV_OPTION_OLD, oldval, -1); ++ set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); ++ apply_autocmds(EVENT_OPTIONSET, (char_u *)options[opt_idx].fullname, NULL, FALSE, NULL); ++ reset_v_option_vars(); ++ vim_free(saved_oldval); ++ } ++ #endif + } + return r; + } +*************** +*** 8230,8237 **** +--- 8283,8307 ---- + * End of handling side effects for bool options. + */ + ++ /* after handling side effects, call autocommand */ ++ + options[opt_idx].flags |= P_WAS_SET; + ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ if (!starting) ++ { ++ char_u buf_old[2], buf_new[2], buf_type[7]; ++ snprintf((char *)buf_old, 2, "%d", old_value ? TRUE: FALSE); ++ snprintf((char *)buf_new, 2, "%d", value ? TRUE: FALSE); ++ sprintf((char *)buf_type, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); ++ set_vim_var_string(VV_OPTION_NEW, buf_new, -1); ++ set_vim_var_string(VV_OPTION_OLD, buf_old, -1); ++ set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); ++ apply_autocmds(EVENT_OPTIONSET, (char_u *) options[opt_idx].fullname, NULL, FALSE, NULL); ++ reset_v_option_vars(); ++ } ++ #endif ++ + comp_col(); /* in case 'ruler' or 'showcmd' changed */ + if (curwin->w_curswant != MAXCOL + && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0) +*************** +*** 8767,8772 **** +--- 8837,8857 ---- + + options[opt_idx].flags |= P_WAS_SET; + ++ #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) ++ if (!starting && errmsg == NULL) ++ { ++ char_u buf_old[11], buf_new[11], buf_type[7]; ++ snprintf((char *)buf_old, 10, "%ld", old_value); ++ snprintf((char *)buf_new, 10, "%ld", value); ++ snprintf((char *)buf_type, 7, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); ++ set_vim_var_string(VV_OPTION_NEW, buf_new, -1); ++ set_vim_var_string(VV_OPTION_OLD, buf_old, -1); ++ set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); ++ apply_autocmds(EVENT_OPTIONSET, (char_u *) options[opt_idx].fullname, NULL, FALSE, NULL); ++ reset_v_option_vars(); ++ } ++ #endif ++ + comp_col(); /* in case 'columns' or 'ls' changed */ + if (curwin->w_curswant != MAXCOL + && (options[opt_idx].flags & (P_CURSWANT | P_RALL)) != 0) +*** ../vim-7.4.785/src/proto/eval.pro 2015-07-10 17:56:18.219777154 +0200 +--- src/proto/eval.pro 2015-07-17 17:14:38.408715248 +0200 +*************** +*** 133,138 **** +--- 133,139 ---- + int store_session_globals __ARGS((FILE *fd)); + void last_set_msg __ARGS((scid_T scriptID)); + void ex_oldfiles __ARGS((exarg_T *eap)); ++ void reset_v_option_vars __ARGS((void)); + int modify_fname __ARGS((char_u *src, int *usedlen, char_u **fnamep, char_u **bufp, int *fnamelen)); + char_u *do_string_sub __ARGS((char_u *str, char_u *pat, char_u *sub, char_u *flags)); + /* vim: set ft=c : */ +*** ../vim-7.4.785/src/testdir/Make_amiga.mak 2015-07-17 14:16:49.854596682 +0200 +--- src/testdir/Make_amiga.mak 2015-07-17 15:02:36.916377572 +0200 +*************** +*** 38,43 **** +--- 38,44 ---- + test104.out test105.out test106.out test107.out \ + test_argument_0count.out \ + test_argument_count.out \ ++ test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ +*************** +*** 188,193 **** +--- 189,195 ---- + test107.out: test107.in + test_argument_0count.out: test_argument_0count.in + test_argument_count.out: test_argument_count.in ++ test_autocmd_option.out: test_autocmd_option.in + test_autoformat_join.out: test_autoformat_join.in + test_breakindent.out: test_breakindent.in + test_changelist.out: test_changelist.in +*** ../vim-7.4.785/src/testdir/Make_dos.mak 2015-07-17 14:16:49.854596682 +0200 +--- src/testdir/Make_dos.mak 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 37,42 **** +--- 37,43 ---- + test105.out test106.out test107.out\ + test_argument_0count.out \ + test_argument_count.out \ ++ test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ +*** ../vim-7.4.785/src/testdir/Make_ming.mak 2015-07-17 14:16:49.854596682 +0200 +--- src/testdir/Make_ming.mak 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 59,64 **** +--- 59,65 ---- + test105.out test106.out test107.out \ + test_argument_0count.out \ + test_argument_count.out \ ++ test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ +*** ../vim-7.4.785/src/testdir/Make_os2.mak 2015-07-17 14:16:49.854596682 +0200 +--- src/testdir/Make_os2.mak 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 39,44 **** +--- 39,45 ---- + test105.out test106.out test107.out \ + test_argument_0count.out \ + test_argument_count.out \ ++ test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ +*** ../vim-7.4.785/src/testdir/Make_vms.mms 2015-07-17 14:16:49.854596682 +0200 +--- src/testdir/Make_vms.mms 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 98,103 **** +--- 98,104 ---- + test105.out test106.out test107.out \ + test_argument_0count.out \ + test_argument_count.out \ ++ test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ +*** ../vim-7.4.785/src/testdir/Makefile 2015-07-17 14:16:49.854596682 +0200 +--- src/testdir/Makefile 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 35,40 **** +--- 35,41 ---- + test104.out test105.out test106.out test107.out \ + test_argument_0count.out \ + test_argument_count.out \ ++ test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ +*** ../vim-7.4.785/src/testdir/test_autocmd_option.in 2015-07-17 17:13:44.769224683 +0200 +--- src/testdir/test_autocmd_option.in 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 0 **** +--- 1,73 ---- ++ Test for option autocommand ++ ++ STARTTEST ++ :so small.vim ++ :if !has("eval") || !has("autocmd") | e! test.ok | w! test.out | qa! | endif ++ :fu! AutoCommand(match) ++ : let c=g:testcase ++ : let item=remove(g:options, 0) ++ : let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope: <%s>\n", item[0], item[1], item[2], item[3]) ++ : let c.=printf("Autocmd Option: <%s>,", a:match) ++ : let c.=printf(" OldVal: <%s>,", v:option_old) ++ : let c.=printf(" NewVal: <%s>,", v:option_new) ++ : let c.=printf(" Scope: <%s>\n", v:option_type) ++ : call setreg('r', printf("%s\n%s", getreg('r'), c)) ++ :endfu ++ :au OptionSet * :call AutoCommand(expand("")) ++ :let g:testcase="1: Setting number option\n" ++ :let g:options=[['number', 0, 1, 'global']] ++ :set nu ++ :let g:testcase="2: Setting local number option\n" ++ :let g:options=[['number', 1, 0, 'local']] ++ :setlocal nonu ++ :let g:testcase="3: Setting global number option\n" ++ :let g:options=[['number', 1, 0, 'global']] ++ :setglobal nonu ++ :let g:testcase="4: Setting local autoindent option\n" ++ :let g:options=[['autoindent', 0, 1, 'local']] ++ :setlocal ai ++ :let g:testcase="5: Setting global autoindent option\n" ++ :let g:options=[['autoindent', 0, 1, 'global']] ++ :setglobal ai ++ :let g:testcase="6: Setting global autoindent option\n" ++ :let g:options=[['autoindent', 1, 0, 'global']] ++ :set ai! ++ : Should not print anything, use :noa ++ :noa :set nonu ++ :let g:testcase="7: Setting several global list and number option\n" ++ :let g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']] ++ :set list nu ++ :noa set nolist nonu ++ :let g:testcase="8: Setting global acd\n" ++ :let g:options=[['autochdir', 0, 1, 'global']] ++ :setlocal acd ++ :let g:testcase="9: Setting global autoread\n" ++ :let g:options=[['autoread', 0, 1, 'global']] ++ :set ar ++ :let g:testcase="10: Setting local autoread\n" ++ :let g:options=[['autoread', 0, 1, 'local']] ++ :setlocal ar ++ :let g:testcase="11: Setting global autoread\n" ++ :let g:options=[['autoread', 1, 0, 'global']] ++ :setglobal invar ++ :let g:testcase="12: Setting option backspace through :let\n" ++ :let g:options=[['backspace', '', 'eol,indent,start', 'global']] ++ :let &bs="eol,indent,start" ++ :let g:testcase="13: Setting option backspace through setbufvar()\n" ++ :let g:options=[['backup', '', '1', 'local']] ++ : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger ++ :call setbufvar(1, '&l:bk', 1) ++ : "should trigger, use correct option name ++ :call setbufvar(1, '&backup', 1) ++ :" Write register now, because next test shouldn't output anything. ++ :$put r ++ :let @r='' ++ :let g:testcase="\n14: Setting key option, shouldn't trigger\n" ++ :let g:options=[['key', 'invalid', 'invalid1', 'invalid']] ++ :setlocal key=blah ++ :setlocal key= ++ :$put =g:testcase ++ :%w! test.out ++ :qa! ++ ENDTEST ++ dummy text +*** ../vim-7.4.785/src/testdir/test_autocmd_option.ok 2015-07-17 17:13:44.777224608 +0200 +--- src/testdir/test_autocmd_option.ok 2015-07-17 14:58:39.362642959 +0200 +*************** +*** 0 **** +--- 1,131 ---- ++ Test for option autocommand ++ ++ STARTTEST ++ :so small.vim ++ :if !has("eval") || !has("autocmd") | e! test.ok | w! test.out | qa! | endif ++ :fu! AutoCommand(match) ++ : let c=g:testcase ++ : let item=remove(g:options, 0) ++ : let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope: <%s>\n", item[0], item[1], item[2], item[3]) ++ : let c.=printf("Autocmd Option: <%s>,", a:match) ++ : let c.=printf(" OldVal: <%s>,", v:option_old) ++ : let c.=printf(" NewVal: <%s>,", v:option_new) ++ : let c.=printf(" Scope: <%s>\n", v:option_type) ++ : call setreg('r', printf("%s\n%s", getreg('r'), c)) ++ :endfu ++ :au OptionSet * :call AutoCommand(expand("")) ++ :let g:testcase="1: Setting number option\n" ++ :let g:options=[['number', 0, 1, 'global']] ++ :set nu ++ :let g:testcase="2: Setting local number option\n" ++ :let g:options=[['number', 1, 0, 'local']] ++ :setlocal nonu ++ :let g:testcase="3: Setting global number option\n" ++ :let g:options=[['number', 1, 0, 'global']] ++ :setglobal nonu ++ :let g:testcase="4: Setting local autoindent option\n" ++ :let g:options=[['autoindent', 0, 1, 'local']] ++ :setlocal ai ++ :let g:testcase="5: Setting global autoindent option\n" ++ :let g:options=[['autoindent', 0, 1, 'global']] ++ :setglobal ai ++ :let g:testcase="6: Setting global autoindent option\n" ++ :let g:options=[['autoindent', 1, 0, 'global']] ++ :set ai! ++ : Should not print anything, use :noa ++ :noa :set nonu ++ :let g:testcase="7: Setting several global list and number option\n" ++ :let g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']] ++ :set list nu ++ :noa set nolist nonu ++ :let g:testcase="8: Setting global acd\n" ++ :let g:options=[['autochdir', 0, 1, 'global']] ++ :setlocal acd ++ :let g:testcase="9: Setting global autoread\n" ++ :let g:options=[['autoread', 0, 1, 'global']] ++ :set ar ++ :let g:testcase="10: Setting local autoread\n" ++ :let g:options=[['autoread', 0, 1, 'local']] ++ :setlocal ar ++ :let g:testcase="11: Setting global autoread\n" ++ :let g:options=[['autoread', 1, 0, 'global']] ++ :setglobal invar ++ :let g:testcase="12: Setting option backspace through :let\n" ++ :let g:options=[['backspace', '', 'eol,indent,start', 'global']] ++ :let &bs="eol,indent,start" ++ :let g:testcase="13: Setting option backspace through setbufvar()\n" ++ :let g:options=[['backup', '', '1', 'local']] ++ : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger ++ :call setbufvar(1, '&l:bk', 1) ++ : "should trigger, use correct option name ++ :call setbufvar(1, '&backup', 1) ++ :" Write register now, because next test shouldn't output anything. ++ :$put r ++ :let @r='' ++ :let g:testcase="\n14: Setting key option, shouldn't trigger\n" ++ :let g:options=[['key', 'invalid', 'invalid1', 'invalid']] ++ :setlocal key=blah ++ :setlocal key= ++ :$put =g:testcase ++ :%w! test.out ++ :qa! ++ ENDTEST ++ dummy text ++ ++ 1: Setting number option ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 2: Setting local number option ++ Expected: Name: , Oldval: <1>, NewVal: <0>, Scope: ++ Autocmd Option: , OldVal: <1>, NewVal: <0>, Scope: ++ ++ 3: Setting global number option ++ Expected: Name: , Oldval: <1>, NewVal: <0>, Scope: ++ Autocmd Option: , OldVal: <1>, NewVal: <0>, Scope: ++ ++ 4: Setting local autoindent option ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 5: Setting global autoindent option ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 6: Setting global autoindent option ++ Expected: Name: , Oldval: <1>, NewVal: <0>, Scope: ++ Autocmd Option: , OldVal: <1>, NewVal: <0>, Scope: ++ ++ 7: Setting several global list and number option ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 7: Setting several global list and number option ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 8: Setting global acd ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 9: Setting global autoread ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 10: Setting local autoread ++ Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <1>, NewVal: <1>, Scope: ++ ++ 11: Setting global autoread ++ Expected: Name: , Oldval: <1>, NewVal: <0>, Scope: ++ Autocmd Option: , OldVal: <1>, NewVal: <0>, Scope: ++ ++ 12: Setting option backspace through :let ++ Expected: Name: , Oldval: <>, NewVal: , Scope: ++ Autocmd Option: , OldVal: <>, NewVal: , Scope: ++ ++ 13: Setting option backspace through setbufvar() ++ Expected: Name: , Oldval: <>, NewVal: <1>, Scope: ++ Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: ++ ++ 14: Setting key option, shouldn't trigger +*** ../vim-7.4.785/src/vim.h 2015-07-10 17:56:18.219777154 +0200 +--- src/vim.h 2015-07-17 15:01:08.737218443 +0200 +*************** +*** 1335,1340 **** +--- 1335,1341 ---- + EVENT_TEXTCHANGED, /* text was modified */ + EVENT_TEXTCHANGEDI, /* text was modified in Insert mode*/ + EVENT_CMDUNDEFINED, /* command undefined */ ++ EVENT_OPTIONSET, /* option was set */ + NUM_EVENTS /* MUST be the last one */ + }; + +*************** +*** 1898,1904 **** + #define VV_WINDOWID 56 + #define VV_PROGPATH 57 + #define VV_COMPLETED_ITEM 58 +! #define VV_LEN 59 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +--- 1899,1908 ---- + #define VV_WINDOWID 56 + #define VV_PROGPATH 57 + #define VV_COMPLETED_ITEM 58 +! #define VV_OPTION_NEW 59 +! #define VV_OPTION_OLD 60 +! #define VV_OPTION_TYPE 61 +! #define VV_LEN 62 /* number of v: vars */ + + #ifdef FEAT_CLIPBOARD + +*** ../vim-7.4.785/src/version.c 2015-07-17 14:16:49.858596644 +0200 +--- src/version.c 2015-07-17 17:09:30.819636167 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 786, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +231. You sprinkle Carpet Fresh on the rugs and put your vacuum cleaner + in the front doorway permanently so it always looks like you are + actually attempting to do something about that mess that has amassed + since you discovered the Internet. + + /// 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 /// From 4e8fea7808e8943f6a2947d40378b5753336acdb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:37 +0200 Subject: [PATCH 0276/1407] - patchlevel 787 --- 7.4.787 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 7.4.787 diff --git a/7.4.787 b/7.4.787 new file mode 100644 index 00000000..19473d81 --- /dev/null +++ b/7.4.787 @@ -0,0 +1,79 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.787 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.787 (after 7.4.786) +Problem: snprintf() isn't available everywhere. +Solution: Use vim_snprintf(). (Ken Takata) +Files: src/option.c + + +*** ../vim-7.4.786/src/option.c 2015-07-17 17:38:00.567399623 +0200 +--- src/option.c 2015-07-17 22:01:19.618757952 +0200 +*************** +*** 8291,8299 **** + if (!starting) + { + char_u buf_old[2], buf_new[2], buf_type[7]; +! snprintf((char *)buf_old, 2, "%d", old_value ? TRUE: FALSE); +! snprintf((char *)buf_new, 2, "%d", value ? TRUE: FALSE); +! sprintf((char *)buf_type, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); + set_vim_var_string(VV_OPTION_NEW, buf_new, -1); + set_vim_var_string(VV_OPTION_OLD, buf_old, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); +--- 8291,8299 ---- + if (!starting) + { + char_u buf_old[2], buf_new[2], buf_type[7]; +! vim_snprintf((char *)buf_old, 2, "%d", old_value ? TRUE: FALSE); +! vim_snprintf((char *)buf_new, 2, "%d", value ? TRUE: FALSE); +! vim_snprintf((char *)buf_type, 7, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); + set_vim_var_string(VV_OPTION_NEW, buf_new, -1); + set_vim_var_string(VV_OPTION_OLD, buf_old, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); +*************** +*** 8841,8849 **** + if (!starting && errmsg == NULL) + { + char_u buf_old[11], buf_new[11], buf_type[7]; +! snprintf((char *)buf_old, 10, "%ld", old_value); +! snprintf((char *)buf_new, 10, "%ld", value); +! snprintf((char *)buf_type, 7, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); + set_vim_var_string(VV_OPTION_NEW, buf_new, -1); + set_vim_var_string(VV_OPTION_OLD, buf_old, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); +--- 8841,8849 ---- + if (!starting && errmsg == NULL) + { + char_u buf_old[11], buf_new[11], buf_type[7]; +! vim_snprintf((char *)buf_old, 10, "%ld", old_value); +! vim_snprintf((char *)buf_new, 10, "%ld", value); +! vim_snprintf((char *)buf_type, 7, "%s", (opt_flags & OPT_LOCAL) ? "local" : "global"); + set_vim_var_string(VV_OPTION_NEW, buf_new, -1); + set_vim_var_string(VV_OPTION_OLD, buf_old, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); +*** ../vim-7.4.786/src/version.c 2015-07-17 17:38:00.567399623 +0200 +--- src/version.c 2015-07-17 22:02:53.357875372 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 787, + /**/ + +-- +The term "free software" is defined by Richard M. Stallman as +being software that isn't necessarily for free. Confusing? +Let's call it "Stallman software" then! + -- Bram Moolenaar + + /// 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 /// From 3ca0f5f843b683136167fb2b6dde9e1c457175e8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:37 +0200 Subject: [PATCH 0277/1407] - patchlevel 788 --- 7.4.788 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.4.788 diff --git a/7.4.788 b/7.4.788 new file mode 100644 index 00000000..b8fd3c69 --- /dev/null +++ b/7.4.788 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.788 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.788 (after 7.4.787) +Problem: Can't build without the crypt feature. (John Marriott) +Solution: Add #ifdef's. +Files: src/option.c + + +*** ../vim-7.4.787/src/option.c 2015-07-17 22:04:44.300830834 +0200 +--- src/option.c 2015-07-17 23:05:31.542484926 +0200 +*************** +*** 4918,4924 **** + *(char_u **)(varp) = newval; + + #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) +! if (!starting && options[opt_idx].indir != PV_KEY + && origval != NULL) + /* origval may be freed by + * did_set_string_option(), make a copy. */ +--- 4918,4927 ---- + *(char_u **)(varp) = newval; + + #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) +! if (!starting +! # ifdef FEAT_CRYPT +! && options[opt_idx].indir != PV_KEY +! # endif + && origval != NULL) + /* origval may be freed by + * did_set_string_option(), make a copy. */ +*************** +*** 5717,5723 **** + *varp = s; + + #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) +! if (!starting && options[opt_idx].indir != PV_KEY) + saved_oldval = vim_strsave(oldval); + #endif + if ((r = did_set_string_option(opt_idx, varp, TRUE, oldval, NULL, +--- 5720,5730 ---- + *varp = s; + + #if defined(FEAT_AUTOCMD) && defined(FEAT_EVAL) +! if (!starting +! # ifdef FEAT_CRYPT +! && options[opt_idx].indir != PV_KEY +! # endif +! ) + saved_oldval = vim_strsave(oldval); + #endif + if ((r = did_set_string_option(opt_idx, varp, TRUE, oldval, NULL, +*** ../vim-7.4.787/src/version.c 2015-07-17 22:04:44.304830797 +0200 +--- src/version.c 2015-07-17 23:07:19.569467719 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 788, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +235. You start naming your kids Pascal, COBOL, Algol and Fortran. + + /// 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 /// From 5bf55733b5e55bf575b548259b1e61a7955c5b0b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:38 +0200 Subject: [PATCH 0278/1407] - patchlevel 789 --- 7.4.789 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.4.789 diff --git a/7.4.789 b/7.4.789 new file mode 100644 index 00000000..d229cfde --- /dev/null +++ b/7.4.789 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.789 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.789 (after 7.4.788) +Problem: Using freed memory and crash. (Dominique Pellej) +Solution: Correct use of pointers. (Hirohito Higashi) +Files: src/option.c + + +*** ../vim-7.4.788/src/option.c 2015-07-17 23:08:18.200915641 +0200 +--- src/option.c 2015-07-19 14:36:23.112460392 +0200 +*************** +*** 4943,4949 **** + + sprintf((char *)buf_type, "%s", + (opt_flags & OPT_LOCAL) ? "local" : "global"); +! set_vim_var_string(VV_OPTION_NEW, newval, -1); + set_vim_var_string(VV_OPTION_OLD, saved_origval, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); + apply_autocmds(EVENT_OPTIONSET, +--- 4943,4950 ---- + + sprintf((char *)buf_type, "%s", + (opt_flags & OPT_LOCAL) ? "local" : "global"); +! set_vim_var_string(VV_OPTION_NEW, +! *(char_u **)varp, -1); + set_vim_var_string(VV_OPTION_OLD, saved_origval, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); + apply_autocmds(EVENT_OPTIONSET, +*************** +*** 5738,5745 **** + char_u buf_type[7]; + sprintf((char *)buf_type, "%s", + (opt_flags & OPT_LOCAL) ? "local" : "global"); +! set_vim_var_string(VV_OPTION_NEW, s, -1); +! set_vim_var_string(VV_OPTION_OLD, oldval, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); + apply_autocmds(EVENT_OPTIONSET, (char_u *)options[opt_idx].fullname, NULL, FALSE, NULL); + reset_v_option_vars(); +--- 5739,5746 ---- + char_u buf_type[7]; + sprintf((char *)buf_type, "%s", + (opt_flags & OPT_LOCAL) ? "local" : "global"); +! set_vim_var_string(VV_OPTION_NEW, *varp, -1); +! set_vim_var_string(VV_OPTION_OLD, saved_oldval, -1); + set_vim_var_string(VV_OPTION_TYPE, buf_type, -1); + apply_autocmds(EVENT_OPTIONSET, (char_u *)options[opt_idx].fullname, NULL, FALSE, NULL); + reset_v_option_vars(); +*** ../vim-7.4.788/src/version.c 2015-07-17 23:08:18.204915603 +0200 +--- src/version.c 2015-07-19 14:38:31.815247734 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 789, + /**/ + +-- +Google is kind of like Dr. Who's Tardis; it's weirder on the +inside than on the outside... + + /// 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 /// From e633f104eb148664626e0cabf856a4bad4105608 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:38 +0200 Subject: [PATCH 0279/1407] - patchlevel 790 --- 7.4.790 | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 7.4.790 diff --git a/7.4.790 b/7.4.790 new file mode 100644 index 00000000..c671beac --- /dev/null +++ b/7.4.790 @@ -0,0 +1,154 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.790 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.790 (after 7.4.786) +Problem: Test fails when the autochdir feature is not available. Test + output contains the test script. +Solution: Check for the autochdir feature. (Kazunobu Kuriyama) Only write + the relevant test output. +Files: src/testdir/test_autocmd_option.in, + src/testdir/test_autocmd_option.ok + + +*** ../vim-7.4.789/src/testdir/test_autocmd_option.in 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/test_autocmd_option.in 2015-07-21 10:51:40.170669685 +0200 +*************** +*** 2,8 **** + + STARTTEST + :so small.vim +! :if !has("eval") || !has("autocmd") | e! test.ok | w! test.out | qa! | endif + :fu! AutoCommand(match) + : let c=g:testcase + : let item=remove(g:options, 0) +--- 2,8 ---- + + STARTTEST + :so small.vim +! :if !has("eval") || !has("autocmd") || !exists("+autochdir") | e! test.ok | w! test.out | qa! | endif + :fu! AutoCommand(match) + : let c=g:testcase + : let item=remove(g:options, 0) +*************** +*** 67,73 **** + :setlocal key=blah + :setlocal key= + :$put =g:testcase +! :%w! test.out + :qa! + ENDTEST + dummy text +--- 67,73 ---- + :setlocal key=blah + :setlocal key= + :$put =g:testcase +! :/^dummy text/,$w! test.out + :qa! + ENDTEST + dummy text +*** ../vim-7.4.789/src/testdir/test_autocmd_option.ok 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/test_autocmd_option.ok 2015-07-21 10:51:19.962860786 +0200 +*************** +*** 1,75 **** +- Test for option autocommand +- +- STARTTEST +- :so small.vim +- :if !has("eval") || !has("autocmd") | e! test.ok | w! test.out | qa! | endif +- :fu! AutoCommand(match) +- : let c=g:testcase +- : let item=remove(g:options, 0) +- : let c.=printf("Expected: Name: <%s>, Oldval: <%s>, NewVal: <%s>, Scope: <%s>\n", item[0], item[1], item[2], item[3]) +- : let c.=printf("Autocmd Option: <%s>,", a:match) +- : let c.=printf(" OldVal: <%s>,", v:option_old) +- : let c.=printf(" NewVal: <%s>,", v:option_new) +- : let c.=printf(" Scope: <%s>\n", v:option_type) +- : call setreg('r', printf("%s\n%s", getreg('r'), c)) +- :endfu +- :au OptionSet * :call AutoCommand(expand("")) +- :let g:testcase="1: Setting number option\n" +- :let g:options=[['number', 0, 1, 'global']] +- :set nu +- :let g:testcase="2: Setting local number option\n" +- :let g:options=[['number', 1, 0, 'local']] +- :setlocal nonu +- :let g:testcase="3: Setting global number option\n" +- :let g:options=[['number', 1, 0, 'global']] +- :setglobal nonu +- :let g:testcase="4: Setting local autoindent option\n" +- :let g:options=[['autoindent', 0, 1, 'local']] +- :setlocal ai +- :let g:testcase="5: Setting global autoindent option\n" +- :let g:options=[['autoindent', 0, 1, 'global']] +- :setglobal ai +- :let g:testcase="6: Setting global autoindent option\n" +- :let g:options=[['autoindent', 1, 0, 'global']] +- :set ai! +- : Should not print anything, use :noa +- :noa :set nonu +- :let g:testcase="7: Setting several global list and number option\n" +- :let g:options=[['list', 0, 1, 'global'], ['number', 0, 1, 'global']] +- :set list nu +- :noa set nolist nonu +- :let g:testcase="8: Setting global acd\n" +- :let g:options=[['autochdir', 0, 1, 'global']] +- :setlocal acd +- :let g:testcase="9: Setting global autoread\n" +- :let g:options=[['autoread', 0, 1, 'global']] +- :set ar +- :let g:testcase="10: Setting local autoread\n" +- :let g:options=[['autoread', 0, 1, 'local']] +- :setlocal ar +- :let g:testcase="11: Setting global autoread\n" +- :let g:options=[['autoread', 1, 0, 'global']] +- :setglobal invar +- :let g:testcase="12: Setting option backspace through :let\n" +- :let g:options=[['backspace', '', 'eol,indent,start', 'global']] +- :let &bs="eol,indent,start" +- :let g:testcase="13: Setting option backspace through setbufvar()\n" +- :let g:options=[['backup', '', '1', 'local']] +- : "try twice, first time, shouldn't trigger because option name is invalid, second time, it should trigger +- :call setbufvar(1, '&l:bk', 1) +- : "should trigger, use correct option name +- :call setbufvar(1, '&backup', 1) +- :" Write register now, because next test shouldn't output anything. +- :$put r +- :let @r='' +- :let g:testcase="\n14: Setting key option, shouldn't trigger\n" +- :let g:options=[['key', 'invalid', 'invalid1', 'invalid']] +- :setlocal key=blah +- :setlocal key= +- :$put =g:testcase +- :%w! test.out +- :qa! +- ENDTEST + dummy text + + 1: Setting number option +--- 1,3 ---- +*** ../vim-7.4.789/src/version.c 2015-07-19 14:42:16.573130169 +0200 +--- src/version.c 2015-07-21 10:57:00.815637916 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 790, + /**/ + + +-- +hundred-and-one symptoms of being an internet addict: +242. You turn down a better-paying job because it doesn't come with + a free e-mail account. + + /// 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 /// From f109103d99a9be0157e4ae1db0cab9e0fe5a87d0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:39 +0200 Subject: [PATCH 0280/1407] - patchlevel 791 --- 7.4.791 | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 7.4.791 diff --git a/7.4.791 b/7.4.791 new file mode 100644 index 00000000..32ec4c96 --- /dev/null +++ b/7.4.791 @@ -0,0 +1,187 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.791 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.791 +Problem: The buffer list can be very long. +Solution: Add an argument to ":ls" to specify the type of buffer to list. + (Marcin Szamotulski) +Files: runtime/doc/windows.txt, src/buffer.c, src/ex_cmds.h + + +*** ../vim-7.4.790/runtime/doc/windows.txt 2015-01-07 16:52:53.506792420 +0100 +--- runtime/doc/windows.txt 2015-07-21 14:59:59.925184307 +0200 +*************** +*** 986,994 **** + list of buffers. |unlisted-buffer| + + +! :files[!] *:files* +! :buffers[!] *:buffers* *:ls* +! :ls[!] Show all buffers. Example: + + 1 #h "/test/text" line 1 ~ + 2u "asdf" line 0 ~ +--- 986,995 ---- + list of buffers. |unlisted-buffer| + + +! :files[!] [flags] *:files* +! :buffers[!] [flags] *:buffers* *:ls* +! :ls[!] [flags] +! Show all buffers. Example: + + 1 #h "/test/text" line 1 ~ + 2u "asdf" line 0 ~ +*************** +*** 998,1005 **** + (the term "unlisted" is a bit confusing then...). + + Each buffer has a unique number. That number will not change, +! so you can always go to a specific buffer with ":buffer N" or +! "N CTRL-^", where N is the buffer number. + + Indicators (chars in the same column are mutually exclusive): + u an unlisted buffer (only displayed when [!] is used) +--- 999,1006 ---- + (the term "unlisted" is a bit confusing then...). + + Each buffer has a unique number. That number will not change, +! thus you can always go to a specific buffer with ":buffer N" +! or "N CTRL-^", where N is the buffer number. + + Indicators (chars in the same column are mutually exclusive): + u an unlisted buffer (only displayed when [!] is used) +*************** +*** 1014,1019 **** +--- 1015,1035 ---- + + a modified buffer + x a buffer with read errors + ++ [flags] can be a combination of the following characters, ++ which restrict the buffers to be listed: ++ + modified buffers ++ - buffers with 'modifiable' off ++ = readonly buffers ++ a active buffers ++ u unloaded buffers (overrides the "!") ++ h hidden buffers ++ x buffers with a read error ++ % current buffer ++ # alternate buffer ++ Combining flags means they are "and"ed together, e.g.: ++ h+ hidden buffers which are modified ++ a+ active buffers which are modified ++ + *:bad* *:badd* + :bad[d] [+lnum] {fname} + Add file name {fname} to the buffer list, without loading it. +*** ../vim-7.4.790/src/buffer.c 2015-07-17 14:16:49.842596797 +0200 +--- src/buffer.c 2015-07-21 14:59:08.989668192 +0200 +*************** +*** 2761,2767 **** + for (buf = firstbuf; buf != NULL && !got_int; buf = buf->b_next) + { + /* skip unlisted buffers, unless ! was used */ +! if (!buf->b_p_bl && !eap->forceit) + continue; + msg_putchar('\n'); + if (buf_spname(buf) != NULL) +--- 2761,2780 ---- + for (buf = firstbuf; buf != NULL && !got_int; buf = buf->b_next) + { + /* skip unlisted buffers, unless ! was used */ +! if ((!buf->b_p_bl && !eap->forceit && !vim_strchr(eap->arg, 'u')) +! || (vim_strchr(eap->arg, 'u') && buf->b_p_bl) +! || (vim_strchr(eap->arg, '+') +! && ((buf->b_flags & BF_READERR) || !bufIsChanged(buf))) +! || (vim_strchr(eap->arg, 'a') +! && (buf->b_ml.ml_mfp == NULL || buf->b_nwindows == 0)) +! || (vim_strchr(eap->arg, 'h') +! && (buf->b_ml.ml_mfp == NULL || buf->b_nwindows != 0)) +! || (vim_strchr(eap->arg, '-') && buf->b_p_ma) +! || (vim_strchr(eap->arg, '=') && !buf->b_p_ro) +! || (vim_strchr(eap->arg, 'x') && !(buf->b_flags & BF_READERR)) +! || (vim_strchr(eap->arg, '%') && buf != curbuf) +! || (vim_strchr(eap->arg, '#') +! && (buf == curbuf || curwin->w_alt_fnum != buf->b_fnum))) + continue; + msg_putchar('\n'); + if (buf_spname(buf) != NULL) +*** ../vim-7.4.790/src/ex_cmds.h 2015-01-20 19:30:46.665275623 +0100 +--- src/ex_cmds.h 2015-07-21 14:40:57.480043462 +0200 +*************** +*** 217,223 **** + NEEDARG|EXTRA|NOTRLCOM|CMDWIN, + ADDR_LINES), + EX(CMD_buffers, "buffers", buflist_list, +! BANG|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_bufdo, "bufdo", ex_listdo, + BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, +--- 217,223 ---- + NEEDARG|EXTRA|NOTRLCOM|CMDWIN, + ADDR_LINES), + EX(CMD_buffers, "buffers", buflist_list, +! BANG|EXTRA|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_bufdo, "bufdo", ex_listdo, + BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, +*************** +*** 526,532 **** + RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR, + ADDR_LINES), + EX(CMD_files, "files", buflist_list, +! BANG|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_filetype, "filetype", ex_filetype, + EXTRA|TRLBAR|CMDWIN, +--- 526,532 ---- + RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR, + ADDR_LINES), + EX(CMD_files, "files", buflist_list, +! BANG|EXTRA|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_filetype, "filetype", ex_filetype, + EXTRA|TRLBAR|CMDWIN, +*************** +*** 847,853 **** + RANGE|NOTADR|COUNT|TRLBAR, + ADDR_LINES), + EX(CMD_ls, "ls", buflist_list, +! BANG|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_move, "move", ex_copymove, + RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY, +--- 847,853 ---- + RANGE|NOTADR|COUNT|TRLBAR, + ADDR_LINES), + EX(CMD_ls, "ls", buflist_list, +! BANG|EXTRA|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_move, "move", ex_copymove, + RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY, +*** ../vim-7.4.790/src/version.c 2015-07-21 10:57:35.379311166 +0200 +--- src/version.c 2015-07-21 14:41:25.219779629 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 791, + /**/ + +-- +"Women marry men hoping they will change. Men marry women hoping +they will not. So each is inevitably disappointed." + - Einstein + + /// 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 /// From cd3dcf36b61679d80c98b56ea73a86878ebd6ba3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:40 +0200 Subject: [PATCH 0281/1407] - patchlevel 792 --- 7.4.792 | 841 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 841 insertions(+) create mode 100644 7.4.792 diff --git a/7.4.792 b/7.4.792 new file mode 100644 index 00000000..289e15cd --- /dev/null +++ b/7.4.792 @@ -0,0 +1,841 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.792 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.792 +Problem: Can only conceal text by defining syntax items. +Solution: Use matchadd() to define concealing. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c, + src/proto/window.pro, src/screen.c, src/structs.h, + src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_match_conceal.in, + src/testdir/test_match_conceal.ok, src/window.c + + +*** ../vim-7.4.791/runtime/doc/eval.txt 2015-07-17 17:38:00.559399699 +0200 +--- runtime/doc/eval.txt 2015-07-21 15:41:47.501228965 +0200 +*************** +*** 4337,4347 **** + done like 'magic' is set and 'cpoptions' is empty. + + *matchadd()* *E798* *E799* *E801* +! matchadd({group}, {pattern}[, {priority}[, {id}]]) + Defines a pattern to be highlighted in the current window (a + "match"). It will be highlighted with {group}. Returns an + identification number (ID), which can be used to delete the + match using |matchdelete()|. + + The optional {priority} argument assigns a priority to the + match. A match with a high priority will have its +--- 4405,4420 ---- + done like 'magic' is set and 'cpoptions' is empty. + + *matchadd()* *E798* *E799* *E801* +! matchadd({group}, {pattern}[, {priority}[, {id} [, {dict}]]]) + Defines a pattern to be highlighted in the current window (a + "match"). It will be highlighted with {group}. Returns an + identification number (ID), which can be used to delete the + match using |matchdelete()|. ++ Matching is case sensitive and magic, unless case sensitivity ++ or magicness are explicitly overridden in {pattern}. The ++ 'magic', 'smartcase' and 'ignorecase' options are not used. ++ The "Conceal" value is special, it causes the match to be ++ concealed. + + The optional {priority} argument assigns a priority to the + match. A match with a high priority will have its +*************** +*** 4359,4367 **** + message will appear and the match will not be added. An ID + is specified as a positive integer (zero excluded). IDs 1, 2 + and 3 are reserved for |:match|, |:2match| and |:3match|, +! respectively. If the {id} argument is not specified, + |matchadd()| automatically chooses a free ID. + + The number of matches is not limited, as it is the case with + the |:match| commands. + +--- 4432,4449 ---- + message will appear and the match will not be added. An ID + is specified as a positive integer (zero excluded). IDs 1, 2 + and 3 are reserved for |:match|, |:2match| and |:3match|, +! respectively. If the {id} argument is not specified or -1, + |matchadd()| automatically chooses a free ID. + ++ The optional {dict} argmument allows for further custom ++ values. Currently this is used to specify a match specifc ++ conceal character that will be shown for |hl-Conceal| ++ highlighted matches. The dict can have the following members: ++ ++ conceal Special character to show instead of the ++ match (only for |hl-Conceal| highlighed ++ matches, see |:syn-cchar|) ++ + The number of matches is not limited, as it is the case with + the |:match| commands. + +*************** +*** 4375,4381 **** + available from |getmatches()|. All matches can be deleted in + one operation by |clearmatches()|. + +! matchaddpos({group}, {pos}[, {priority}[, {id}]]) *matchaddpos()* + Same as |matchadd()|, but requires a list of positions {pos} + instead of a pattern. This command is faster than |matchadd()| + because it does not require to handle regular expressions and +--- 4457,4463 ---- + available from |getmatches()|. All matches can be deleted in + one operation by |clearmatches()|. + +! matchaddpos({group}, {pos}[, {priority}[, {id}[, {dict}]]]) *matchaddpos()* + Same as |matchadd()|, but requires a list of positions {pos} + instead of a pattern. This command is faster than |matchadd()| + because it does not require to handle regular expressions and +*** ../vim-7.4.791/src/eval.c 2015-07-17 17:38:00.563399661 +0200 +--- src/eval.c 2015-07-21 15:36:00.616543334 +0200 +*************** +*** 8224,8231 **** + {"maparg", 1, 4, f_maparg}, + {"mapcheck", 1, 3, f_mapcheck}, + {"match", 2, 4, f_match}, +! {"matchadd", 2, 4, f_matchadd}, +! {"matchaddpos", 2, 4, f_matchaddpos}, + {"matcharg", 1, 1, f_matcharg}, + {"matchdelete", 1, 1, f_matchdelete}, + {"matchend", 2, 4, f_matchend}, +--- 8224,8231 ---- + {"maparg", 1, 4, f_maparg}, + {"mapcheck", 1, 3, f_mapcheck}, + {"match", 2, 4, f_match}, +! {"matchadd", 2, 5, f_matchadd}, +! {"matchaddpos", 2, 5, f_matchaddpos}, + {"matcharg", 1, 1, f_matcharg}, + {"matchdelete", 1, 1, f_matchdelete}, + {"matchend", 2, 4, f_matchend}, +*************** +*** 12031,12036 **** +--- 12031,12045 ---- + dict_add_nr_str(dict, "group", 0L, syn_id2name(cur->hlg_id)); + dict_add_nr_str(dict, "priority", (long)cur->priority, NULL); + dict_add_nr_str(dict, "id", (long)cur->id, NULL); ++ # ifdef FEAT_CONCEAL ++ if (cur->conceal_char) ++ { ++ char_u buf[MB_MAXBYTES + 1]; ++ ++ buf[(*mb_char2bytes)((int)cur->conceal_char, buf)] = NUL; ++ dict_add_nr_str(dict, "conceal", 0L, (char_u *)&buf); ++ } ++ # endif + list_append_dict(rettv->vval.v_list, dict); + cur = cur->next; + } +*************** +*** 14589,14594 **** +--- 14598,14604 ---- + int prio = 10; /* default priority */ + int id = -1; + int error = FALSE; ++ char_u *conceal_char = NULL; + + rettv->vval.v_number = -1; + +*************** +*** 14598,14604 **** +--- 14608,14628 ---- + { + prio = get_tv_number_chk(&argvars[2], &error); + if (argvars[3].v_type != VAR_UNKNOWN) ++ { + id = get_tv_number_chk(&argvars[3], &error); ++ if (argvars[4].v_type != VAR_UNKNOWN) ++ { ++ if (argvars[4].v_type != VAR_DICT) ++ { ++ EMSG(_(e_dictreq)); ++ return; ++ } ++ if (dict_find(argvars[4].vval.v_dict, ++ (char_u *)"conceal", -1) != NULL) ++ conceal_char = get_dict_string(argvars[4].vval.v_dict, ++ (char_u *)"conceal", FALSE); ++ } ++ } + } + if (error == TRUE) + return; +*************** +*** 14608,14614 **** + return; + } + +! rettv->vval.v_number = match_add(curwin, grp, pat, prio, id, NULL); + #endif + } + +--- 14632,14639 ---- + return; + } + +! rettv->vval.v_number = match_add(curwin, grp, pat, prio, id, NULL, +! conceal_char); + #endif + } + +*************** +*** 14627,14632 **** +--- 14652,14658 ---- + int id = -1; + int error = FALSE; + list_T *l; ++ char_u *conceal_char = NULL; + + rettv->vval.v_number = -1; + +*************** +*** 14647,14653 **** +--- 14673,14693 ---- + { + prio = get_tv_number_chk(&argvars[2], &error); + if (argvars[3].v_type != VAR_UNKNOWN) ++ { + id = get_tv_number_chk(&argvars[3], &error); ++ if (argvars[4].v_type != VAR_UNKNOWN) ++ { ++ if (argvars[4].v_type != VAR_DICT) ++ { ++ EMSG(_(e_dictreq)); ++ return; ++ } ++ if (dict_find(argvars[4].vval.v_dict, ++ (char_u *)"conceal", -1) != NULL) ++ conceal_char = get_dict_string(argvars[4].vval.v_dict, ++ (char_u *)"conceal", FALSE); ++ } ++ } + } + if (error == TRUE) + return; +*************** +*** 14659,14665 **** + return; + } + +! rettv->vval.v_number = match_add(curwin, group, NULL, prio, id, l); + #endif + } + +--- 14699,14706 ---- + return; + } + +! rettv->vval.v_number = match_add(curwin, group, NULL, prio, id, l, +! conceal_char); + #endif + } + +*************** +*** 17165,17173 **** + int i = 0; + char_u buf[5]; + dictitem_T *di; + + d = li->li_tv.vval.v_dict; +- + if (dict_find(d, (char_u *)"pattern", -1) == NULL) + { + if (s == NULL) +--- 17206,17217 ---- + int i = 0; + char_u buf[5]; + dictitem_T *di; ++ char_u *group; ++ int priority; ++ int id; ++ char_u *conceal; + + d = li->li_tv.vval.v_dict; + if (dict_find(d, (char_u *)"pattern", -1) == NULL) + { + if (s == NULL) +*************** +*** 17193,17210 **** + break; + } + } + if (i == 0) + { +! match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE), + get_dict_string(d, (char_u *)"pattern", FALSE), +! (int)get_dict_number(d, (char_u *)"priority"), +! (int)get_dict_number(d, (char_u *)"id"), NULL); + } + else + { +! match_add(curwin, get_dict_string(d, (char_u *)"group", FALSE), +! NULL, (int)get_dict_number(d, (char_u *)"priority"), +! (int)get_dict_number(d, (char_u *)"id"), s); + list_unref(s); + s = NULL; + } +--- 17237,17258 ---- + break; + } + } ++ ++ group = get_dict_string(d, (char_u *)"group", FALSE); ++ priority = (int)get_dict_number(d, (char_u *)"priority"); ++ id = (int)get_dict_number(d, (char_u *)"id"); ++ conceal = dict_find(d, (char_u *)"conceal", -1) != NULL ++ ? get_dict_string(d, (char_u *)"conceal", FALSE) ++ : NULL; + if (i == 0) + { +! match_add(curwin, group, + get_dict_string(d, (char_u *)"pattern", FALSE), +! priority, id, NULL, conceal); + } + else + { +! match_add(curwin, group, NULL, priority, id, s, conceal); + list_unref(s); + s = NULL; + } +*** ../vim-7.4.791/src/ex_docmd.c 2015-06-19 12:43:02.380196210 +0200 +--- src/ex_docmd.c 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 12079,12085 **** + + c = *end; + *end = NUL; +! match_add(curwin, g, p + 1, 10, id, NULL); + vim_free(g); + *end = c; + } +--- 12079,12085 ---- + + c = *end; + *end = NUL; +! match_add(curwin, g, p + 1, 10, id, NULL, NULL); + vim_free(g); + *end = c; + } +*** ../vim-7.4.791/src/proto/window.pro 2015-01-14 15:47:33.076036876 +0100 +--- src/proto/window.pro 2015-07-21 15:31:37.891052904 +0200 +*************** +*** 76,82 **** + void switch_buffer __ARGS((buf_T **save_curbuf, buf_T *buf)); + void restore_buffer __ARGS((buf_T *save_curbuf)); + int win_hasvertsplit __ARGS((void)); +! int match_add __ARGS((win_T *wp, char_u *grp, char_u *pat, int prio, int id, list_T *pos_list)); + int match_delete __ARGS((win_T *wp, int id, int perr)); + void clear_matches __ARGS((win_T *wp)); + matchitem_T *get_match __ARGS((win_T *wp, int id)); +--- 76,82 ---- + void switch_buffer __ARGS((buf_T **save_curbuf, buf_T *buf)); + void restore_buffer __ARGS((buf_T *save_curbuf)); + int win_hasvertsplit __ARGS((void)); +! int match_add __ARGS((win_T *wp, char_u *grp, char_u *pat, int prio, int id, list_T *pos_list, char_u *conceal_char)); + int match_delete __ARGS((win_T *wp, int id, int perr)); + void clear_matches __ARGS((win_T *wp)); + matchitem_T *get_match __ARGS((win_T *wp, int id)); +*** ../vim-7.4.791/src/screen.c 2015-07-17 13:22:43.161523633 +0200 +--- src/screen.c 2015-07-21 15:36:35.956205830 +0200 +*************** +*** 3047,3052 **** +--- 3047,3054 ---- + wrapping */ + int vcol_off = 0; /* offset for concealed characters */ + int did_wcol = FALSE; ++ int match_conc = FALSE; /* cchar for match functions */ ++ int has_match_conc = FALSE; /* match wants to conceal */ + int old_boguscols = 0; + # define VCOL_HLC (vcol - vcol_off) + # define FIX_FOR_BOGUSCOLS \ +*************** +*** 3580,3585 **** +--- 3582,3590 ---- + */ + for (;;) + { ++ #ifdef FEAT_CONCEAL ++ has_match_conc = FALSE; ++ #endif + /* Skip this quickly when working on the text. */ + if (draw_state != WL_LINE) + { +*************** +*** 3923,3935 **** + shl->endcol = tmp_col; + #endif + shl->attr_cur = shl->attr; + } + else if (v == (long)shl->endcol) + { + shl->attr_cur = 0; + next_search_hl(wp, shl, lnum, (colnr_T)v, cur); + pos_inprogress = cur == NULL || cur->pos.cur == 0 +! ? FALSE : TRUE; + + /* Need to get the line again, a multi-line regexp + * may have made it invalid. */ +--- 3928,3953 ---- + shl->endcol = tmp_col; + #endif + shl->attr_cur = shl->attr; ++ #ifdef FEAT_CONCEAL ++ if (cur != NULL && syn_name2id((char_u *)"Conceal") ++ == cur->hlg_id) ++ { ++ has_match_conc = TRUE; ++ match_conc = cur->conceal_char; ++ } ++ else ++ has_match_conc = match_conc = FALSE; ++ #endif + } + else if (v == (long)shl->endcol) + { + shl->attr_cur = 0; ++ #ifdef FEAT_CONCEAL ++ prev_syntax_id = 0; ++ #endif + next_search_hl(wp, shl, lnum, (colnr_T)v, cur); + pos_inprogress = cur == NULL || cur->pos.cur == 0 +! ? FALSE : TRUE; + + /* Need to get the line again, a multi-line regexp + * may have made it invalid. */ +*************** +*** 4873,4891 **** + #ifdef FEAT_CONCEAL + if ( wp->w_p_cole > 0 + && (wp != curwin || lnum != wp->w_cursor.lnum || +! conceal_cursor_line(wp)) +! && (syntax_flags & HL_CONCEAL) != 0 + && !(lnum_in_visual_area + && vim_strchr(wp->w_p_cocu, 'v') == NULL)) + { + char_attr = conceal_attr; + if (prev_syntax_id != syntax_seqnr +! && (syn_get_sub_char() != NUL || wp->w_p_cole == 1) + && wp->w_p_cole != 3) + { + /* First time at this concealed item: display one + * character. */ +! if (syn_get_sub_char() != NUL) + c = syn_get_sub_char(); + else if (lcs_conceal != NUL) + c = lcs_conceal; +--- 4891,4912 ---- + #ifdef FEAT_CONCEAL + if ( wp->w_p_cole > 0 + && (wp != curwin || lnum != wp->w_cursor.lnum || +! conceal_cursor_line(wp) ) +! && ( (syntax_flags & HL_CONCEAL) != 0 || has_match_conc) + && !(lnum_in_visual_area + && vim_strchr(wp->w_p_cocu, 'v') == NULL)) + { + char_attr = conceal_attr; + if (prev_syntax_id != syntax_seqnr +! && (syn_get_sub_char() != NUL || match_conc +! || wp->w_p_cole == 1) + && wp->w_p_cole != 3) + { + /* First time at this concealed item: display one + * character. */ +! if (match_conc) +! c = match_conc; +! else if (syn_get_sub_char() != NUL) + c = syn_get_sub_char(); + else if (lcs_conceal != NUL) + c = lcs_conceal; +*** ../vim-7.4.791/src/structs.h 2015-07-17 14:16:49.854596682 +0200 +--- src/structs.h 2015-07-21 15:34:41.237301482 +0200 +*************** +*** 2021,2026 **** +--- 2021,2029 ---- + regmmatch_T match; /* regexp program for pattern */ + posmatch_T pos; /* position matches */ + match_T hl; /* struct for doing the actual highlighting */ ++ #ifdef FEAT_CONCEAL ++ int conceal_char; /* cchar for Conceal highlighting */ ++ #endif + }; + + /* +*** ../vim-7.4.791/src/testdir/Make_amiga.mak 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/Make_amiga.mak 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 54,59 **** +--- 54,60 ---- + test_listlbr_utf8.out \ + test_mapping.out \ + test_marks.out \ ++ test_match_conceal.out \ + test_nested_function.out \ + test_options.out \ + test_perl.out \ +*************** +*** 205,210 **** +--- 206,212 ---- + test_listlbr_utf8.out: test_listlbr_utf8.in + test_mapping.out: test_mapping.in + test_marks.out: test_marks.in ++ test_match_conceal.out: test_match_conceal.in + test_nested_function.out: test_nested_function.in + test_options.out: test_options.in + test_perl.out: test_perl.in +*** ../vim-7.4.791/src/testdir/Make_dos.mak 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/Make_dos.mak 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 53,58 **** +--- 53,59 ---- + test_listlbr_utf8.out \ + test_mapping.out \ + test_marks.out \ ++ test_match_conceal.out \ + test_nested_function.out \ + test_options.out \ + test_perl.out \ +*** ../vim-7.4.791/src/testdir/Make_ming.mak 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/Make_ming.mak 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 75,80 **** +--- 75,81 ---- + test_listlbr_utf8.out \ + test_mapping.out \ + test_marks.out \ ++ test_match_conceal.out \ + test_nested_function.out \ + test_options.out \ + test_perl.out \ +*** ../vim-7.4.791/src/testdir/Make_os2.mak 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/Make_os2.mak 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 55,60 **** +--- 55,61 ---- + test_listlbr_utf8.out \ + test_mapping.out \ + test_marks.out \ ++ test_match_conceal.out \ + test_nested_function.out \ + test_options.out \ + test_perl.out \ +*** ../vim-7.4.791/src/testdir/Make_vms.mms 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/Make_vms.mms 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 114,119 **** +--- 114,120 ---- + test_listlbr_utf8.out \ + test_mapping.out \ + test_marks.out \ ++ test_match_conceal.out \ + test_nested_function.out \ + test_options.out \ + test_perl.out \ +*** ../vim-7.4.791/src/testdir/Makefile 2015-07-17 17:38:00.567399623 +0200 +--- src/testdir/Makefile 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 51,56 **** +--- 51,57 ---- + test_listlbr_utf8.out \ + test_mapping.out \ + test_marks.out \ ++ test_match_conceal.out \ + test_nested_function.out \ + test_options.out \ + test_perl.out \ +*** ../vim-7.4.791/src/testdir/test_match_conceal.in 2015-07-21 15:45:35.379038332 +0200 +--- src/testdir/test_match_conceal.in 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 0 **** +--- 1,159 ---- ++ Test for matchadd() and conceal feature ++ ++ STARTTEST ++ :so small.vim ++ :if !has("conceal") | e! test.ok | w! test.out | qa! | endif ++ :set term=ansi ++ :so mbyte.vim ++ :if &enc !=? 'utf-8'|:e! test.ok|:w! test.out|qa!|endif ++ :10new|:vsp|:vert resize 20 ++ :put =\"\#\ This\ is\ a\ Test\" ++ :norm! mazt ++ :fu! ScreenChar(width, lines) ++ : let c='' ++ : for j in range(1,a:lines) ++ : for i in range(1,a:width) ++ : let c.=nr2char(screenchar(j, i)) ++ : endfor ++ : let c.="\n" ++ : endfor ++ : return c ++ :endfu ++ :fu! ScreenAttr(line, pos, eval) ++ : let g:attr=[] ++ : for col in a:pos ++ : call add(g:attr, screenattr(a:line,col)) ++ : endfor ++ : " In case all values are zero, probably the terminal ++ : " isn't set correctly, so catch that case ++ : let null = (eval(join(g:attr, '+')) == 0) ++ : let str=substitute(a:eval, '\d\+', 'g:attr[&]', 'g') ++ : if null || eval(str) ++ : :let g:attr_test="OK: ". str ++ : else ++ : :let g:attr_test="FAILED: ".str ++ : :let g:attr_test.="\n". join(g:attr, ' ') ++ : :let g:attr_test.="\n TERM: ". &term ++ : endif ++ :endfu ++ :fu! DoRecordScreen() ++ : wincmd l ++ : $put =printf(\"\n%s\", g:test) ++ : $put =g:line ++ : $put =g:attr_test ++ : wincmd p ++ :endfu ++ :let g:test ="Test 1: simple addmatch()" ++ :call matchadd('Conceal', '\%2l ') ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ : ++ :let g:test ="Test 2: simple addmatch() and conceal (should be: #XThisXisXaXTest)" ++ :norm! 'azt ++ :call clearmatches() ++ :syntax on ++ :set concealcursor=n conceallevel=1 ++ :call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'}) ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ : ++ :let g:test ="Test 3: addmatch() and conceallevel=3 (should be: #ThisisaTest)" ++ :norm! 'azt ++ :set conceallevel=3 ++ :call clearmatches() ++ :call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'}) ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0==1 && 1==2 && 1==3 && 1==4 && 0!=5") ++ :call DoRecordScreen() ++ : ++ :let g:test ="Test 4: more match() (should be: #Thisisa Test)" ++ :norm! 'azt ++ :call matchadd('ErrorMsg', '\%2l Test', 20, -1, {'conceal': 'X'}) ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0==1 && 1==2 && 0!=3 && 3==4 && 0!=5 && 3!=5") ++ :call DoRecordScreen() ++ : ++ :let g:test ="Test 5/1: default conceal char (should be: # This is a Test)" ++ :norm! 'azt ++ :call clearmatches() ++ :set conceallevel=1 ++ :call matchadd('Conceal', '\%2l ', 10, -1, {}) ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ :let g:test ="Test 5/2: default conceal char (should be: #+This+is+a+Test)" ++ :norm! 'azt ++ :set listchars=conceal:+ ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ :set listchars&vim ++ : ++ :let g:test ="Test 6/1: syn and match conceal (should be: #ZThisZisZaZTest)" ++ :norm! 'azt ++ :call clearmatches() ++ :set conceallevel=1 ++ :call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'}) ++ :syn match MyConceal /\%2l / conceal containedin=ALL cchar=* ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ :let g:test ="Test 6/2: syn and match conceal (should be: #*This*is*a*Test)" ++ :norm! 'azt ++ :call clearmatches() ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ : ++ :let g:test ="Test 7/1: clear matches" ++ :norm! 'azt ++ :syn on ++ :call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'}) ++ :let a=getmatches() ++ :call clearmatches() ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0==1 && 0==2 && 0==3 && 0==4 && 0==5") ++ :call DoRecordScreen() ++ :$put =a ++ :call setmatches(a) ++ :norm! 'azt ++ :let g:test ="Test 7/2: reset match using setmatches()" ++ :norm! 'azt ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ : ++ :let g:test ="Test 8: using matchaddpos() (should be #Pis a Test" ++ :norm! 'azt ++ :call clearmatches() ++ :call matchaddpos('Conceal', [[2,2,6]], 10, -1, {'conceal': 'P'}) ++ :let a=getmatches() ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1!=2 && 0==2 && 0==3 && 0!=4 && 0!=5 && 4==5") ++ :call DoRecordScreen() ++ :$put =a ++ : ++ :let g:test ="Test 9: match using multibyte conceal char (should be: #Ë‘ThisË‘isË‘aË‘Test)" ++ :norm! 'azt ++ :call clearmatches() ++ :call matchadd('Conceal', '\%2l ', 20, -1, {'conceal': "\u02d1"}) ++ :redraw! ++ :let line=ScreenChar(winwidth(0),1) ++ :call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") ++ :call DoRecordScreen() ++ : ++ :"sleep 10 ++ :%w! test.out ++ :qa! ++ ENDTEST ++ dummy text +*** ../vim-7.4.791/src/testdir/test_match_conceal.ok 2015-07-21 15:45:35.391038216 +0200 +--- src/testdir/test_match_conceal.ok 2015-07-21 15:13:48.185280280 +0200 +*************** +*** 0 **** +--- 1,52 ---- ++ ++ # This is a Test ++ ++ Test 1: simple addmatch() ++ # This is a Test ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 2: simple addmatch() and conceal (should be: #XThisXisXaXTest) ++ #XThisXisXaXTest ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 3: addmatch() and conceallevel=3 (should be: #ThisisaTest) ++ #ThisisaTest ++ OK: g:attr[0]==g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]!=g:attr[5] ++ ++ Test 4: more match() (should be: #Thisisa Test) ++ #Thisisa Test ++ OK: g:attr[0]==g:attr[1] && g:attr[1]==g:attr[2] && g:attr[0]!=g:attr[3] && g:attr[3]==g:attr[4] && g:attr[0]!=g:attr[5] && g:attr[3]!=g:attr[5] ++ ++ Test 5/1: default conceal char (should be: # This is a Test) ++ # This is a Test ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 5/2: default conceal char (should be: #+This+is+a+Test) ++ #+This+is+a+Test ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 6/1: syn and match conceal (should be: #ZThisZisZaZTest) ++ #ZThisZisZaZTest ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 6/2: syn and match conceal (should be: #*This*is*a*Test) ++ #*This*is*a*Test ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 7/1: clear matches ++ # This is a Test ++ OK: g:attr[0]==g:attr[1] && g:attr[0]==g:attr[2] && g:attr[0]==g:attr[3] && g:attr[0]==g:attr[4] && g:attr[0]==g:attr[5] ++ {'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10, 'id': 10, 'conceal': 'Z'} ++ ++ Test 7/2: reset match using setmatches() ++ #ZThisZisZaZTest ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] ++ ++ Test 8: using matchaddpos() (should be #Pis a Test ++ #Pis a Test ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]!=g:attr[2] && g:attr[0]==g:attr[2] && g:attr[0]==g:attr[3] && g:attr[0]!=g:attr[4] && g:attr[0]!=g:attr[5] && g:attr[4]==g:attr[5] ++ {'group': 'Conceal', 'id': 11, 'priority': 10, 'pos1': [2, 2, 6], 'conceal': 'P'} ++ ++ Test 9: match using multibyte conceal char (should be: #Ë‘ThisË‘isË‘aË‘Test) ++ #Ë‘ThisË‘isË‘aË‘Test ++ OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] +*** ../vim-7.4.791/src/window.c 2015-04-21 18:08:21.834719140 +0200 +--- src/window.c 2015-07-21 15:35:45.852684337 +0200 +*************** +*** 6943,6955 **** + * Return ID of added match, -1 on failure. + */ + int +! match_add(wp, grp, pat, prio, id, pos_list) + win_T *wp; + char_u *grp; + char_u *pat; + int prio; + int id; + list_T *pos_list; + { + matchitem_T *cur; + matchitem_T *prev; +--- 6943,6956 ---- + * Return ID of added match, -1 on failure. + */ + int +! match_add(wp, grp, pat, prio, id, pos_list, conceal_char) + win_T *wp; + char_u *grp; + char_u *pat; + int prio; + int id; + list_T *pos_list; ++ char_u *conceal_char UNUSED; /* pointer to conceal replacement char */ + { + matchitem_T *cur; + matchitem_T *prev; +*************** +*** 7009,7014 **** +--- 7010,7020 ---- + m->match.regprog = regprog; + m->match.rmm_ic = FALSE; + m->match.rmm_maxcol = 0; ++ #ifdef FEAT_CONCEAL ++ m->conceal_char = 0; ++ if (conceal_char != NULL) ++ m->conceal_char = (*mb_ptr2char)(conceal_char); ++ #endif + + /* Set up position matches */ + if (pos_list != NULL) +*** ../vim-7.4.791/src/version.c 2015-07-21 15:03:00.695467174 +0200 +--- src/version.c 2015-07-21 15:14:54.272647935 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 792, + /**/ + +-- +"Marriage is a wonderful institution... +but who wants to live in an institution?" + - Groucho Marx + + /// 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 /// From b5adee8eda7196017d77e3ff0e73c7544485c2ea Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:40 +0200 Subject: [PATCH 0282/1407] - patchlevel 793 --- 7.4.793 | 949 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 949 insertions(+) create mode 100644 7.4.793 diff --git a/7.4.793 b/7.4.793 new file mode 100644 index 00000000..0da1c56b --- /dev/null +++ b/7.4.793 @@ -0,0 +1,949 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.793 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.793 +Problem: Can't specify when not to ring the bell. +Solution: Add the 'belloff' option. (Christian Brabandt) +Files: runtime/doc/options.txt, src/edit.c, src/ex_getln.c, + src/hangulin.c, src/if_lua.c, src/if_mzsch.c, src/if_tcl.c, + src/message.c, src/misc1.c, src/normal.c, src/option.c, + src/option.h, src/proto/misc1.pro, src/search.c, src/spell.c + + +*** ../vim-7.4.792/runtime/doc/options.txt 2015-07-17 14:16:49.854596682 +0200 +--- runtime/doc/options.txt 2015-07-21 17:17:27.562113662 +0200 +*************** +*** 1126,1131 **** +--- 1124,1170 ---- + expression evaluates to a |List| this is equal to using each List item + as a string and putting "\n" in between them. + ++ *'belloff'* *'bo'* ++ 'belloff' 'bo' string (default "") ++ global ++ {not in Vi} ++ Specifies for which events the bell will not be rung. It is a comma ++ separated list of items. For each item that is present, the bell ++ will be silenced. This is most useful to specify specific events in ++ insert mode to be silenced. ++ ++ item meaning when present ~ ++ all All events. ++ backspace When hitting or and deleting results in an ++ error. ++ cursor Fail to move around using the cursor keys or ++ / in |Insert-mode|. ++ complete Error occurred when using |i_CTRL-X_CTRL-K| or ++ |i_CTRL-X_CTRL-T|. ++ copy Cannot copy char from insert mode using |i_CTRL-Y| or ++ |i_CTRL-E|. ++ ctrlg Unknown Char after in Insert mode. ++ error Other Error occurred (e.g. try to join last line) ++ (mostly used in |Normal-mode| or |Cmdline-mode|). ++ esc hitting in |Normal-mode|. ++ ex In |Visual-mode|, hitting |Q| results in an error. ++ hangul Error occurred when using hangul input. ++ insertmode Pressing in 'insertmode'. ++ lang Calling the beep module for Lua/Mzscheme/TCL. ++ mess No output available for |g<|. ++ showmatch Error occurred for 'showmatch' function. ++ operator Empty region error |cpo-E|. ++ register Unknown register after in |Insert-mode|. ++ shell Bell from shell output |:!|. ++ spell Error happened on spell suggest. ++ wildmode More matches in |cmdline-completion| available ++ (depends on the 'wildmode' setting). ++ ++ This is most useful, to fine tune when in insert mode the bell should ++ be rung. For normal mode and ex commands, the bell is often rung to ++ indicate that an error occurred. It can be silenced by adding the ++ "error" keyword. ++ + *'binary'* *'bin'* *'nobinary'* *'nobin'* + 'binary' 'bin' boolean (default off) + local to buffer +*************** +*** 2720,2726 **** + makes a difference for error messages, the bell will be used always + for a lot of errors without a message (e.g., hitting in Normal + mode). See 'visualbell' on how to make the bell behave like a beep, +! screen flash or do nothing. + + *'errorfile'* *'ef'* + 'errorfile' 'ef' string (Amiga default: "AztecC.Err", +--- 2762,2769 ---- + makes a difference for error messages, the bell will be used always + for a lot of errors without a message (e.g., hitting in Normal + mode). See 'visualbell' on how to make the bell behave like a beep, +! screen flash or do nothing. See 'belloff' to finetune when to ring the +! bell. + + *'errorfile'* *'ef'* + 'errorfile' 'ef' string (Amiga default: "AztecC.Err", +*** ../vim-7.4.792/src/edit.c 2015-07-17 13:42:17.778373909 +0200 +--- src/edit.c 2015-07-21 17:17:27.566113624 +0200 +*************** +*** 982,988 **** + got_int = FALSE; + } + else +! vim_beep(); + break; + } + doESCkey: +--- 982,988 ---- + got_int = FALSE; + } + else +! vim_beep(BO_IM); + break; + } + doESCkey: +*************** +*** 2210,2216 **** + hl_attr(HLF_E)); + if (emsg_silent == 0) + { +! vim_beep(); + setcursor(); + out_flush(); + ui_delay(2000L, FALSE); +--- 2210,2216 ---- + hl_attr(HLF_E)); + if (emsg_silent == 0) + { +! vim_beep(BO_COMPL); + setcursor(); + out_flush(); + ui_delay(2000L, FALSE); +*************** +*** 8263,8269 **** + } + if (regname == NUL || !valid_yank_reg(regname, FALSE)) + { +! vim_beep(); + need_redraw = TRUE; /* remove the '"' */ + } + else +--- 8263,8269 ---- + } + if (regname == NUL || !valid_yank_reg(regname, FALSE)) + { +! vim_beep(BO_REG); + need_redraw = TRUE; /* remove the '"' */ + } + else +*************** +*** 8281,8287 **** + } + else if (insert_reg(regname, literally) == FAIL) + { +! vim_beep(); + need_redraw = TRUE; /* remove the '"' */ + } + else if (stop_insert_mode) +--- 8281,8287 ---- + } + else if (insert_reg(regname, literally) == FAIL) + { +! vim_beep(BO_REG); + need_redraw = TRUE; /* remove the '"' */ + } + else if (stop_insert_mode) +*************** +*** 8355,8361 **** + break; + + /* Unknown CTRL-G command, reserved for future expansion. */ +! default: vim_beep(); + } + } + +--- 8355,8361 ---- + break; + + /* Unknown CTRL-G command, reserved for future expansion. */ +! default: vim_beep(BO_CTRLG); + } + } + +*************** +*** 8781,8792 **** + temp = curwin->w_cursor.col; + if (!can_bs(BS_EOL) /* only if "eol" included */ + || do_join(2, FALSE, TRUE, FALSE, FALSE) == FAIL) +! vim_beep(); + else + curwin->w_cursor.col = temp; + } +! else if (del_char(FALSE) == FAIL) /* delete char under cursor */ +! vim_beep(); + did_ai = FALSE; + #ifdef FEAT_SMARTINDENT + did_si = FALSE; +--- 8781,8792 ---- + temp = curwin->w_cursor.col; + if (!can_bs(BS_EOL) /* only if "eol" included */ + || do_join(2, FALSE, TRUE, FALSE, FALSE) == FAIL) +! vim_beep(BO_BS); + else + curwin->w_cursor.col = temp; + } +! else if (del_char(FALSE) == FAIL) /* delete char under cursor */ +! vim_beep(BO_BS); + did_ai = FALSE; + #ifdef FEAT_SMARTINDENT + did_si = FALSE; +*************** +*** 8861,8867 **** + && curwin->w_cursor.col <= ai_col) + || (!can_bs(BS_EOL) && curwin->w_cursor.col == 0)))) + { +! vim_beep(); + return FALSE; + } + +--- 8861,8867 ---- + && curwin->w_cursor.col <= ai_col) + || (!can_bs(BS_EOL) && curwin->w_cursor.col == 0)))) + { +! vim_beep(BO_BS); + return FALSE; + } + +*************** +*** 9473,9479 **** + curwin->w_set_curswant = TRUE; /* so we stay at the end */ + } + else +! vim_beep(); + } + + static void +--- 9473,9479 ---- + curwin->w_set_curswant = TRUE; /* so we stay at the end */ + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9533,9539 **** + curwin->w_set_curswant = TRUE; + } + else +! vim_beep(); + } + + static void +--- 9533,9539 ---- + curwin->w_set_curswant = TRUE; + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9583,9589 **** + curwin->w_cursor.col = 0; + } + else +! vim_beep(); + } + + static void +--- 9583,9589 ---- + curwin->w_cursor.col = 0; + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9602,9608 **** + curwin->w_set_curswant = TRUE; + } + else +! vim_beep(); + } + + static void +--- 9602,9608 ---- + curwin->w_set_curswant = TRUE; + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9633,9639 **** + #endif + } + else +! vim_beep(); + } + + static void +--- 9633,9639 ---- + #endif + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9665,9671 **** + #endif + } + else +! vim_beep(); + } + + static void +--- 9665,9671 ---- + #endif + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9696,9702 **** + #endif + } + else +! vim_beep(); + } + + static void +--- 9696,9702 ---- + #endif + } + else +! vim_beep(BO_CRSR); + } + + static void +*************** +*** 9728,9734 **** + #endif + } + else +! vim_beep(); + } + + #ifdef FEAT_DND +--- 9728,9734 ---- + #endif + } + else +! vim_beep(BO_CRSR); + } + + #ifdef FEAT_DND +*************** +*** 10146,10152 **** + + if (lnum < 1 || lnum > curbuf->b_ml.ml_line_count) + { +! vim_beep(); + return NUL; + } + +--- 10146,10152 ---- + + if (lnum < 1 || lnum > curbuf->b_ml.ml_line_count) + { +! vim_beep(BO_COPY); + return NUL; + } + +*************** +*** 10169,10175 **** + c = *ptr; + #endif + if (c == NUL) +! vim_beep(); + return c; + } + +--- 10169,10175 ---- + c = *ptr; + #endif + if (c == NUL) +! vim_beep(BO_COPY); + return c; + } + +*** ../vim-7.4.792/src/ex_getln.c 2015-07-17 13:22:43.153523709 +0200 +--- src/ex_getln.c 2015-07-21 17:17:27.566113624 +0200 +*************** +*** 900,906 **** + firstc != '@'); + } + else +! vim_beep(); + } + #ifdef FEAT_WILDMENU + else if (xpc.xp_numfiles == -1) +--- 900,906 ---- + firstc != '@'); + } + else +! vim_beep(BO_WILD); + } + #ifdef FEAT_WILDMENU + else if (xpc.xp_numfiles == -1) +*************** +*** 3710,3716 **** + if (i < xp->xp_numfiles) + { + if (!(options & WILD_NO_BEEP)) +! vim_beep(); + break; + } + } +--- 3710,3716 ---- + if (i < xp->xp_numfiles) + { + if (!(options & WILD_NO_BEEP)) +! vim_beep(BO_WILD); + break; + } + } +*** ../vim-7.4.792/src/hangulin.c 2010-05-15 13:04:11.000000000 +0200 +--- src/hangulin.c 2015-07-21 17:17:27.566113624 +0200 +*************** +*** 824,830 **** + } + else if (n == AUTOMATA_ERROR) + { +! vim_beep(); + return 0; + } + return len; +--- 824,830 ---- + } + else if (n == AUTOMATA_ERROR) + { +! vim_beep(BO_HANGUL); + return 0; + } + return len; +*** ../vim-7.4.792/src/if_lua.c 2015-06-27 18:36:09.110432861 +0200 +--- src/if_lua.c 2015-07-21 17:17:27.566113624 +0200 +*************** +*** 1354,1360 **** + static int + luaV_beep(lua_State *L UNUSED) + { +! vim_beep(); + return 0; + } + +--- 1354,1360 ---- + static int + luaV_beep(lua_State *L UNUSED) + { +! vim_beep(BO_LANG); + return 0; + } + +*** ../vim-7.4.792/src/if_mzsch.c 2015-07-10 16:12:43.146296071 +0200 +--- src/if_mzsch.c 2015-07-21 17:17:27.566113624 +0200 +*************** +*** 1569,1575 **** + static Scheme_Object * + mzscheme_beep(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) + { +! vim_beep(); + return scheme_void; + } + +--- 1569,1575 ---- + static Scheme_Object * + mzscheme_beep(void *data UNUSED, int argc UNUSED, Scheme_Object **argv UNUSED) + { +! vim_beep(BO_LANG); + return scheme_void; + } + +*** ../vim-7.4.792/src/if_tcl.c 2013-10-02 14:25:39.000000000 +0200 +--- src/if_tcl.c 2015-07-21 17:17:27.566113624 +0200 +*************** +*** 337,343 **** + Tcl_WrongNumArgs(interp, 1, objv, NULL); + return TCL_ERROR; + } +! vim_beep(); + return TCL_OK; + } + +--- 337,343 ---- + Tcl_WrongNumArgs(interp, 1, objv, NULL); + return TCL_ERROR; + } +! vim_beep(BO_LANG); + return TCL_OK; + } + +*** ../vim-7.4.792/src/message.c 2015-05-04 17:28:17.340445782 +0200 +--- src/message.c 2015-07-21 17:17:27.570113585 +0200 +*************** +*** 2119,2126 **** + msg_screen_putchar(' ', attr); + while (msg_col & 7); + } +! else if (*s == BELL) /* beep (from ":sh") */ +! vim_beep(); + else + { + #ifdef FEAT_MBYTE +--- 2119,2126 ---- + msg_screen_putchar(' ', attr); + while (msg_col & 7); + } +! else if (*s == BELL) /* beep (from ":sh") */ +! vim_beep(BO_SH); + else + { + #ifdef FEAT_MBYTE +*************** +*** 2363,2369 **** + * weird, typing a command without output results in one line. */ + mp = msg_sb_start(last_msgchunk); + if (mp == NULL || mp->sb_prev == NULL) +! vim_beep(); + else + { + do_more_prompt('G'); +--- 2363,2369 ---- + * weird, typing a command without output results in one line. */ + mp = msg_sb_start(last_msgchunk); + if (mp == NULL || mp->sb_prev == NULL) +! vim_beep(BO_MESS); + else + { + do_more_prompt('G'); +*** ../vim-7.4.792/src/misc1.c 2015-05-04 17:50:25.613605986 +0200 +--- src/misc1.c 2015-07-21 17:50:42.098962486 +0200 +*************** +*** 3699,3744 **** + if (emsg_silent == 0) + { + flush_buffers(FALSE); +! vim_beep(); + } + } + + /* +! * give a warning for an error + */ + void +! vim_beep() + { + if (emsg_silent == 0) + { +! if (p_vb + #ifdef FEAT_GUI +! /* While the GUI is starting up the termcap is set for the GUI +! * but the output still goes to a terminal. */ +! && !(gui.in_use && gui.starting) + #endif +! ) +! { +! out_str(T_VB); +! } +! else +! { +! #ifdef MSDOS +! /* +! * The number of beeps outputted is reduced to avoid having to wait +! * for all the beeps to finish. This is only a problem on systems +! * where the beeps don't overlap. +! */ +! if (beep_count == 0 || beep_count == 10) + { +! out_char(BELL); +! beep_count = 1; + } + else +! ++beep_count; + #else +! out_char(BELL); + #endif + } + + /* When 'verbose' is set and we are sourcing a script or executing a +--- 3699,3748 ---- + if (emsg_silent == 0) + { + flush_buffers(FALSE); +! vim_beep(BO_ERROR); + } + } + + /* +! * Give a warning for an error. + */ + void +! vim_beep(val) +! unsigned val; /* one of the BO_ values, e.g., BO_OPER */ + { + if (emsg_silent == 0) + { +! if (!((bo_flags & val) || (bo_flags & BO_ALL))) +! { +! if (p_vb + #ifdef FEAT_GUI +! /* While the GUI is starting up the termcap is set for the +! * GUI but the output still goes to a terminal. */ +! && !(gui.in_use && gui.starting) + #endif +! ) + { +! out_str(T_VB); + } + else +! { +! #ifdef MSDOS +! /* +! * The number of beeps outputted is reduced to avoid having to +! * wait for all the beeps to finish. This is only a problem on +! * systems where the beeps don't overlap. +! */ +! if (beep_count == 0 || beep_count == 10) +! { +! out_char(BELL); +! beep_count = 1; +! } +! else +! ++beep_count; + #else +! out_char(BELL); + #endif ++ } + } + + /* When 'verbose' is set and we are sourcing a script or executing a +*** ../vim-7.4.792/src/normal.c 2015-07-17 13:03:42.104357503 +0200 +--- src/normal.c 2015-07-21 17:20:01.308637453 +0200 +*************** +*** 1880,1886 **** + VIsual_reselect = FALSE; /* don't reselect now */ + if (empty_region_error) + { +! vim_beep(); + CancelRedo(); + } + else +--- 1880,1886 ---- + VIsual_reselect = FALSE; /* don't reselect now */ + if (empty_region_error) + { +! vim_beep(BO_OPER); + CancelRedo(); + } + else +*************** +*** 1897,1903 **** + { + if (!gui_yank) + { +! vim_beep(); + CancelRedo(); + } + } +--- 1897,1903 ---- + { + if (!gui_yank) + { +! vim_beep(BO_OPER); + CancelRedo(); + } + } +*************** +*** 1915,1921 **** + VIsual_reselect = FALSE; /* don't reselect now */ + if (empty_region_error) + { +! vim_beep(); + CancelRedo(); + } + else +--- 1915,1921 ---- + VIsual_reselect = FALSE; /* don't reselect now */ + if (empty_region_error) + { +! vim_beep(BO_OPER); + CancelRedo(); + } + else +*************** +*** 1989,1995 **** + case OP_ROT13: + if (empty_region_error) + { +! vim_beep(); + CancelRedo(); + } + else +--- 1989,1995 ---- + case OP_ROT13: + if (empty_region_error) + { +! vim_beep(BO_OPER); + CancelRedo(); + } + else +*************** +*** 2023,2029 **** + #ifdef FEAT_VISUALEXTRA + if (empty_region_error) + { +! vim_beep(); + CancelRedo(); + } + else +--- 2023,2029 ---- + #ifdef FEAT_VISUALEXTRA + if (empty_region_error) + { +! vim_beep(BO_OPER); + CancelRedo(); + } + else +*************** +*** 2056,2062 **** + restart_edit = restart_edit_save; + } + #else +! vim_beep(); + #endif + break; + +--- 2056,2062 ---- + restart_edit = restart_edit_save; + } + #else +! vim_beep(BO_OPER); + #endif + break; + +*************** +*** 2066,2072 **** + if (empty_region_error) + #endif + { +! vim_beep(); + CancelRedo(); + } + #ifdef FEAT_VISUALEXTRA +--- 2066,2072 ---- + if (empty_region_error) + #endif + { +! vim_beep(BO_OPER); + CancelRedo(); + } + #ifdef FEAT_VISUALEXTRA +*************** +*** 5359,5365 **** + * Ignore 'Q' in Visual mode, just give a beep. + */ + if (VIsual_active) +! vim_beep(); + else if (!checkclearop(cap->oap)) + do_exmode(FALSE); + } +--- 5359,5365 ---- + * Ignore 'Q' in Visual mode, just give a beep. + */ + if (VIsual_active) +! vim_beep(BO_EX); + else if (!checkclearop(cap->oap)) + do_exmode(FALSE); + } +*************** +*** 9055,9061 **** + redraw_curbuf_later(INVERTED); + } + else if (no_reason) +! vim_beep(); + clearop(cap->oap); + + /* A CTRL-C is often used at the start of a menu. When 'insertmode' is +--- 9055,9061 ---- + redraw_curbuf_later(INVERTED); + } + else if (no_reason) +! vim_beep(BO_ESC); + clearop(cap->oap); + + /* A CTRL-C is often used at the start of a menu. When 'insertmode' is +*** ../vim-7.4.792/src/option.c 2015-07-19 14:42:16.569130206 +0200 +--- src/option.c 2015-07-21 17:17:27.574113547 +0200 +*************** +*** 632,637 **** +--- 632,640 ---- + {"beautify", "bf", P_BOOL|P_VI_DEF, + (char_u *)NULL, PV_NONE, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, ++ {"belloff", "bo", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, ++ (char_u *)&p_bo, PV_NONE, ++ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, + {"binary", "bin", P_BOOL|P_VI_DEF|P_RSTAT, + (char_u *)&p_bin, PV_BIN, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +*************** +*** 5323,5328 **** +--- 5326,5332 ---- + (void)opt_strings_flags(p_cmp, p_cmp_values, &cmp_flags, TRUE); + #endif + (void)opt_strings_flags(p_bkc, p_bkc_values, &bkc_flags, TRUE); ++ (void)opt_strings_flags(p_bo, p_bo_values, &bo_flags, TRUE); + #ifdef FEAT_SESSION + (void)opt_strings_flags(p_ssop, p_ssop_values, &ssop_flags, TRUE); + (void)opt_strings_flags(p_vop, p_ssop_values, &vop_flags, TRUE); +*************** +*** 6997,7002 **** +--- 7001,7011 ---- + else if (check_opt_strings(p_bs, p_bs_values, TRUE) != OK) + errmsg = e_invarg; + } ++ else if (varp == &p_bo) ++ { ++ if (opt_strings_flags(p_bo, p_bo_values, &bo_flags, TRUE) != OK) ++ errmsg = e_invarg; ++ } + + #ifdef FEAT_MBYTE + /* 'casemap' */ +*** ../vim-7.4.792/src/option.h 2015-07-17 14:16:49.850596721 +0200 +--- src/option.h 2015-07-21 17:45:14.614105646 +0200 +*************** +*** 338,343 **** +--- 338,374 ---- + # define BKC_BREAKHARDLINK 0x010 + EXTERN char_u *p_bdir; /* 'backupdir' */ + EXTERN char_u *p_bex; /* 'backupext' */ ++ EXTERN char_u *p_bo; /* 'belloff' */ ++ EXTERN unsigned bo_flags; ++ # ifdef IN_OPTION_C ++ static char *(p_bo_values[]) = {"all", "backspace", "cursor", "complete", ++ "copy", "ctrlg", "error", "esc", "ex", ++ "hangul", "insertmode", "lang", "mess", ++ "showmatch", "operator", "register", "shell", ++ "spell", "wildmode", NULL}; ++ # endif ++ ++ /* values for the 'beepon' option */ ++ #define BO_ALL 0x0001 ++ #define BO_BS 0x0002 ++ #define BO_CRSR 0x0004 ++ #define BO_COMPL 0x0008 ++ #define BO_COPY 0x0010 ++ #define BO_CTRLG 0x0020 ++ #define BO_ERROR 0x0040 ++ #define BO_ESC 0x0080 ++ #define BO_EX 0x0100 ++ #define BO_HANGUL 0x0200 ++ #define BO_IM 0x0400 ++ #define BO_LANG 0x0800 ++ #define BO_MESS 0x1000 ++ #define BO_MATCH 0x2000 ++ #define BO_OPER 0x4000 ++ #define BO_REG 0x8000 ++ #define BO_SH 0x10000 ++ #define BO_SPELL 0x20000 ++ #define BO_WILD 0x40000 ++ + #ifdef FEAT_WILDIGN + EXTERN char_u *p_bsk; /* 'backupskip' */ + #endif +*** ../vim-7.4.792/src/proto/misc1.pro 2014-12-17 14:36:10.363090985 +0100 +--- src/proto/misc1.pro 2015-07-21 17:44:35.958476757 +0200 +*************** +*** 49,55 **** + int prompt_for_number __ARGS((int *mouse_used)); + void msgmore __ARGS((long n)); + void beep_flush __ARGS((void)); +! void vim_beep __ARGS((void)); + void init_homedir __ARGS((void)); + void free_homedir __ARGS((void)); + void free_users __ARGS((void)); +--- 49,55 ---- + int prompt_for_number __ARGS((int *mouse_used)); + void msgmore __ARGS((long n)); + void beep_flush __ARGS((void)); +! void vim_beep __ARGS((unsigned val)); + void init_homedir __ARGS((void)); + void free_homedir __ARGS((void)); + void free_users __ARGS((void)); +*** ../vim-7.4.792/src/search.c 2015-07-10 14:43:29.556722605 +0200 +--- src/search.c 2015-07-21 17:17:27.574113547 +0200 +*************** +*** 2469,2475 **** + } + + if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */ +! vim_beep(); + else if (lpos->lnum >= curwin->w_topline && lpos->lnum < curwin->w_botline) + { + if (!curwin->w_p_wrap) +--- 2469,2475 ---- + } + + if ((lpos = findmatch(NULL, NUL)) == NULL) /* no match, so beep */ +! vim_beep(BO_MATCH); + else if (lpos->lnum >= curwin->w_topline && lpos->lnum < curwin->w_botline) + { + if (!curwin->w_p_wrap) +*** ../vim-7.4.792/src/spell.c 2015-03-31 13:33:00.801524871 +0200 +--- src/spell.c 2015-07-21 17:17:27.578113509 +0200 +*************** +*** 10201,10207 **** + * a multi-line selection. */ + if (curwin->w_cursor.lnum != VIsual.lnum) + { +! vim_beep(); + return; + } + badlen = (int)curwin->w_cursor.col - (int)VIsual.col; +--- 10201,10207 ---- + * a multi-line selection. */ + if (curwin->w_cursor.lnum != VIsual.lnum) + { +! vim_beep(BO_SPELL); + return; + } + badlen = (int)curwin->w_cursor.col - (int)VIsual.col; +*** ../vim-7.4.792/src/version.c 2015-07-21 15:48:13.593517912 +0200 +--- src/version.c 2015-07-21 17:17:14.162242329 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 793, + /**/ + +-- +Eagles may soar, but weasels don't get sucked into jet engines. + + /// 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 /// From 4ccc131863bf47d81d8a26b60fa16c0690121717 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:41 +0200 Subject: [PATCH 0283/1407] - patchlevel 794 --- 7.4.794 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.794 diff --git a/7.4.794 b/7.4.794 new file mode 100644 index 00000000..82d14143 --- /dev/null +++ b/7.4.794 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.794 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.794 +Problem: Visual Studio 2015 is not recognized. +Solution: Add the version numbers to the makefile. (Taro Muraoka) +Files: src/Make_mvc.mak + + +*** ../vim-7.4.793/src/Make_mvc.mak 2015-07-10 16:12:43.146296071 +0200 +--- src/Make_mvc.mak 2015-07-21 20:20:22.200628011 +0200 +*************** +*** 446,452 **** + !if "$(_NMAKE_VER)" == "12.00.21005.1" + MSVCVER = 12.0 + !endif +! !if ("$(_NMAKE_VER)" == "14.00.22609.0") || ("$(_NMAKE_VER)" == "14.00.22816.0") + MSVCVER = 14.0 + !endif + !endif +--- 446,452 ---- + !if "$(_NMAKE_VER)" == "12.00.21005.1" + MSVCVER = 12.0 + !endif +! !if ("$(_NMAKE_VER)" == "14.00.22609.0") || ("$(_NMAKE_VER)" == "14.00.22816.0") || ("$(_NMAKE_VER)" == "14.00.23026.0") + MSVCVER = 14.0 + !endif + !endif +*** ../vim-7.4.793/src/version.c 2015-07-21 17:53:11.589527874 +0200 +--- src/version.c 2015-07-21 20:21:10.628161750 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 794, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +243. You unsuccessfully try to download a pizza from www.dominos.com. + + /// 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 /// From cdb1fd94384cb50c1d1720052a5bd323d66c1228 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:42 +0200 Subject: [PATCH 0284/1407] - patchlevel 795 --- 7.4.795 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.795 diff --git a/7.4.795 b/7.4.795 new file mode 100644 index 00000000..0d451c08 --- /dev/null +++ b/7.4.795 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.795 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.795 +Problem: The 'fixeol' option is not copied to a new window. +Solution: Copy the option value. (Yasuhiro Matsumoto) +Files: src/option.c + + +*** ../vim-7.4.794/src/option.c 2015-07-21 17:53:11.585527913 +0200 +--- src/option.c 2015-07-22 21:48:18.727198452 +0200 +*************** +*** 10659,10664 **** +--- 10659,10665 ---- + #ifdef FEAT_MBYTE + buf->b_p_bomb = p_bomb; + #endif ++ buf->b_p_fixeol = p_fixeol; + buf->b_p_et = p_et; + buf->b_p_et_nobin = p_et_nobin; + buf->b_p_ml = p_ml; +*** ../vim-7.4.794/src/version.c 2015-07-21 20:22:07.331615818 +0200 +--- src/version.c 2015-07-22 21:49:14.366683887 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 795, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +253. You wait for a slow loading web page before going to the toilet. + + /// 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 /// From 8778c56a66773b4f8e546dfaf7923e5000189032 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:42 +0200 Subject: [PATCH 0285/1407] - patchlevel 796 --- 7.4.796 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.796 diff --git a/7.4.796 b/7.4.796 new file mode 100644 index 00000000..1f0723d9 --- /dev/null +++ b/7.4.796 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.796 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.796 +Problem: Warning from 64 bit compiler. +Solution: Add type cast. (Mike Williams) +Files: src/ops.c + + +*** ../vim-7.4.795/src/ops.c 2015-07-17 14:16:49.850596721 +0200 +--- src/ops.c 2015-07-22 22:44:23.831980567 +0200 +*************** +*** 5429,5438 **** + if (VIsual_mode == 'V') + { + VIsual.col = 0; +! curwin->w_cursor.col = STRLEN(ptr); + } +! else if (VIsual_mode == Ctrl_V && +! VIsual.col > curwin->w_cursor.col) + { + t = VIsual; + VIsual.col = curwin->w_cursor.col; +--- 5429,5437 ---- + if (VIsual_mode == 'V') + { + VIsual.col = 0; +! curwin->w_cursor.col = (colnr_T)STRLEN(ptr); + } +! else if (VIsual_mode == Ctrl_V && VIsual.col > curwin->w_cursor.col) + { + t = VIsual; + VIsual.col = curwin->w_cursor.col; +*** ../vim-7.4.795/src/version.c 2015-07-22 22:19:33.073837041 +0200 +--- src/version.c 2015-07-22 22:44:59.071652665 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 796, + /**/ + +-- +Place mark here ->[ ]<- if you want a dirty monitor. + + /// 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 /// From 365b697b17decd39e042d4c046f93ec9bbce6081 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:43 +0200 Subject: [PATCH 0286/1407] - patchlevel 797 --- 7.4.797 | 238 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 238 insertions(+) create mode 100644 7.4.797 diff --git a/7.4.797 b/7.4.797 new file mode 100644 index 00000000..86c70aef --- /dev/null +++ b/7.4.797 @@ -0,0 +1,238 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.797 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.797 +Problem: Crash when using more lines for the command line than + 'maxcombine'. +Solution: Use the correct array index. Also, do not try redrawing when + exiting. And use screen_Columns instead of Columns. +Files: src/screen.c + + +*** ../vim-7.4.796/src/screen.c 2015-07-21 15:48:13.589517950 +0200 +--- src/screen.c 2015-07-25 22:46:44.028355647 +0200 +*************** +*** 279,284 **** +--- 279,285 ---- + int type; + { + int rows; ++ int cols = screen_Columns; + int r; + int ret = 0; + schar_T *screenline; /* copy from ScreenLines[] */ +*************** +*** 291,318 **** + #endif + + redraw_later(type); +! if (msg_scrolled || (State != NORMAL && State != NORMAL_BUSY)) + return ret; + + /* Allocate space to save the text displayed in the command line area. */ +! rows = Rows - cmdline_row; + screenline = (schar_T *)lalloc( +! (long_u)(rows * Columns * sizeof(schar_T)), FALSE); + screenattr = (sattr_T *)lalloc( +! (long_u)(rows * Columns * sizeof(sattr_T)), FALSE); + if (screenline == NULL || screenattr == NULL) + ret = 2; + #ifdef FEAT_MBYTE + if (enc_utf8) + { + screenlineUC = (u8char_T *)lalloc( +! (long_u)(rows * Columns * sizeof(u8char_T)), FALSE); + if (screenlineUC == NULL) + ret = 2; + for (i = 0; i < p_mco; ++i) + { + screenlineC[i] = (u8char_T *)lalloc( +! (long_u)(rows * Columns * sizeof(u8char_T)), FALSE); + if (screenlineC[i] == NULL) + ret = 2; + } +--- 292,319 ---- + #endif + + redraw_later(type); +! if (msg_scrolled || (State != NORMAL && State != NORMAL_BUSY) || exiting) + return ret; + + /* Allocate space to save the text displayed in the command line area. */ +! rows = screen_Rows - cmdline_row; + screenline = (schar_T *)lalloc( +! (long_u)(rows * cols * sizeof(schar_T)), FALSE); + screenattr = (sattr_T *)lalloc( +! (long_u)(rows * cols * sizeof(sattr_T)), FALSE); + if (screenline == NULL || screenattr == NULL) + ret = 2; + #ifdef FEAT_MBYTE + if (enc_utf8) + { + screenlineUC = (u8char_T *)lalloc( +! (long_u)(rows * cols * sizeof(u8char_T)), FALSE); + if (screenlineUC == NULL) + ret = 2; + for (i = 0; i < p_mco; ++i) + { + screenlineC[i] = (u8char_T *)lalloc( +! (long_u)(rows * cols * sizeof(u8char_T)), FALSE); + if (screenlineC[i] == NULL) + ret = 2; + } +*************** +*** 320,326 **** + if (enc_dbcs == DBCS_JPNU) + { + screenline2 = (schar_T *)lalloc( +! (long_u)(rows * Columns * sizeof(schar_T)), FALSE); + if (screenline2 == NULL) + ret = 2; + } +--- 321,327 ---- + if (enc_dbcs == DBCS_JPNU) + { + screenline2 = (schar_T *)lalloc( +! (long_u)(rows * cols * sizeof(schar_T)), FALSE); + if (screenline2 == NULL) + ret = 2; + } +*************** +*** 331,357 **** + /* Save the text displayed in the command line area. */ + for (r = 0; r < rows; ++r) + { +! mch_memmove(screenline + r * Columns, + ScreenLines + LineOffset[cmdline_row + r], +! (size_t)Columns * sizeof(schar_T)); +! mch_memmove(screenattr + r * Columns, + ScreenAttrs + LineOffset[cmdline_row + r], +! (size_t)Columns * sizeof(sattr_T)); + #ifdef FEAT_MBYTE + if (enc_utf8) + { +! mch_memmove(screenlineUC + r * Columns, + ScreenLinesUC + LineOffset[cmdline_row + r], +! (size_t)Columns * sizeof(u8char_T)); + for (i = 0; i < p_mco; ++i) +! mch_memmove(screenlineC[i] + r * Columns, +! ScreenLinesC[r] + LineOffset[cmdline_row + r], +! (size_t)Columns * sizeof(u8char_T)); + } + if (enc_dbcs == DBCS_JPNU) +! mch_memmove(screenline2 + r * Columns, + ScreenLines2 + LineOffset[cmdline_row + r], +! (size_t)Columns * sizeof(schar_T)); + #endif + } + +--- 332,358 ---- + /* Save the text displayed in the command line area. */ + for (r = 0; r < rows; ++r) + { +! mch_memmove(screenline + r * cols, + ScreenLines + LineOffset[cmdline_row + r], +! (size_t)cols * sizeof(schar_T)); +! mch_memmove(screenattr + r * cols, + ScreenAttrs + LineOffset[cmdline_row + r], +! (size_t)cols * sizeof(sattr_T)); + #ifdef FEAT_MBYTE + if (enc_utf8) + { +! mch_memmove(screenlineUC + r * cols, + ScreenLinesUC + LineOffset[cmdline_row + r], +! (size_t)cols * sizeof(u8char_T)); + for (i = 0; i < p_mco; ++i) +! mch_memmove(screenlineC[i] + r * cols, +! ScreenLinesC[i] + LineOffset[cmdline_row + r], +! (size_t)cols * sizeof(u8char_T)); + } + if (enc_dbcs == DBCS_JPNU) +! mch_memmove(screenline2 + r * cols, + ScreenLines2 + LineOffset[cmdline_row + r], +! (size_t)cols * sizeof(schar_T)); + #endif + } + +*************** +*** 366,393 **** + for (r = 0; r < rows; ++r) + { + mch_memmove(current_ScreenLine, +! screenline + r * Columns, +! (size_t)Columns * sizeof(schar_T)); + mch_memmove(ScreenAttrs + off, +! screenattr + r * Columns, +! (size_t)Columns * sizeof(sattr_T)); + #ifdef FEAT_MBYTE + if (enc_utf8) + { + mch_memmove(ScreenLinesUC + off, +! screenlineUC + r * Columns, +! (size_t)Columns * sizeof(u8char_T)); + for (i = 0; i < p_mco; ++i) + mch_memmove(ScreenLinesC[i] + off, +! screenlineC[i] + r * Columns, +! (size_t)Columns * sizeof(u8char_T)); + } + if (enc_dbcs == DBCS_JPNU) + mch_memmove(ScreenLines2 + off, +! screenline2 + r * Columns, +! (size_t)Columns * sizeof(schar_T)); + #endif +! SCREEN_LINE(cmdline_row + r, 0, Columns, Columns, FALSE); + } + ret = 4; + } +--- 367,394 ---- + for (r = 0; r < rows; ++r) + { + mch_memmove(current_ScreenLine, +! screenline + r * cols, +! (size_t)cols * sizeof(schar_T)); + mch_memmove(ScreenAttrs + off, +! screenattr + r * cols, +! (size_t)cols * sizeof(sattr_T)); + #ifdef FEAT_MBYTE + if (enc_utf8) + { + mch_memmove(ScreenLinesUC + off, +! screenlineUC + r * cols, +! (size_t)cols * sizeof(u8char_T)); + for (i = 0; i < p_mco; ++i) + mch_memmove(ScreenLinesC[i] + off, +! screenlineC[i] + r * cols, +! (size_t)cols * sizeof(u8char_T)); + } + if (enc_dbcs == DBCS_JPNU) + mch_memmove(ScreenLines2 + off, +! screenline2 + r * cols, +! (size_t)cols * sizeof(schar_T)); + #endif +! SCREEN_LINE(cmdline_row + r, 0, cols, cols, FALSE); + } + ret = 4; + } +*** ../vim-7.4.796/src/version.c 2015-07-22 22:46:08.127010101 +0200 +--- src/version.c 2015-07-25 22:38:04.193354077 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 797, + /**/ + +-- +Women are probably the main cause of free software starvation. + + /// 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 /// From f66554b8430e1bb2384deb2c487edb5997e7edcf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:43 +0200 Subject: [PATCH 0287/1407] - patchlevel 798 --- 7.4.798 | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 7.4.798 diff --git a/7.4.798 b/7.4.798 new file mode 100644 index 00000000..ca50f013 --- /dev/null +++ b/7.4.798 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.798 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.798 (after 7.4.753) +Problem: Repeating a change in Visual mode does not work as expected. + (Urtica Dioica) +Solution: Make redo in Visual mode work better. (Christian Brabandt) +Files: src/normal.c, src/testdir/test_listlbr.in, + src/testdir/test_listlbr.ok + + +*** ../vim-7.4.797/src/normal.c 2015-07-21 17:53:11.581527951 +0200 +--- src/normal.c 2015-07-28 11:11:58.479169612 +0200 +*************** +*** 9598,9615 **** + #endif + + getvvcol(curwin, &(oap->start), &oap->start_vcol, NULL, &oap->end_vcol); +- getvvcol(curwin, &(oap->end), &start, NULL, &end); + +! if (start < oap->start_vcol) +! oap->start_vcol = start; +! if (end > oap->end_vcol) + { +! if (initial && *p_sel == 'e' && start >= 1 +! && start - 1 >= oap->end_vcol) +! oap->end_vcol = start - 1; +! else +! oap->end_vcol = end; + } + /* if '$' was used, get oap->end_vcol from longest line */ + if (curwin->w_curswant == MAXCOL) + { +--- 9598,9620 ---- + #endif + + getvvcol(curwin, &(oap->start), &oap->start_vcol, NULL, &oap->end_vcol); + +! if (!redo_VIsual_busy) + { +! getvvcol(curwin, &(oap->end), &start, NULL, &end); +! +! if (start < oap->start_vcol) +! oap->start_vcol = start; +! if (end > oap->end_vcol) +! { +! if (initial && *p_sel == 'e' && start >= 1 +! && start - 1 >= oap->end_vcol) +! oap->end_vcol = start - 1; +! else +! oap->end_vcol = end; +! } + } ++ + /* if '$' was used, get oap->end_vcol from longest line */ + if (curwin->w_curswant == MAXCOL) + { +*** ../vim-7.4.797/src/testdir/test_listlbr.in 2015-06-25 13:30:41.206095684 +0200 +--- src/testdir/test_listlbr.in 2015-07-28 11:11:39.487362238 +0200 +*************** +*** 74,79 **** +--- 74,85 ---- + :let g:test ="Test 8: set linebreak with visual char mode and changing block" + :$put =g:test + Go1111-1111-1111-11-1111-1111-11110f-lv3lc2222bgj. ++ :let g:test ="Test 9: using redo after block visual mode" ++ :$put =g:test ++ Go ++ aaa ++ aaa ++ a2k2j~e. + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.797/src/testdir/test_listlbr.ok 2015-06-25 13:30:41.206095684 +0200 +--- src/testdir/test_listlbr.ok 2015-07-28 11:11:39.487362238 +0200 +*************** +*** 41,43 **** +--- 41,48 ---- + long line: foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar TARGETx at end + Test 8: set linebreak with visual char mode and changing block + 1111-2222-1111-11-1111-2222-1111 ++ Test 9: using redo after block visual mode ++ ++ AaA ++ AaA ++ A +*** ../vim-7.4.797/src/version.c 2015-07-25 22:52:55.396781119 +0200 +--- src/version.c 2015-07-28 11:11:21.699542664 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 798, + /**/ + +-- + A KNIGHT rides into shot and hacks him to the ground. He rides off. + We stay for a moment on the glade. A MIDDLE-AGED LADY in a C. & A. + twin-set emerges from the trees and looks in horror at the body of her + HUSBAND. +MRS HISTORIAN: FRANK! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From d22b689ba07731b0510e7b1c691200b75621fcf6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:44 +0200 Subject: [PATCH 0288/1407] - patchlevel 799 --- 7.4.799 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.799 diff --git a/7.4.799 b/7.4.799 new file mode 100644 index 00000000..34e1cd42 --- /dev/null +++ b/7.4.799 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.799 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.799 +Problem: Accessing memory before an allocated block. +Solution: Check for not going before the start of a pattern. (Dominique + Pelle) +Files: src/fileio.c + + +*** ../vim-7.4.798/src/fileio.c 2015-07-17 17:38:00.567399623 +0200 +--- src/fileio.c 2015-07-28 13:33:00.470887578 +0200 +*************** +*** 8514,8520 **** + */ + brace_level = 0; + for (endpat = pat; *endpat && (*endpat != ',' || brace_level +! || endpat[-1] == '\\'); ++endpat) + { + if (*endpat == '{') + brace_level++; +--- 8514,8520 ---- + */ + brace_level = 0; + for (endpat = pat; *endpat && (*endpat != ',' || brace_level +! || (endpat > pat && endpat[-1] == '\\')); ++endpat) + { + if (*endpat == '{') + brace_level++; +*** ../vim-7.4.798/src/version.c 2015-07-28 11:21:27.045407225 +0200 +--- src/version.c 2015-07-28 13:31:00.896057007 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 799, + /**/ + +-- +The software said it requires Windows 95 or better, so I installed Linux. + + /// 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 /// From f7d420e2c85d1386ee8ecf58354e3b7055307cf1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:44 +0200 Subject: [PATCH 0289/1407] - patchlevel 800 --- 7.4.800 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.800 diff --git a/7.4.800 b/7.4.800 new file mode 100644 index 00000000..2338ea57 --- /dev/null +++ b/7.4.800 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.800 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.800 +Problem: Using freed memory when triggering CmdUndefined autocommands. +Solution: Set pointer to NULL. (Dominique Pelle) +Files: src/ex_docmd.c + + +*** ../vim-7.4.799/src/ex_docmd.c 2015-07-21 15:48:13.589517950 +0200 +--- src/ex_docmd.c 2015-07-28 14:24:05.801096678 +0200 +*************** +*** 2365,2372 **** + p = vim_strnsave(ea.cmd, (int)(p - ea.cmd)); + ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, TRUE, NULL); + vim_free(p); +! if (ret && !aborting()) +! p = find_command(&ea, NULL); + } + #endif + +--- 2365,2373 ---- + p = vim_strnsave(ea.cmd, (int)(p - ea.cmd)); + ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, TRUE, NULL); + vim_free(p); +! /* If the autocommands did something and didn't cause an error, try +! * finding the command again. */ +! p = (ret && !aborting()) ? find_command(&ea, NULL) : NULL; + } + #endif + +*** ../vim-7.4.799/src/version.c 2015-07-28 13:33:36.850531694 +0200 +--- src/version.c 2015-07-28 14:22:09.050246179 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 800, + /**/ + +-- + They now pass three KNIGHTS impaled to a tree. With their feet off the + ground, with one lance through the lot of them, they are skewered up + like a barbecue. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From e1aed4df8022ba55a6a3d7f06bdb5fa5cd327928 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:45 +0200 Subject: [PATCH 0290/1407] - patchlevel 801 --- 7.4.801 | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 7.4.801 diff --git a/7.4.801 b/7.4.801 new file mode 100644 index 00000000..f953a28b --- /dev/null +++ b/7.4.801 @@ -0,0 +1,82 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.801 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.801 (after 7.4.769) +Problem: Test for ":diffoff" doesn't catch all potential problems. +Solution: Add a :diffthis and a :diffoff command. (Olaf Dabrunz) +Files: src/testdir/test47.in + + +*** ../vim-7.4.800/src/testdir/test47.in 2015-07-04 15:05:08.606736259 +0200 +--- src/testdir/test47.in 2015-07-28 14:37:53.316858455 +0200 +*************** +*** 21,26 **** +--- 21,30 ---- + :redir => diffsettings + :silent! :set diff? fdm? fdc? scb? crb? wrap? + :redir END ++ :let diff_fdm = &fdm ++ :let diff_fdc = &fdc ++ :" repeat entering diff mode here to see if this saves the wrong settings ++ :diffthis + :" jump to second window for a moment to have filler line appear at start of + :" first window + ggpgg:let one = winline() +*************** +*** 48,53 **** +--- 52,63 ---- + :" + :" Test diffoff + :diffoff! ++ 1 ++ :let &diff = 1 ++ :let &fdm = diff_fdm ++ :let &fdc = diff_fdc ++ 4 ++ :diffoff! + :$put =nodiffsettings + :$put =diffsettings + 1 +*************** +*** 82,88 **** + :enew + :put =w0 + :.w >> test.out +! :unlet! one two three nodiffsettings diffsettings nd1 nd2 nd3 w0 + :qa! + ENDTEST + +--- 92,98 ---- + :enew + :put =w0 + :.w >> test.out +! :unlet! one two three nodiffsettings diffsettings diff_fdm diff_fdc nd1 nd2 nd3 w0 + :qa! + ENDTEST + +*** ../vim-7.4.800/src/version.c 2015-07-28 14:25:41.848151118 +0200 +--- src/version.c 2015-07-28 14:40:19.143395365 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 801, + /**/ + +-- +FIRST HEAD: Oh! quick! get the sword out I want to cut his head off. +THIRD HEAD: Oh, cut your own head off. +SECOND HEAD: Yes - do us all a favour. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From defd623cf519c04b03f309456393b312bd5bc415 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:46 +0200 Subject: [PATCH 0291/1407] - patchlevel 802 --- 7.4.802 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.802 diff --git a/7.4.802 b/7.4.802 new file mode 100644 index 00000000..83ac6d5d --- /dev/null +++ b/7.4.802 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.802 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.802 +Problem: Using "A" in Visual mode while 'linebreak' is set is not tested. +Solution: Add a test for this, verifies the problem is fixed. (Ingo Karkat) +Files: src/testdir/test39.in, src/testdir/test39.ok + + +*** ../vim-7.4.801/src/testdir/test39.in 2015-02-03 18:36:40.401033677 +0100 +--- src/testdir/test39.in 2015-07-28 17:08:38.439175822 +0200 +*************** +*** 51,56 **** +--- 51,62 ---- + :exe ":norm! 012l\jjAx\" + :set ve= enc=latin1 + :.,/^$/w >> test.out ++ :" Test for single-line Visual block append at wrapped line with :set linebreak ++ Golong line: 40afoobar aTARGET at end ++ :set linebreak ++ :exe ":norm! $3B\eAx\" ++ :set nolinebreak ++ :.w >> test.out + :" gUe must uppercase a whole word, also when ß changes to SS + Gothe youtußeuu endYpk0wgUe + :" gUfx must uppercase until x, inclusive. +*** ../vim-7.4.801/src/testdir/test39.ok 2015-02-03 18:36:40.401033677 +0100 +--- src/testdir/test39.ok 2015-07-28 17:07:28.151876184 +0200 +*************** +*** 30,35 **** +--- 30,36 ---- + x x line2 + x x line3 + ++ long line: foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar TARGETx at end + the YOUTUSSEUU end + - yOUSSTUSSEXu - + THE YOUTUSSEUU END +*** ../vim-7.4.801/src/version.c 2015-07-28 14:42:41.177971415 +0200 +--- src/version.c 2015-07-28 17:10:38.117983542 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 802, + /**/ + +-- +Facepalm statement #2: "If there is a country without immigrants I'm going to +move there" + + /// 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 /// From 5d2990cbc95ef71b31a744d6a0d51e17ef7eeeb8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:47 +0200 Subject: [PATCH 0292/1407] - patchlevel 803 --- 7.4.803 | 1493 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1493 insertions(+) create mode 100644 7.4.803 diff --git a/7.4.803 b/7.4.803 new file mode 100644 index 00000000..e40a745a --- /dev/null +++ b/7.4.803 @@ -0,0 +1,1493 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.803 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.803 +Problem: C indent does not support C11 raw strings. (Mark Lodato) +Solution: Do not change indent inside the raw string. +Files: src/search.c, src/misc1.c, src/edit.c, src/ops.c, + src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.4.802/src/search.c 2015-07-21 17:53:11.585527913 +0200 +--- src/search.c 2015-07-28 21:14:08.968071627 +0200 +*************** +*** 1725,1744 **** + return (col >= 0 && linep[col] == ch) ? TRUE : FALSE; + } + + /* + * findmatchlimit -- find the matching paren or brace, if it exists within +! * maxtravel lines of here. A maxtravel of 0 means search until falling off +! * the edge of the file. + * + * "initc" is the character to find a match for. NUL means to find the +! * character at or after the cursor. + * + * flags: FM_BACKWARD search backwards (when initc is '/', '*' or '#') + * FM_FORWARD search forwards (when initc is '/', '*' or '#') + * FM_BLOCKSTOP stop at start/end of block ({ or } in column 0) + * FM_SKIPCOMM skip comments (not implemented yet!) + * +! * "oap" is only used to set oap->motion_type for a linewise motion, it be + * NULL + */ + +--- 1725,1795 ---- + return (col >= 0 && linep[col] == ch) ? TRUE : FALSE; + } + ++ static int find_rawstring_end __ARGS((char_u *linep, pos_T *startpos, pos_T *endpos)); ++ ++ /* ++ * Raw string start is found at linep[startpos.col - 1]. ++ * Return TRUE if the matching end can be found between startpos and endpos. ++ */ ++ static int ++ find_rawstring_end(linep, startpos, endpos) ++ char_u *linep; ++ pos_T *startpos; ++ pos_T *endpos; ++ { ++ char_u *p; ++ char_u *delim_copy; ++ size_t delim_len; ++ linenr_T lnum; ++ int found = FALSE; ++ ++ for (p = linep + startpos->col + 1; *p && *p != '('; ++p) ++ ; ++ delim_len = (p - linep) - startpos->col - 1; ++ delim_copy = vim_strnsave(linep + startpos->col + 1, delim_len); ++ if (delim_copy == NULL) ++ return FALSE; ++ for (lnum = startpos->lnum; lnum <= endpos->lnum; ++lnum) ++ { ++ char_u *line = ml_get(lnum); ++ ++ for (p = line + (lnum == startpos->lnum ++ ? startpos->col + 1 : 0); *p; ++p) ++ { ++ if (lnum == endpos->lnum && (colnr_T)(p - line) >= endpos->col) ++ break; ++ if (*p == ')' && p[delim_len + 1] == '"' ++ && STRNCMP(delim_copy, p + 1, delim_len) == 0) ++ { ++ found = TRUE; ++ break; ++ } ++ } ++ if (found) ++ break; ++ } ++ vim_free(delim_copy); ++ return found; ++ } ++ + /* + * findmatchlimit -- find the matching paren or brace, if it exists within +! * maxtravel lines of the cursor. A maxtravel of 0 means search until falling +! * off the edge of the file. + * + * "initc" is the character to find a match for. NUL means to find the +! * character at or after the cursor. Special values: +! * '*' look for C-style comment / * +! * '/' look for C-style comment / *, ignoring comment-end +! * '#' look for preprocessor directives +! * 'R' look for raw string start: R"delim(text)delim" (only backwards) + * + * flags: FM_BACKWARD search backwards (when initc is '/', '*' or '#') + * FM_FORWARD search forwards (when initc is '/', '*' or '#') + * FM_BLOCKSTOP stop at start/end of block ({ or } in column 0) + * FM_SKIPCOMM skip comments (not implemented yet!) + * +! * "oap" is only used to set oap->motion_type for a linewise motion, it can be + * NULL + */ + +*************** +*** 1754,1759 **** +--- 1805,1811 ---- + int c; + int count = 0; /* cumulative number of braces */ + int backwards = FALSE; /* init for gcc */ ++ int raw_string = FALSE; /* search for raw string */ + int inquote = FALSE; /* TRUE when inside quotes */ + char_u *linep; /* pointer to current line */ + char_u *ptr; +*************** +*** 1798,1809 **** + * When '/' is used, we ignore running backwards into an star-slash, for + * "[*" command, we just want to find any comment. + */ +! if (initc == '/' || initc == '*') + { + comment_dir = dir; + if (initc == '/') + ignore_cend = TRUE; + backwards = (dir == FORWARD) ? FALSE : TRUE; + initc = NUL; + } + else if (initc != '#' && initc != NUL) +--- 1850,1862 ---- + * When '/' is used, we ignore running backwards into an star-slash, for + * "[*" command, we just want to find any comment. + */ +! if (initc == '/' || initc == '*' || initc == 'R') + { + comment_dir = dir; + if (initc == '/') + ignore_cend = TRUE; + backwards = (dir == FORWARD) ? FALSE : TRUE; ++ raw_string = (initc == 'R'); + initc = NUL; + } + else if (initc != '#' && initc != NUL) +*************** +*** 1812,1823 **** + if (findc == NUL) + return NULL; + } +- /* +- * Either initc is '#', or no initc was given and we need to look under the +- * cursor. +- */ + else + { + if (initc == '#') + { + hash_dir = dir; +--- 1865,1876 ---- + if (findc == NUL) + return NULL; + } + else + { ++ /* ++ * Either initc is '#', or no initc was given and we need to look ++ * under the cursor. ++ */ + if (initc == '#') + { + hash_dir = dir; +*************** +*** 2135,2140 **** +--- 2188,2213 ---- + */ + if (pos.col == 0) + continue; ++ else if (raw_string) ++ { ++ if (linep[pos.col - 1] == 'R' ++ && linep[pos.col] == '"' ++ && vim_strchr(linep + pos.col + 1, '(') != NULL) ++ { ++ /* Possible start of raw string. Now that we have the ++ * delimiter we can check if it ends before where we ++ * started searching, or before the previously found ++ * raw string start. */ ++ if (!find_rawstring_end(linep, &pos, ++ count > 0 ? &match_pos : &curwin->w_cursor)) ++ { ++ count++; ++ match_pos = pos; ++ match_pos.col--; ++ } ++ linep = ml_get(pos.lnum); /* may have been released */ ++ } ++ } + else if ( linep[pos.col - 1] == '/' + && linep[pos.col] == '*' + && (int)pos.col < comment_col) +*** ../vim-7.4.802/src/misc1.c 2015-07-21 17:53:11.581527951 +0200 +--- src/misc1.c 2015-07-28 21:06:38.908518760 +0200 +*************** +*** 5267,5276 **** +--- 5267,5279 ---- + + static char_u *skip_string __ARGS((char_u *p)); + static pos_T *ind_find_start_comment __ARGS((void)); ++ static pos_T *ind_find_start_CORS __ARGS((void)); ++ static pos_T *find_start_rawstring __ARGS((int ind_maxcomment)); + + /* + * Find the start of a comment, not knowing if we are in a comment right now. + * Search starts at w_cursor.lnum and goes backwards. ++ * Return NULL when not inside a comment. + */ + static pos_T * + ind_find_start_comment() /* XXX */ +*************** +*** 5313,5318 **** +--- 5316,5380 ---- + } + + /* ++ * Find the start of a comment or raw string, not knowing if we are in a ++ * comment or raw string right now. ++ * Search starts at w_cursor.lnum and goes backwards. ++ * Return NULL when not inside a comment or raw string. ++ * "CORS" -> Comment Or Raw String ++ */ ++ static pos_T * ++ ind_find_start_CORS() /* XXX */ ++ { ++ pos_T *comment_pos = find_start_comment(curbuf->b_ind_maxcomment); ++ pos_T *rs_pos = find_start_rawstring(curbuf->b_ind_maxcomment); ++ ++ /* If comment_pos is before rs_pos the raw string is inside the comment. ++ * If rs_pos is before comment_pos the comment is inside the raw string. */ ++ if (comment_pos == NULL || (rs_pos != NULL && lt(*rs_pos, *comment_pos))) ++ return rs_pos; ++ return comment_pos; ++ } ++ ++ /* ++ * Find the start of a raw string, not knowing if we are in one right now. ++ * Search starts at w_cursor.lnum and goes backwards. ++ * Return NULL when not inside a raw string. ++ */ ++ static pos_T * ++ find_start_rawstring(ind_maxcomment) /* XXX */ ++ int ind_maxcomment; ++ { ++ pos_T *pos; ++ char_u *line; ++ char_u *p; ++ int cur_maxcomment = ind_maxcomment; ++ ++ for (;;) ++ { ++ pos = findmatchlimit(NULL, 'R', FM_BACKWARD, cur_maxcomment); ++ if (pos == NULL) ++ break; ++ ++ /* ++ * Check if the raw string start we found is inside a string. ++ * If it is then restrict the search to below this line and try again. ++ */ ++ line = ml_get(pos->lnum); ++ for (p = line; *p && (colnr_T)(p - line) < pos->col; ++p) ++ p = skip_string(p); ++ if ((colnr_T)(p - line) <= pos->col) ++ break; ++ cur_maxcomment = curwin->w_cursor.lnum - pos->lnum - 1; ++ if (cur_maxcomment <= 0) ++ { ++ pos = NULL; ++ break; ++ } ++ } ++ return pos; ++ } ++ ++ /* + * Skip to the end of a "string" and a 'c' character. + * If there is no string or character, return argument unmodified. + */ +*************** +*** 5354,5360 **** + break; + } + if (p[0] == '"') +! continue; + } + break; /* no string found */ + } +--- 5416,5443 ---- + break; + } + if (p[0] == '"') +! continue; /* continue for another string */ +! } +! else if (p[0] == 'R' && p[1] == '"') +! { +! /* Raw string: R"[delim](...)[delim]" */ +! char_u *delim = p + 2; +! char_u *paren = vim_strchr(delim, '('); +! +! if (paren != NULL) +! { +! size_t delim_len = paren - delim; +! +! for (p += 3; *p; ++p) +! if (p[0] == ')' && STRNCMP(p + 1, delim, delim_len) == 0 +! && p[delim_len + 1] == '"') +! { +! p += delim_len + 1; +! break; +! } +! if (p[0] == '"') +! continue; /* continue for another string */ +! } + } + break; /* no string found */ + } +*************** +*** 5596,5605 **** + --curwin->w_cursor.lnum; + + /* +! * If we're in a comment now, skip to the start of the comment. + */ + curwin->w_cursor.col = 0; +! if ((trypos = ind_find_start_comment()) != NULL) /* XXX */ + curwin->w_cursor = *trypos; + + line = ml_get_curline(); +--- 5679,5689 ---- + --curwin->w_cursor.lnum; + + /* +! * If we're in a comment or raw string now, skip to the start of +! * it. + */ + curwin->w_cursor.col = 0; +! if ((trypos = ind_find_start_CORS()) != NULL) /* XXX */ + curwin->w_cursor = *trypos; + + line = ml_get_curline(); +*************** +*** 6454,6460 **** + continue; + } + +! if (s[0] == '"') + s = skip_string(s) + 1; + else if (s[0] == ':') + { +--- 6538,6544 ---- + continue; + } + +! if (s[0] == '"' || (s[0] == 'R' && s[1] == '"')) + s = skip_string(s) + 1; + else if (s[0] == ':') + { +*************** +*** 6660,6666 **** + pos = NULL; + /* ignore the { if it's in a // or / * * / comment */ + if ((colnr_T)cin_skip2pos(trypos) == trypos->col +! && (pos = ind_find_start_comment()) == NULL) /* XXX */ + break; + if (pos != NULL) + curwin->w_cursor.lnum = pos->lnum; +--- 6744,6750 ---- + pos = NULL; + /* ignore the { if it's in a // or / * * / comment */ + if ((colnr_T)cin_skip2pos(trypos) == trypos->col +! && (pos = ind_find_start_CORS()) == NULL) /* XXX */ + break; + if (pos != NULL) + curwin->w_cursor.lnum = pos->lnum; +*************** +*** 6714,6720 **** + pos_copy = *trypos; /* copy trypos, findmatch will change it */ + trypos = &pos_copy; + curwin->w_cursor = *trypos; +! if ((trypos_wk = ind_find_start_comment()) != NULL) /* XXX */ + { + ind_maxp_wk = ind_maxparen - (int)(cursor_save.lnum + - trypos_wk->lnum); +--- 6798,6804 ---- + pos_copy = *trypos; /* copy trypos, findmatch will change it */ + trypos = &pos_copy; + curwin->w_cursor = *trypos; +! if ((trypos_wk = ind_find_start_CORS()) != NULL) /* XXX */ + { + ind_maxp_wk = ind_maxparen - (int)(cursor_save.lnum + - trypos_wk->lnum); +*************** +*** 7029,7034 **** +--- 7113,7122 ---- + } + } + ++ /* ++ * Return the desired indent for C code. ++ * Return -1 if the indent should be left alone (inside a raw string). ++ */ + int + get_c_indent() + { +*************** +*** 7040,7047 **** + char_u *theline; + char_u *linecopy; + pos_T *trypos; + pos_T *tryposBrace = NULL; +! pos_T tryposBraceCopy; + pos_T our_paren_pos; + char_u *start; + int start_brace; +--- 7128,7136 ---- + char_u *theline; + char_u *linecopy; + pos_T *trypos; ++ pos_T *comment_pos; + pos_T *tryposBrace = NULL; +! pos_T tryposCopy; + pos_T our_paren_pos; + char_u *start; + int start_brace; +*************** +*** 7085,7091 **** + /* remember where the cursor was when we started */ + cur_curpos = curwin->w_cursor; + +! /* if we are at line 1 0 is fine, right? */ + if (cur_curpos.lnum == 1) + return 0; + +--- 7174,7180 ---- + /* remember where the cursor was when we started */ + cur_curpos = curwin->w_cursor; + +! /* if we are at line 1 zero indent is fine, right? */ + if (cur_curpos.lnum == 1) + return 0; + +*************** +*** 7117,7157 **** + original_line_islabel = cin_islabel(); /* XXX */ + + /* + * #defines and so on always go at the left when included in 'cinkeys'. + */ + if (*theline == '#' && (*linecopy == '#' || in_cinkeys('#', ' ', TRUE))) + amount = curbuf->b_ind_hash_comment; + + /* + * Is it a non-case label? Then that goes at the left margin too unless: + * - JS flag is set. + * - 'L' item has a positive value. + */ +! else if (original_line_islabel && !curbuf->b_ind_js + && curbuf->b_ind_jump_label < 0) + { + amount = 0; + } + + /* + * If we're inside a "//" comment and there is a "//" comment in a + * previous line, lineup with that one. + */ +! else if (cin_islinecomment(theline) + && (trypos = find_line_comment()) != NULL) /* XXX */ + { + /* find how indented the line beginning the comment is */ + getvcol(curwin, trypos, &col, NULL, NULL); + amount = col; + } + + /* + * If we're inside a comment and not looking at the start of the + * comment, try using the 'comments' option. + */ +! else if (!cin_iscomment(theline) +! && (trypos = ind_find_start_comment()) != NULL) +! /* XXX */ + { + int lead_start_len = 2; + int lead_middle_len = 1; +--- 7206,7267 ---- + original_line_islabel = cin_islabel(); /* XXX */ + + /* ++ * If we are inside a raw string don't change the indent. ++ * Ignore a raw string inside a comment. ++ */ ++ comment_pos = ind_find_start_comment(); ++ if (comment_pos != NULL) ++ { ++ /* findmatchlimit() static pos is overwritten, make a copy */ ++ tryposCopy = *comment_pos; ++ comment_pos = &tryposCopy; ++ } ++ trypos = find_start_rawstring(curbuf->b_ind_maxcomment); ++ if (trypos != NULL && (comment_pos == NULL || lt(*trypos, *comment_pos))) ++ { ++ amount = -1; ++ goto laterend; ++ } ++ ++ /* + * #defines and so on always go at the left when included in 'cinkeys'. + */ + if (*theline == '#' && (*linecopy == '#' || in_cinkeys('#', ' ', TRUE))) ++ { + amount = curbuf->b_ind_hash_comment; ++ goto theend; ++ } + + /* + * Is it a non-case label? Then that goes at the left margin too unless: + * - JS flag is set. + * - 'L' item has a positive value. + */ +! if (original_line_islabel && !curbuf->b_ind_js + && curbuf->b_ind_jump_label < 0) + { + amount = 0; ++ goto theend; + } + + /* + * If we're inside a "//" comment and there is a "//" comment in a + * previous line, lineup with that one. + */ +! if (cin_islinecomment(theline) + && (trypos = find_line_comment()) != NULL) /* XXX */ + { + /* find how indented the line beginning the comment is */ + getvcol(curwin, trypos, &col, NULL, NULL); + amount = col; ++ goto theend; + } + + /* + * If we're inside a comment and not looking at the start of the + * comment, try using the 'comments' option. + */ +! if (!cin_iscomment(theline) && comment_pos != NULL) /* XXX */ + { + int lead_start_len = 2; + int lead_middle_len = 1; +*************** +*** 7164,7170 **** + int done = FALSE; + + /* find how indented the line beginning the comment is */ +! getvcol(curwin, trypos, &col, NULL, NULL); + amount = col; + *lead_start = NUL; + *lead_middle = NUL; +--- 7274,7280 ---- + int done = FALSE; + + /* find how indented the line beginning the comment is */ +! getvcol(curwin, comment_pos, &col, NULL, NULL); + amount = col; + *lead_start = NUL; + *lead_middle = NUL; +*************** +*** 7228,7234 **** + } + /* If the start comment string doesn't match with the + * start of the comment, skip this entry. XXX */ +! else if (STRNCMP(ml_get(trypos->lnum) + trypos->col, + lead_start, lead_start_len) != 0) + continue; + } +--- 7338,7344 ---- + } + /* If the start comment string doesn't match with the + * start of the comment, skip this entry. XXX */ +! else if (STRNCMP(ml_get(comment_pos->lnum) + comment_pos->col, + lead_start, lead_start_len) != 0) + continue; + } +*************** +*** 7276,7282 **** + * otherwise, add the amount specified by "c" in 'cino' + */ + amount = -1; +! for (lnum = cur_curpos.lnum - 1; lnum > trypos->lnum; --lnum) + { + if (linewhite(lnum)) /* skip blank lines */ + continue; +--- 7386,7392 ---- + * otherwise, add the amount specified by "c" in 'cino' + */ + amount = -1; +! for (lnum = cur_curpos.lnum - 1; lnum > comment_pos->lnum; --lnum) + { + if (linewhite(lnum)) /* skip blank lines */ + continue; +*************** +*** 7287,7319 **** + { + if (!curbuf->b_ind_in_comment2) + { +! start = ml_get(trypos->lnum); +! look = start + trypos->col + 2; /* skip / and * */ + if (*look != NUL) /* if something after it */ +! trypos->col = (colnr_T)(skipwhite(look) - start); + } +! getvcol(curwin, trypos, &col, NULL, NULL); + amount = col; + if (curbuf->b_ind_in_comment2 || *look == NUL) + amount += curbuf->b_ind_in_comment; + } + } + } + + /* + * Are we looking at a ']' that has a match? + */ +! else if (*skipwhite(theline) == ']' + && (trypos = find_match_char('[', curbuf->b_ind_maxparen)) != NULL) + { + /* align with the line containing the '['. */ + amount = get_indent_lnum(trypos->lnum); + } + + /* + * Are we inside parentheses or braces? + */ /* XXX */ +! else if (((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL + && curbuf->b_ind_java == 0) + || (tryposBrace = find_start_brace()) != NULL + || trypos != NULL) +--- 7397,7431 ---- + { + if (!curbuf->b_ind_in_comment2) + { +! start = ml_get(comment_pos->lnum); +! look = start + comment_pos->col + 2; /* skip / and * */ + if (*look != NUL) /* if something after it */ +! comment_pos->col = (colnr_T)(skipwhite(look) - start); + } +! getvcol(curwin, comment_pos, &col, NULL, NULL); + amount = col; + if (curbuf->b_ind_in_comment2 || *look == NUL) + amount += curbuf->b_ind_in_comment; + } + } ++ goto theend; + } + + /* + * Are we looking at a ']' that has a match? + */ +! if (*skipwhite(theline) == ']' + && (trypos = find_match_char('[', curbuf->b_ind_maxparen)) != NULL) + { + /* align with the line containing the '['. */ + amount = get_indent_lnum(trypos->lnum); ++ goto theend; + } + + /* + * Are we inside parentheses or braces? + */ /* XXX */ +! if (((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL + && curbuf->b_ind_java == 0) + || (tryposBrace = find_start_brace()) != NULL + || trypos != NULL) +*************** +*** 7354,7361 **** + continue; /* ignore #define, #if, etc. */ + curwin->w_cursor.lnum = lnum; + +! /* Skip a comment. XXX */ +! if ((trypos = ind_find_start_comment()) != NULL) + { + lnum = trypos->lnum + 1; + continue; +--- 7466,7473 ---- + continue; /* ignore #define, #if, etc. */ + curwin->w_cursor.lnum = lnum; + +! /* Skip a comment or raw string. XXX */ +! if ((trypos = ind_find_start_CORS()) != NULL) + { + lnum = trypos->lnum + 1; + continue; +*************** +*** 7583,7590 **** + * Make a copy of tryposBrace, it may point to pos_copy inside + * find_start_brace(), which may be changed somewhere. + */ +! tryposBraceCopy = *tryposBrace; +! tryposBrace = &tryposBraceCopy; + trypos = tryposBrace; + ourscope = trypos->lnum; + start = ml_get(ourscope); +--- 7695,7702 ---- + * Make a copy of tryposBrace, it may point to pos_copy inside + * find_start_brace(), which may be changed somewhere. + */ +! tryposCopy = *tryposBrace; +! tryposBrace = &tryposCopy; + trypos = tryposBrace; + ourscope = trypos->lnum; + start = ml_get(ourscope); +*************** +*** 7791,7800 **** + l = ml_get_curline(); + + /* +! * If we're in a comment now, skip to the start of the +! * comment. + */ +! trypos = ind_find_start_comment(); + if (trypos != NULL) + { + curwin->w_cursor.lnum = trypos->lnum + 1; +--- 7903,7912 ---- + l = ml_get_curline(); + + /* +! * If we're in a comment or raw string now, skip to +! * the start of it. + */ +! trypos = ind_find_start_CORS(); + if (trypos != NULL) + { + curwin->w_cursor.lnum = trypos->lnum + 1; +*************** +*** 7911,7919 **** + + l = ml_get_curline(); + +! /* If we're in a comment now, skip to the start of +! * the comment. */ +! trypos = ind_find_start_comment(); + if (trypos != NULL) + { + curwin->w_cursor.lnum = trypos->lnum + 1; +--- 8023,8031 ---- + + l = ml_get_curline(); + +! /* If we're in a comment or raw string now, skip +! * to the start of it. */ +! trypos = ind_find_start_CORS(); + if (trypos != NULL) + { + curwin->w_cursor.lnum = trypos->lnum + 1; +*************** +*** 7941,7949 **** + } + + /* +! * If we're in a comment now, skip to the start of the comment. + */ /* XXX */ +! if ((trypos = ind_find_start_comment()) != NULL) + { + curwin->w_cursor.lnum = trypos->lnum + 1; + curwin->w_cursor.col = 0; +--- 8053,8062 ---- + } + + /* +! * If we're in a comment or raw string now, skip to the start +! * of it. + */ /* XXX */ +! if ((trypos = ind_find_start_CORS()) != NULL) + { + curwin->w_cursor.lnum = trypos->lnum + 1; + curwin->w_cursor.col = 0; +*************** +*** 8729,9004 **** + /* subtract extra left-shift for jump labels */ + if (curbuf->b_ind_jump_label > 0 && original_line_islabel) + amount -= curbuf->b_ind_jump_label; + } +! else + { +! /* +! * ok -- we're not inside any sort of structure at all! +! * +! * This means we're at the top level, and everything should +! * basically just match where the previous line is, except +! * for the lines immediately following a function declaration, +! * which are K&R-style parameters and need to be indented. +! * +! * if our line starts with an open brace, forget about any +! * prevailing indent and make sure it looks like the start +! * of a function +! */ + +! if (theline[0] == '{') + { +! amount = curbuf->b_ind_first_open; + } + + /* +! * If the NEXT line is a function declaration, the current +! * line needs to be indented as a function type spec. +! * Don't do this if the current line looks like a comment or if the +! * current line is terminated, ie. ends in ';', or if the current line +! * contains { or }: "void f() {\n if (1)" +! */ +! else if (cur_curpos.lnum < curbuf->b_ml.ml_line_count +! && !cin_nocode(theline) +! && vim_strchr(theline, '{') == NULL +! && vim_strchr(theline, '}') == NULL +! && !cin_ends_in(theline, (char_u *)":", NULL) +! && !cin_ends_in(theline, (char_u *)",", NULL) +! && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, +! cur_curpos.lnum + 1) +! && !cin_isterminated(theline, FALSE, TRUE)) + { +! amount = curbuf->b_ind_func_type; + } +! else + { +! amount = 0; +! curwin->w_cursor = cur_curpos; +! +! /* search backwards until we find something we recognize */ + +! while (curwin->w_cursor.lnum > 1) +! { +! curwin->w_cursor.lnum--; +! curwin->w_cursor.col = 0; + +! l = ml_get_curline(); + +! /* +! * If we're in a comment now, skip to the start of the comment. +! */ /* XXX */ +! if ((trypos = ind_find_start_comment()) != NULL) +! { +! curwin->w_cursor.lnum = trypos->lnum + 1; +! curwin->w_cursor.col = 0; +! continue; +! } + +! /* +! * Are we at the start of a cpp base class declaration or +! * constructor initialization? +! */ /* XXX */ +! n = FALSE; +! if (curbuf->b_ind_cpp_baseclass != 0 && theline[0] != '{') +! { +! n = cin_is_cpp_baseclass(&cache_cpp_baseclass); +! l = ml_get_curline(); +! } +! if (n) +! { +! /* XXX */ +! amount = get_baseclass_amount(cache_cpp_baseclass.lpos.col); + break; +! } +! +! /* +! * Skip preprocessor directives and blank lines. +! */ +! if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum)) +! continue; +! +! if (cin_nocode(l)) +! continue; + +! /* +! * If the previous line ends in ',', use one level of +! * indentation: +! * int foo, +! * bar; +! * do this before checking for '}' in case of eg. +! * enum foobar +! * { +! * ... +! * } foo, +! * bar; +! */ +! n = 0; +! if (cin_ends_in(l, (char_u *)",", NULL) +! || (*l != NUL && (n = l[STRLEN(l) - 1]) == '\\')) +! { +! /* take us back to opening paren */ +! if (find_last_paren(l, '(', ')') +! && (trypos = find_match_paren( +! curbuf->b_ind_maxparen)) != NULL) +! curwin->w_cursor = *trypos; + +! /* For a line ending in ',' that is a continuation line go +! * back to the first line with a backslash: +! * char *foo = "bla\ +! * bla", +! * here; +! */ +! while (n == 0 && curwin->w_cursor.lnum > 1) +! { +! l = ml_get(curwin->w_cursor.lnum - 1); +! if (*l == NUL || l[STRLEN(l) - 1] != '\\') +! break; +! --curwin->w_cursor.lnum; +! curwin->w_cursor.col = 0; +! } + +! amount = get_indent(); /* XXX */ + +! if (amount == 0) +! amount = cin_first_id_amount(); +! if (amount == 0) +! amount = ind_continuation; +! break; +! } + +! /* +! * If the line looks like a function declaration, and we're +! * not in a comment, put it the left margin. +! */ +! if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0)) /* XXX */ +! break; +! l = ml_get_curline(); + +! /* +! * Finding the closing '}' of a previous function. Put +! * current line at the left margin. For when 'cino' has "fs". +! */ +! if (*skipwhite(l) == '}') +! break; + +! /* (matching {) +! * If the previous line ends on '};' (maybe followed by +! * comments) align at column 0. For example: +! * char *string_array[] = { "foo", +! * / * x * / "b};ar" }; / * foobar * / +! */ +! if (cin_ends_in(l, (char_u *)"};", NULL)) +! break; + +! /* +! * If the previous line ends on '[' we are probably in an +! * array constant: +! * something = [ +! * 234, <- extra indent +! */ +! if (cin_ends_in(l, (char_u *)"[", NULL)) +! { +! amount = get_indent() + ind_continuation; + break; +! } +! +! /* +! * Find a line only has a semicolon that belongs to a previous +! * line ending in '}', e.g. before an #endif. Don't increase +! * indent then. +! */ +! if (*(look = skipwhite(l)) == ';' && cin_nocode(look + 1)) +! { +! pos_T curpos_save = curwin->w_cursor; +! +! while (curwin->w_cursor.lnum > 1) +! { +! look = ml_get(--curwin->w_cursor.lnum); +! if (!(cin_nocode(look) || cin_ispreproc_cont( +! &look, &curwin->w_cursor.lnum))) +! break; +! } +! if (curwin->w_cursor.lnum > 0 +! && cin_ends_in(look, (char_u *)"}", NULL)) +! break; + +! curwin->w_cursor = curpos_save; +! } + +! /* +! * If the PREVIOUS line is a function declaration, the current +! * line (and the ones that follow) needs to be indented as +! * parameters. +! */ +! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0)) +! { +! amount = curbuf->b_ind_param; +! break; +! } + +! /* +! * If the previous line ends in ';' and the line before the +! * previous line ends in ',' or '\', ident to column zero: +! * int foo, +! * bar; +! * indent_to_0 here; +! */ +! if (cin_ends_in(l, (char_u *)";", NULL)) +! { +! l = ml_get(curwin->w_cursor.lnum - 1); +! if (cin_ends_in(l, (char_u *)",", NULL) +! || (*l != NUL && l[STRLEN(l) - 1] == '\\')) +! break; +! l = ml_get_curline(); +! } + +! /* +! * Doesn't look like anything interesting -- so just +! * use the indent of this line. +! * +! * Position the cursor over the rightmost paren, so that +! * matching it will take us back to the start of the line. +! */ +! find_last_paren(l, '(', ')'); + +! if ((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) +! curwin->w_cursor = *trypos; +! amount = get_indent(); /* XXX */ +! break; +! } + +! /* add extra indent for a comment */ +! if (cin_iscomment(theline)) +! amount += curbuf->b_ind_comment; +! +! /* add extra indent if the previous line ended in a backslash: +! * "asdfasdf\ +! * here"; +! * char *foo = "asdf\ +! * here"; +! */ +! if (cur_curpos.lnum > 1) +! { +! l = ml_get(cur_curpos.lnum - 1); +! if (*l != NUL && l[STRLEN(l) - 1] == '\\') +! { +! cur_amount = cin_get_equal_amount(cur_curpos.lnum - 1); +! if (cur_amount > 0) +! amount = cur_amount; +! else if (cur_amount == 0) +! amount += ind_continuation; +! } +! } + } + } + + theend: + /* put the cursor back where it belongs */ + curwin->w_cursor = cur_curpos; + + vim_free(linecopy); + +- if (amount < 0) +- return 0; + return amount; + } + +--- 8842,9118 ---- + /* subtract extra left-shift for jump labels */ + if (curbuf->b_ind_jump_label > 0 && original_line_islabel) + amount -= curbuf->b_ind_jump_label; ++ ++ goto theend; + } +! +! /* +! * ok -- we're not inside any sort of structure at all! +! * +! * This means we're at the top level, and everything should +! * basically just match where the previous line is, except +! * for the lines immediately following a function declaration, +! * which are K&R-style parameters and need to be indented. +! * +! * if our line starts with an open brace, forget about any +! * prevailing indent and make sure it looks like the start +! * of a function +! */ +! +! if (theline[0] == '{') + { +! amount = curbuf->b_ind_first_open; +! goto theend; +! } + +! /* +! * If the NEXT line is a function declaration, the current +! * line needs to be indented as a function type spec. +! * Don't do this if the current line looks like a comment or if the +! * current line is terminated, ie. ends in ';', or if the current line +! * contains { or }: "void f() {\n if (1)" +! */ +! if (cur_curpos.lnum < curbuf->b_ml.ml_line_count +! && !cin_nocode(theline) +! && vim_strchr(theline, '{') == NULL +! && vim_strchr(theline, '}') == NULL +! && !cin_ends_in(theline, (char_u *)":", NULL) +! && !cin_ends_in(theline, (char_u *)",", NULL) +! && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, +! cur_curpos.lnum + 1) +! && !cin_isterminated(theline, FALSE, TRUE)) +! { +! amount = curbuf->b_ind_func_type; +! goto theend; +! } +! +! /* search backwards until we find something we recognize */ +! amount = 0; +! curwin->w_cursor = cur_curpos; +! while (curwin->w_cursor.lnum > 1) +! { +! curwin->w_cursor.lnum--; +! curwin->w_cursor.col = 0; +! +! l = ml_get_curline(); +! +! /* +! * If we're in a comment or raw string now, skip to the start +! * of it. +! */ /* XXX */ +! if ((trypos = ind_find_start_CORS()) != NULL) + { +! curwin->w_cursor.lnum = trypos->lnum + 1; +! curwin->w_cursor.col = 0; +! continue; + } + + /* +! * Are we at the start of a cpp base class declaration or +! * constructor initialization? +! */ /* XXX */ +! n = FALSE; +! if (curbuf->b_ind_cpp_baseclass != 0 && theline[0] != '{') + { +! n = cin_is_cpp_baseclass(&cache_cpp_baseclass); +! l = ml_get_curline(); + } +! if (n) + { +! /* XXX */ +! amount = get_baseclass_amount(cache_cpp_baseclass.lpos.col); +! break; +! } + +! /* +! * Skip preprocessor directives and blank lines. +! */ +! if (cin_ispreproc_cont(&l, &curwin->w_cursor.lnum)) +! continue; + +! if (cin_nocode(l)) +! continue; + +! /* +! * If the previous line ends in ',', use one level of +! * indentation: +! * int foo, +! * bar; +! * do this before checking for '}' in case of eg. +! * enum foobar +! * { +! * ... +! * } foo, +! * bar; +! */ +! n = 0; +! if (cin_ends_in(l, (char_u *)",", NULL) +! || (*l != NUL && (n = l[STRLEN(l) - 1]) == '\\')) +! { +! /* take us back to opening paren */ +! if (find_last_paren(l, '(', ')') +! && (trypos = find_match_paren( +! curbuf->b_ind_maxparen)) != NULL) +! curwin->w_cursor = *trypos; + +! /* For a line ending in ',' that is a continuation line go +! * back to the first line with a backslash: +! * char *foo = "bla\ +! * bla", +! * here; +! */ +! while (n == 0 && curwin->w_cursor.lnum > 1) +! { +! l = ml_get(curwin->w_cursor.lnum - 1); +! if (*l == NUL || l[STRLEN(l) - 1] != '\\') + break; +! --curwin->w_cursor.lnum; +! curwin->w_cursor.col = 0; +! } + +! amount = get_indent(); /* XXX */ + +! if (amount == 0) +! amount = cin_first_id_amount(); +! if (amount == 0) +! amount = ind_continuation; +! break; +! } + +! /* +! * If the line looks like a function declaration, and we're +! * not in a comment, put it the left margin. +! */ +! if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0)) /* XXX */ +! break; +! l = ml_get_curline(); + +! /* +! * Finding the closing '}' of a previous function. Put +! * current line at the left margin. For when 'cino' has "fs". +! */ +! if (*skipwhite(l) == '}') +! break; + +! /* (matching {) +! * If the previous line ends on '};' (maybe followed by +! * comments) align at column 0. For example: +! * char *string_array[] = { "foo", +! * / * x * / "b};ar" }; / * foobar * / +! */ +! if (cin_ends_in(l, (char_u *)"};", NULL)) +! break; + +! /* +! * If the previous line ends on '[' we are probably in an +! * array constant: +! * something = [ +! * 234, <- extra indent +! */ +! if (cin_ends_in(l, (char_u *)"[", NULL)) +! { +! amount = get_indent() + ind_continuation; +! break; +! } + +! /* +! * Find a line only has a semicolon that belongs to a previous +! * line ending in '}', e.g. before an #endif. Don't increase +! * indent then. +! */ +! if (*(look = skipwhite(l)) == ';' && cin_nocode(look + 1)) +! { +! pos_T curpos_save = curwin->w_cursor; + +! while (curwin->w_cursor.lnum > 1) +! { +! look = ml_get(--curwin->w_cursor.lnum); +! if (!(cin_nocode(look) || cin_ispreproc_cont( +! &look, &curwin->w_cursor.lnum))) + break; +! } +! if (curwin->w_cursor.lnum > 0 +! && cin_ends_in(look, (char_u *)"}", NULL)) +! break; + +! curwin->w_cursor = curpos_save; +! } + +! /* +! * If the PREVIOUS line is a function declaration, the current +! * line (and the ones that follow) needs to be indented as +! * parameters. +! */ +! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0)) +! { +! amount = curbuf->b_ind_param; +! break; +! } + +! /* +! * If the previous line ends in ';' and the line before the +! * previous line ends in ',' or '\', ident to column zero: +! * int foo, +! * bar; +! * indent_to_0 here; +! */ +! if (cin_ends_in(l, (char_u *)";", NULL)) +! { +! l = ml_get(curwin->w_cursor.lnum - 1); +! if (cin_ends_in(l, (char_u *)",", NULL) +! || (*l != NUL && l[STRLEN(l) - 1] == '\\')) +! break; +! l = ml_get_curline(); +! } + +! /* +! * Doesn't look like anything interesting -- so just +! * use the indent of this line. +! * +! * Position the cursor over the rightmost paren, so that +! * matching it will take us back to the start of the line. +! */ +! find_last_paren(l, '(', ')'); + +! if ((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) +! curwin->w_cursor = *trypos; +! amount = get_indent(); /* XXX */ +! break; +! } + +! /* add extra indent for a comment */ +! if (cin_iscomment(theline)) +! amount += curbuf->b_ind_comment; +! +! /* add extra indent if the previous line ended in a backslash: +! * "asdfasdf\ +! * here"; +! * char *foo = "asdf\ +! * here"; +! */ +! if (cur_curpos.lnum > 1) +! { +! l = ml_get(cur_curpos.lnum - 1); +! if (*l != NUL && l[STRLEN(l) - 1] == '\\') +! { +! cur_amount = cin_get_equal_amount(cur_curpos.lnum - 1); +! if (cur_amount > 0) +! amount = cur_amount; +! else if (cur_amount == 0) +! amount += ind_continuation; + } + } + + theend: ++ if (amount < 0) ++ amount = 0; ++ ++ laterend: + /* put the cursor back where it belongs */ + curwin->w_cursor = cur_curpos; + + vim_free(linecopy); + + return amount; + } + +*** ../vim-7.4.802/src/edit.c 2015-07-21 17:53:11.577527989 +0200 +--- src/edit.c 2015-07-28 19:40:27.771945786 +0200 +*************** +*** 7813,7821 **** + fixthisline(get_the_indent) + int (*get_the_indent) __ARGS((void)); + { +! change_indent(INDENT_SET, get_the_indent(), FALSE, 0, TRUE); +! if (linewhite(curwin->w_cursor.lnum)) +! did_ai = TRUE; /* delete the indent if the line stays empty */ + } + + void +--- 7813,7826 ---- + fixthisline(get_the_indent) + int (*get_the_indent) __ARGS((void)); + { +! int amount = get_the_indent(); +! +! if (amount >= 0) +! { +! change_indent(INDENT_SET, amount, FALSE, 0, TRUE); +! if (linewhite(curwin->w_cursor.lnum)) +! did_ai = TRUE; /* delete the indent if the line stays empty */ +! } + } + + void +*** ../vim-7.4.802/src/ops.c 2015-07-22 22:46:08.127010101 +0200 +--- src/ops.c 2015-07-28 19:45:37.060848436 +0200 +*************** +*** 686,692 **** + { + long i; + char_u *l; +! int count; + linenr_T first_changed = 0; + linenr_T last_changed = 0; + linenr_T start_lnum = curwin->w_cursor.lnum; +--- 686,692 ---- + { + long i; + char_u *l; +! int amount; + linenr_T first_changed = 0; + linenr_T last_changed = 0; + linenr_T start_lnum = curwin->w_cursor.lnum; +*************** +*** 719,729 **** + { + l = skipwhite(ml_get_curline()); + if (*l == NUL) /* empty or blank line */ +! count = 0; + else +! count = how(); /* get the indent for this line */ + +! if (set_indent(count, SIN_UNDO)) + { + /* did change the indent, call changed_lines() later */ + if (first_changed == 0) +--- 719,729 ---- + { + l = skipwhite(ml_get_curline()); + if (*l == NUL) /* empty or blank line */ +! amount = 0; + else +! amount = how(); /* get the indent for this line */ + +! if (amount >= 0 && set_indent(amount, SIN_UNDO)) + { + /* did change the indent, call changed_lines() later */ + if (first_changed == 0) +*** ../vim-7.4.802/src/testdir/test3.in 2015-03-20 19:06:01.982429823 +0100 +--- src/testdir/test3.in 2015-07-28 20:03:32.290099553 +0200 +*************** +*** 891,896 **** +--- 891,915 ---- + 111111111111111111; + } + ++ void getstring() { ++ /* Raw strings */ ++ const char* s = R"( ++ test { ++ # comment ++ field: 123 ++ } ++ )"; ++ } ++ ++ void getstring() { ++ const char* s = R"foo( ++ test { ++ # comment ++ field: 123 ++ } ++ )foo"; ++ } ++ + /* end of AUTO */ + + STARTTEST +*** ../vim-7.4.802/src/testdir/test3.ok 2015-03-20 19:06:01.986429778 +0100 +--- src/testdir/test3.ok 2015-07-28 20:03:59.985823030 +0200 +*************** +*** 879,884 **** +--- 879,903 ---- + 111111111111111111; + } + ++ void getstring() { ++ /* Raw strings */ ++ const char* s = R"( ++ test { ++ # comment ++ field: 123 ++ } ++ )"; ++ } ++ ++ void getstring() { ++ const char* s = R"foo( ++ test { ++ # comment ++ field: 123 ++ } ++ )foo"; ++ } ++ + /* end of AUTO */ + + +*** ../vim-7.4.802/src/version.c 2015-07-28 17:16:28.302488118 +0200 +--- src/version.c 2015-07-28 21:07:42.219893314 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 803, + /**/ + +-- +Facepalm statement #4: "3000 year old graves? That's not possible, it's only +2014!" + + /// 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 /// From eb62945a43c213b7ed4ccf83c4f666aba44ab103 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:47 +0200 Subject: [PATCH 0293/1407] - patchlevel 804 --- 7.4.804 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.4.804 diff --git a/7.4.804 b/7.4.804 new file mode 100644 index 00000000..ef43d46a --- /dev/null +++ b/7.4.804 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.804 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.804 +Problem: Xxd doesn't have a license notice. +Solution: Add license as indicated by Juergen. +Files: src/xxd/xxd.c + + +*** ../vim-7.4.803/src/xxd/xxd.c 2015-03-05 17:51:10.784921052 +0100 +--- src/xxd/xxd.c 2015-08-02 16:58:57.275281442 +0200 +*************** +*** 55,60 **** +--- 55,63 ---- + * + * (c) 1990-1998 by Juergen Weigert (jnweiger@informatik.uni-erlangen.de) + * ++ * I hereby grant permission to distribute and use xxd ++ * under X11-MIT or GPL-2.0 (at the user's choice). ++ * + * Small changes made afterwards by Bram Moolenaar et al. + * + * Distribute freely and credit me, +*** ../vim-7.4.803/src/version.c 2015-07-28 21:17:31.526069349 +0200 +--- src/version.c 2015-08-04 17:28:26.483806771 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 804, + /**/ + +-- +Q: Why do ducks have flat feet? +A: To stamp out forest fires. + +Q: Why do elephants have flat feet? +A: To stamp out flaming ducks. + + /// 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 /// From 5d2848e4077019888be59870b47b1ec3dcd1af9a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:48 +0200 Subject: [PATCH 0294/1407] - patchlevel 805 --- 7.4.805 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.805 diff --git a/7.4.805 b/7.4.805 new file mode 100644 index 00000000..b974a45a --- /dev/null +++ b/7.4.805 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.805 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.805 +Problem: The ruler shows "Bot" even when there are only filler lines + missing. (Gary Johnson) +Solution: Use "All" when the first line and one filler line are visible. +Files: src/buffer.c + + +*** ../vim-7.4.804/src/buffer.c 2015-07-21 15:03:00.691467213 +0200 +--- src/buffer.c 2015-08-04 17:38:28.340901106 +0200 +*************** +*** 4434,4439 **** +--- 4434,4443 ---- + above = wp->w_topline - 1; + #ifdef FEAT_DIFF + above += diff_check_fill(wp, wp->w_topline) - wp->w_topfill; ++ if (wp->w_topline == 1 && wp->w_topfill >= 1) ++ above = 0; /* All buffer lines are displayed and there is an ++ * indication of filler lines, that can be considered ++ * seeing all lines. */ + #endif + below = wp->w_buffer->b_ml.ml_line_count - wp->w_botline + 1; + if (below <= 0) +*** ../vim-7.4.804/src/version.c 2015-08-04 17:29:02.863390617 +0200 +--- src/version.c 2015-08-04 17:42:39.858011243 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 805, + /**/ + +-- +Not too long ago, a keyboard was something to make music with... + + /// 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 /// From 6bb483467a2e8a7f260bbdf732e06d3797064ed8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:48 +0200 Subject: [PATCH 0295/1407] - patchlevel 806 --- 7.4.806 | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 7.4.806 diff --git a/7.4.806 b/7.4.806 new file mode 100644 index 00000000..a9e08c15 --- /dev/null +++ b/7.4.806 @@ -0,0 +1,182 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.806 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.806 +Problem: CTRL-A in Visual mode doesn't work properly with "alpha" in + 'nrformat'. +Solution: Make it work. (Christian Brabandt) +Files: src/ops.c, src/testdir/test_increment.in, + src/testdir/test_increment.ok + + +*** ../vim-7.4.805/src/ops.c 2015-07-28 21:17:31.526069349 +0200 +--- src/ops.c 2015-08-04 18:22:23.110938512 +0200 +*************** +*** 5492,5497 **** +--- 5492,5499 ---- + + for (i = lnum; i <= lnume; i++) + { ++ colnr_T stop = 0; ++ + t = curwin->w_cursor; + curwin->w_cursor.lnum = i; + ptr = ml_get_curline(); +*************** +*** 5501,5531 **** + continue; + if (visual) + { +! if (doalp) /* search for ascii chars */ +! { +! while (!ASCII_ISALPHA(ptr[col]) && ptr[col]) +! col++; +! } +! /* skip to first digit, but allow for leading '-' */ +! else if (dohex) + { +! while (!(vim_isxdigit(ptr[col]) || (ptr[col] == '-' +! && vim_isxdigit(ptr[col+1]))) && ptr[col]) +! col++; + } +! else /* decimal */ + { +! while (!(vim_isdigit(ptr[col]) || (ptr[col] == '-' +! && vim_isdigit(ptr[col+1]))) && ptr[col]) +! col++; + } + } +- if (visual && ptr[col] == '-') +- { +- negative = TRUE; +- was_positive = FALSE; +- col++; +- } + /* + * If a number was found, and saving for undo works, replace the number. + */ +--- 5503,5530 ---- + continue; + if (visual) + { +! if (VIsual_mode == 'v' +! && i == lnume) +! stop = curwin->w_cursor.col; +! else if (VIsual_mode == Ctrl_V +! && curbuf->b_visual.vi_curswant != MAXCOL) +! stop = curwin->w_cursor.col; +! +! while (ptr[col] != NUL +! && !vim_isdigit(ptr[col]) +! && !(doalp && ASCII_ISALPHA(ptr[col]))) + { +! if (col > 0 && col == stop) +! break; +! ++col; + } +! +! if (col > startcol && ptr[col - 1] == '-') + { +! negative = TRUE; +! was_positive = FALSE; + } + } + /* + * If a number was found, and saving for undo works, replace the number. + */ +*** ../vim-7.4.805/src/testdir/test_increment.in 2015-07-17 13:03:42.108357465 +0200 +--- src/testdir/test_increment.in 2015-08-04 18:18:44.421419280 +0200 +*************** +*** 260,265 **** +--- 260,275 ---- + 9 + 12 + ++ 19) increment on number with nrformat including alpha ++ Text: ++ 1 ++ 1a ++ ++ Expected: ++ 1) j$ ++ 2 ++ 1b ++ + + + STARTTEST +*************** +*** 369,374 **** +--- 379,391 ---- + :/^E18=/+put a + V3kg.. + ++ :" Test 19 ++ :set nrformats+=alpha ++ :/^S19=/+,/^E19=/-y a ++ :/^E19=/+put a ++ k$ ++ :set nrformats&vim ++ + :" Save the report + :/^# Test 1/,$w! test.out + :qa! +*************** +*** 547,552 **** +--- 564,576 ---- + + + ++ # Test 19 ++ S19==== ++ 1 ++ 1a ++ E19==== ++ ++ + + + ENDTEST +*** ../vim-7.4.805/src/testdir/test_increment.ok 2015-07-17 13:03:42.108357465 +0200 +--- src/testdir/test_increment.ok 2015-08-04 18:18:44.425419233 +0200 +*************** +*** 261,266 **** +--- 261,275 ---- + 12 + + ++ # Test 19 ++ S19==== ++ 1 ++ 1a ++ E19==== ++ ++ 2 ++ 2a ++ + + + ENDTEST +*** ../vim-7.4.805/src/version.c 2015-08-04 17:43:20.577543527 +0200 +--- src/version.c 2015-08-04 18:08:55.096101557 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 806, + /**/ + +-- +Not too long ago, compress was something you did to garbage... + + /// 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 /// From 7eee432dd45c2f203b133b000c7722ae3917dd0d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:49 +0200 Subject: [PATCH 0296/1407] - patchlevel 807 --- 7.4.807 | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 7.4.807 diff --git a/7.4.807 b/7.4.807 new file mode 100644 index 00000000..95901fc8 --- /dev/null +++ b/7.4.807 @@ -0,0 +1,137 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.807 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.807 (after 7.4.798) +Problem: After CTRL-V CTRL-A mode isn't updated. (Hirohito Higashi) +Solution: Clear the command line or update the displayed command. +Files: src/normal.c + + +*** ../vim-7.4.806/src/normal.c 2015-07-28 11:21:27.041407266 +0200 +--- src/normal.c 2015-08-04 19:09:32.059034805 +0200 +*************** +*** 48,53 **** +--- 48,54 ---- + static void clearop __ARGS((oparg_T *oap)); + static void clearopbeep __ARGS((oparg_T *oap)); + static void unshift_special __ARGS((cmdarg_T *cap)); ++ static void may_clear_cmdline __ARGS((void)); + #ifdef FEAT_CMDL_INFO + static void del_from_showcmd __ARGS((int)); + #endif +*************** +*** 1752,1763 **** + setmouse(); + mouse_dragging = 0; + #endif +! if (mode_displayed) +! clear_cmdline = TRUE; /* unshow visual mode later */ +! #ifdef FEAT_CMDL_INFO +! else +! clear_showcmd(); +! #endif + if ((oap->op_type == OP_YANK + || oap->op_type == OP_COLON + || oap->op_type == OP_FUNCTION +--- 1753,1759 ---- + setmouse(); + mouse_dragging = 0; + #endif +! may_clear_cmdline(); + if ((oap->op_type == OP_YANK + || oap->op_type == OP_COLON + || oap->op_type == OP_FUNCTION +*************** +*** 3312,3324 **** + if (!virtual_active()) + curwin->w_cursor.coladd = 0; + #endif +! +! if (mode_displayed) +! clear_cmdline = TRUE; /* unshow visual mode later */ +! #ifdef FEAT_CMDL_INFO +! else +! clear_showcmd(); +! #endif + + adjust_cursor_eol(); + } +--- 3308,3314 ---- + if (!virtual_active()) + curwin->w_cursor.coladd = 0; + #endif +! may_clear_cmdline(); + + adjust_cursor_eol(); + } +*************** +*** 3763,3768 **** +--- 3753,3773 ---- + cap->cmdchar = simplify_key(cap->cmdchar, &mod_mask); + } + ++ /* ++ * If the mode is currently displayed clear the command line or update the ++ * command displayed. ++ */ ++ static void ++ may_clear_cmdline() ++ { ++ if (mode_displayed) ++ clear_cmdline = TRUE; /* unshow visual mode later */ ++ #ifdef FEAT_CMDL_INFO ++ else ++ clear_showcmd(); ++ #endif ++ } ++ + #if defined(FEAT_CMDL_INFO) || defined(PROTO) + /* + * Routines for displaying a partly typed command +*************** +*** 4240,4245 **** +--- 4245,4251 ---- + cmdarg_T *cap; + { + int visual = VIsual_active; ++ + if (cap->oap->op_type == OP_NOP + && do_addsub((int)cap->cmdchar, cap->count1, cap->arg) == OK) + { +*************** +*** 4259,4264 **** +--- 4265,4271 ---- + { + VIsual_active = FALSE; + redo_VIsual_busy = FALSE; ++ may_clear_cmdline(); + redraw_later(INVERTED); + } + } +*** ../vim-7.4.806/src/version.c 2015-08-04 18:23:16.538332360 +0200 +--- src/version.c 2015-08-04 19:11:33.805670860 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 807, + /**/ + +-- +LAUNCELOT: At last! A call! A cry of distress ... + (he draws his sword, and turns to CONCORDE) + Concorde! Brave, Concorde ... you shall not have died in vain! +CONCORDE: I'm not quite dead, sir ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 0826df10e5f422b0f5b99d7392262a0553099fe0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:49 +0200 Subject: [PATCH 0297/1407] - patchlevel 808 --- 7.4.808 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.808 diff --git a/7.4.808 b/7.4.808 new file mode 100644 index 00000000..8af74d66 --- /dev/null +++ b/7.4.808 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.808 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.808 +Problem: On MS-Windows 10 IME input doen't work correctly. +Solution: Read console input before calling MsgWaitForMultipleObjects(). + (vim-jp, Nobuhiro Takasaki) +Files: src/os_win32.c + + +*** ../vim-7.4.807/src/os_win32.c 2015-07-17 14:16:49.854596682 +0200 +--- src/os_win32.c 2015-08-04 19:23:17.165798107 +0200 +*************** +*** 259,264 **** +--- 259,267 ---- + int tail; + int i; + ++ if (nLength == -2) ++ return (s_dwMax > 0) ? TRUE : FALSE; ++ + if (!win8_or_later) + { + if (nLength == -1) +*************** +*** 303,309 **** + } + + *lpBuffer = s_irCache[s_dwIndex]; +! if (nLength != -1 && ++s_dwIndex >= s_dwMax) + s_dwMax = 0; + *lpEvents = 1; + return TRUE; +--- 306,312 ---- + } + + *lpBuffer = s_irCache[s_dwIndex]; +! if (!(nLength == -1 || nLength == -2) && ++s_dwIndex >= s_dwMax) + s_dwMax = 0; + *lpEvents = 1; + return TRUE; +*************** +*** 322,327 **** +--- 325,354 ---- + return read_console_input(hInput, lpBuffer, -1, lpEvents); + } + ++ static DWORD ++ msg_wait_for_multiple_objects( ++ DWORD nCount, ++ LPHANDLE pHandles, ++ BOOL fWaitAll, ++ DWORD dwMilliseconds, ++ DWORD dwWakeMask) ++ { ++ if (read_console_input(NULL, NULL, -2, NULL)) ++ return WAIT_OBJECT_0; ++ return MsgWaitForMultipleObjects(nCount, pHandles, fWaitAll, ++ dwMilliseconds, dwWakeMask); ++ } ++ ++ static DWORD ++ wait_for_single_object( ++ HANDLE hHandle, ++ DWORD dwMilliseconds) ++ { ++ if (read_console_input(NULL, NULL, -2, NULL)) ++ return WAIT_OBJECT_0; ++ return WaitForSingleObject(hHandle, dwMilliseconds); ++ } ++ + static void + get_exe_name(void) + { +*************** +*** 1459,1468 **** + #ifdef FEAT_CLIENTSERVER + /* Wait for either an event on the console input or a message in + * the client-server window. */ +! if (MsgWaitForMultipleObjects(1, &g_hConIn, FALSE, + dwWaitTime, QS_SENDMESSAGE) != WAIT_OBJECT_0) + #else +! if (WaitForSingleObject(g_hConIn, dwWaitTime) != WAIT_OBJECT_0) + #endif + continue; + } +--- 1486,1495 ---- + #ifdef FEAT_CLIENTSERVER + /* Wait for either an event on the console input or a message in + * the client-server window. */ +! if (msg_wait_for_multiple_objects(1, &g_hConIn, FALSE, + dwWaitTime, QS_SENDMESSAGE) != WAIT_OBJECT_0) + #else +! if (wait_for_single_object(g_hConIn, dwWaitTime) != WAIT_OBJECT_0) + #endif + continue; + } +*** ../vim-7.4.807/src/version.c 2015-08-04 19:18:46.044825907 +0200 +--- src/version.c 2015-08-04 19:24:45.568810366 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 808, + /**/ + +-- +Why doesn't Tarzan have a beard? + + /// 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 /// From 497795a452a2f34b1f0d8356a8a27ccac8e251cc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:50 +0200 Subject: [PATCH 0298/1407] - patchlevel 809 --- 7.4.809 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 7.4.809 diff --git a/7.4.809 b/7.4.809 new file mode 100644 index 00000000..6a0ba55d --- /dev/null +++ b/7.4.809 @@ -0,0 +1,63 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.809 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.809 (after 7.4.802) +Problem: Test is duplicated. +Solution: Roll back 7.4.802. +Files: src/testdir/test39.in, src/testdir/test39.ok + + +*** ../vim-7.4.808/src/testdir/test39.in 2015-07-28 17:16:28.298488158 +0200 +--- src/testdir/test39.in 2015-08-04 21:16:02.706707689 +0200 +*************** +*** 51,62 **** + :exe ":norm! 012l\jjAx\" + :set ve= enc=latin1 + :.,/^$/w >> test.out +- :" Test for single-line Visual block append at wrapped line with :set linebreak +- Golong line: 40afoobar aTARGET at end +- :set linebreak +- :exe ":norm! $3B\eAx\" +- :set nolinebreak +- :.w >> test.out + :" gUe must uppercase a whole word, also when ß changes to SS + Gothe youtußeuu endYpk0wgUe + :" gUfx must uppercase until x, inclusive. +--- 51,56 ---- +*** ../vim-7.4.808/src/testdir/test39.ok 2015-07-28 17:16:28.298488158 +0200 +--- src/testdir/test39.ok 2015-08-04 21:14:24.123814265 +0200 +*************** +*** 30,36 **** + x x line2 + x x line3 + +- long line: foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar foobar TARGETx at end + the YOUTUSSEUU end + - yOUSSTUSSEXu - + THE YOUTUSSEUU END +--- 30,35 ---- +*** ../vim-7.4.808/src/version.c 2015-08-04 19:26:59.747310733 +0200 +--- src/version.c 2015-08-04 21:13:40.496304045 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 809, + /**/ + +-- +PRINCE: He's come to rescue me, father. +LAUNCELOT: (embarrassed) Well, let's not jump to conclusions ... + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From d83a62531385eeb88d2d72893bc15de23f3ea9bb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:51 +0200 Subject: [PATCH 0299/1407] - patchlevel 810 --- 7.4.810 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.810 diff --git a/7.4.810 b/7.4.810 new file mode 100644 index 00000000..20ad3bb1 --- /dev/null +++ b/7.4.810 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.810 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.810 +Problem: With a sequence of commands using buffers in diff mode E749 is + given. (itchyny) +Solution: Skip unloaded buffer. (Hirohito Higashi) +Files: src/diff.c + + +*** ../vim-7.4.809/src/diff.c 2015-07-03 15:06:49.714360608 +0200 +--- src/diff.c 2015-08-04 21:30:25.100999807 +0200 +*************** +*** 804,811 **** + for (idx_new = idx_orig + 1; idx_new < DB_COUNT; ++idx_new) + { + buf = curtab->tp_diffbuf[idx_new]; +! if (buf == NULL) +! continue; + if (diff_write(buf, tmp_new) == FAIL) + continue; + diff_file(tmp_orig, tmp_new, tmp_diff); +--- 804,811 ---- + for (idx_new = idx_orig + 1; idx_new < DB_COUNT; ++idx_new) + { + buf = curtab->tp_diffbuf[idx_new]; +! if (buf == NULL || buf->b_ml.ml_mfp == NULL) +! continue; /* skip buffer that isn't loaded */ + if (diff_write(buf, tmp_new) == FAIL) + continue; + diff_file(tmp_orig, tmp_new, tmp_diff); +*** ../vim-7.4.809/src/version.c 2015-08-04 21:27:02.767279357 +0200 +--- src/version.c 2015-08-04 21:32:41.559463140 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 810, + /**/ + +-- +A vacation is a period of travel during which you find that you +took twice as many clothes and half as much money as you needed. + + /// 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 /// From 8dc24c6af3f8c78046a24d77bcba65713f9d895c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:51 +0200 Subject: [PATCH 0300/1407] - patchlevel 811 --- 7.4.811 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 7.4.811 diff --git a/7.4.811 b/7.4.811 new file mode 100644 index 00000000..3912e328 --- /dev/null +++ b/7.4.811 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.811 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.811 +Problem: Invalid memory access when using "exe 'sc'". +Solution: Avoid going over the end of the string. (Dominique Pelle) +Files: src/ex_docmd.c + + +*** ../vim-7.4.810/src/ex_docmd.c 2015-07-28 14:25:41.848151118 +0200 +--- src/ex_docmd.c 2015-08-04 22:01:59.955636265 +0200 +*************** +*** 3129,3136 **** + ++p; + } + else if (p[0] == 's' +! && ((p[1] == 'c' && p[2] != 's' && p[2] != 'r' +! && p[3] != 'i' && p[4] != 'p') + || p[1] == 'g' + || (p[1] == 'i' && p[2] != 'm' && p[2] != 'l' && p[2] != 'g') + || p[1] == 'I' +--- 3129,3136 ---- + ++p; + } + else if (p[0] == 's' +! && ((p[1] == 'c' && (p[2] == NUL || (p[2] != 's' && p[2] != 'r' +! && (p[3] == NUL || (p[3] != 'i' && p[4] != 'p'))))) + || p[1] == 'g' + || (p[1] == 'i' && p[2] != 'm' && p[2] != 'l' && p[2] != 'g') + || p[1] == 'I' +*** ../vim-7.4.810/src/version.c 2015-08-04 21:51:20.522881723 +0200 +--- src/version.c 2015-08-04 22:01:29.395985096 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 811, + /**/ + +-- + ** Hello and Welcome to the Psychiatric Hotline ** +If you are obsessive-compulsive, please press 1 repeatedly. +If you are co-dependent, please ask someone to press 2. +If you have multiple personalities, please press 3, 4, 5 and 6. +If you are paranoid-delusional, we know who you are and what you want + - just stay on the line so we can trace the call. +If you are schizophrenic, listen carefully and a little voice will + tell you which number to press next. +If you are manic-depressive, it doesn't matter which number you press + - no one will answer. +If you suffer from panic attacks, push every button you can find. +If you are sane, please hold on - we have the rest of humanity on the + other line and they desparately want to ask you a few questions. + + /// 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 /// From 24213e3902c40d19f9e41e8ffe41ff3e6bbdc1a6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:52 +0200 Subject: [PATCH 0301/1407] - patchlevel 812 --- 7.4.812 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.812 diff --git a/7.4.812 b/7.4.812 new file mode 100644 index 00000000..45f05b12 --- /dev/null +++ b/7.4.812 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.812 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.812 +Problem: Gcc sanitizer complains about using a NULL pointer to memmove(). +Solution: Only call memmove when there is something to move. (Vittorio + Zecca) +Files: src/memline.c + + +*** ../vim-7.4.811/src/memline.c 2015-07-17 14:16:49.846596759 +0200 +--- src/memline.c 2015-08-08 14:14:21.129601118 +0200 +*************** +*** 3834,3840 **** + (buf->b_ml.ml_stack_size + STACK_INCR)); + if (newstack == NULL) + return -1; +! mch_memmove(newstack, buf->b_ml.ml_stack, + (size_t)top * sizeof(infoptr_T)); + vim_free(buf->b_ml.ml_stack); + buf->b_ml.ml_stack = newstack; +--- 3834,3841 ---- + (buf->b_ml.ml_stack_size + STACK_INCR)); + if (newstack == NULL) + return -1; +! if (top > 0) +! mch_memmove(newstack, buf->b_ml.ml_stack, + (size_t)top * sizeof(infoptr_T)); + vim_free(buf->b_ml.ml_stack); + buf->b_ml.ml_stack = newstack; +*** ../vim-7.4.811/src/version.c 2015-08-04 22:02:45.215119715 +0200 +--- src/version.c 2015-08-08 18:23:30.167691718 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 812, + /**/ + +-- +DEAD PERSON: I'm getting better! +CUSTOMER: No, you're not -- you'll be stone dead in a moment. +MORTICIAN: Oh, I can't take him like that -- it's against regulations. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 9f44d6bc07cea281576bc37f08e20d3d3584f126 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:52 +0200 Subject: [PATCH 0302/1407] - patchlevel 813 --- 7.4.813 | 646 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 646 insertions(+) create mode 100644 7.4.813 diff --git a/7.4.813 b/7.4.813 new file mode 100644 index 00000000..f05962e6 --- /dev/null +++ b/7.4.813 @@ -0,0 +1,646 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.813 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.813 +Problem: It is not possible to save and restore character search state. +Solution: Add getcharsearch() and setcharsearch(). (James McCoy) +Files: runtime/doc/eval.txt, src/eval.c, src/proto/search.pro, + src/search.c, src/testdir/test_charsearch.in, + src/testdir/test_charsearch.ok, src/testdir/Makefile, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms + + +*** ../vim-7.4.812/runtime/doc/eval.txt 2015-07-21 15:48:13.581518028 +0200 +--- runtime/doc/eval.txt 2015-08-11 13:32:31.643435417 +0200 +*************** +*** 1820,1828 **** + any variable {varname} in buffer {expr} + getchar( [expr]) Number get one character from the user + getcharmod( ) Number modifiers for the last typed character + getcmdline() String return the current command-line + getcmdpos() Number return cursor position in command-line +! getcmdtype() String return the current command-line type + getcurpos() List position of the cursor + getcwd() String the current working directory + getfontname( [{name}]) String name of font being used +--- 1822,1832 ---- + any variable {varname} in buffer {expr} + getchar( [expr]) Number get one character from the user + getcharmod( ) Number modifiers for the last typed character ++ getcharsearch() Dict last character search + getcmdline() String return the current command-line + getcmdpos() Number return cursor position in command-line +! getcmdtype() String return current command-line type +! getcmdwintype() String return current command-line window type + getcurpos() List position of the cursor + getcwd() String the current working directory + getfontname( [{name}]) String name of font being used +*************** +*** 1968,1973 **** +--- 1972,1978 ---- + Number send reply string + serverlist() String get a list of available servers + setbufvar( {expr}, {varname}, {val}) set {varname} in buffer {expr} to {val} ++ setcharsearch( {dict}) Dict set character search from {dict} + setcmdpos( {pos}) Number set cursor position in command-line + setline( {lnum}, {line}) Number set line {lnum} to {line} + setloclist( {nr}, {list}[, {action}]) +*************** +*** 3334,3339 **** +--- 3363,3388 ---- + character itself are obtained. Thus Shift-a results in "A" + without a modifier. + ++ getcharsearch() *getcharsearch()* ++ Return the current character search information as a {dict} ++ with the following entries: ++ ++ char character previously used for a character ++ search (|t|, |f|, |T|, or |F|); empty string ++ if no character search has been performed ++ forward direction of character search; 1 for forward, ++ 0 for backward ++ until type of character search; 1 for a |t| or |T| ++ character search, 0 for an |f| or |F| ++ character search ++ ++ This can be useful to always have |;| and |,| search ++ forward/backward regardless of the direction of the previous ++ character search: > ++ :nnoremap ; getcharsearch().forward ? ';' : ',' ++ :nnoremap , getcharsearch().forward ? ',' : ';' ++ < Also see |setcharsearch()|. ++ + getcmdline() *getcmdline()* + Return the current command-line. Only works when the command + line is being edited, thus requires use of |c_CTRL-\_e| or +*************** +*** 5356,5361 **** +--- 5419,5444 ---- + :call setbufvar("todo", "myvar", "foobar") + < This function is not available in the |sandbox|. + ++ setcharsearch() *setcharsearch()* ++ Set the current character search information to {dict}, ++ which contains one or more of the following entries: ++ ++ char character which will be used for a subsequent ++ |,| or |;| command; an empty string clears the ++ character search ++ forward direction of character search; 1 for forward, ++ 0 for backward ++ until type of character search; 1 for a |t| or |T| ++ character search, 0 for an |f| or |F| ++ character search ++ ++ This can be useful to save/restore a user's character search ++ from a script: > ++ :let prevsearch = getcharsearch() ++ :" Perform a command which clobbers user's search ++ :call setcharsearch(prevsearch) ++ < Also see |getcharsearch()|. ++ + setcmdpos({pos}) *setcmdpos()* + Set the cursor position in the command line to byte position + {pos}. The first position is 1. +*** ../vim-7.4.812/src/eval.c 2015-07-21 15:48:13.585517990 +0200 +--- src/eval.c 2015-08-11 13:34:03.374392656 +0200 +*************** +*** 555,560 **** +--- 555,561 ---- + static void f_getbufvar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getchar __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getcharmod __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_getcharsearch __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getcmdline __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_getcmdtype __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 688,693 **** +--- 689,695 ---- + static void f_server2client __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_serverlist __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setbufvar __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_setcharsearch __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setcmdpos __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setline __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_setloclist __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 8149,8154 **** +--- 8151,8157 ---- + {"getbufvar", 2, 3, f_getbufvar}, + {"getchar", 0, 1, f_getchar}, + {"getcharmod", 0, 0, f_getcharmod}, ++ {"getcharsearch", 0, 0, f_getcharsearch}, + {"getcmdline", 0, 0, f_getcmdline}, + {"getcmdpos", 0, 0, f_getcmdpos}, + {"getcmdtype", 0, 0, f_getcmdtype}, +*************** +*** 8285,8290 **** +--- 8288,8294 ---- + {"server2client", 2, 2, f_server2client}, + {"serverlist", 0, 0, f_serverlist}, + {"setbufvar", 3, 3, f_setbufvar}, ++ {"setcharsearch", 1, 1, f_setcharsearch}, + {"setcmdpos", 1, 1, f_setcmdpos}, + {"setline", 2, 2, f_setline}, + {"setloclist", 2, 3, f_setloclist}, +*************** +*** 11664,11669 **** +--- 11668,11691 ---- + } + + /* ++ * "getcharsearch()" function ++ */ ++ static void ++ f_getcharsearch(argvars, rettv) ++ typval_T *argvars UNUSED; ++ typval_T *rettv; ++ { ++ if (rettv_dict_alloc(rettv) != FAIL) ++ { ++ dict_T *dict = rettv->vval.v_dict; ++ ++ dict_add_nr_str(dict, "char", 0L, last_csearch()); ++ dict_add_nr_str(dict, "forward", last_csearch_forward(), NULL); ++ dict_add_nr_str(dict, "until", last_csearch_until(), NULL); ++ } ++ } ++ ++ /* + * "getcmdline()" function + */ + static void +*************** +*** 17004,17009 **** +--- 17026,17073 ---- + } + } + ++ static void ++ f_setcharsearch(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv UNUSED; ++ { ++ dict_T *d; ++ dictitem_T *di; ++ char_u *csearch; ++ ++ if (argvars[0].v_type != VAR_DICT) ++ { ++ EMSG(_(e_dictreq)); ++ return; ++ } ++ ++ if ((d = argvars[0].vval.v_dict) != NULL) ++ { ++ csearch = get_dict_string(d, (char_u *)"char", FALSE); ++ if (csearch != NULL) ++ { ++ if (enc_utf8) ++ { ++ int pcc[MAX_MCO]; ++ int c = utfc_ptr2char(csearch, pcc); ++ set_last_csearch(c, csearch, utfc_ptr2len(csearch)); ++ } ++ else ++ set_last_csearch(mb_ptr2char(csearch), ++ csearch, mb_ptr2len(csearch)); ++ } ++ ++ di = dict_find(d, (char_u *)"forward", -1); ++ if (di != NULL) ++ set_csearch_direction(get_tv_number(&di->di_tv) ++ ? FORWARD : BACKWARD); ++ ++ di = dict_find(d, (char_u *)"until", -1); ++ if (di != NULL) ++ set_csearch_until(!!get_tv_number(&di->di_tv)); ++ } ++ } ++ + /* + * "setcmdpos()" function + */ +*** ../vim-7.4.812/src/proto/search.pro 2014-12-13 03:17:07.465046539 +0100 +--- src/proto/search.pro 2015-08-11 13:32:31.651435327 +0200 +*************** +*** 8,13 **** +--- 8,19 ---- + void free_search_patterns __ARGS((void)); + int ignorecase __ARGS((char_u *pat)); + int pat_has_uppercase __ARGS((char_u *pat)); ++ char_u *last_csearch __ARGS((void)); ++ int last_csearch_forward __ARGS((void)); ++ int last_csearch_until __ARGS((void)); ++ void set_last_csearch __ARGS((int c, char_u *s, int len)); ++ void set_csearch_direction __ARGS((int cdir)); ++ void set_csearch_until __ARGS((int t_cmd)); + char_u *last_search_pat __ARGS((void)); + void reset_search_dir __ARGS((void)); + void set_last_search_pat __ARGS((char_u *s, int idx, int magic, int setlast)); +*** ../vim-7.4.812/src/search.c 2015-07-28 21:17:31.518069428 +0200 +--- src/search.c 2015-08-11 14:05:25.425003350 +0200 +*************** +*** 89,94 **** +--- 89,102 ---- + + static int last_idx = 0; /* index in spats[] for RE_LAST */ + ++ static char_u lastc[2] = {NUL, NUL}; /* last character searched for */ ++ static int lastcdir = FORWARD; /* last direction of character search */ ++ static int last_t_cmd = TRUE; /* last search t_cmd */ ++ #ifdef FEAT_MBYTE ++ static char_u lastc_bytes[MB_MAXBYTES + 1]; ++ static int lastc_bytelen = 1; /* >1 for multi-byte char */ ++ #endif ++ + #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO) + /* copy of spats[], for keeping the search patterns while executing autocmds */ + static struct spat saved_spats[2]; +*************** +*** 378,384 **** + } + + /* +! * Return TRUE if patter "pat" has an uppercase character. + */ + int + pat_has_uppercase(pat) +--- 386,392 ---- + } + + /* +! * Return TRUE if pattern "pat" has an uppercase character. + */ + int + pat_has_uppercase(pat) +*************** +*** 419,424 **** +--- 427,484 ---- + } + + char_u * ++ last_csearch() ++ { ++ #ifdef FEAT_MBYTE ++ return lastc_bytes; ++ #else ++ return lastc; ++ #endif ++ } ++ ++ int ++ last_csearch_forward() ++ { ++ return lastcdir == FORWARD; ++ } ++ ++ int ++ last_csearch_until() ++ { ++ return last_t_cmd == TRUE; ++ } ++ ++ void ++ set_last_csearch(c, s, len) ++ int c; ++ char_u *s; ++ int len; ++ { ++ *lastc = c; ++ #ifdef FEAT_MBYTE ++ lastc_bytelen = len; ++ if (len) ++ memcpy(lastc_bytes, s, len); ++ else ++ vim_memset(lastc_bytes, 0, sizeof(lastc_bytes)); ++ #endif ++ } ++ ++ void ++ set_csearch_direction(cdir) ++ int cdir; ++ { ++ lastcdir = cdir; ++ } ++ ++ void ++ set_csearch_until(t_cmd) ++ int t_cmd; ++ { ++ last_t_cmd = t_cmd; ++ } ++ ++ char_u * + last_search_pat() + { + return spats[last_idx].pat; +*************** +*** 1559,1605 **** + int c = cap->nchar; /* char to search for */ + int dir = cap->arg; /* TRUE for searching forward */ + long count = cap->count1; /* repeat count */ +- static int lastc = NUL; /* last character searched for */ +- static int lastcdir; /* last direction of character search */ +- static int last_t_cmd; /* last search t_cmd */ + int col; + char_u *p; + int len; + int stop = TRUE; +- #ifdef FEAT_MBYTE +- static char_u bytes[MB_MAXBYTES + 1]; +- static int bytelen = 1; /* >1 for multi-byte char */ +- #endif + + if (c != NUL) /* normal search: remember args for repeat */ + { + if (!KeyStuffed) /* don't remember when redoing */ + { +! lastc = c; +! lastcdir = dir; +! last_t_cmd = t_cmd; + #ifdef FEAT_MBYTE +! bytelen = (*mb_char2bytes)(c, bytes); + if (cap->ncharC1 != 0) + { +! bytelen += (*mb_char2bytes)(cap->ncharC1, bytes + bytelen); + if (cap->ncharC2 != 0) +! bytelen += (*mb_char2bytes)(cap->ncharC2, bytes + bytelen); + } + #endif + } + } + else /* repeat previous search */ + { +! if (lastc == NUL) + return FAIL; + if (dir) /* repeat in opposite direction */ + dir = -lastcdir; + else + dir = lastcdir; + t_cmd = last_t_cmd; +! c = lastc; +! /* For multi-byte re-use last bytes[] and bytelen. */ + + /* Force a move of at least one char, so ";" and "," will move the + * cursor, even if the cursor is right in front of char we are looking +--- 1619,1660 ---- + int c = cap->nchar; /* char to search for */ + int dir = cap->arg; /* TRUE for searching forward */ + long count = cap->count1; /* repeat count */ + int col; + char_u *p; + int len; + int stop = TRUE; + + if (c != NUL) /* normal search: remember args for repeat */ + { + if (!KeyStuffed) /* don't remember when redoing */ + { +! *lastc = c; +! set_csearch_direction(dir); +! set_csearch_until(t_cmd); + #ifdef FEAT_MBYTE +! lastc_bytelen = (*mb_char2bytes)(c, lastc_bytes); + if (cap->ncharC1 != 0) + { +! lastc_bytelen += (*mb_char2bytes)(cap->ncharC1, +! lastc_bytes + lastc_bytelen); + if (cap->ncharC2 != 0) +! lastc_bytelen += (*mb_char2bytes)(cap->ncharC2, +! lastc_bytes + lastc_bytelen); + } + #endif + } + } + else /* repeat previous search */ + { +! if (*lastc == NUL) + return FAIL; + if (dir) /* repeat in opposite direction */ + dir = -lastcdir; + else + dir = lastcdir; + t_cmd = last_t_cmd; +! c = *lastc; +! /* For multi-byte re-use last lastc_bytes[] and lastc_bytelen. */ + + /* Force a move of at least one char, so ";" and "," will move the + * cursor, even if the cursor is right in front of char we are looking +*************** +*** 1636,1649 **** + return FAIL; + col -= (*mb_head_off)(p, p + col - 1) + 1; + } +! if (bytelen == 1) + { + if (p[col] == c && stop) + break; + } + else + { +! if (vim_memcmp(p + col, bytes, bytelen) == 0 && stop) + break; + } + stop = TRUE; +--- 1691,1704 ---- + return FAIL; + col -= (*mb_head_off)(p, p + col - 1) + 1; + } +! if (lastc_bytelen == 1) + { + if (p[col] == c && stop) + break; + } + else + { +! if (vim_memcmp(p + col, lastc_bytes, lastc_bytelen) == 0 && stop) + break; + } + stop = TRUE; +*************** +*** 1671,1678 **** + if (has_mbyte) + { + if (dir < 0) +! /* Landed on the search char which is bytelen long */ +! col += bytelen - 1; + else + /* To previous char, which may be multi-byte. */ + col -= (*mb_head_off)(p, p + col); +--- 1726,1733 ---- + if (has_mbyte) + { + if (dir < 0) +! /* Landed on the search char which is lastc_bytelen long */ +! col += lastc_bytelen - 1; + else + /* To previous char, which may be multi-byte. */ + col -= (*mb_head_off)(p, p + col); +*** ../vim-7.4.812/src/testdir/test_charsearch.in 2015-08-11 14:22:29.713361737 +0200 +--- src/testdir/test_charsearch.in 2015-08-11 14:12:34.048131520 +0200 +*************** +*** 0 **** +--- 1,25 ---- ++ Test for character searches ++ ++ STARTTEST ++ :so small.vim ++ :" check that "fe" and ";" work ++ /^X ++ ylfep;;p,,p: ++ :" check that save/restore works ++ /^Y ++ ylfep:let csave = getcharsearch() ++ fip:call setcharsearch(csave) ++ ;p;p: ++ :" check that setcharsearch() changes the settins. ++ /^Z ++ ylfep:call setcharsearch({'char': 'k'}) ++ ;p:call setcharsearch({'forward': 0}) ++ $;p:call setcharseearch({'until'}: 1}) ++ ;;p: ++ :/^X/,$w! test.out ++ :qa! ++ ENDTEST ++ ++ Xabcdefghijkemnopqretuvwxyz ++ Yabcdefghijkemnopqretuvwxyz ++ Zabcdefghijkemnokqretkvwxyz +*** ../vim-7.4.812/src/testdir/test_charsearch.ok 2015-08-11 14:22:29.717361691 +0200 +--- src/testdir/test_charsearch.ok 2015-08-11 13:59:20.253153843 +0200 +*************** +*** 0 **** +--- 1,3 ---- ++ XabcdeXfghijkeXmnopqreXtuvwxyz ++ YabcdeYfghiYjkeYmnopqreYtuvwxyz ++ ZabcdeZfghijkZemnokZqretkZvwxyz +*** ../vim-7.4.812/src/testdir/Makefile 2015-07-21 15:48:13.593517912 +0200 +--- src/testdir/Makefile 2015-08-11 13:46:04.386197622 +0200 +*************** +*** 39,44 **** +--- 39,45 ---- + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ + test_erasebackword.out \ +*** ../vim-7.4.812/src/testdir/Make_amiga.mak 2015-07-21 15:48:13.589517950 +0200 +--- src/testdir/Make_amiga.mak 2015-08-11 13:45:21.702682710 +0200 +*************** +*** 42,47 **** +--- 42,48 ---- + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ + test_erasebackword.out \ +*************** +*** 194,199 **** +--- 195,201 ---- + test_autoformat_join.out: test_autoformat_join.in + test_breakindent.out: test_breakindent.in + test_changelist.out: test_changelist.in ++ test_charsearch.out: test_charsearch.in + test_close_count.out: test_close_count.in + test_command_count.out: test_command_count.in + test_erasebackword.out: test_erasebackword.in +*** ../vim-7.4.812/src/testdir/Make_dos.mak 2015-07-21 15:48:13.589517950 +0200 +--- src/testdir/Make_dos.mak 2015-08-11 13:45:29.306596293 +0200 +*************** +*** 41,46 **** +--- 41,47 ---- + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ + test_erasebackword.out \ +*** ../vim-7.4.812/src/testdir/Make_ming.mak 2015-07-21 15:48:13.589517950 +0200 +--- src/testdir/Make_ming.mak 2015-08-11 13:45:35.742523150 +0200 +*************** +*** 63,68 **** +--- 63,69 ---- + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ + test_erasebackword.out \ +*** ../vim-7.4.812/src/testdir/Make_os2.mak 2015-07-21 15:48:13.593517912 +0200 +--- src/testdir/Make_os2.mak 2015-08-11 14:23:59.096345955 +0200 +*************** +*** 43,48 **** +--- 43,49 ---- + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ + test_erasebackword.out \ +*** ../vim-7.4.812/src/testdir/Make_vms.mms 2015-07-21 15:48:13.593517912 +0200 +--- src/testdir/Make_vms.mms 2015-08-11 14:24:20.772099626 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Jul 17 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Aug 11 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 102,107 **** +--- 102,108 ---- + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ + test_erasebackword.out \ +*** ../vim-7.4.812/src/version.c 2015-08-08 18:23:41.219566256 +0200 +--- src/version.c 2015-08-11 13:22:49.398054460 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 813, + /**/ + +-- +`When any government, or any church for that matter, undertakes to say to + its subjects, "This you may not read, this you must not see, this you are + forbidden to know," the end result is tyranny and oppression no matter how + holy the motives' -- Robert A Heinlein, "If this goes on --" + + /// 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 /// From 825b96ffeb017bcd2375289836c8feeee9946fd5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:53 +0200 Subject: [PATCH 0303/1407] - patchlevel 814 --- 7.4.814 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.814 diff --git a/7.4.814 b/7.4.814 new file mode 100644 index 00000000..c63e9d08 --- /dev/null +++ b/7.4.814 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.814 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.814 +Problem: Illegal memory access with "sy match a fold". +Solution: Check for empty string. (Dominique Pelle) +Files: src/syntax.c + + +*** ../vim-7.4.813/src/syntax.c 2015-06-25 18:36:20.511463791 +0200 +--- src/syntax.c 2015-08-11 15:25:45.521870095 +0200 +*************** +*** 5654,5660 **** + char_u *cpo_save; + + /* need at least three chars */ +! if (arg == NULL || arg[1] == NUL || arg[2] == NUL) + return NULL; + + end = skip_regexp(arg + 1, *arg, TRUE, NULL); +--- 5654,5660 ---- + char_u *cpo_save; + + /* need at least three chars */ +! if (arg == NULL || arg[0] == NUL || arg[1] == NUL || arg[2] == NUL) + return NULL; + + end = skip_regexp(arg + 1, *arg, TRUE, NULL); +*** ../vim-7.4.813/src/version.c 2015-08-11 14:26:03.598931086 +0200 +--- src/version.c 2015-08-11 15:24:29.398729091 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 814, + /**/ + +-- +Witches prefer brooms: vacuum-cleaners need extension cords! + + /// 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 /// From 26a9ca92b9e79ef3b907ec45ef00ca0f17535eed Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:54 +0200 Subject: [PATCH 0304/1407] - patchlevel 815 --- 7.4.815 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.815 diff --git a/7.4.815 b/7.4.815 new file mode 100644 index 00000000..5dd71c44 --- /dev/null +++ b/7.4.815 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.815 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.815 +Problem: Invalid memory access when doing ":call g:". +Solution: Check for an empty name. (Dominique Pelle) +Files: src/eval.c + + +*** ../vim-7.4.814/src/eval.c 2015-08-11 14:26:03.594931131 +0200 +--- src/eval.c 2015-08-11 15:44:34.457092477 +0200 +*************** +*** 21371,21376 **** +--- 21371,21377 ---- + + /* + * Find the hashtab used for a variable name. ++ * Return NULL if the name is not valid. + * Set "varname" to the start of name without ':'. + */ + static hashtab_T * +*************** +*** 21380,21385 **** +--- 21381,21388 ---- + { + hashitem_T *hi; + ++ if (name[0] == NUL) ++ return NULL; + if (name[1] != ':') + { + /* The name must not start with a colon or #. */ +*** ../vim-7.4.814/src/version.c 2015-08-11 15:27:07.624943222 +0200 +--- src/version.c 2015-08-11 15:44:59.056813528 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 815, + /**/ + +-- +There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU, +Linux, etc, and those who know COBOL. It gets very difficult for me at +parties, not knowing which group to socialise with :-) + Sitaram Chamarty + + /// 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 /// From 72e3444379b8ed7731d34d413bb25c65cf50643e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:54 +0200 Subject: [PATCH 0305/1407] - patchlevel 816 --- 7.4.816 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.816 diff --git a/7.4.816 b/7.4.816 new file mode 100644 index 00000000..1e761060 --- /dev/null +++ b/7.4.816 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.816 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.816 +Problem: Invalid memory access when doing ":fun X(". +Solution: Check for missing ')'. (Dominique Pelle) +Files: src/eval.c + + +*** ../vim-7.4.815/src/eval.c 2015-08-11 15:46:04.544078510 +0200 +--- src/eval.c 2015-08-11 15:51:17.552562474 +0200 +*************** +*** 22557,22562 **** +--- 22557,22564 ---- + break; + } + } ++ if (*p != ')') ++ goto erret; + ++p; /* skip the ')' */ + + /* find extra arguments "range", "dict" and "abort" */ +*** ../vim-7.4.815/src/version.c 2015-08-11 15:46:04.544078510 +0200 +--- src/version.c 2015-08-11 15:51:37.380339593 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 816, + /**/ + +-- +Individualists unite! + + /// 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 /// From 884c1873abac0ae412fabd3d38d6320e5e703fdf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:55 +0200 Subject: [PATCH 0306/1407] - patchlevel 817 --- 7.4.817 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.4.817 diff --git a/7.4.817 b/7.4.817 new file mode 100644 index 00000000..48def262 --- /dev/null +++ b/7.4.817 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.817 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.817 +Problem: Invalid memory access in file_pat_to_reg_pat(). +Solution: Use vim_isspace() instead of checking for a space only. (Dominique + Pelle) +Files: src/fileio.c + + +*** ../vim-7.4.816/src/fileio.c 2015-07-28 13:33:36.846531733 +0200 +--- src/fileio.c 2015-08-11 16:18:41.130081993 +0200 +*************** +*** 10188,10194 **** + #endif + default: + size++; +! # ifdef FEAT_MBYTE + if (enc_dbcs != 0 && (*mb_ptr2len)(p) > 1) + { + ++p; +--- 10188,10194 ---- + #endif + default: + size++; +! # ifdef FEAT_MBYTE + if (enc_dbcs != 0 && (*mb_ptr2len)(p) > 1) + { + ++p; +*************** +*** 10277,10283 **** + reg_pat[i++] = '?'; + else + if (*p == ',' || *p == '%' || *p == '#' +! || *p == ' ' || *p == '{' || *p == '}') + reg_pat[i++] = *p; + else if (*p == '\\' && p[1] == '\\' && p[2] == '{') + { +--- 10277,10283 ---- + reg_pat[i++] = '?'; + else + if (*p == ',' || *p == '%' || *p == '#' +! || vim_isspace(*p) || *p == '{' || *p == '}') + reg_pat[i++] = *p; + else if (*p == '\\' && p[1] == '\\' && p[2] == '{') + { +*** ../vim-7.4.816/src/version.c 2015-08-11 15:54:46.582211899 +0200 +--- src/version.c 2015-08-11 16:16:01.163882279 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 817, + /**/ + +-- +ARTHUR: Then who is your lord? +WOMAN: We don't have a lord. +ARTHUR: What? +DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in + turns to act as a sort of executive officer for the week. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From f384ad541288d2a81b37ef7d62a275f638aa4e69 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:55 +0200 Subject: [PATCH 0307/1407] - patchlevel 818 --- 7.4.818 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.4.818 diff --git a/7.4.818 b/7.4.818 new file mode 100644 index 00000000..46d480a2 --- /dev/null +++ b/7.4.818 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.818 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.818 +Problem: 'linebreak' breaks c% if the last Visual selection was block. + (Chris Morganiser, Issue 389) +Solution: Handle Visual block mode differently. (Christian Brabandt) +Files: src/normal.c, src/testdir/test_listlbr.in, + src/testdir/test_listlbr.ok + + +*** ../vim-7.4.817/src/normal.c 2015-08-04 19:18:46.044825907 +0200 +--- src/normal.c 2015-08-11 17:39:51.777194300 +0200 +*************** +*** 9583,9602 **** + #endif + + /* +! * calculate start/end virtual columns for operating in block mode + */ + static void + get_op_vcol(oap, redo_VIsual_vcol, initial) + oparg_T *oap; + colnr_T redo_VIsual_vcol; +! int initial; /* when true: adjust position for 'selectmode' */ + { + colnr_T start, end; + +! if (VIsual_mode != Ctrl_V) + return; + +! oap->block_mode = TRUE; + + #ifdef FEAT_MBYTE + /* prevent from moving onto a trail byte */ +--- 9583,9603 ---- + #endif + + /* +! * Calculate start/end virtual columns for operating in block mode. + */ + static void + get_op_vcol(oap, redo_VIsual_vcol, initial) + oparg_T *oap; + colnr_T redo_VIsual_vcol; +! int initial; /* when TRUE adjust position for 'selectmode' */ + { + colnr_T start, end; + +! if (VIsual_mode != Ctrl_V +! || (!initial && oap->end.col < W_WIDTH(curwin))) + return; + +! oap->block_mode = VIsual_active; + + #ifdef FEAT_MBYTE + /* prevent from moving onto a trail byte */ +*** ../vim-7.4.817/src/testdir/test_listlbr.in 2015-07-28 11:21:27.045407225 +0200 +--- src/testdir/test_listlbr.in 2015-08-11 17:34:36.084926763 +0200 +*************** +*** 80,85 **** +--- 80,92 ---- + aaa + aaa + a2k2j~e. ++ :let g:test ="Test 10: using normal commands after block-visual" ++ :$put =g:test ++ :set linebreak ++ Go ++ abcd{ef ++ ghijklm ++ no}pqrs2k0f{c% + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.817/src/testdir/test_listlbr.ok 2015-07-28 11:21:27.045407225 +0200 +--- src/testdir/test_listlbr.ok 2015-08-11 17:34:36.084926763 +0200 +*************** +*** 46,48 **** +--- 46,51 ---- + AaA + AaA + A ++ Test 10: using normal commands after block-visual ++ ++ abcdpqrs +*** ../vim-7.4.817/src/version.c 2015-08-11 16:19:59.433200370 +0200 +--- src/version.c 2015-08-11 17:46:09.644735306 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 818, + /**/ + +-- +ARTHUR: Be quiet! +DENNIS: --but by a two-thirds majority in the case of more-- +ARTHUR: Be quiet! I order you to be quiet! +WOMAN: Order, eh -- who does he think he is? +ARTHUR: I am your king! + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From f1f94b88aabaf454418d7e57eaded1469ea94db4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:56 +0200 Subject: [PATCH 0308/1407] - patchlevel 819 --- 7.4.819 | 527 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 527 insertions(+) create mode 100644 7.4.819 diff --git a/7.4.819 b/7.4.819 new file mode 100644 index 00000000..2fc0ac35 --- /dev/null +++ b/7.4.819 @@ -0,0 +1,527 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.819 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.819 +Problem: Beeping when running the tests. +Solution: Fix 41 beeps. (Roland Eggner) +Files: src/testdir/test17.in, src/testdir/test29.in, + src/testdir/test4.in, src/testdir/test61.in, + src/testdir/test82.in, src/testdir/test83.in, + src/testdir/test90.in, src/testdir/test95.in, + src/testdir/test_autoformat_join.in + + +*** ../vim-7.4.818/src/testdir/test17.in 2013-07-03 22:28:23.000000000 +0200 +--- src/testdir/test17.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 49,65 **** + :!mkdir Xdir1 + :!mkdir "Xdir1/dir2" + :e! Xdir1/dir2/foo.a +! i#include "bar.a" + :w + :e Xdir1/dir2/bar.a +! i#include "baz.a" + :w + :e Xdir1/dir2/baz.a +! i#include "foo.a" + :w + :e Xbase.a + :set path=Xdir1/dir2 +! i#include  + :w + :redir! >>test.out + :checkpath! +--- 49,65 ---- + :!mkdir Xdir1 + :!mkdir "Xdir1/dir2" + :e! Xdir1/dir2/foo.a +! i#include "bar.a": + :w + :e Xdir1/dir2/bar.a +! i#include "baz.a": + :w + :e Xdir1/dir2/baz.a +! i#include "foo.a": + :w + :e Xbase.a + :set path=Xdir1/dir2 +! i#include : + :w + :redir! >>test.out + :checkpath! +*************** +*** 79,95 **** + :endfunction + :let &includeexpr='DotsToSlashes()' + :e! Xdir1/dir2/foo.b +! i%inc /bar/ + :w + :e Xdir1/dir2/bar.b +! i%inc /baz/ + :w + :e Xdir1/dir2/baz.b +! i%inc /foo/ + :w + :e Xbase.b + :set path=Xdir1/dir2 +! i%inc /foo/ + :w + :redir! >>test.out + :checkpath! +--- 79,95 ---- + :endfunction + :let &includeexpr='DotsToSlashes()' + :e! Xdir1/dir2/foo.b +! i%inc /bar/: + :w + :e Xdir1/dir2/bar.b +! i%inc /baz/: + :w + :e Xdir1/dir2/baz.b +! i%inc /foo/: + :w + :e Xbase.b + :set path=Xdir1/dir2 +! i%inc /foo/: + :w + :redir! >>test.out + :checkpath! +*************** +*** 112,131 **** + :endfunction + :let &includeexpr='StripNewlineChar()' + :e! Xdir1/dir2/foo.c +! i%inc bar.c + :w + :e Xdir1/dir2/bar.c +! i%inc baz.c + :w + :e Xdir1/dir2/baz.c +! i%inc foo.c + :w + :e Xdir1/dir2/FALSE.c +! i%inc foo.c + :w + :e Xbase.c + :set path=Xdir1/dir2 +! i%inc FALSE.c foo.c + :w + :redir! >>test.out + :checkpath! +--- 112,131 ---- + :endfunction + :let &includeexpr='StripNewlineChar()' + :e! Xdir1/dir2/foo.c +! i%inc bar.c: + :w + :e Xdir1/dir2/bar.c +! i%inc baz.c: + :w + :e Xdir1/dir2/baz.c +! i%inc foo.c: + :w + :e Xdir1/dir2/FALSE.c +! i%inc foo.c: + :w + :e Xbase.c + :set path=Xdir1/dir2 +! i%inc FALSE.c foo.c: + :w + :redir! >>test.out + :checkpath! +*** ../vim-7.4.818/src/testdir/test29.in 2014-04-29 14:44:31.515875819 +0200 +--- src/testdir/test29.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 113,124 **** + :iunmap + Avim4 + :" Test with backspace set to the compatible setting +! :set bs= + A vim5A + A vim6Azweiu + :inoremap + A vim7 +! :set cp + ENDTEST + 1 this shouldn't be deleted + 2 this shouldn't be deleted +--- 113,124 ---- + :iunmap + Avim4 + :" Test with backspace set to the compatible setting +! :set backspace= visualbell + A vim5A + A vim6Azweiu + :inoremap + A vim7 +! :set compatible novisualbell + ENDTEST + 1 this shouldn't be deleted + 2 this shouldn't be deleted +*** ../vim-7.4.818/src/testdir/test4.in 2014-10-31 19:20:30.782742928 +0100 +--- src/testdir/test4.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 19,25 **** + G:r Xxx " include Xxx in the current file + :set fo+=r " issue #57 do not move cursor on when autoindent is set + Go# abcdef2hi +! d0o# abcdef2hid0 + :?startstart?,$w! test.out + :qa! + ENDTEST +--- 19,25 ---- + G:r Xxx " include Xxx in the current file + :set fo+=r " issue #57 do not move cursor on when autoindent is set + Go# abcdef2hi +! d0o# abcdef2hid0: + :?startstart?,$w! test.out + :qa! + ENDTEST +*** ../vim-7.4.818/src/testdir/test61.in 2013-07-04 20:23:47.000000000 +0200 +--- src/testdir/test61.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 87,105 **** + :so small.vim + :set nocp viminfo+=nviminfo + :enew! +! oa + :set ul=100 +! ob + :set ul=100 + o1a2=setline('.','1234') + + uu:" +! oc + :set ul=100 + o1a2=setline('.','1234') + + u:" +! od + :set ul=100 + o1a2=string(123) + u:" +--- 87,105 ---- + :so small.vim + :set nocp viminfo+=nviminfo + :enew! +! oa: + :set ul=100 +! ob: + :set ul=100 + o1a2=setline('.','1234') + + uu:" +! oc: + :set ul=100 + o1a2=setline('.','1234') + + u:" +! od: + :set ul=100 + o1a2=string(123) + u:" +*** ../vim-7.4.818/src/testdir/test82.in 2013-08-09 19:32:57.000000000 +0200 +--- src/testdir/test82.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 9,15 **** + : qa! + :endif + :set enc=utf8 +! ggdG + : + :function! Ch(a, op, b, expected) + : if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected +--- 9,15 ---- + : qa! + :endif + :set enc=utf8 +! ggdG: + : + :function! Ch(a, op, b, expected) + : if eval(printf('"%s" %s "%s"', a:a, a:op, a:b)) != a:expected +*** ../vim-7.4.818/src/testdir/test83.in 2011-12-30 13:05:05.000000000 +0100 +--- src/testdir/test83.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 8,23 **** + : w! test.out + : qa! + :endif +! + :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt + :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt + :/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt + :/^tags1$/+1,/^tags1-end$/-1w! Xtags1 +! +! ggdG +! + :call setline('.', 'Results of test83') +! + :" case1: + :new + :set tags=Xtags1 +--- 8,23 ---- + : w! test.out + : qa! + :endif +! : + :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt + :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt + :/^text for tags3$/,/^text for tags3$/+1w! Xtags3.txt + :/^tags1$/+1,/^tags1-end$/-1w! Xtags1 +! : +! ggdG: +! : + :call setline('.', 'Results of test83') +! : + :" case1: + :new + :set tags=Xtags1 +*************** +*** 30,36 **** + : close + : put ='case1: ok' + :endif +! + :" case2: + :new + :set tags=test83-tags2 +--- 30,36 ---- + : close + : put ='case1: ok' + :endif +! : + :" case2: + :new + :set tags=test83-tags2 +*************** +*** 43,49 **** + : close + : put ='case2: ok' + :endif +! + :" case3: + :new + :set tags=test83-tags3 +--- 43,49 ---- + : close + : put ='case2: ok' + :endif +! : + :" case3: + :new + :set tags=test83-tags3 +*************** +*** 57,63 **** + : put ='case3: ok' + :endif + :close +! + :wq! test.out + ENDTEST + +--- 57,63 ---- + : put ='case3: ok' + :endif + :close +! : + :wq! test.out + ENDTEST + +*** ../vim-7.4.818/src/testdir/test90.in 2013-02-13 17:20:13.000000000 +0100 +--- src/testdir/test90.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 46,52 **** + : let res='ng' + :endif + :$put =testcase.res +! " + :/^start:/,$wq! test.out + ENDTEST + +--- 46,52 ---- + : let res='ng' + :endif + :$put =testcase.res +! :" + :/^start:/,$wq! test.out + ENDTEST + +*** ../vim-7.4.818/src/testdir/test95.in 2014-05-13 20:15:20.461806487 +0200 +--- src/testdir/test95.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 18,24 **** + :" etc. + :" When there is no match use only the first two items. + :let tl = [] +! + :"""" Multi-byte character tests. These will fail unless vim is compiled + :"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features. + :call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna']) +--- 18,24 ---- + :" etc. + :" When there is no match use only the first two items. + :let tl = [] +! : + :"""" Multi-byte character tests. These will fail unless vim is compiled + :"""" with Multibyte (FEAT_MBYTE) or BIG/HUGE features. + :call add(tl, [2, '[[:alpha:][=a=]]\+', '879 aiaãâaiuvna ', 'aiaãâaiuvna']) +*************** +*** 26,40 **** + :call add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oijasoifjos']) + :call add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม']) + :call add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']) +! + :" this is not a normal "i" but 0xec + :call add(tl, [2, '\p\+', 'ìa', 'ìa']) + :call add(tl, [2, '\p*', 'aã‚', 'aã‚']) +! + :"""" Test recognition of some character classes + :call add(tl, [2, '\i\+', '&*¨xx ', 'xx']) + :call add(tl, [2, '\f\+', '&*Ÿfname ', 'fname']) +! + :"""" Test composing character matching + :call add(tl, [2, '.ม', 'xม่x yมy', 'yม']) + :call add(tl, [2, '.ม่', 'xม่x yมy', 'xม่']) +--- 26,40 ---- + :call add(tl, [2, '[^ม ]\+', 'มม oijasoifjos ifjoisj f osij j มมมมม abcd', 'oijasoifjos']) + :call add(tl, [2, ' [^ ]\+', 'start มabcdม ', ' มabcdม']) + :call add(tl, [2, '[ม[:alpha:][=a=]]\+', '879 aiaãมâมaiuvna ', 'aiaãมâมaiuvna']) +! : + :" this is not a normal "i" but 0xec + :call add(tl, [2, '\p\+', 'ìa', 'ìa']) + :call add(tl, [2, '\p*', 'aã‚', 'aã‚']) +! : + :"""" Test recognition of some character classes + :call add(tl, [2, '\i\+', '&*¨xx ', 'xx']) + :call add(tl, [2, '\f\+', '&*Ÿfname ', 'fname']) +! : + :"""" Test composing character matching + :call add(tl, [2, '.ม', 'xม่x yมy', 'yม']) + :call add(tl, [2, '.ม่', 'xม่x yมy', 'xม่']) +*************** +*** 56,63 **** + :call add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"]) + :call add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"]) + :call add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"]) +! +! + :"""" Test \Z + :call add(tl, [2, 'ú\Z', 'x']) + :call add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה']) +--- 56,63 ---- + :call add(tl, [2, 'a\%C', "ca\u0300t", "a\u0300"]) + :call add(tl, [2, 'ca\%C', "ca\u0300t", "ca\u0300"]) + :call add(tl, [2, 'ca\%Ct', "ca\u0300t", "ca\u0300t"]) +! : +! : + :"""" Test \Z + :call add(tl, [2, 'ú\Z', 'x']) + :call add(tl, [2, 'יהוה\Z', 'יהוה', 'יהוה']) +*************** +*** 75,86 **** + :call add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"]) + :call add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) + :call add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) +! + :"""" Combining different tests and features + :call add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd']) +! + :"""" Run the tests +! + :" + :for t in tl + : let re = t[0] +--- 75,86 ---- + :call add(tl, [2, "\\Z\u05b9", "xy\u05b9z", "y\u05b9"]) + :call add(tl, [1, "\u05b9\\+\\Z", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) + :call add(tl, [1, "\\Z\u05b9\\+", "xy\u05b9z\u05b9 ", "y\u05b9z\u05b9"]) +! : + :"""" Combining different tests and features + :call add(tl, [2, '[^[=a=]]\+', 'ddaãâbcd', 'dd']) +! : + :"""" Run the tests +! : + :" + :for t in tl + : let re = t[0] +*************** +*** 124,130 **** + : endfor + :endfor + :unlet t tl e l +! + :" check that 'ambiwidth' does not change the meaning of \p + :set regexpengine=1 ambiwidth=single + :$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p') +--- 124,130 ---- + : endfor + :endfor + :unlet t tl e l +! : + :" check that 'ambiwidth' does not change the meaning of \p + :set regexpengine=1 ambiwidth=single + :$put ='eng 1 ambi single: ' . match(\"\u00EC\", '\p') +*************** +*** 134,140 **** + :$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p') + :set regexpengine=2 ambiwidth=double + :$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p') +! + :/\%#=1^Results/,$wq! test.out + ENDTEST + +--- 134,140 ---- + :$put ='eng 2 ambi single: ' . match(\"\u00EC\", '\p') + :set regexpengine=2 ambiwidth=double + :$put ='eng 2 ambi double: ' . match(\"\u00EC\", '\p') +! : + :/\%#=1^Results/,$wq! test.out + ENDTEST + +*** ../vim-7.4.818/src/testdir/test_autoformat_join.in 2014-04-29 12:15:22.852032651 +0200 +--- src/testdir/test_autoformat_join.in 2015-08-11 18:30:19.937364870 +0200 +*************** +*** 3,9 **** + STARTTEST + :so small.vim + :/^\t\t/ +! 0gqj + :let a=string(getpos("'[")).'/'.string(getpos("']")) + :/^This line/;'}-join + :let b=string(getpos("'[")).'/'.string(getpos("']")) +--- 3,9 ---- + STARTTEST + :so small.vim + :/^\t\t/ +! 0gqj: + :let a=string(getpos("'[")).'/'.string(getpos("']")) + :/^This line/;'}-join + :let b=string(getpos("'[")).'/'.string(getpos("']")) +*** ../vim-7.4.818/src/version.c 2015-08-11 17:46:31.212481064 +0200 +--- src/version.c 2015-08-11 18:29:53.437682968 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 819, + /**/ + +-- +ARTHUR: I am your king! +WOMAN: Well, I didn't vote for you. +ARTHUR: You don't vote for kings. +WOMAN: Well, 'ow did you become king then? + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 17a5b4b9aba356ec02b1ae704db1a03c0bbf3703 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:57 +0200 Subject: [PATCH 0309/1407] - patchlevel 820 --- 7.4.820 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.820 diff --git a/7.4.820 b/7.4.820 new file mode 100644 index 00000000..ca059dd0 --- /dev/null +++ b/7.4.820 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.820 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.820 +Problem: Invalid memory access in file_pat_to_reg_pat. +Solution: Avoid looking before the start of a string. (Dominique Pelle) +Files: src/fileio.c + + +*** ../vim-7.4.819/src/fileio.c 2015-08-11 16:19:59.433200370 +0200 +--- src/fileio.c 2015-08-11 18:43:31.191888181 +0200 +*************** +*** 10210,10216 **** + else + reg_pat[i++] = '^'; + endp = pat_end - 1; +! if (*endp == '*') + { + while (endp - pat > 0 && *endp == '*') + endp--; +--- 10210,10216 ---- + else + reg_pat[i++] = '^'; + endp = pat_end - 1; +! if (endp >= pat && *endp == '*') + { + while (endp - pat > 0 && *endp == '*') + endp--; +*** ../vim-7.4.819/src/version.c 2015-08-11 18:33:43.078928006 +0200 +--- src/version.c 2015-08-11 18:44:56.022874464 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 820, + /**/ + +-- +WOMAN: Well, 'ow did you become king then? +ARTHUR: The Lady of the Lake, [angels sing] her arm clad in the purest + shimmering samite, held aloft Excalibur from the bosom of the water + signifying by Divine Providence that I, Arthur, was to carry + Excalibur. [singing stops] That is why I am your king! + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 356f8831153f0f5b75cc03f670275fe179c087c4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:57 +0200 Subject: [PATCH 0310/1407] - patchlevel 821 --- 7.4.821 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.4.821 diff --git a/7.4.821 b/7.4.821 new file mode 100644 index 00000000..a0a3ad2b --- /dev/null +++ b/7.4.821 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.821 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.821 +Problem: Coverity reports a few problems. +Solution: Avoid the warnings. (Christian Brabandt) +Files: src/ex_docmd.c, src/option.c, src/screen.c + + +*** ../vim-7.4.820/src/ex_docmd.c 2015-08-04 22:02:45.215119715 +0200 +--- src/ex_docmd.c 2015-08-11 18:51:20.646283285 +0200 +*************** +*** 4520,4525 **** +--- 4520,4528 ---- + pos.col = MAXCOL; + else + pos.col = 0; ++ #ifdef FEAT_VIRTUALEDIT ++ pos.coladd = 0; ++ #endif + if (searchit(curwin, curbuf, &pos, + *cmd == '?' ? BACKWARD : FORWARD, + (char_u *)"", 1L, SEARCH_MSG, +*** ../vim-7.4.820/src/option.c 2015-07-22 22:19:33.073837041 +0200 +--- src/option.c 2015-08-11 18:51:20.650283237 +0200 +*************** +*** 9990,9995 **** +--- 9990,9997 ---- + buf_T *buf = (buf_T *)from; + + opt_idx = findoption(name); ++ if (opt_idx < 0) ++ return; + p = &(options[opt_idx]); + + switch ((int)p->indir) +*** ../vim-7.4.820/src/screen.c 2015-07-25 22:52:55.396781119 +0200 +--- src/screen.c 2015-08-11 18:51:55.205871139 +0200 +*************** +*** 7801,7807 **** + } + } + posmatch->cur = 0; +! if (shl->lnum == lnum) + { + colnr_T start = posmatch->pos[bot].col == 0 + ? 0 : posmatch->pos[bot].col - 1; +--- 7801,7807 ---- + } + } + posmatch->cur = 0; +! if (shl->lnum == lnum && bot >= 0) + { + colnr_T start = posmatch->pos[bot].col == 0 + ? 0 : posmatch->pos[bot].col - 1; +*** ../vim-7.4.820/src/version.c 2015-08-11 18:45:43.122311811 +0200 +--- src/version.c 2015-08-11 18:52:13.809649302 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 821, + /**/ + +-- +A poem: read aloud: + +<> !*''# Waka waka bang splat tick tick hash, +^"`$$- Caret quote back-tick dollar dollar dash, +!*=@$_ Bang splat equal at dollar under-score, +%*<> ~#4 Percent splat waka waka tilde number four, +&[]../ Ampersand bracket bracket dot dot slash, +|{,,SYSTEM HALTED Vertical-bar curly-bracket comma comma CRASH. + +Fred Bremmer and Steve Kroese (Calvin College & Seminary of Grand Rapids, MI.) + + /// 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 /// From 87b952e3f4ca1f34ec477d8caa843d457081ea9b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:58 +0200 Subject: [PATCH 0311/1407] - patchlevel 822 --- 7.4.822 | 668 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 668 insertions(+) create mode 100644 7.4.822 diff --git a/7.4.822 b/7.4.822 new file mode 100644 index 00000000..8a52b6d7 --- /dev/null +++ b/7.4.822 @@ -0,0 +1,668 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.822 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.822 +Problem: More problems reported by coverity. +Solution: Avoid the warnings. (Christian Brabandt) +Files: src/os_unix.c, src/eval.c, src/ex_cmds.c, src/ex_cmds2.c, + src/ex_getln.c, src/fold.c, src/gui.c, src/gui_w16.c, + src/gui_w32.c, src/if_cscope.c, src/if_xcmdsrv.c, src/move.c, + src/normal.c, src/regexp.c, src/syntax.c, src/ui.c, src/window.c + + +*** ../vim-7.4.821/src/os_unix.c 2015-07-17 14:16:49.850596721 +0200 +--- src/os_unix.c 2015-08-11 18:55:47.479102692 +0200 +*************** +*** 7001,7007 **** + /* Rely on the same mouse code for the duration of this */ + mouse_code = find_termcode(mouse_name); + prev_row = mouse_row; +! prev_row = mouse_col; + xterm_trace = 2; + + /* Find the offset of the chars, there might be a scrollbar on the +--- 7001,7007 ---- + /* Rely on the same mouse code for the duration of this */ + mouse_code = find_termcode(mouse_name); + prev_row = mouse_row; +! prev_col = mouse_col; + xterm_trace = 2; + + /* Find the offset of the chars, there might be a scrollbar on the +*** ../vim-7.4.821/src/eval.c 2015-08-11 15:54:46.582211899 +0200 +--- src/eval.c 2015-08-11 18:56:47.834383757 +0200 +*************** +*** 6736,6742 **** + len = (int)STRLEN(s); + sumlen += len; + +! ga_grow(join_gap, 1); + p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++); + if (tofree != NULL || s != numbuf) + { +--- 6736,6742 ---- + len = (int)STRLEN(s); + sumlen += len; + +! (void)ga_grow(join_gap, 1); + p = ((join_T *)join_gap->ga_data) + (join_gap->ga_len++); + if (tofree != NULL || s != numbuf) + { +*************** +*** 19590,19596 **** + goto error; + } + +! ga_grow(&ga, cplen); + mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); + ga.ga_len += cplen; + +--- 19590,19596 ---- + goto error; + } + +! (void)ga_grow(&ga, cplen); + mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); + ga.ga_len += cplen; + +*************** +*** 19610,19616 **** + } + + /* add a terminating NUL */ +! ga_grow(&ga, 1); + ga_append(&ga, NUL); + + rettv->vval.v_string = ga.ga_data; +--- 19610,19616 ---- + } + + /* add a terminating NUL */ +! (void)ga_grow(&ga, 1); + ga_append(&ga, NUL); + + rettv->vval.v_string = ga.ga_data; +*** ../vim-7.4.821/src/ex_cmds.c 2015-07-17 13:03:42.100357542 +0200 +--- src/ex_cmds.c 2015-08-11 18:56:47.826383852 +0200 +*************** +*** 6856,6862 **** + /* + * Sort the tags. + */ +! sort_strings((char_u **)ga.ga_data, ga.ga_len); + + /* + * Check for duplicates. +--- 6856,6863 ---- + /* + * Sort the tags. + */ +! if (ga.ga_data != NULL) +! sort_strings((char_u **)ga.ga_data, ga.ga_len); + + /* + * Check for duplicates. +*** ../vim-7.4.821/src/ex_cmds2.c 2015-04-13 15:37:48.342074267 +0200 +--- src/ex_cmds2.c 2015-08-11 18:56:47.834383757 +0200 +*************** +*** 3051,3057 **** + { + int fdflags = fcntl(fd_tmp, F_GETFD); + if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0) +! fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); + } + # endif + +--- 3051,3057 ---- + { + int fdflags = fcntl(fd_tmp, F_GETFD); + if (fdflags >= 0 && (fdflags & FD_CLOEXEC) == 0) +! (void)fcntl(fd_tmp, F_SETFD, fdflags | FD_CLOEXEC); + } + # endif + +*************** +*** 3841,3847 **** + { + /* Grow the array before starting the timer, so that the time spent + * here isn't counted. */ +! ga_grow(&si->sn_prl_ga, (int)(sourcing_lnum - si->sn_prl_ga.ga_len)); + si->sn_prl_idx = sourcing_lnum - 1; + while (si->sn_prl_ga.ga_len <= si->sn_prl_idx + && si->sn_prl_ga.ga_len < si->sn_prl_ga.ga_maxlen) +--- 3841,3847 ---- + { + /* Grow the array before starting the timer, so that the time spent + * here isn't counted. */ +! (void)ga_grow(&si->sn_prl_ga, (int)(sourcing_lnum - si->sn_prl_ga.ga_len)); + si->sn_prl_idx = sourcing_lnum - 1; + while (si->sn_prl_ga.ga_len <= si->sn_prl_idx + && si->sn_prl_ga.ga_len < si->sn_prl_ga.ga_maxlen) +*** ../vim-7.4.821/src/ex_getln.c 2015-07-21 17:53:11.577527989 +0200 +--- src/ex_getln.c 2015-08-11 18:56:47.834383757 +0200 +*************** +*** 2312,2318 **** + add_indent: + while (get_indent_str(p, 8, FALSE) < indent) + { +! ga_grow(&line_ga, 2); /* one more for the NUL */ + p = (char_u *)line_ga.ga_data; + s = skipwhite(p); + mch_memmove(s + 1, s, line_ga.ga_len - (s - p) + 1); +--- 2312,2318 ---- + add_indent: + while (get_indent_str(p, 8, FALSE) < indent) + { +! (void)ga_grow(&line_ga, 2); /* one more for the NUL */ + p = (char_u *)line_ga.ga_data; + s = skipwhite(p); + mch_memmove(s + 1, s, line_ga.ga_len - (s - p) + 1); +*** ../vim-7.4.821/src/fold.c 2015-04-15 12:43:37.997444487 +0200 +--- src/fold.c 2015-08-11 18:56:47.838383710 +0200 +*************** +*** 2446,2452 **** + if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level + && flp->lvl > 0) + { +! foldFind(gap, startlnum - 1, &fp); + if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len + || fp->fd_top >= startlnum) + fp = NULL; +--- 2446,2452 ---- + if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level + && flp->lvl > 0) + { +! (void)foldFind(gap, startlnum - 1, &fp); + if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len + || fp->fd_top >= startlnum) + fp = NULL; +*************** +*** 2508,2514 **** + } + if (lvl < level + i) + { +! foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2); + if (fp2 != NULL) + bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top; + } +--- 2508,2514 ---- + } + if (lvl < level + i) + { +! (void)foldFind(&fp->fd_nested, flp->lnum - fp->fd_top, &fp2); + if (fp2 != NULL) + bot = fp2->fd_top + fp2->fd_len - 1 + fp->fd_top; + } +*** ../vim-7.4.821/src/gui.c 2014-03-23 15:12:29.923264336 +0100 +--- src/gui.c 2015-08-11 18:56:47.838383710 +0200 +*************** +*** 1575,1581 **** + base_height = gui_get_base_height(); + if (fit_to_display) + /* Remember the original window position. */ +! gui_mch_get_winpos(&x, &y); + + #ifdef USE_SUN_WORKSHOP + if (!mustset && usingSunWorkShop +--- 1575,1581 ---- + base_height = gui_get_base_height(); + if (fit_to_display) + /* Remember the original window position. */ +! (void)gui_mch_get_winpos(&x, &y); + + #ifdef USE_SUN_WORKSHOP + if (!mustset && usingSunWorkShop +*************** +*** 5366,5372 **** + { + /* Search for the next match. */ + i = msg_scroll; +! do_search(NULL, down ? '/' : '?', ga.ga_data, 1L, + SEARCH_MSG + SEARCH_MARK, NULL); + msg_scroll = i; /* don't let an error message set msg_scroll */ + } +--- 5366,5372 ---- + { + /* Search for the next match. */ + i = msg_scroll; +! (void)do_search(NULL, down ? '/' : '?', ga.ga_data, 1L, + SEARCH_MSG + SEARCH_MARK, NULL); + msg_scroll = i; /* don't let an error message set msg_scroll */ + } +*** ../vim-7.4.821/src/gui_w16.c 2013-05-06 04:06:04.000000000 +0200 +--- src/gui_w16.c 2015-08-11 18:56:47.830383805 +0200 +*************** +*** 282,288 **** + result = MyWindowProc(hwnd, uMsg, wParam, lParam); + if (result == HTCLIENT) + { +! gui_mch_get_winpos(&x, &y); + xPos -= x; + + if (xPos < 48) /* TODO should use system metric?*/ +--- 282,288 ---- + result = MyWindowProc(hwnd, uMsg, wParam, lParam); + if (result == HTCLIENT) + { +! (void)gui_mch_get_winpos(&x, &y); + xPos -= x; + + if (xPos < 48) /* TODO should use system metric?*/ +*** ../vim-7.4.821/src/gui_w32.c 2015-03-24 17:57:06.210846471 +0100 +--- src/gui_w32.c 2015-08-11 18:56:47.830383805 +0200 +*************** +*** 17,23 **** + * scrollbars, etc. + * + * Note: Clipboard stuff, for cutting and pasting text to other windows, is in +! * os_win32.c. (It can also be done from the terminal version). + * + * TODO: Some of the function signatures ought to be updated for Win64; + * e.g., replace LONG with LONG_PTR, etc. +--- 17,23 ---- + * scrollbars, etc. + * + * Note: Clipboard stuff, for cutting and pasting text to other windows, is in +! * winclip.c. (It can also be done from the terminal version). + * + * TODO: Some of the function signatures ought to be updated for Win64; + * e.g., replace LONG with LONG_PTR, etc. +*************** +*** 76,82 **** + char_u name[128]; + char_u value[128]; + +! copy_option_part(&p, item, sizeof(item), ","); + if (p == NULL) + break; + q = &item[0]; +--- 76,82 ---- + char_u name[128]; + char_u value[128]; + +! copy_option_part(&p, item, sizeof(item), ","); + if (p == NULL) + break; + q = &item[0]; +*************** +*** 1227,1233 **** + return result; + } + #endif +! gui_mch_get_winpos(&x, &y); + xPos -= x; + + if (xPos < 48) /* TODO should use system metric? */ +--- 1227,1233 ---- + return result; + } + #endif +! (void)gui_mch_get_winpos(&x, &y); + xPos -= x; + + if (xPos < 48) /* TODO should use system metric? */ +*** ../vim-7.4.821/src/if_cscope.c 2015-03-31 13:33:00.797524914 +0200 +--- src/if_cscope.c 2015-08-11 19:10:00.516961303 +0200 +*************** +*** 1076,1083 **** + /* + * PRIVATE: cs_find + * +! * query cscope using command line interface. parse the output and use tselect +! * to allow choices. like Nvi, creates a pipe to send to/from query/cscope. + * + * returns TRUE if we jump to a tag or abort, FALSE if not. + */ +--- 1076,1083 ---- + /* + * PRIVATE: cs_find + * +! * Query cscope using command line interface. Parse the output and use tselect +! * to allow choices. Like Nvi, creates a pipe to send to/from query/cscope. + * + * returns TRUE if we jump to a tag or abort, FALSE if not. + */ +*************** +*** 1214,1220 **** +--- 1214,1223 ---- + + nummatches = (int *)alloc(sizeof(int)*csinfo_size); + if (nummatches == NULL) ++ { ++ vim_free(cmd); + return FALSE; ++ } + + /* Send query to all open connections, then count the total number + * of matches so we can alloc all in one swell foop. */ +*************** +*** 1289,1295 **** + # ifdef FEAT_WINDOWS + if (postponed_split != 0) + { +! win_split(postponed_split > 0 ? postponed_split : 0, + postponed_split_flags); + RESET_BINDING(curwin); + postponed_split = 0; +--- 1292,1298 ---- + # ifdef FEAT_WINDOWS + if (postponed_split != 0) + { +! (void)win_split(postponed_split > 0 ? postponed_split : 0, + postponed_split_flags); + RESET_BINDING(curwin); + postponed_split = 0; +*************** +*** 2085,2090 **** +--- 2088,2095 ---- + + strcpy(tbuf, matches[0]); + ptag = strtok(tbuf, "\t"); ++ if (ptag == NULL) ++ return; + + newsize = (int)(strlen(cstag_msg) + strlen(ptag)); + buf = (char *)alloc(newsize); +*** ../vim-7.4.821/src/if_xcmdsrv.c 2012-07-10 14:44:13.000000000 +0200 +--- src/if_xcmdsrv.c 2015-08-11 18:56:47.834383757 +0200 +*************** +*** 1265,1276 **** + /* Initialize the result property. */ + ga_init2(&reply, 1, 100); + #ifdef FEAT_MBYTE +! ga_grow(&reply, 50 + STRLEN(p_enc)); + sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ", + 0, 0, p_enc, 0, serial, 0); + reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial); + #else +! ga_grow(&reply, 50); + sprintf(reply.ga_data, "%cr%c-s %s%c-r ", + 0, 0, serial, 0); + reply.ga_len = 10 + STRLEN(serial); +--- 1265,1276 ---- + /* Initialize the result property. */ + ga_init2(&reply, 1, 100); + #ifdef FEAT_MBYTE +! (void)ga_grow(&reply, 50 + STRLEN(p_enc)); + sprintf(reply.ga_data, "%cr%c-E %s%c-s %s%c-r ", + 0, 0, p_enc, 0, serial, 0); + reply.ga_len = 14 + STRLEN(p_enc) + STRLEN(serial); + #else +! (void)ga_grow(&reply, 50); + sprintf(reply.ga_data, "%cr%c-s %s%c-r ", + 0, 0, serial, 0); + reply.ga_len = 10 + STRLEN(serial); +*************** +*** 1351,1365 **** + continue; + + pcPtr->code = code; +! if (res != NULL) +! { +! res = serverConvert(enc, res, &tofree); +! if (tofree == NULL) +! res = vim_strsave(res); +! pcPtr->result = res; +! } +! else +! pcPtr->result = vim_strsave((char_u *)""); + break; + } + } +--- 1351,1360 ---- + continue; + + pcPtr->code = code; +! res = serverConvert(enc, res, &tofree); +! if (tofree == NULL) +! res = vim_strsave(res); +! pcPtr->result = res; + break; + } + } +*** ../vim-7.4.821/src/move.c 2015-03-20 18:11:44.967196356 +0100 +--- src/move.c 2015-08-11 18:56:47.826383852 +0200 +*************** +*** 1512,1518 **** + --curwin->w_topline; + #endif + #ifdef FEAT_FOLDING +! hasFolding(curwin->w_topline, &curwin->w_topline, NULL); + #endif + --curwin->w_botline; /* approximate w_botline */ + curwin->w_valid &= ~(VALID_WROW|VALID_CROW|VALID_BOTLINE); +--- 1512,1518 ---- + --curwin->w_topline; + #endif + #ifdef FEAT_FOLDING +! (void)hasFolding(curwin->w_topline, &curwin->w_topline, NULL); + #endif + --curwin->w_botline; /* approximate w_botline */ + curwin->w_valid &= ~(VALID_WROW|VALID_CROW|VALID_BOTLINE); +*** ../vim-7.4.821/src/normal.c 2015-08-11 17:46:31.212481064 +0200 +--- src/normal.c 2015-08-11 18:56:47.842383661 +0200 +*************** +*** 2865,2874 **** + end_visual.col = leftcol; + else + end_visual.col = rightcol; +! if (curwin->w_cursor.lnum < + (start_visual.lnum + end_visual.lnum) / 2) +- end_visual.lnum = end_visual.lnum; +- else + end_visual.lnum = start_visual.lnum; + + /* move VIsual to the right column */ +--- 2865,2872 ---- + end_visual.col = leftcol; + else + end_visual.col = rightcol; +! if (curwin->w_cursor.lnum >= + (start_visual.lnum + end_visual.lnum) / 2) + end_visual.lnum = start_visual.lnum; + + /* move VIsual to the right column */ +*************** +*** 3807,3814 **** + } + # ifdef FEAT_FOLDING + /* Include closed folds as a whole. */ +! hasFolding(top, &top, NULL); +! hasFolding(bot, NULL, &bot); + # endif + lines = bot - top + 1; + +--- 3805,3812 ---- + } + # ifdef FEAT_FOLDING + /* Include closed folds as a whole. */ +! (void)hasFolding(top, &top, NULL); +! (void)hasFolding(bot, NULL, &bot); + # endif + lines = bot - top + 1; + +*************** +*** 5954,5960 **** + lnum = curwin->w_topline; + while (n-- > 0 && lnum < curwin->w_botline - 1) + { +! hasFolding(lnum, NULL, &lnum); + ++lnum; + } + n = lnum - curwin->w_topline; +--- 5952,5958 ---- + lnum = curwin->w_topline; + while (n-- > 0 && lnum < curwin->w_botline - 1) + { +! (void)hasFolding(lnum, NULL, &lnum); + ++lnum; + } + n = lnum - curwin->w_topline; +*************** +*** 6254,6260 **** + { + /* do autowrite if necessary */ + if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) +! autowrite(curbuf, FALSE); + setpcmark(); + (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, + P_HID(curbuf) ? ECMD_HIDE : 0, curwin); +--- 6252,6258 ---- + { + /* do autowrite if necessary */ + if (curbufIsChanged() && curbuf->b_nwindows <= 1 && !P_HID(curbuf)) +! (void)autowrite(curbuf, FALSE); + setpcmark(); + (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST, + P_HID(curbuf) ? ECMD_HIDE : 0, curwin); +*** ../vim-7.4.821/src/regexp.c 2015-07-10 19:16:27.302493581 +0200 +--- src/regexp.c 2015-08-11 18:56:47.834383757 +0200 +*************** +*** 3824,3837 **** + /* Use an item size of 1 byte, since we push different things + * onto the regstack. */ + ga_init2(®stack, 1, REGSTACK_INITIAL); +! ga_grow(®stack, REGSTACK_INITIAL); + regstack.ga_growsize = REGSTACK_INITIAL * 8; + } + + if (backpos.ga_data == NULL) + { + ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL); +! ga_grow(&backpos, BACKPOS_INITIAL); + backpos.ga_growsize = BACKPOS_INITIAL * 8; + } + +--- 3824,3837 ---- + /* Use an item size of 1 byte, since we push different things + * onto the regstack. */ + ga_init2(®stack, 1, REGSTACK_INITIAL); +! (void)ga_grow(®stack, REGSTACK_INITIAL); + regstack.ga_growsize = REGSTACK_INITIAL * 8; + } + + if (backpos.ga_data == NULL) + { + ga_init2(&backpos, sizeof(backpos_T), BACKPOS_INITIAL); +! (void)ga_grow(&backpos, BACKPOS_INITIAL); + backpos.ga_growsize = BACKPOS_INITIAL * 8; + } + +*** ../vim-7.4.821/src/syntax.c 2015-08-11 15:27:07.624943222 +0200 +--- src/syntax.c 2015-08-11 18:56:47.838383710 +0200 +*************** +*** 6670,6676 **** + spp = &(SYN_ITEMS(curwin->w_s)[idx]); + if (spp->sp_time.count > 0) + { +! ga_grow(&ga, 1); + p = ((time_entry_T *)ga.ga_data) + ga.ga_len; + p->total = spp->sp_time.total; + profile_add(&total_total, &spp->sp_time.total); +--- 6670,6676 ---- + spp = &(SYN_ITEMS(curwin->w_s)[idx]); + if (spp->sp_time.count > 0) + { +! (void)ga_grow(&ga, 1); + p = ((time_entry_T *)ga.ga_data) + ga.ga_len; + p->total = spp->sp_time.total; + profile_add(&total_total, &spp->sp_time.total); +*** ../vim-7.4.821/src/ui.c 2015-01-27 21:39:01.970698049 +0100 +--- src/ui.c 2015-08-11 18:56:47.830383805 +0200 +*************** +*** 2903,2909 **** + break; + first = FALSE; + #ifdef FEAT_FOLDING +! hasFolding(curwin->w_topline, &curwin->w_topline, NULL); + #endif + #ifdef FEAT_DIFF + if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)) +--- 2903,2909 ---- + break; + first = FALSE; + #ifdef FEAT_FOLDING +! (void)hasFolding(curwin->w_topline, &curwin->w_topline, NULL); + #endif + #ifdef FEAT_DIFF + if (curwin->w_topfill < diff_check(curwin, curwin->w_topline)) +*** ../vim-7.4.821/src/window.c 2015-07-21 15:48:13.593517912 +0200 +--- src/window.c 2015-08-11 19:08:07.094308424 +0200 +*************** +*** 141,147 **** + #ifdef FEAT_GUI + need_mouse_correct = TRUE; + #endif +! win_split((int)Prenum, 0); + break; + + #ifdef FEAT_VERTSPLIT +--- 141,147 ---- + #ifdef FEAT_GUI + need_mouse_correct = TRUE; + #endif +! (void)win_split((int)Prenum, 0); + break; + + #ifdef FEAT_VERTSPLIT +*************** +*** 159,165 **** + # ifdef FEAT_GUI + need_mouse_correct = TRUE; + # endif +! win_split((int)Prenum, WSP_VERT); + break; + #endif + +--- 159,165 ---- + # ifdef FEAT_GUI + need_mouse_correct = TRUE; + # endif +! (void)win_split((int)Prenum, WSP_VERT); + break; + #endif + +*************** +*** 2586,2592 **** + return; + + /* When closing the last window in a tab page remove the tab page. */ +! if (tp == NULL ? firstwin == lastwin : tp->tp_firstwin == tp->tp_lastwin) + { + if (tp == first_tabpage) + first_tabpage = tp->tp_next; +--- 2586,2592 ---- + return; + + /* When closing the last window in a tab page remove the tab page. */ +! if (tp->tp_firstwin == tp->tp_lastwin) + { + if (tp == first_tabpage) + first_tabpage = tp->tp_next; +*** ../vim-7.4.821/src/version.c 2015-08-11 18:52:58.077121515 +0200 +--- src/version.c 2015-08-11 18:58:41.109035628 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 822, + /**/ + +-- +DENNIS: Listen -- strange women lying in ponds distributing swords is no + basis for a system of government. Supreme executive power derives + from a mandate from the masses, not from some farcical aquatic + ceremony. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 88f121bd9d195dcf586307087dd7c2d4c3d31d12 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:58 +0200 Subject: [PATCH 0312/1407] - patchlevel 823 --- 7.4.823 | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 7.4.823 diff --git a/7.4.823 b/7.4.823 new file mode 100644 index 00000000..26036d46 --- /dev/null +++ b/7.4.823 @@ -0,0 +1,126 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.823 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.823 +Problem: Cursor moves after CTRL-A on alphabetic character. +Solution: (Hirohito Higashi, test by Christian Brabandt) +Files: src/testdir/test_increment.in, src/testdir/test_increment.ok, + src/ops.c + + +*** ../vim-7.4.822/src/testdir/test_increment.in 2015-08-04 18:23:16.538332360 +0200 +--- src/testdir/test_increment.in 2015-08-11 19:16:22.060431145 +0200 +*************** +*** 268,274 **** + Expected: + 1) j$ + 2 +! 1b + + + +--- 268,282 ---- + Expected: + 1) j$ + 2 +! 2a +! +! 20) increment a single letter +! Text: +! a +! +! Expected: +! 1) and cursor is on a +! b + + + +*************** +*** 386,391 **** +--- 394,406 ---- + k$ + :set nrformats&vim + ++ :" Test 20 ++ :set nrformats+=alpha ++ :/^S20=/+,/^E20=/-y a ++ :/^E20=/+put a ++ :.put =col('.') ++ :set nrformats&vim ++ + :" Save the report + :/^# Test 1/,$w! test.out + :qa! +*************** +*** 572,577 **** +--- 587,599 ---- + + + ++ # Test 20 ++ S20==== ++ a ++ E20==== ++ ++ ++ + + ENDTEST + +*** ../vim-7.4.822/src/testdir/test_increment.ok 2015-08-04 18:23:16.538332360 +0200 +--- src/testdir/test_increment.ok 2015-08-11 19:16:22.060431145 +0200 +*************** +*** 271,276 **** +--- 271,285 ---- + 2a + + ++ # Test 20 ++ S20==== ++ a ++ E20==== ++ ++ b ++ 1 ++ ++ + + ENDTEST + +*** ../vim-7.4.822/src/ops.c 2015-08-04 18:23:16.538332360 +0200 +--- src/ops.c 2015-08-11 19:17:59.307275090 +0200 +*************** +*** 5584,5589 **** +--- 5584,5590 ---- + did_change = TRUE; + (void)del_char(FALSE); + ins_char(firstdigit); ++ curwin->w_cursor.col = col; + } + else + { +*** ../vim-7.4.822/src/version.c 2015-08-11 19:13:55.146175594 +0200 +--- src/version.c 2015-08-11 19:17:41.231489953 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 823, + /**/ + +-- +I'm sure that I asked CBuilder to do a "full" install. Looks like I got +a "fool" install, instead. Charles E Campbell, Jr, PhD + + + /// 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 /// From b3d7fdeec8149755397343766c9538bc06da6647 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:14:59 +0200 Subject: [PATCH 0313/1407] - patchlevel 824 --- 7.4.824 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.824 diff --git a/7.4.824 b/7.4.824 new file mode 100644 index 00000000..4d205641 --- /dev/null +++ b/7.4.824 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.824 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.824 (after 7.4.813) +Problem: Can't compile without the multi-byte feature. (John Marriott) +Solution: Add #ifdef. +Files: src/eval.c + + +*** ../vim-7.4.823/src/eval.c 2015-08-11 19:13:55.134175736 +0200 +--- src/eval.c 2015-08-12 22:54:53.127060295 +0200 +*************** +*** 17046,17058 **** +--- 17046,17061 ---- + csearch = get_dict_string(d, (char_u *)"char", FALSE); + if (csearch != NULL) + { ++ #ifdef FEAT_MBYTE + if (enc_utf8) + { + int pcc[MAX_MCO]; + int c = utfc_ptr2char(csearch, pcc); ++ + set_last_csearch(c, csearch, utfc_ptr2len(csearch)); + } + else ++ #endif + set_last_csearch(mb_ptr2char(csearch), + csearch, mb_ptr2len(csearch)); + } +*** ../vim-7.4.823/src/version.c 2015-08-11 19:36:37.054004134 +0200 +--- src/version.c 2015-08-12 22:56:43.929751435 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 824, + /**/ + +-- +ARTHUR: I command you as King of the Britons to stand aside! +BLACK KNIGHT: I move for no man. + The Quest for the Holy Grail (Monty Python) + + /// 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 /// From 7427c62a3d1be858c0e9ce3cbbbab9c45a3f6425 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:15:00 +0200 Subject: [PATCH 0314/1407] - patchlevel 825 --- 7.4.825 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.4.825 diff --git a/7.4.825 b/7.4.825 new file mode 100644 index 00000000..ed00845a --- /dev/null +++ b/7.4.825 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.825 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.825 +Problem: Invalid memory access for ":syn keyword x a[". +Solution: Do not skip over the NUL. (Dominique Pelle) +Files: src/syntax.c + + +*** ../vim-7.4.824/src/syntax.c 2015-08-11 19:13:55.142175641 +0200 +--- src/syntax.c 2015-08-13 22:52:20.709498467 +0200 +*************** +*** 4873,4883 **** + if (p[1] == NUL) + { + EMSG2(_("E789: Missing ']': %s"), kw); +! kw = p + 2; /* skip over the NUL */ +! break; + } + if (p[1] == ']') + { + kw = p + 1; /* skip over the "]" */ + break; + } +--- 4873,4888 ---- + if (p[1] == NUL) + { + EMSG2(_("E789: Missing ']': %s"), kw); +! goto error; + } + if (p[1] == ']') + { ++ if (p[2] != NUL) ++ { ++ EMSG3(_("E890: trailing char after ']': %s]%s"), ++ kw, &p[2]); ++ goto error; ++ } + kw = p + 1; /* skip over the "]" */ + break; + } +*************** +*** 4898,4904 **** + } + } + } +! + vim_free(keyword_copy); + vim_free(syn_opt_arg.cont_in_list); + vim_free(syn_opt_arg.next_list); +--- 4903,4909 ---- + } + } + } +! error: + vim_free(keyword_copy); + vim_free(syn_opt_arg.cont_in_list); + vim_free(syn_opt_arg.next_list); +*** ../vim-7.4.824/src/version.c 2015-08-12 22:56:53.581637421 +0200 +--- src/version.c 2015-08-13 22:45:24.574614004 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 825, + /**/ + +-- +FATHER: You killed eight wedding guests in all! +LAUNCELOT: Er, Well ... the thing is ... I thought your son was a lady. +FATHER: I can understand that. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From d0f1c7fdf23afa62ea66c20ed1f22080a958c48c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:15:00 +0200 Subject: [PATCH 0315/1407] - patchlevel 826 --- 7.4.826 | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 7.4.826 diff --git a/7.4.826 b/7.4.826 new file mode 100644 index 00000000..001c1df5 --- /dev/null +++ b/7.4.826 @@ -0,0 +1,74 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.826 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.826 +Problem: Compiler warnings and errors. +Solution: Make it build properly without the multi-byte feature. +Files: src/eval.c, src/search.c + + +*** ../vim-7.4.825/src/eval.c 2015-08-12 22:56:53.577637469 +0200 +--- src/eval.c 2015-08-13 23:23:22.978663934 +0200 +*************** +*** 17056,17063 **** + } + else + #endif +! set_last_csearch(mb_ptr2char(csearch), +! csearch, mb_ptr2len(csearch)); + } + + di = dict_find(d, (char_u *)"forward", -1); +--- 17056,17063 ---- + } + else + #endif +! set_last_csearch(PTR2CHAR(csearch), +! csearch, MB_PTR2LEN(csearch)); + } + + di = dict_find(d, (char_u *)"forward", -1); +*** ../vim-7.4.825/src/search.c 2015-08-11 14:26:03.594931131 +0200 +--- src/search.c 2015-08-13 23:25:44.708957357 +0200 +*************** +*** 451,458 **** + void + set_last_csearch(c, s, len) + int c; +! char_u *s; +! int len; + { + *lastc = c; + #ifdef FEAT_MBYTE +--- 451,458 ---- + void + set_last_csearch(c, s, len) + int c; +! char_u *s UNUSED; +! int len UNUSED; + { + *lastc = c; + #ifdef FEAT_MBYTE +*** ../vim-7.4.825/src/version.c 2015-08-13 22:53:20.188768573 +0200 +--- src/version.c 2015-08-13 23:25:32.377105007 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 826, + /**/ + +-- +The early bird gets the worm. The second mouse gets the cheese. + + /// 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 /// From 7c47e62184ee554dc67e14125b18a16e2e4f3bb4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:15:01 +0200 Subject: [PATCH 0316/1407] - patchlevel 827 --- 7.4.827 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.4.827 diff --git a/7.4.827 b/7.4.827 new file mode 100644 index 00000000..0e98befd --- /dev/null +++ b/7.4.827 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.827 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.827 +Problem: Not all test targets are in the Makefile. +Solution: Add the missing targets. +Files: src/Makefile + + +*** ../vim-7.4.826/src/Makefile 2015-06-21 13:44:07.297340941 +0200 +--- src/Makefile 2015-08-18 13:45:09.538267948 +0200 +*************** +*** 1902,1925 **** +--- 1902,1931 ---- + test1 \ + test_argument_0count \ + test_argument_count \ ++ test_autocmd_option \ + test_autoformat_join \ + test_breakindent \ + test_changelist \ ++ test_charsearch \ + test_close_count \ + test_command_count \ + test_erasebackword \ + test_eval \ ++ test_fixeol \ ++ test_increment \ + test_insertcount \ + test_listchars \ + test_listlbr \ + test_listlbr_utf8 \ + test_mapping \ + test_marks \ ++ test_match_conceal \ + test_nested_function \ + test_options \ + test_perl \ + test_qf_title \ + test_ruby \ ++ test_search_mbyte \ + test_set \ + test_signs \ + test_textobjects \ +*** ../vim-7.4.826/src/version.c 2015-08-13 23:28:38.246878308 +0200 +--- src/version.c 2015-08-18 13:46:07.953657978 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 827, + /**/ + +-- +Michael: There is no such thing as a dump question. +Bernard: Sure there is. For example "what is a core dump?" + + /// 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 /// From 207684eedfa3b83fcb2dc59e5e567f4d44409c0e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Aug 2015 17:15:03 +0200 Subject: [PATCH 0317/1407] - patchlevel 827 --- README.patches | 100 +++++++++++++++++++++++++++++++--------- vim.spec | 123 ++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 200 insertions(+), 23 deletions(-) diff --git a/README.patches b/README.patches index 25cf4527..47b9d3ff 100644 --- a/README.patches +++ b/README.patches @@ -18,7 +18,7 @@ argument to make it patch the right file: After applying a patch, you need to compile Vim. There are no patches for binaries. -Checksums for the patch files can be found in the file MD5. +Checksums for the patch files can be found in the file MD5SUMS. Individual patches for Vim 7.4: @@ -35,7 +35,7 @@ Individual patches for Vim 7.4: 2051 7.4.009 too easy to write a file was not decrypted (yet) 2307 7.4.010 (after 7.4.006) crash with invalid argument to mkdir() 2270 7.4.011 cannot find out if "acl" and "xpm" features are supported - 6180 7.4.012 MS-Windows: resolving multi-bye shortcut does not work + 6180 7.4.012 MS-Windows: resolving multi-byte shortcut does not work 2986 7.4.013 MS-Windows: File name buffer too small for utf-8 2671 7.4.014 MS-Windows: check for writing to device does not work 3135 7.4.015 MS-Windows: Detecting node type fails for multi-byte chars @@ -133,7 +133,7 @@ Individual patches for Vim 7.4: 21498 7.4.107 Python try/catch doesn't catch Vim error in vim.eval() 5478 7.4.108 "zG" and "zW" leave temp files around on MS-Windows 3775 7.4.109 ColorScheme autocommand matches with the current buffer name - 3703 7.4.110 "gUgn" cannot be repeeated + 3703 7.4.110 "gUgn" cannot be repeated 1709 7.4.111 memory leak in Python OptionsAssItem 1862 7.4.112 MS-Windows: defaults for 'dir' and 'bdir' do not include $TEMP 2561 7.4.113 MSVC static analysis gives warnings @@ -165,13 +165,13 @@ Individual patches for Vim 7.4: 2254 7.4.139 crash when using :cd in autocommand 5016 7.4.140 crash when autocommand wipes out only other buffer 2430 7.4.141 problems when building with Borland - 4651 7.4.142 (after 7.4.137) on MS-Windows 8 IME input doen't work well + 4651 7.4.142 (after 7.4.137) on MS-Windows 8 IME input doesn't work well 6310 7.4.143 TextChangedI is not triggered. 1480 7.4.144 MingW also supports intptr_t for OPEN_OH_ARGTYPE 2513 7.4.145 getregtype() does not return zero for unknown register 2324 7.4.146 when starting Vim with "-u NONE" v:oldfiles is NULL 2583 7.4.147 cursor position wrong when using "gj" after "$" - 2554 7.4.148 cannot build with Cygwin and X1. + 2554 7.4.148 cannot build with Cygwin and X11 24083 7.4.149 get E685 error when assigning a function to autoload variable 2596 7.4.150 :keeppatterns is not respected for :s 37572 7.4.151 Python: slices with steps are not supported @@ -199,7 +199,7 @@ Individual patches for Vim 7.4: 2110 7.4.173 when using scrollbind the cursor can end up below last line 2945 7.4.174 compiler warnings for Python interface 5133 7.4.175 wrong fall-back to non-wide function if wide function fails - 2606 7.4.176 Python: Dictionary.update() thows an unexpected error + 2606 7.4.176 Python: Dictionary.update() throws an unexpected error 1491 7.4.177 compiler warning for unused variable 1957 7.4.178 the J command does not update '[ and '] marks 1675 7.4.179 Compiler warning for type-punned pointer @@ -221,7 +221,7 @@ Individual patches for Vim 7.4: 7729 7.4.195 (after 7.4.193) Python tests fail 1651 7.4.196 tests fail on Solaris 9 and 10 34900 7.4.197 various problems on VMS - 3101 7.4.198 can't build with non-threding Perl and dynamic loading + 3101 7.4.198 can't build with non-threading Perl and dynamic loading 2946 7.4.199 (issue 197) ]P doesn't paste over Visual selection 1817 7.4.200 too many #ifdefs in the code 7626 7.4.201 'lispwords' is a global option @@ -256,7 +256,7 @@ Individual patches for Vim 7.4: 1673 7.4.230 error when using ":options" 9286 7.4.231 an error in ":options" is not caught by the tests 3599 7.4.232 ":%s/\n//" uses a lot of memory - 2222 7.4.233 escaping special chars in ":!cmd %" is inconsistant + 2222 7.4.233 escaping special chars in ":!cmd %" is inconsistent 3017 7.4.234 can't get the command that was used to start Vim 16436 7.4.235 it is not easy to get the full path of a command 5191 7.4.236 it's not that easy to check the Vim patch version @@ -309,7 +309,7 @@ Individual patches for Vim 7.4: 1771 7.4.283 (after 7.4.276) compiler warning about unused variable 1727 7.4.284 setting 'langmap' in the modeline can cause trouble 1549 7.4.285 line numbers are not always updated for 'relativenumber' - 1610 7.4.286 error messages are inconsistant + 1610 7.4.286 error messages are inconsistent 1394 7.4.287 patches for .hgignore don't work 1397 7.4.288 when 'spellfile' is set the screen is not redrawn 3604 7.4.289 NFA regexp with repeated backreference does not match @@ -357,7 +357,7 @@ Individual patches for Vim 7.4: 1506 7.4.331 relative numbering not updated after a linewise yank 4079 7.4.332 GTK: ugly gaps when a sign icon doesn't fit exactly 2036 7.4.333 compiler warning for unused function - 3295 7.4.334 (after 7.4.330) unitialized variables, causing some problems + 3295 7.4.334 (after 7.4.330) uninitialized variables, causing some problems 3313 7.4.335 no digraph for the new rouble sign 3536 7.4.336 setting 'history' to a big value causes out-of-memory errors 1589 7.4.337 can't execute command line if there was an error before @@ -401,7 +401,7 @@ Individual patches for Vim 7.4: 1967 7.4.375 test 63 fails when run with GUI-only Vim 1877 7.4.376 (after 7.4.367) popup menu flickers too much 4200 7.4.377 with 'equalalways' set a split may report "no room" - 9720 7.4.378 title of quickfist list is not kept for setqflist(list, 'r') + 9720 7.4.378 title of quickfix list is not kept for setqflist(list, 'r') 1382 7.4.379 accessing freed memory after using setqflist(list, 'r') 3324 7.4.380 loading python may cause Vim to exit 1359 7.4.381 u_undo error when backspacing in Insert mode deletes 2 lines @@ -465,7 +465,7 @@ Individual patches for Vim 7.4: 1655 7.4.439 duplicate message in message history 2106 7.4.440 omni complete popup drawn incorrectly 1826 7.4.441 endless loop and other problems when 'cedit' is set to CTRL-C - 2303 7.4.442 (after 7.4.434) using unitinialized variable + 2303 7.4.442 (after 7.4.434) using uninitialized variable 1539 7.4.443 error reported by ubsan when running test 72 1544 7.4.444 reversed question mark not recognized as punctuation 2549 7.4.445 clipboard may be cleared on startup @@ -541,7 +541,7 @@ Individual patches for Vim 7.4: 1653 7.4.517 cursor may not end up in the right place on a wrapping line 1705 7.4.518 using status line height in width computations 26031 7.4.519 (after 7.4.497) crash when using syntax highlighting - 1629 7.4.520 Sun PCK locale is not recognzed + 1629 7.4.520 Sun PCK locale is not recognized 1687 7.4.521 when using "vep" a mark is moved to the next line 1489 7.4.522 specifying wrong buffer size for GetLongPathName() 2626 7.4.523 copy/paste no longer works is X11 server is restarted @@ -588,7 +588,7 @@ Individual patches for Vim 7.4: 7046 7.4.564 FEAT_OSFILETYPE is used even though it's never defined 10949 7.4.565 some ranges are not checked to be valid 19788 7.4.566 :argdo, :bufdo, :windo and :tabdo don't take a range - 1571 7.4.567 non-ascii vertical separater characters are always redrawn + 1571 7.4.567 non-ascii vertical separator characters are always redrawn 2093 7.4.568 giving an error for ":0wincmd w" is a problem for some plugins 5096 7.4.569 having CTRL-C interrupt does not check the mapping mode 4492 7.4.570 building with dynamic library does not work for Ruby 2.2.0 @@ -602,7 +602,7 @@ Individual patches for Vim 7.4: 1647 7.4.578 after "$" in an empty line getcurpos() returns negative number 5369 7.4.579 wrong cursor positioning when 'linebreak' set and lines wrap 1513 7.4.580 ":52wincmd v" still gives an invalid range error - 1773 7.4.581 compiler warnings for unitinialized variables + 1773 7.4.581 compiler warnings for uninitialized variables 3876 7.4.582 (after 7.4.577) can't match "%>80v" properly 1391 7.4.583 with tiny features test 16 may fail 2093 7.4.584 with tiny features test_command_count may fail @@ -641,7 +641,7 @@ Individual patches for Vim 7.4: 2790 7.4.617 wrong ":argdo" range does not cause an error 1337 7.4.618 (after 7.4.609) luaV_setref() is missing a return statement 1929 7.4.619 (after 7.4.618) luaV_setref() not returning the correct value - 1549 7.4.620 compiler warning for unitinialized variable + 1549 7.4.620 compiler warning for uninitialized variable 1755 7.4.621 (after 7.4.619) returning 1 in the wrong function 1584 7.4.622 compiler warning for unused argument 2555 7.4.623 crash with pattern: \(\)\{80000} @@ -716,14 +716,14 @@ Individual patches for Vim 7.4: 1645 7.4.692 defining SOLARIS for no good reason 2100 7.4.693 session file is not correct when there are multiple tab pages 1515 7.4.694 running tests changes the .viminfo file - 2184 7.4.695 out-of-bounds read, dectected by Coverity + 2184 7.4.695 out-of-bounds read, detected by Coverity 1809 7.4.696 not freeing memory when encountering an error 1887 7.4.697 the filename used for ":profile" must be given literally 14611 7.4.698 various problems with locked and fixed lists and dictionaries 1420 7.4.699 E315 when trying to delete a fold 3529 7.4.700 fold can't be opened after ":move" 1774 7.4.701 compiler warning for using uninitialized variable - 1675 7.4.702 joining an empty list does uneccessary work + 1675 7.4.702 joining an empty list does unnecessary work 1837 7.4.703 compiler warning for start_dir unused when building unittests 20231 7.4.704 invalid memory access if char search matches an illegal byte 1983 7.4.705 can't build with Ruby 2.2 @@ -731,7 +731,7 @@ Individual patches for Vim 7.4: 1623 7.4.707 undo files can have their executable bit set 20526 7.4.708 gettext() is called too often 8809 7.4.709 ":tabmove" does not work as documented - 10791 7.4.710 it is not possible to make spaces visibible in list mode + 10791 7.4.710 it is not possible to make spaces visible in list mode 1437 7.4.711 (after 7.4.710) missing change in one file 1434 7.4.712 missing change in another file 1657 7.4.713 wrong condition for #ifdef @@ -742,7 +742,7 @@ Individual patches for Vim 7.4: 2800 7.4.718 quickfix autocommands cannot get the current title value 1682 7.4.719 overflow when adding MAXCOL to a pointer 4211 7.4.720 can't build with Visual Studio 2015 - 2029 7.4.721 empty lines do not have Visual highligthing if 'list' set + 2029 7.4.721 empty lines do not have Visual highlighting if 'list' set 3246 7.4.722 0x202f is not recognized as a non-breaking space character 7610 7.4.723 for indenting, finding the C++ baseclass can be slow 9665 7.4.724 vim icon does not show in Windows context menu (issue 249) @@ -766,7 +766,7 @@ Individual patches for Vim 7.4: 4378 7.4.742 no vertical split when loading buffer for a quickfix command 4122 7.4.743 "p" in Visual mode causes an unexpected line split 6095 7.4.744 no tests for Ruby and Perl - 4813 7.4.745 entries returned by getmatches() dont work with setmatches() + 4813 7.4.745 entries returned by getmatches() don't work with setmatches() 2710 7.4.746 ":[count]tag" is not always working 1489 7.4.747 ":cnext" may jump to wrong column when 'virtualedit' is "all" 1459 7.4.748 (after 7.4.745) buffer overflow @@ -791,3 +791,61 @@ Individual patches for Vim 7.4: 2200 7.4.767 --remote-tab-silent can fail on MS-Windows 6780 7.4.768 :diffoff only works properly once 3627 7.4.769 (after 7.4 768) behavior of :diffoff is not tested + 8689 7.4.770 (after 7.4.766) different bg color response is not ignored + 8368 7.4.771 search wrong when multi-byte character at the start position + 3635 7.4.772 Racket 6.2 is not supported on MS-Windows + 2851 7.4.773 'langmap' is used in cmdline mode when checking for mappings + 7318 7.4.774 it's difficult to get info about the completed item + 6711 7.4.775 it is not possible to avoid using the first item of completion + 3109 7.4.776 equivalence class for 'd' does not work correctly + 5822 7.4.777 the README file doesn't look nice on github + 1682 7.4.778 Coverity warns for uninitialized variable + 2249 7.4.779 cursor moves when using CTRL-A in line without a number + 2682 7.4.780 compiler complains about uninitialized and clobbered variables + 1620 7.4.781 line2byte() returns one less when 'bin' and 'noeol' are set + 23839 7.4.782 still a few problems with CTRL-A and CTRL-X in Visual mode + 11681 7.4.783 copy_chars() and copy_spaces() are inefficient + 1746 7.4.784 using both "noinsert" and "noselect" in 'completeopt' fails + 18639 7.4.785 automatically adding the missing EOL may cause problems + 25332 7.4.786 it is not possible for a plugin to adjust to a changed setting + 3111 7.4.787 (after 7.4.786) snprintf() isn't available everywhere + 2355 7.4.788 (after 7.4.786) can't build without the crypt feature + 2730 7.4.789 (after 7.4.788) using freed memory and crash + 5328 7.4.790 (after 7.4.786) test fails without the autochdir feature + 6313 7.4.791 the buffer list can be too long to list + 27735 7.4.792 can only conceal text by defining syntax items + 22823 7.4.793 can't specify when not to ring the bell + 1645 7.4.794 Visual Studio 2015 is not recognized + 1420 7.4.795 the 'fixeol' option is not copied to a new window + 1609 7.4.796 warning from 64 bit compiler + 7291 7.4.797 crash when using more command line lines than 'maxcombine' + 3832 7.4.798 repeating a change in Visual mode does not work as expected + 1598 7.4.799 accessing memory before an allocated block + 1889 7.4.800 using freed memory when triggering CmdUndefined autocommands + 2265 7.4.801 (after 7.4.769) ":diffoff" test could catch more problems + 2317 7.4.802 using "A" in Visual mode with 'linebreak' set is not tested + 41522 7.4.803 C indent does not support C11 raw strings + 1515 7.4.804 Xxd doesn't have a license notice + 1662 7.4.805 ruler shows "Bot" when there are only filler lines missing + 3907 7.4.806 CTRL-A in Visual mode fails with "alpha" in 'nrformat' + 3649 7.4.807 (after 7.4.798) after CTRL-V CTRL-A mode isn't updated + 3304 7.4.808 on MS-Windows 10 IME input doesn't work correctly + 2338 7.4.809 (after 7.4.802) duplicate test case + 1825 7.4.810 sequence of commands using buffers in diff mode gives E749 + 2419 7.4.811 invalid memory access when using "exe 'sc'" + 1927 7.4.812 Gcc sanitizer complains about using NULL pointer to memmove() + 20045 7.4.813 it is not possible to save and restore character search state + 1561 7.4.814 illegal memory access with "sy match a fold" + 1721 7.4.815 invalid memory access when doing ":call g:" + 1271 7.4.816 invalid memory access when doing ":fun X(" + 1202 7.4.817 invalid memory access in file_pat_to_reg_pat() + 3206 7.4.818 'linebreak' breaks c% if the last Visual selection was block + 13128 7.4.819 beeping when running the tests + 1841 7.4.820 invalid memory access in file_pat_to_reg_pat + 2718 7.4.821 coverity reports a few problem. + 19948 7.4.822 more problems reported by coverity + 2528 7.4.823 cursor moves after CTRL-A on alphabetic character + 1654 7.4.824 (after 7.4.813) can't compile without the multi-byte feature + 2270 7.4.825 invalid memory access for ":syn keyword x a[" + 1946 7.4.826 compiler warnings and errors + 1795 7.4.827 not all test targets are in the Makefile diff --git a/vim.spec b/vim.spec index ccef51c2..4e432a57 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 769 +%define patchlevel 827 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 3%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -816,6 +816,64 @@ Patch766: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.766 Patch767: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.767 Patch768: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.768 Patch769: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.769 +Patch770: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.770 +Patch771: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.771 +Patch772: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.772 +Patch773: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.773 +Patch774: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.774 +Patch775: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.775 +Patch776: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.776 +Patch777: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.777 +Patch778: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.778 +Patch779: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.779 +Patch780: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.780 +Patch781: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.781 +Patch782: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.782 +Patch783: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.783 +Patch784: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.784 +Patch785: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.785 +Patch786: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.786 +Patch787: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.787 +Patch788: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.788 +Patch789: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.789 +Patch790: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.790 +Patch791: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.791 +Patch792: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.792 +Patch793: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.793 +Patch794: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.794 +Patch795: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.795 +Patch796: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.796 +Patch797: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.797 +Patch798: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.798 +Patch799: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.799 +Patch800: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.800 +Patch801: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.801 +Patch802: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.802 +Patch803: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.803 +Patch804: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.804 +Patch805: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.805 +Patch806: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.806 +Patch807: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.807 +Patch808: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.808 +Patch809: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.809 +Patch810: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.810 +Patch811: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.811 +Patch812: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.812 +Patch813: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.813 +Patch814: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.814 +Patch815: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.815 +Patch816: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.816 +Patch817: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.817 +Patch818: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.818 +Patch819: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.819 +Patch820: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.820 +Patch821: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.821 +Patch822: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.822 +Patch823: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.823 +Patch824: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.824 +Patch825: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.825 +Patch826: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.826 +Patch827: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.827 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1735,6 +1793,64 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch767 -p0 %patch768 -p0 %patch769 -p0 +%patch770 -p0 +%patch771 -p0 +%patch772 -p0 +%patch773 -p0 +%patch774 -p0 +%patch775 -p0 +%patch776 -p0 +%patch777 -p0 +%patch778 -p0 +%patch779 -p0 +%patch780 -p0 +%patch781 -p0 +%patch782 -p0 +%patch783 -p0 +%patch784 -p0 +%patch785 -p0 +%patch786 -p0 +%patch787 -p0 +%patch788 -p0 +%patch789 -p0 +%patch790 -p0 +%patch791 -p0 +%patch792 -p0 +%patch793 -p0 +%patch794 -p0 +%patch795 -p0 +%patch796 -p0 +%patch797 -p0 +%patch798 -p0 +%patch799 -p0 +%patch800 -p0 +%patch801 -p0 +%patch802 -p0 +%patch803 -p0 +%patch804 -p0 +%patch805 -p0 +%patch806 -p0 +%patch807 -p0 +%patch808 -p0 +%patch809 -p0 +%patch810 -p0 +%patch811 -p0 +%patch812 -p0 +%patch813 -p0 +%patch814 -p0 +%patch815 -p0 +%patch816 -p0 +%patch817 -p0 +%patch818 -p0 +%patch819 -p0 +%patch820 -p0 +%patch821 -p0 +%patch822 -p0 +%patch823 -p0 +%patch824 -p0 +%patch825 -p0 +%patch826 -p0 +%patch827 -p0 # install spell files %if %{withvimspell} @@ -2292,6 +2408,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Aug 19 2015 Karsten Hopp 7.4.827-1 +- patchlevel 827 + * Fri Jul 10 2015 Lubomir Rintel 7.4.769-3 - drop forcing background, vim detects this since 7.4.757, rhbz#1159920 From 72e2a49c6786f9fe4dddf735891b644961cf45f0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 20 Aug 2015 11:49:08 +0200 Subject: [PATCH 0318/1407] patchlevel 827 re-enable lua enable python3 --- vim.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/vim.spec b/vim.spec index 4e432a57..d5fc23b9 100644 --- a/vim.spec +++ b/vim.spec @@ -12,7 +12,7 @@ %define withvimspell 0 %define withhunspell 0 %define withruby 1 -%define withlua 0 +%define withlua 1 %define baseversion 7.4 %define vimdir vim74 @@ -891,7 +891,7 @@ Patch3014: vim-7.4-licensemacro-1151450.patch Patch3015: vim-7.4-ssh-keywords.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: python-devel ncurses-devel gettext perl-devel +BuildRequires: python-devel python3-devel ncurses-devel gettext perl-devel BuildRequires: perl(ExtUtils::Embed) perl(ExtUtils::ParseXS) BuildRequires: libacl-devel gpm-devel autoconf %if %{WITH_SELINUX} @@ -1825,14 +1825,14 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch799 -p0 %patch800 -p0 %patch801 -p0 -%patch802 -p0 +#patch802 -p0 %patch803 -p0 %patch804 -p0 %patch805 -p0 %patch806 -p0 %patch807 -p0 %patch808 -p0 -%patch809 -p0 +#patch809 -p0 %patch810 -p0 %patch811 -p0 %patch812 -p0 @@ -1909,6 +1909,7 @@ mv -f ex_cmds.c.save ex_cmds.c %configure --with-features=huge \ --enable-pythoninterp=dynamic \ + --enable-python3interp=dynamic \ --enable-perlinterp \ --disable-tclinterp --with-x=yes \ --enable-xim --enable-multibyte \ @@ -1943,6 +1944,7 @@ make clean %configure --prefix=%{_prefix} --with-features=huge \ --enable-pythoninterp=dynamic \ + --enable-python3interp=dynamic \ --enable-perlinterp \ --disable-tclinterp \ --with-x=no \ @@ -2410,6 +2412,8 @@ rm -rf %{buildroot} %changelog * Wed Aug 19 2015 Karsten Hopp 7.4.827-1 - patchlevel 827 +- re-enable lua +- enable python3 * Fri Jul 10 2015 Lubomir Rintel 7.4.769-3 - drop forcing background, vim detects this since 7.4.757, rhbz#1159920 From 548594ddef1163b6108f950cb26b2f37d191b1b6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:04 +0200 Subject: [PATCH 0319/1407] - patchlevel 828 --- 7.4.828 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.4.828 diff --git a/7.4.828 b/7.4.828 new file mode 100644 index 00000000..f35593c1 --- /dev/null +++ b/7.4.828 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.828 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.828 +Problem: Crash when using "syn keyword x c". (Dominique Pelle) +Solution: Initialize the keyword tabble. (Raymond Ko, PR 397) +Files: src/syntax.c + + +*** ../vim-7.4.827/src/syntax.c 2015-08-13 22:53:20.188768573 +0200 +--- src/syntax.c 2015-08-25 11:53:24.461171966 +0200 +*************** +*** 6314,6319 **** +--- 6314,6321 ---- + { + curwin->w_s = (synblock_T *)alloc(sizeof(synblock_T)); + memset(curwin->w_s, 0, sizeof(synblock_T)); ++ hash_init(&curwin->w_s->b_keywtab); ++ hash_init(&curwin->w_s->b_keywtab_ic); + #ifdef FEAT_SPELL + /* TODO: keep the spell checking as it was. */ + curwin->w_p_spell = FALSE; /* No spell checking */ +*** ../vim-7.4.827/src/version.c 2015-08-18 13:48:49.831988811 +0200 +--- src/version.c 2015-08-25 11:52:20.817823019 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 828, + /**/ + +-- +BRIDGEKEEPER: What is the air-speed velocity of an unladen swallow? +ARTHUR: What do you mean? An African or European swallow? +BRIDGEKEEPER: Er ... I don't know that ... Aaaaarrrrrrggghhh! + BRIDGEKEEPER is cast into the gorge. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 5f0dae8968a4af6d028dcf2161ab10c92f898735 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:04 +0200 Subject: [PATCH 0320/1407] - patchlevel 829 --- 7.4.829 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.829 diff --git a/7.4.829 b/7.4.829 new file mode 100644 index 00000000..b1e16b5d --- /dev/null +++ b/7.4.829 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.829 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.829 +Problem: Crash when clicking in beval balloon. (Travis Lebsock) +Solution: Use PostMessage() instead of DestroyWindow(). (Raymond Ko, PR 298) +Files: src/gui_w32.c + + +*** ../vim-7.4.828/src/gui_w32.c 2015-08-11 19:13:55.138175689 +0200 +--- src/gui_w32.c 2015-08-25 12:20:08.668726500 +0200 +*************** +*** 4836,4842 **** + delete_tooltip(beval) + BalloonEval *beval; + { +! DestroyWindow(beval->balloon); + } + + /*ARGSUSED*/ +--- 4836,4843 ---- + delete_tooltip(beval) + BalloonEval *beval; + { +! PostMessage(beval->balloon, WM_DESTROY, 0, 0); +! PostMessage(beval->balloon, WM_NCDESTROY, 0, 0); + } + + /*ARGSUSED*/ +*** ../vim-7.4.828/src/version.c 2015-08-25 11:57:45.026505650 +0200 +--- src/version.c 2015-08-25 12:18:39.021646821 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 829, + /**/ + +-- +BEDEVERE: How do you know so much about swallows? +ARTHUR: Well you have to know these things when you're a king, you know. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From bcb268f1df7442551f06d2df2cff8e7460fd30a0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:05 +0200 Subject: [PATCH 0321/1407] - patchlevel 830 --- 7.4.830 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.4.830 diff --git a/7.4.830 b/7.4.830 new file mode 100644 index 00000000..6b7f1b08 --- /dev/null +++ b/7.4.830 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.830 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.830 +Problem: Resetting 'encoding' when doing ":set all&" causes problems. + (Bjorn Linse) Display is not updated. +Solution: Do not reset 'encoding'. Do a full redraw. +Files: src/option.c + + +*** ../vim-7.4.829/src/option.c 2015-08-11 18:52:58.073121563 +0200 +--- src/option.c 2015-08-25 12:52:02.764997919 +0200 +*************** +*** 3656,3661 **** +--- 3656,3662 ---- + + /* + * Set all options (except terminal options) to their default value. ++ * When "opt_flags" is non-zero skip 'encoding'. + */ + static void + set_options_default(opt_flags) +*************** +*** 3668,3674 **** + #endif + + for (i = 0; !istermoption(&options[i]); i++) +! if (!(options[i].flags & P_NODEFAULT)) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +--- 3669,3676 ---- + #endif + + for (i = 0; !istermoption(&options[i]); i++) +! if (!(options[i].flags & P_NODEFAULT) +! && (opt_flags == 0 || options[i].var != (char_u *)&p_enc)) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +*************** +*** 4204,4209 **** +--- 4206,4212 ---- + ++arg; + /* Only for :set command set global value of local options. */ + set_options_default(OPT_FREE | opt_flags); ++ redraw_all_later(CLEAR); + } + else + { +*** ../vim-7.4.829/src/version.c 2015-08-25 12:21:23.583957205 +0200 +--- src/version.c 2015-08-25 12:50:16.870092540 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 830, + /**/ + +-- +Every exit is an entrance into something else. + + /// 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 /// From bab1f4e9395ca46edc963f76e8dbf6ad8998564f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:06 +0200 Subject: [PATCH 0322/1407] - patchlevel 831 --- 7.4.831 | 127 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100644 7.4.831 diff --git a/7.4.831 b/7.4.831 new file mode 100644 index 00000000..e7c2291c --- /dev/null +++ b/7.4.831 @@ -0,0 +1,127 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.831 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.831 +Problem: When expanding `=expr` on the command line and encountering an + error, the command is executed anyway. +Solution: Bail out when an error is detected. +Files: src/misc1.c + + +*** ../vim-7.4.830/src/misc1.c 2015-07-28 21:17:31.522069387 +0200 +--- src/misc1.c 2015-08-25 13:32:09.704105987 +0200 +*************** +*** 10875,10880 **** +--- 10875,10881 ---- + char_u *p; + static int recursive = FALSE; + int add_pat; ++ int retval = OK; + #if defined(FEAT_SEARCHPATH) + int did_expand_in_path = FALSE; + #endif +*************** +*** 10924,10930 **** +--- 10925,10935 ---- + + #ifdef VIM_BACKTICK + if (vim_backtick(p)) ++ { + add_pat = expand_backtick(&ga, p, flags); ++ if (add_pat == -1) ++ retval = FAIL; ++ } + else + #endif + { +*************** +*** 11013,11019 **** + + recursive = FALSE; + +! return (ga.ga_data != NULL) ? OK : FAIL; + } + + # ifdef VIM_BACKTICK +--- 11018,11024 ---- + + recursive = FALSE; + +! return (ga.ga_data != NULL) ? retval : FAIL; + } + + # ifdef VIM_BACKTICK +*************** +*** 11031,11037 **** + /* + * Expand an item in `backticks` by executing it as a command. + * Currently only works when pat[] starts and ends with a `. +! * Returns number of file names found. + */ + static int + expand_backtick(gap, pat, flags) +--- 11036,11042 ---- + /* + * Expand an item in `backticks` by executing it as a command. + * Currently only works when pat[] starts and ends with a `. +! * Returns number of file names found, -1 if an error is encountered. + */ + static int + expand_backtick(gap, pat, flags) +*************** +*** 11048,11054 **** + /* Create the command: lop off the backticks. */ + cmd = vim_strnsave(pat + 1, (int)STRLEN(pat) - 2); + if (cmd == NULL) +! return 0; + + #ifdef FEAT_EVAL + if (*cmd == '=') /* `={expr}`: Expand expression */ +--- 11053,11059 ---- + /* Create the command: lop off the backticks. */ + cmd = vim_strnsave(pat + 1, (int)STRLEN(pat) - 2); + if (cmd == NULL) +! return -1; + + #ifdef FEAT_EVAL + if (*cmd == '=') /* `={expr}`: Expand expression */ +*************** +*** 11059,11065 **** + (flags & EW_SILENT) ? SHELL_SILENT : 0, NULL); + vim_free(cmd); + if (buffer == NULL) +! return 0; + + cmd = buffer; + while (*cmd != NUL) +--- 11064,11070 ---- + (flags & EW_SILENT) ? SHELL_SILENT : 0, NULL); + vim_free(cmd); + if (buffer == NULL) +! return -1; + + cmd = buffer; + while (*cmd != NUL) +*** ../vim-7.4.830/src/version.c 2015-08-25 12:56:22.622312124 +0200 +--- src/version.c 2015-08-25 13:55:45.693438779 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 831, + /**/ + +-- +Every person is responsible for the choices he makes. + + /// 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 /// From d2a5bc90282c4933d4279ea9df8b88eb178cde00 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:07 +0200 Subject: [PATCH 0323/1407] - patchlevel 832 --- 7.4.832 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 7.4.832 diff --git a/7.4.832 b/7.4.832 new file mode 100644 index 00000000..5c180f71 --- /dev/null +++ b/7.4.832 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.832 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.832 +Problem: $HOME in `=$HOME . '/.vimrc'` is expanded too early. +Solution: Skip over `=expr` when expanding environment names. +Files: src/misc1.c + + +*** ../vim-7.4.831/src/misc1.c 2015-08-25 13:57:00.188667536 +0200 +--- src/misc1.c 2015-08-25 14:12:46.678814290 +0200 +*************** +*** 3969,3974 **** +--- 3969,3994 ---- + --dstlen; /* leave one char space for "\," */ + while (*src && dstlen > 0) + { ++ #ifdef FEAT_EVAL ++ /* Skip over `=expr`. */ ++ if (src[0] == '`' && src[1] == '=') ++ { ++ size_t len; ++ ++ var = src; ++ src += 2; ++ (void)skip_expr(&src); ++ if (*src == '`') ++ ++src; ++ len = src - var; ++ if (len > (size_t)dstlen) ++ len = dstlen; ++ vim_strncpy(dst, var, len); ++ dst += len; ++ dstlen -= len; ++ continue; ++ } ++ #endif + copy_char = TRUE; + if ((*src == '$' + #ifdef VMS +*** ../vim-7.4.831/src/version.c 2015-08-25 13:57:00.188667536 +0200 +--- src/version.c 2015-08-25 14:14:36.573656094 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 832, + /**/ + +-- +It is illegal for anyone to try and stop a child from playfully jumping over +puddles of water. + [real standing law in California, United States of America] + + /// 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 /// From d4ef639e678d363ef86f83a6e7d28b929ff3fc45 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:07 +0200 Subject: [PATCH 0324/1407] - patchlevel 833 --- 7.4.833 | 306 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 306 insertions(+) create mode 100644 7.4.833 diff --git a/7.4.833 b/7.4.833 new file mode 100644 index 00000000..531c3cfe --- /dev/null +++ b/7.4.833 @@ -0,0 +1,306 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.833 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.833 +Problem: More side effects of ":set all&" are missing. (Björn Linse) +Solution: Call didset_options() and add didset_options2() to collect more + side effects to take care of. Still not everything... +Files: src/option.c + + +*** ../vim-7.4.832/src/option.c 2015-08-25 12:56:22.618312165 +0200 +--- src/option.c 2015-08-25 15:29:31.402326593 +0200 +*************** +*** 3079,3084 **** +--- 3079,3085 ---- + #endif + static char_u *option_expand __ARGS((int opt_idx, char_u *val)); + static void didset_options __ARGS((void)); ++ static void didset_options2 __ARGS((void)); + static void check_string_option __ARGS((char_u **pp)); + #if defined(FEAT_EVAL) || defined(PROTO) + static long_u *insecure_flag __ARGS((int opt_idx, int opt_flags)); +*************** +*** 3096,3101 **** +--- 3097,3103 ---- + static char_u *check_clipboard_option __ARGS((void)); + #endif + #ifdef FEAT_SPELL ++ static char_u *did_set_spell_option __ARGS((int is_spellfile)); + static char_u *compile_cap_prog __ARGS((synblock_T *synblock)); + #endif + #ifdef FEAT_EVAL +*************** +*** 3376,3392 **** + didset_options(); + + #ifdef FEAT_SPELL +! /* Use the current chartab for the generic chartab. */ + init_spell_chartab(); + #endif + +- #ifdef FEAT_LINEBREAK +- /* +- * initialize the table for 'breakat'. +- */ +- fill_breakat_flags(); +- #endif +- + /* + * Expand environment variables and things like "~" for the defaults. + * If option_expand() returns non-NULL the variable is expanded. This can +--- 3378,3388 ---- + didset_options(); + + #ifdef FEAT_SPELL +! /* Use the current chartab for the generic chartab. This is not in +! * didset_options() because it only depends on 'encoding'. */ + init_spell_chartab(); + #endif + + /* + * Expand environment variables and things like "~" for the defaults. + * If option_expand() returns non-NULL the variable is expanded. This can +*************** +*** 3418,3431 **** + } + } + +- /* Initialize the highlight_attr[] table. */ +- highlight_changed(); +- + save_file_ff(curbuf); /* Buffer is unchanged */ + +- /* Parse default for 'wildmode' */ +- check_opt_wim(); +- + #if defined(FEAT_ARABIC) + /* Detect use of mlterm. + * Mlterm is a terminal emulator akin to xterm that has some special +--- 3414,3421 ---- +*************** +*** 3437,3451 **** + set_option_value((char_u *)"tbidi", 1L, NULL, 0); + #endif + +! #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING) +! /* Parse default for 'fillchars'. */ +! (void)set_chars_option(&p_fcs); +! #endif +! +! #ifdef FEAT_CLIPBOARD +! /* Parse default for 'clipboard' */ +! (void)check_clipboard_option(); +! #endif + + #ifdef FEAT_MBYTE + # if defined(WIN3264) && defined(FEAT_GETTEXT) +--- 3427,3433 ---- + set_option_value((char_u *)"tbidi", 1L, NULL, 0); + #endif + +! didset_options2(); + + #ifdef FEAT_MBYTE + # if defined(WIN3264) && defined(FEAT_GETTEXT) +*************** +*** 3670,3676 **** + + for (i = 0; !istermoption(&options[i]); i++) + if (!(options[i].flags & P_NODEFAULT) +! && (opt_flags == 0 || options[i].var != (char_u *)&p_enc)) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +--- 3652,3661 ---- + + for (i = 0; !istermoption(&options[i]); i++) + if (!(options[i].flags & P_NODEFAULT) +! && (opt_flags == 0 +! || (options[i].var != (char_u *)&p_enc +! && options[i].var != (char_u *)&p_cm +! && options[i].var != (char_u *)&p_key))) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +*************** +*** 4206,4211 **** +--- 4191,4198 ---- + ++arg; + /* Only for :set command set global value of local options. */ + set_options_default(OPT_FREE | opt_flags); ++ didset_options(); ++ didset_options2(); + redraw_all_later(CLEAR); + } + else +*************** +*** 5348,5353 **** +--- 5335,5341 ---- + (void)spell_check_msm(); + (void)spell_check_sps(); + (void)compile_cap_prog(curwin->w_s); ++ (void)did_set_spell_option(TRUE); + #endif + #if defined(FEAT_TOOLBAR) && !defined(FEAT_GUI_W32) + (void)opt_strings_flags(p_toolbar, p_toolbar_values, &toolbar_flags, TRUE); +*************** +*** 5362,5367 **** +--- 5350,5384 ---- + #ifdef FEAT_LINEBREAK + briopt_check(curwin); + #endif ++ #ifdef FEAT_LINEBREAK ++ /* initialize the table for 'breakat'. */ ++ fill_breakat_flags(); ++ #endif ++ ++ } ++ ++ /* ++ * More side effects of setting options. ++ */ ++ static void ++ didset_options2() ++ { ++ /* Initialize the highlight_attr[] table. */ ++ (void)highlight_changed(); ++ ++ /* Parse default for 'wildmode' */ ++ check_opt_wim(); ++ ++ (void)set_chars_option(&p_lcs); ++ #if defined(FEAT_WINDOWS) || defined(FEAT_FOLDING) ++ /* Parse default for 'fillchars'. */ ++ (void)set_chars_option(&p_fcs); ++ #endif ++ ++ #ifdef FEAT_CLIPBOARD ++ /* Parse default for 'clipboard' */ ++ (void)check_clipboard_option(); ++ #endif + } + + /* +*************** +*** 6794,6821 **** + else if (varp == &(curwin->w_s->b_p_spl) + || varp == &(curwin->w_s->b_p_spf)) + { +! win_T *wp; +! int l; +! +! if (varp == &(curwin->w_s->b_p_spf)) +! { +! l = (int)STRLEN(curwin->w_s->b_p_spf); +! if (l > 0 && (l < 4 || STRCMP(curwin->w_s->b_p_spf + l - 4, +! ".add") != 0)) +! errmsg = e_invarg; +! } +! +! if (errmsg == NULL) +! { +! FOR_ALL_WINDOWS(wp) +! if (wp->w_buffer == curbuf && wp->w_p_spell) +! { +! errmsg = did_set_spelllang(wp); +! # ifdef FEAT_WINDOWS +! break; +! # endif +! } +! } + } + /* When 'spellcapcheck' is set compile the regexp program. */ + else if (varp == &(curwin->w_s->b_p_spc)) +--- 6811,6817 ---- + else if (varp == &(curwin->w_s->b_p_spl) + || varp == &(curwin->w_s->b_p_spf)) + { +! errmsg = did_set_spell_option(varp == &(curwin->w_s->b_p_spf)); + } + /* When 'spellcapcheck' is set compile the regexp program. */ + else if (varp == &(curwin->w_s->b_p_spc)) +*************** +*** 7687,7692 **** +--- 7683,7718 ---- + #endif + + #ifdef FEAT_SPELL ++ static char_u * ++ did_set_spell_option(is_spellfile) ++ int is_spellfile; ++ { ++ char_u *errmsg = NULL; ++ win_T *wp; ++ int l; ++ ++ if (is_spellfile) ++ { ++ l = (int)STRLEN(curwin->w_s->b_p_spf); ++ if (l > 0 && (l < 4 ++ || STRCMP(curwin->w_s->b_p_spf + l - 4, ".add") != 0)) ++ errmsg = e_invarg; ++ } ++ ++ if (errmsg == NULL) ++ { ++ FOR_ALL_WINDOWS(wp) ++ if (wp->w_buffer == curbuf && wp->w_p_spell) ++ { ++ errmsg = did_set_spelllang(wp); ++ # ifdef FEAT_WINDOWS ++ break; ++ # endif ++ } ++ } ++ return errmsg; ++ } ++ + /* + * Set curbuf->b_cap_prog to the regexp program for 'spellcapcheck'. + * Return error message when failed, NULL when OK. +*************** +*** 11741,11746 **** +--- 11767,11773 ---- + if (!(options[opt_idx].flags & (P_WAS_SET|P_VI_DEF))) + set_option_default(opt_idx, OPT_FREE, FALSE); + didset_options(); ++ didset_options2(); + } + + if (fname != NULL) +*************** +*** 11829,11834 **** +--- 11856,11862 ---- + || (!(options[opt_idx].flags & P_VI_DEF) && !p_cp)) + set_option_default(opt_idx, OPT_FREE, p_cp); + didset_options(); ++ didset_options2(); + } + + #ifdef FEAT_LINEBREAK +*** ../vim-7.4.832/src/version.c 2015-08-25 14:21:14.013470670 +0200 +--- src/version.c 2015-08-25 14:47:04.281087542 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 833, + /**/ + +-- +You can be stopped by the police for biking over 65 miles per hour. +You are not allowed to walk across a street on your hands. + [real standing laws in Connecticut, United States of America] + + /// 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 /// From b97fed942a4d64436f791659591ff0c463e9c97a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:08 +0200 Subject: [PATCH 0325/1407] - patchlevel 834 --- 7.4.834 | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 7.4.834 diff --git a/7.4.834 b/7.4.834 new file mode 100644 index 00000000..0ca1a218 --- /dev/null +++ b/7.4.834 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.834 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.834 +Problem: gettabvar() doesn't work after Vim start. (Szymon Wrozynski) +Solution: Handle first window in tab still being NULL. (Christian Brabandt) +Files: src/eval.c, src/testdir/test91.in, src/testdir/test91.ok + + +*** ../vim-7.4.833/src/eval.c 2015-08-13 23:28:38.242878357 +0200 +--- src/eval.c 2015-08-25 16:14:37.962043098 +0200 +*************** +*** 12291,12297 **** + { + /* Set tp to be our tabpage, temporarily. Also set the window to the + * first window in the tabpage, otherwise the window is not valid. */ +! if (switch_win(&oldcurwin, &oldtabpage, tp->tp_firstwin, tp, TRUE) + == OK) + { + /* look up the variable */ +--- 12291,12298 ---- + { + /* Set tp to be our tabpage, temporarily. Also set the window to the + * first window in the tabpage, otherwise the window is not valid. */ +! if (switch_win(&oldcurwin, &oldtabpage, +! tp->tp_firstwin == NULL ? firstwin : tp->tp_firstwin, tp, TRUE) + == OK) + { + /* look up the variable */ +*** ../vim-7.4.833/src/testdir/test91.in 2014-09-09 16:13:05.040531695 +0200 +--- src/testdir/test91.in 2015-08-25 16:14:21.978209619 +0200 +*************** +*** 5,12 **** + :so small.vim + :so mbyte.vim + :" +- :" Test for getbufvar() + :" Use strings to test for memory leaks. + :let b:var_num = '1234' + :let def_num = '5678' + :$put =string(getbufvar(1, 'var_num')) +--- 5,16 ---- + :so small.vim + :so mbyte.vim + :" + :" Use strings to test for memory leaks. ++ :" First, check that in an empty window, gettabvar() returns the correct value ++ :let t:testvar='abcd' ++ :$put =string(gettabvar(1,'testvar')) ++ :$put =string(gettabvar(1,'testvar')) ++ :" Test for getbufvar() + :let b:var_num = '1234' + :let def_num = '5678' + :$put =string(getbufvar(1, 'var_num')) +*** ../vim-7.4.833/src/testdir/test91.ok 2014-09-09 16:13:05.040531695 +0200 +--- src/testdir/test91.ok 2015-08-25 16:14:21.978209619 +0200 +*************** +*** 1,4 **** +--- 1,6 ---- + start: ++ 'abcd' ++ 'abcd' + '1234' + '1234' + {'var_num': '1234'} +*** ../vim-7.4.833/src/version.c 2015-08-25 15:39:51.459826645 +0200 +--- src/version.c 2015-08-25 16:14:09.318341510 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 834, + /**/ + +-- +A special law prohibits unmarried women from parachuting on Sunday or she +shall risk arrest, fine, and/or jailing. + [real standing law in Florida, United States of America] + + /// 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 /// From 234b35c66044c2690f53aeb97481f76eb043e5a8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:08 +0200 Subject: [PATCH 0326/1407] - patchlevel 835 --- 7.4.835 | 158 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 7.4.835 diff --git a/7.4.835 b/7.4.835 new file mode 100644 index 00000000..99a5fad5 --- /dev/null +++ b/7.4.835 @@ -0,0 +1,158 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.835 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.835 +Problem: Comparing utf-8 sequences does not handle different byte sizes + correctly. +Solution: Get the byte size of each character. (Dominique Pelle) +Files: src/misc2.c + + +*** ../vim-7.4.834/src/misc2.c 2015-07-17 13:22:43.153523709 +0200 +--- src/misc2.c 2015-08-25 16:27:31.565982817 +0200 +*************** +*** 5058,5064 **** + char_u *s1; + char_u *s2; + { +! int i; + int prev1 = NUL; + int prev2 = NUL; + +--- 5058,5064 ---- + char_u *s1; + char_u *s2; + { +! int i, j; + int prev1 = NUL; + int prev2 = NUL; + +*************** +*** 5068,5086 **** + if (s1 == NULL || s2 == NULL) + return FALSE; + +! if (STRLEN(s1) != STRLEN(s2)) +! return FAIL; +! +! for (i = 0; s1[i] != NUL && s2[i] != NUL; i += MB_PTR2LEN(s1 + i)) + { + int c1 = PTR2CHAR(s1 + i); +! int c2 = PTR2CHAR(s2 + i); + + if ((p_fic ? MB_TOLOWER(c1) != MB_TOLOWER(c2) : c1 != c2) + && (prev1 != '*' || prev2 != '*')) + return FAIL; + prev2 = prev1; + prev1 = c1; + } + return TRUE; + } +--- 5068,5086 ---- + if (s1 == NULL || s2 == NULL) + return FALSE; + +! for (i = 0, j = 0; s1[i] != NUL;) + { + int c1 = PTR2CHAR(s1 + i); +! int c2 = PTR2CHAR(s2 + j); + + if ((p_fic ? MB_TOLOWER(c1) != MB_TOLOWER(c2) : c1 != c2) + && (prev1 != '*' || prev2 != '*')) + return FAIL; + prev2 = prev1; + prev1 = c1; ++ ++ i += MB_PTR2LEN(s1 + i); ++ j += MB_PTR2LEN(s2 + j); + } + return TRUE; + } +*************** +*** 5814,5827 **** + const char *p, *q; + int maxlen; + { +! int i; + int c1, c2; + const char *s = NULL; + +! for (i = 0; maxlen < 0 || i < maxlen; i += MB_PTR2LEN((char_u *)p + i)) + { + c1 = PTR2CHAR((char_u *)p + i); +! c2 = PTR2CHAR((char_u *)q + i); + + /* End of "p": check if "q" also ends or just has a slash. */ + if (c1 == NUL) +--- 5814,5827 ---- + const char *p, *q; + int maxlen; + { +! int i, j; + int c1, c2; + const char *s = NULL; + +! for (i = 0, j = 0; maxlen < 0 || (i < maxlen && j < maxlen);) + { + c1 = PTR2CHAR((char_u *)p + i); +! c2 = PTR2CHAR((char_u *)q + j); + + /* End of "p": check if "q" also ends or just has a slash. */ + if (c1 == NUL) +*************** +*** 5829,5834 **** +--- 5829,5835 ---- + if (c2 == NUL) /* full match */ + return 0; + s = q; ++ i = j; + break; + } + +*************** +*** 5854,5861 **** + return p_fic ? MB_TOUPPER(c1) - MB_TOUPPER(c2) + : c1 - c2; /* no match */ + } + } +! if (s == NULL) /* "i" ran into "maxlen" */ + return 0; + + c1 = PTR2CHAR((char_u *)s + i); +--- 5855,5865 ---- + return p_fic ? MB_TOUPPER(c1) - MB_TOUPPER(c2) + : c1 - c2; /* no match */ + } ++ ++ i += MB_PTR2LEN((char_u *)p + i); ++ j += MB_PTR2LEN((char_u *)q + j); + } +! if (s == NULL) /* "i" or "j" ran into "maxlen" */ + return 0; + + c1 = PTR2CHAR((char_u *)s + i); +*** ../vim-7.4.834/src/version.c 2015-08-25 16:19:01.587296525 +0200 +--- src/version.c 2015-08-25 16:22:58.444828674 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 835, + /**/ + +-- +If an elephant is left tied to a parking meter, the parking fee has to be paid +just as it would for a vehicle. + [real standing law in Florida, United States of America] + + /// 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 /// From f193adb61837fb7491076a6df998239cbb198f31 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:08 +0200 Subject: [PATCH 0327/1407] - patchlevel 836 --- 7.4.836 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.836 diff --git a/7.4.836 b/7.4.836 new file mode 100644 index 00000000..372381c8 --- /dev/null +++ b/7.4.836 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.836 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.836 +Problem: Accessing unitinialized memory. +Solution: Add missing calls to init_tv(). (Dominique Pelle) +Files: src/eval.c + + +*** ../vim-7.4.835/src/eval.c 2015-08-25 16:19:01.583296566 +0200 +--- src/eval.c 2015-08-25 16:47:06.109777570 +0200 +*************** +*** 5371,5376 **** +--- 5371,5378 ---- + } + #endif + ++ init_tv(&var1); ++ init_tv(&var2); + if (**arg == '.') + { + /* +*** ../vim-7.4.835/src/version.c 2015-08-25 16:31:34.631453176 +0200 +--- src/version.c 2015-08-25 16:46:21.294243211 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 836, + /**/ + +-- +Men may not be seen publicly in any kind of strapless gown. + [real standing law in Florida, United States of America] + + /// 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 /// From 9fe8fe555e457fd93ef4caaf98b48759c48a42bb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:09 +0200 Subject: [PATCH 0328/1407] - patchlevel 837 --- 7.4.837 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.4.837 diff --git a/7.4.837 b/7.4.837 new file mode 100644 index 00000000..a390caab --- /dev/null +++ b/7.4.837 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.837 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.837 +Problem: Compiler warning with MSVC compiler when using +sniff. +Solution: Use Sleep() instead of _sleep(). (Tux) +Files: src/if_sniff.c + + +*** ../vim-7.4.836/src/if_sniff.c 2012-06-20 19:56:09.000000000 +0200 +--- src/if_sniff.c 2015-08-25 19:49:03.289172373 +0200 +*************** +*** 655,661 **** +--- 655,665 ---- + else + { + #ifdef WIN32 ++ # if (defined(_MSC_VER) && _MSC_VER >= 1400) ++ Sleep(2); ++ # else + _sleep(2); ++ # endif + if (!sniff_request_processed) + ProcessSniffRequests(); + #else +*** ../vim-7.4.836/src/version.c 2015-08-25 16:48:56.072640146 +0200 +--- src/version.c 2015-08-25 19:48:21.269605069 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 837, + /**/ + +-- +It is illegal for anyone to give lighted cigars to dogs, cats, and other +domesticated animal kept as pets. + [real standing law in Illinois, United States of America] + + /// 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 /// From 4bc214520f6c071a6b40ba5a287eb2e2cb8091e3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:10 +0200 Subject: [PATCH 0329/1407] - patchlevel 838 --- 7.4.838 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.838 diff --git a/7.4.838 b/7.4.838 new file mode 100644 index 00000000..6b7bf7d8 --- /dev/null +++ b/7.4.838 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.838 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.838 (after 7.4.833) +Problem: Can't compile without the crypt feature. (John Marriott) +Solution: Add #ifdef. +Files: src/option.c + + +*** ../vim-7.4.837/src/option.c 2015-08-25 15:39:51.459826645 +0200 +--- src/option.c 2015-08-25 21:25:19.909499949 +0200 +*************** +*** 3654,3661 **** + if (!(options[i].flags & P_NODEFAULT) + && (opt_flags == 0 + || (options[i].var != (char_u *)&p_enc + && options[i].var != (char_u *)&p_cm +! && options[i].var != (char_u *)&p_key))) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +--- 3654,3664 ---- + if (!(options[i].flags & P_NODEFAULT) + && (opt_flags == 0 + || (options[i].var != (char_u *)&p_enc ++ #if defined(FEAT_CRYPT) + && options[i].var != (char_u *)&p_cm +! && options[i].var != (char_u *)&p_key +! #endif +! ))) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +*** ../vim-7.4.837/src/version.c 2015-08-25 19:49:46.724725068 +0200 +--- src/version.c 2015-08-25 21:26:30.040783229 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 838, + /**/ + +-- +It is illegal to rob a bank and then shoot at the bank teller with a water +pistol. + [real standing law in Louisana, United States of America] + + /// 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 /// From e31d427dc2660ae5e4efbf2257c8c2445c5afcb3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 26 Aug 2015 11:20:14 +0200 Subject: [PATCH 0330/1407] - patchlevel 838 --- README.patches | 11 +++++++++++ vim.spec | 27 ++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 47b9d3ff..ab215514 100644 --- a/README.patches +++ b/README.patches @@ -849,3 +849,14 @@ Individual patches for Vim 7.4: 2270 7.4.825 invalid memory access for ":syn keyword x a[" 1946 7.4.826 compiler warnings and errors 1795 7.4.827 not all test targets are in the Makefile + 1748 7.4.828 crash when using "syn keyword x c" + 1635 7.4.829 crash when clicking in beval balloon + 2105 7.4.830 resetting 'encoding' when doing ":set all&" causes problems + 3365 7.4.831 when error in expanding `=expr` the command is still executed + 1815 7.4.832 $HOME in `=$HOME . '/.vimrc'` is expanded too early + 8285 7.4.833 more side effects of ":set all&" are missing + 2971 7.4.834 gettabvar() doesn't work after Vim start + 3913 7.4.835 comparing utf-8 does not handle different byte sizes correctly + 1306 7.4.836 accessing unitinialized memory + 1478 7.4.837 compiler warning with MSVC compiler when using +sniff + 1820 7.4.838 (after 7.4.833) can't compile without the crypt feature diff --git a/vim.spec b/vim.spec index d5fc23b9..37fd6217 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 827 +%define patchlevel 838 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -874,6 +874,17 @@ Patch824: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.824 Patch825: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.825 Patch826: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.826 Patch827: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.827 +Patch828: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.828 +Patch829: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.829 +Patch830: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.830 +Patch831: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.831 +Patch832: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.832 +Patch833: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.833 +Patch834: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.834 +Patch835: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.835 +Patch836: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.836 +Patch837: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.837 +Patch838: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.838 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1851,6 +1862,17 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch825 -p0 %patch826 -p0 %patch827 -p0 +%patch828 -p0 +%patch829 -p0 +%patch830 -p0 +%patch831 -p0 +%patch832 -p0 +%patch833 -p0 +%patch834 -p0 +%patch835 -p0 +%patch836 -p0 +%patch837 -p0 +%patch838 -p0 # install spell files %if %{withvimspell} @@ -2410,6 +2432,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Aug 26 2015 Karsten Hopp 7.4.838-1 +- patchlevel 838 + * Wed Aug 19 2015 Karsten Hopp 7.4.827-1 - patchlevel 827 - re-enable lua From 141ccde262b1da40ee8be87e934031eff363c77b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Aug 2015 11:20:03 +0200 Subject: [PATCH 0331/1407] - patchlevel 839 --- 7.4.839 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.839 diff --git a/7.4.839 b/7.4.839 new file mode 100644 index 00000000..4b0e3bb5 --- /dev/null +++ b/7.4.839 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.839 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.839 +Problem: Compiler warning on 64-bit system. +Solution: Add cast to int. (Mike Williams) +Files: src/search.c + + +*** ../vim-7.4.838/src/search.c 2015-08-13 23:28:38.246878308 +0200 +--- src/search.c 2015-08-26 22:58:31.183512457 +0200 +*************** +*** 1801,1807 **** + for (p = linep + startpos->col + 1; *p && *p != '('; ++p) + ; + delim_len = (p - linep) - startpos->col - 1; +! delim_copy = vim_strnsave(linep + startpos->col + 1, delim_len); + if (delim_copy == NULL) + return FALSE; + for (lnum = startpos->lnum; lnum <= endpos->lnum; ++lnum) +--- 1801,1807 ---- + for (p = linep + startpos->col + 1; *p && *p != '('; ++p) + ; + delim_len = (p - linep) - startpos->col - 1; +! delim_copy = vim_strnsave(linep + startpos->col + 1, (int)delim_len); + if (delim_copy == NULL) + return FALSE; + for (lnum = startpos->lnum; lnum <= endpos->lnum; ++lnum) +*** ../vim-7.4.838/src/version.c 2015-08-25 21:27:31.312156958 +0200 +--- src/version.c 2015-08-26 22:59:14.719028665 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 839, + /**/ + +-- +Close your shells, or I'll kill -9 you +Tomorrow I'll quota you +Remember the disks'll always be full +And then while I'm away +I'll write ~ everyday +And I'll send-pr all my buggings to you. + [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ] + + /// 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 /// From 0e83b0d07476340326da42d8e76fd516d5bbc88f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Aug 2015 11:20:04 +0200 Subject: [PATCH 0332/1407] - patchlevel 840 --- 7.4.840 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.840 diff --git a/7.4.840 b/7.4.840 new file mode 100644 index 00000000..0b6f5f8f --- /dev/null +++ b/7.4.840 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.840 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.840 (after 7.4.829) +Problem: Tooltip window stays open. +Solution: Send a WM_CLOSE message. (Jurgen Kramer) +Files: src/gui_w32.c + + +*** ../vim-7.4.839/src/gui_w32.c 2015-08-25 12:21:23.583957205 +0200 +--- src/gui_w32.c 2015-08-26 23:10:03.847838259 +0200 +*************** +*** 4836,4841 **** +--- 4836,4842 ---- + delete_tooltip(beval) + BalloonEval *beval; + { ++ PostMessage(beval->balloon, WM_CLOSE, 0, 0); + PostMessage(beval->balloon, WM_DESTROY, 0, 0); + PostMessage(beval->balloon, WM_NCDESTROY, 0, 0); + } +*** ../vim-7.4.839/src/version.c 2015-08-26 23:01:16.453676957 +0200 +--- src/version.c 2015-08-26 23:11:28.262906177 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 840, + /**/ + +-- +A programmer's wife asks him: "Please run to the store and pick up a loaf of +bread. If they have eggs, get a dozen". The programmer comes home with 12 +loafs of bread. + + /// 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 /// From 749ebbe58c84a21956910133922fb7196fa3fac1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Aug 2015 11:20:04 +0200 Subject: [PATCH 0333/1407] - patchlevel 841 --- 7.4.841 | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 7.4.841 diff --git a/7.4.841 b/7.4.841 new file mode 100644 index 00000000..690d0d25 --- /dev/null +++ b/7.4.841 @@ -0,0 +1,75 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.841 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.841 +Problem: Can't compile without the multi-byte feature. (John Marriott) +Solution: Add more #ifdef's. +Files: src/option.c + + +*** ../vim-7.4.840/src/option.c 2015-08-25 21:27:31.312156958 +0200 +--- src/option.c 2015-08-26 23:18:39.122134709 +0200 +*************** +*** 3652,3664 **** + + for (i = 0; !istermoption(&options[i]); i++) + if (!(options[i].flags & P_NODEFAULT) + && (opt_flags == 0 +! || (options[i].var != (char_u *)&p_enc +! #if defined(FEAT_CRYPT) + && options[i].var != (char_u *)&p_cm + && options[i].var != (char_u *)&p_key + #endif +! ))) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +--- 3652,3670 ---- + + for (i = 0; !istermoption(&options[i]); i++) + if (!(options[i].flags & P_NODEFAULT) ++ #if defined(FEAT_MBYTE) || defined(FEAT_CRYPT) + && (opt_flags == 0 +! || (TRUE +! # if defined(FEAT_MBYTE) +! && options[i].var != (char_u *)&p_enc +! # endif +! # if defined(FEAT_CRYPT) + && options[i].var != (char_u *)&p_cm + && options[i].var != (char_u *)&p_key ++ # endif ++ )) + #endif +! ) + set_option_default(i, opt_flags, p_cp); + + #ifdef FEAT_WINDOWS +*** ../vim-7.4.840/src/version.c 2015-08-26 23:12:32.730194785 +0200 +--- src/version.c 2015-08-26 23:22:20.295676696 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 841, + /**/ + +-- +So when I saw the post to comp.editors, I rushed over to the FTP site to +grab it. So I yank apart the tarball, light x candles, where x= the +vim version multiplied by the md5sum of the source divided by the MAC of +my NIC (8A3FA78155A8A1D346C3C4A), put on black robes, dim the lights, +wave a dead chicken over the hard drive, and summon the power of GNU GCC +with the magic words "make config ; make!". + [Jason Spence, compiling Vim 5.0] + + /// 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 /// From 25f82cac860f1f1bcc3d21cf6283d6e8b174a1e7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Aug 2015 11:20:04 +0200 Subject: [PATCH 0334/1407] - patchlevel 841 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index ab215514..c114774e 100644 --- a/README.patches +++ b/README.patches @@ -860,3 +860,6 @@ Individual patches for Vim 7.4: 1306 7.4.836 accessing unitinialized memory 1478 7.4.837 compiler warning with MSVC compiler when using +sniff 1820 7.4.838 (after 7.4.833) can't compile without the crypt feature + 1944 7.4.839 compiler warning on 64-bit system + 1482 7.4.840 (after 7.4.829) tooltip window stays open + 2380 7.4.841 can't compile without the multi-byte feature diff --git a/vim.spec b/vim.spec index 37fd6217..7459a9fe 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 838 +%define patchlevel 841 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -885,6 +885,9 @@ Patch835: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.835 Patch836: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.836 Patch837: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.837 Patch838: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.838 +Patch839: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.839 +Patch840: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.840 +Patch841: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.841 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1873,6 +1876,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch836 -p0 %patch837 -p0 %patch838 -p0 +%patch839 -p0 +%patch840 -p0 +%patch841 -p0 # install spell files %if %{withvimspell} @@ -2432,6 +2438,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Aug 27 2015 Karsten Hopp 7.4.841-1 +- patchlevel 841 + * Wed Aug 26 2015 Karsten Hopp 7.4.838-1 - patchlevel 838 From 30b3343701158e00ce77b202624fedc99e7e6b26 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Aug 2015 11:20:05 +0200 Subject: [PATCH 0335/1407] - patchlevel 842 --- 7.4.842 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.842 diff --git a/7.4.842 b/7.4.842 new file mode 100644 index 00000000..afe263dd --- /dev/null +++ b/7.4.842 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.842 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.842 (after 7.4.840) +Problem: Sending too many messages to close the balloon. +Solution: Only send a WM_CLOSE message. (Jurgen Kramer) +Files: src/gui_w32.c + + +*** ../vim-7.4.841/src/gui_w32.c 2015-08-26 23:12:32.730194785 +0200 +--- src/gui_w32.c 2015-08-27 19:07:00.813684956 +0200 +*************** +*** 4837,4844 **** + BalloonEval *beval; + { + PostMessage(beval->balloon, WM_CLOSE, 0, 0); +- PostMessage(beval->balloon, WM_DESTROY, 0, 0); +- PostMessage(beval->balloon, WM_NCDESTROY, 0, 0); + } + + /*ARGSUSED*/ +--- 4837,4842 ---- +*** ../vim-7.4.841/src/version.c 2015-08-26 23:24:06.854494285 +0200 +--- src/version.c 2015-08-27 22:24:20.760750071 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 842, + /**/ + +-- +Females are strictly forbidden to appear unshaven in public. + [real standing law in New Mexico, United States of America] + + /// 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 /// From 8a5c236c331c76fda6d5ed319927af73a37a61f8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Aug 2015 11:20:06 +0200 Subject: [PATCH 0336/1407] - patchlevel 843 --- 7.4.843 | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 7.4.843 diff --git a/7.4.843 b/7.4.843 new file mode 100644 index 00000000..f85d4512 --- /dev/null +++ b/7.4.843 @@ -0,0 +1,91 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.843 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.843 (after 7.4.835) +Problem: Still possible to go beyond the end of a string. +Solution: Check for NUL also in second string. (Dominique Pelle) +Files: src/misc2.c + + +*** ../vim-7.4.842/src/misc2.c 2015-08-25 16:31:34.631453176 +0200 +--- src/misc2.c 2015-08-27 22:23:18.181382994 +0200 +*************** +*** 5059,5064 **** +--- 5059,5066 ---- + char_u *s2; + { + int i, j; ++ int c1 = NUL; ++ int c2 = NUL; + int prev1 = NUL; + int prev2 = NUL; + +*************** +*** 5068,5088 **** + if (s1 == NULL || s2 == NULL) + return FALSE; + +! for (i = 0, j = 0; s1[i] != NUL;) + { +! int c1 = PTR2CHAR(s1 + i); +! int c2 = PTR2CHAR(s2 + j); + + if ((p_fic ? MB_TOLOWER(c1) != MB_TOLOWER(c2) : c1 != c2) + && (prev1 != '*' || prev2 != '*')) +! return FAIL; + prev2 = prev1; + prev1 = c1; + + i += MB_PTR2LEN(s1 + i); + j += MB_PTR2LEN(s2 + j); + } +! return TRUE; + } + #endif + +--- 5070,5090 ---- + if (s1 == NULL || s2 == NULL) + return FALSE; + +! for (i = 0, j = 0; s1[i] != NUL && s2[j] != NUL;) + { +! c1 = PTR2CHAR(s1 + i); +! c2 = PTR2CHAR(s2 + j); + + if ((p_fic ? MB_TOLOWER(c1) != MB_TOLOWER(c2) : c1 != c2) + && (prev1 != '*' || prev2 != '*')) +! return FALSE; + prev2 = prev1; + prev1 = c1; + + i += MB_PTR2LEN(s1 + i); + j += MB_PTR2LEN(s2 + j); + } +! return c1 == c2; + } + #endif + +*** ../vim-7.4.842/src/version.c 2015-08-27 22:25:03.464318030 +0200 +--- src/version.c 2015-08-27 22:30:21.093101012 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 843, + /**/ + +-- +Beer & pretzels can't be served at the same time in any bar or restaurant. + [real standing law in North Dakota, United States of America] + + /// 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 /// From abc64b1606d364228f3347a40e60dbd1533eb646 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Aug 2015 11:20:07 +0200 Subject: [PATCH 0337/1407] - patchlevel 843 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index c114774e..9ce50b64 100644 --- a/README.patches +++ b/README.patches @@ -863,3 +863,5 @@ Individual patches for Vim 7.4: 1944 7.4.839 compiler warning on 64-bit system 1482 7.4.840 (after 7.4.829) tooltip window stays open 2380 7.4.841 can't compile without the multi-byte feature + 1456 7.4.842 sending too many messages to close the balloon + 2336 7.4.843 (after 7.4.835) still possible to go beyond end of a string diff --git a/vim.spec b/vim.spec index 7459a9fe..a797422c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 841 +%define patchlevel 843 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -888,6 +888,8 @@ Patch838: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.838 Patch839: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.839 Patch840: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.840 Patch841: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.841 +Patch842: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.842 +Patch843: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.843 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1879,6 +1881,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch839 -p0 %patch840 -p0 %patch841 -p0 +%patch842 -p0 +%patch843 -p0 # install spell files %if %{withvimspell} @@ -2438,6 +2442,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Aug 28 2015 Karsten Hopp 7.4.843-1 +- patchlevel 843 + * Thu Aug 27 2015 Karsten Hopp 7.4.841-1 - patchlevel 841 From c4482c0c58609d15d43bb472bb8c809e43b829f4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:03 +0200 Subject: [PATCH 0338/1407] - patchlevel 844 --- 7.4.844 | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 190 insertions(+) create mode 100644 7.4.844 diff --git a/7.4.844 b/7.4.844 new file mode 100644 index 00000000..907adc07 --- /dev/null +++ b/7.4.844 @@ -0,0 +1,190 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.844 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.844 +Problem: When '#' is in 'isident' the is# comparator doesn't work. +Solution: Don't use vim_isIDc(). (Yasuhiro Matsumoto) +Files: src/eval.c, src/testdir/test_comparators.in, + src/testdir/test_comparators.ok, src/testdir/Makefile, + src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Make_vms.mms + + +*** ../vim-7.4.843/src/eval.c 2015-08-25 16:48:56.072640146 +0200 +--- src/eval.c 2015-09-01 16:01:08.008531180 +0200 +*************** +*** 4431,4437 **** + { + if (p[2] == 'n' && p[3] == 'o' && p[4] == 't') + len = 5; +! if (!vim_isIDc(p[len])) + { + type = len == 2 ? TYPE_EQUAL : TYPE_NEQUAL; + type_is = TRUE; +--- 4431,4438 ---- + { + if (p[2] == 'n' && p[3] == 'o' && p[4] == 't') + len = 5; +! i = p[len]; +! if (!isalnum(i) && i != '_') + { + type = len == 2 ? TYPE_EQUAL : TYPE_NEQUAL; + type_is = TRUE; +*** ../vim-7.4.843/src/testdir/test_comparators.in 2015-09-01 16:04:01.606732445 +0200 +--- src/testdir/test_comparators.in 2015-09-01 15:55:25.584077613 +0200 +*************** +*** 0 **** +--- 1,21 ---- ++ " Test for expression comparators. vim: set ft=vim : ++ ++ ++ STARTTEST ++ :so small.vim ++ :try ++ : let oldisident=&isident ++ : set isident+=# ++ : if 1 is#1 ++ : $put ='ok' ++ : else ++ : $put ='ng' ++ : endif ++ :finally ++ : let &isident=oldisident ++ :endtry ++ :" ++ :/^marker/+1,$wq! test.out ++ ENDTEST ++ ++ marker +*** ../vim-7.4.843/src/testdir/test_comparators.ok 2015-09-01 16:04:01.610732403 +0200 +--- src/testdir/test_comparators.ok 2015-09-01 15:55:43.527891828 +0200 +*************** +*** 0 **** +--- 1 ---- ++ ok +*** ../vim-7.4.843/src/testdir/Makefile 2015-08-11 14:26:03.594931131 +0200 +--- src/testdir/Makefile 2015-09-01 15:57:00.607093695 +0200 +*************** +*** 42,47 **** +--- 42,48 ---- + test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ ++ test_comparators.out \ + test_erasebackword.out \ + test_eval.out \ + test_fixeol.out \ +*** ../vim-7.4.843/src/testdir/Make_amiga.mak 2015-08-11 14:26:03.594931131 +0200 +--- src/testdir/Make_amiga.mak 2015-09-01 15:56:34.279366321 +0200 +*************** +*** 45,50 **** +--- 45,51 ---- + test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ ++ test_comparators.out \ + test_erasebackword.out \ + test_eval.out \ + test_fixeol.out \ +*************** +*** 198,203 **** +--- 199,205 ---- + test_charsearch.out: test_charsearch.in + test_close_count.out: test_close_count.in + test_command_count.out: test_command_count.in ++ test_comparators.out: test_comparators.in + test_erasebackword.out: test_erasebackword.in + test_eval.out: test_eval.in + test_increment.out: test_increment.in +*** ../vim-7.4.843/src/testdir/Make_dos.mak 2015-08-11 14:26:03.594931131 +0200 +--- src/testdir/Make_dos.mak 2015-09-01 15:56:40.607300797 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ ++ test_comparators.out \ + test_erasebackword.out \ + test_eval.out \ + test_fixeol.out \ +*** ../vim-7.4.843/src/testdir/Make_ming.mak 2015-08-11 14:26:03.594931131 +0200 +--- src/testdir/Make_ming.mak 2015-09-01 15:56:44.631259125 +0200 +*************** +*** 66,71 **** +--- 66,72 ---- + test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ ++ test_comparators.out \ + test_erasebackword.out \ + test_eval.out \ + test_fixeol.out \ +*** ../vim-7.4.843/src/testdir/Make_os2.mak 2015-08-11 14:26:03.594931131 +0200 +--- src/testdir/Make_os2.mak 2015-09-01 15:56:46.683237882 +0200 +*************** +*** 46,51 **** +--- 46,52 ---- + test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ ++ test_comparators.out \ + test_erasebackword.out \ + test_eval.out \ + test_fixeol.out \ +*** ../vim-7.4.843/src/testdir/Make_vms.mms 2015-08-11 14:26:03.594931131 +0200 +--- src/testdir/Make_vms.mms 2015-09-01 15:56:50.363199776 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Aug 11 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Sep 01 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 105,110 **** +--- 105,111 ---- + test_charsearch.out \ + test_close_count.out \ + test_command_count.out \ ++ test_comparators.out \ + test_erasebackword.out \ + test_eval.out \ + test_fixeol.out \ +*** ../vim-7.4.843/src/version.c 2015-08-27 22:30:43.548873347 +0200 +--- src/version.c 2015-09-01 15:59:22.845620563 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 844, + /**/ + +-- +TERRY GILLIAM PLAYED: PATSY (ARTHUR'S TRUSTY STEED), THE GREEN KNIGHT + SOOTHSAYER, BRIDGEKEEPER, SIR GAWAIN (THE FIRST TO BE + KILLED BY THE RABBIT) + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 823a37bf51b1af30147f36cc32ed26fbf712d6dc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:03 +0200 Subject: [PATCH 0339/1407] - patchlevel 845 --- 7.4.845 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.845 diff --git a/7.4.845 b/7.4.845 new file mode 100644 index 00000000..6a61197d --- /dev/null +++ b/7.4.845 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.845 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.845 +Problem: Compiler warning for possible loss of data. +Solution: Add a type cast. (Erich Ritz) +Files: src/misc1.c + + +*** ../vim-7.4.844/src/misc1.c 2015-08-25 14:21:14.013470670 +0200 +--- src/misc1.c 2015-09-01 16:23:51.378393877 +0200 +*************** +*** 3985,3991 **** + len = dstlen; + vim_strncpy(dst, var, len); + dst += len; +! dstlen -= len; + continue; + } + #endif +--- 3985,3991 ---- + len = dstlen; + vim_strncpy(dst, var, len); + dst += len; +! dstlen -= (int)len; + continue; + } + #endif +*** ../vim-7.4.844/src/version.c 2015-09-01 16:04:26.706472322 +0200 +--- src/version.c 2015-09-01 16:24:37.497917848 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 845, + /**/ + +-- +MICHAEL PALIN PLAYED: 1ST SOLDIER WITH A KEEN INTEREST IN BIRDS, DENNIS, MR + DUCK (A VILLAGE CARPENTER WHO IS ALMOST KEENER THAN + ANYONE ELSE TO BURN WITCHES), THREE-HEADED KNIGHT, SIR + GALAHAD, KING OF SWAMP CASTLE, BROTHER MAYNARD'S ROOMATE + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From ddd78c0a9e83529cb7040bae0869227ba0670db1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:03 +0200 Subject: [PATCH 0340/1407] - patchlevel 846 --- 7.4.846 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 7.4.846 diff --git a/7.4.846 b/7.4.846 new file mode 100644 index 00000000..0a0e8561 --- /dev/null +++ b/7.4.846 @@ -0,0 +1,92 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.846 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.846 +Problem: Some GitHub users don't know how to use issues. +Solution: Add a file that explains the basics of contributing. +Files: Filelist, CONTRIBUTING.md + + +*** ../vim-7.4.845/Filelist 2015-07-10 19:21:45.663489149 +0200 +--- Filelist 2015-09-01 17:28:10.878424667 +0200 +*************** +*** 482,487 **** +--- 482,488 ---- + RT_ALL = \ + README.txt \ + README.md \ ++ CONTRIBUTING.md \ + runtime/bugreport.vim \ + runtime/doc/*.awk \ + runtime/doc/*.pl \ +*** ../vim-7.4.845/CONTRIBUTING.md 2015-09-01 17:50:23.908582991 +0200 +--- CONTRIBUTING.md 2015-09-01 17:49:57.812854008 +0200 +*************** +*** 0 **** +--- 1,38 ---- ++ # Contributing to Vim ++ ++ Patches are welcome in whatever form. ++ Discussions about patches happen on the vim-dev maillist. ++ If you create a pull request on GitHub it will be ++ forwarded to the vim-dev maillist. You can also send your patch there ++ directly. An attachment with a unified diff format is preferred. ++ Information about the maillist can be found [on the Vim website]. ++ ++ [on the Vim website]: http://www.vim.org/maillist.php#vim-dev ++ ++ Please consider adding a test. Test coverage isn't very good yet, this needs ++ to improve. Look through recent patches for examples. The tests are located ++ under "src/testdir". ++ ++ ++ # Reporting issues ++ ++ We use GitHub issues, but that is not a requirement. Writing to the Vim ++ maillist is also fine. ++ ++ Please use the GitHub issues only for actual issues. If you are not 100% sure ++ that your problem is a Vim issue, please first discuss this on the Vim user ++ maillist. Try reproducing the problem without any plugins or settings: ++ ++ vim -N -u NONE ++ ++ If you report an issue, please describe exactly how to reproduce it. ++ For example, don't say "insert some text" but say what you did exactly: ++ "ahere is some text". Ideally, the steps you list can be used to write a ++ test to verify the problem is fixed. ++ ++ Feel free to report even the smallest problem, also typos in the documentation. ++ ++ You can find known issues in the todo file: ":help todo". ++ Or open [the todo file] on GitHub to see the latest version. ++ ++ [the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt +*** ../vim-7.4.845/src/version.c 2015-09-01 16:25:28.357392851 +0200 +--- src/version.c 2015-09-01 17:29:27.465629903 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 846, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + For an 'A' we would have to: Lose as many shits as possible; Take Jesus + Christ out, if possible; Loose "I fart in your general direction"; Lose + "the oral sex"; Lose "oh, fuck off"; Lose "We make castanets out of your + testicles" + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 7545e0f1f20a33ef59873d4c25a95a79bacbe7d4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:04 +0200 Subject: [PATCH 0341/1407] - patchlevel 847 --- 7.4.847 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.847 diff --git a/7.4.847 b/7.4.847 new file mode 100644 index 00000000..d3f0007e --- /dev/null +++ b/7.4.847 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.847 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.847 +Problem: "vi)d" may leave a character behind. +Solution: Skip over multi-byte character. (Christian Brabandt) +Files: src/search.c + + +*** ../vim-7.4.846/src/search.c 2015-08-26 23:01:16.449677001 +0200 +--- src/search.c 2015-09-01 18:26:33.629994624 +0200 +*************** +*** 3799,3805 **** + if (VIsual_active) + { + if (*p_sel == 'e') +! ++curwin->w_cursor.col; + if (sol && gchar_cursor() != NUL) + inc(&curwin->w_cursor); /* include the line break */ + VIsual = start_pos; +--- 3799,3805 ---- + if (VIsual_active) + { + if (*p_sel == 'e') +! inc(&curwin->w_cursor); + if (sol && gchar_cursor() != NUL) + inc(&curwin->w_cursor); /* include the line break */ + VIsual = start_pos; +*** ../vim-7.4.846/src/version.c 2015-09-01 17:50:32.480493960 +0200 +--- src/version.c 2015-09-01 18:26:07.286269459 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 847, + /**/ + +-- +Did Adam and Eve have navels? + + /// 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 /// From 73d4faabc72b816a4563262852144f81db4a28fc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:04 +0200 Subject: [PATCH 0342/1407] - patchlevel 848 --- 7.4.848 | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 7.4.848 diff --git a/7.4.848 b/7.4.848 new file mode 100644 index 00000000..a3a1883b --- /dev/null +++ b/7.4.848 @@ -0,0 +1,124 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.848 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.848 +Problem: CTRL-A on hex number in Visual block mode is incorrect. +Solution: Account for the "0x". (Hirohito Higashi) +Files: src/charset.c, src/testdir/test_increment.in, + src/testdir/test_increment.ok + + +*** ../vim-7.4.847/src/charset.c 2015-07-17 13:03:42.092357617 +0200 +--- src/charset.c 2015-09-01 18:42:30.984009677 +0200 +*************** +*** 1909,1914 **** +--- 1909,1916 ---- + else if (hex != 0 || dohex > 1) + { + /* hex */ ++ if (hex != 0) ++ n += 2; /* skip over "0x" */ + while (vim_isxdigit(*ptr)) + { + un = 16 * un + (unsigned long)hex2nr(*ptr); +*** ../vim-7.4.847/src/testdir/test_increment.in 2015-08-11 19:36:37.050004181 +0200 +--- src/testdir/test_increment.in 2015-09-01 18:39:25.813940564 +0200 +*************** +*** 277,283 **** + Expected: + 1) and cursor is on a + b +! + + + STARTTEST +--- 277,291 ---- + Expected: + 1) and cursor is on a + b +! +! 21) block-wise increment on part of hexadecimal +! Text: +! 0x123456 +! +! Expected: +! 1) Ctrl-V f3 +! 0x124456 +! + + + STARTTEST +*************** +*** 401,406 **** +--- 409,420 ---- + :.put =col('.') + :set nrformats&vim + ++ :" Test 21 ++ :/^S21=/+,/^E21=/-y a ++ :/^E21=/+put a ++ :set nrformats&vim ++ f3 ++ + :" Save the report + :/^# Test 1/,$w! test.out + :qa! +*************** +*** 594,599 **** +--- 608,620 ---- + + + ++ # Test 21 ++ S21==== ++ 0x123456 ++ E21==== ++ ++ ++ + + ENDTEST + +*** ../vim-7.4.847/src/testdir/test_increment.ok 2015-08-11 19:36:37.050004181 +0200 +--- src/testdir/test_increment.ok 2015-09-01 18:39:25.813940564 +0200 +*************** +*** 280,285 **** +--- 280,293 ---- + 1 + + ++ # Test 21 ++ S21==== ++ 0x123456 ++ E21==== ++ ++ 0x124456 ++ ++ + + ENDTEST + +*** ../vim-7.4.847/src/version.c 2015-09-01 18:27:45.117248852 +0200 +--- src/version.c 2015-09-01 18:38:56.586245357 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 848, + /**/ + +-- +An SQL statement walks into a bar. He approaches two tables +and says, "Mind if I join you?" + + /// 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 /// From e3997e480bc64a4e50609050eb75942a7bccb68e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:04 +0200 Subject: [PATCH 0343/1407] - patchlevel 849 --- 7.4.849 | 391 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 391 insertions(+) create mode 100644 7.4.849 diff --git a/7.4.849 b/7.4.849 new file mode 100644 index 00000000..1018c91a --- /dev/null +++ b/7.4.849 @@ -0,0 +1,391 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.849 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.849 +Problem: Moving the cursor in Insert mode starts new undo sequence. +Solution: Add CTRL-G U to keep the undo sequence for the following cursor + movement command. (Christian Brabandt) +Files: runtime/doc/insert.txt, src/edit.c, src/testdir/test_mapping.in, + src/testdir/test_mapping.ok + + +*** ../vim-7.4.848/runtime/doc/insert.txt 2013-08-10 13:24:56.000000000 +0200 +--- runtime/doc/insert.txt 2015-09-01 19:00:11.780862669 +0200 +*************** +*** 373,378 **** +--- 377,385 ---- + CTRL-\ CTRL-O like CTRL-O but don't move the cursor *i_CTRL-\_CTRL-O* + CTRL-L when 'insertmode' is set: go to Normal mode *i_CTRL-L* + CTRL-G u break undo sequence, start new change *i_CTRL-G_u* ++ CTRL-G U don't break undo with next left/right cursor *i_CTRL-G_U* ++ movement (but only if the cursor stays ++ within same the line) + ----------------------------------------------------------------------- + + Note: If the cursor keys take you out of Insert mode, check the 'noesckeys' +*************** +*** 412,417 **** +--- 419,446 ---- + This breaks undo at each line break. It also expands abbreviations before + this. + ++ An example for using CTRL-G U: > ++ ++ inoremap U ++ inoremap U ++ inoremap col('.') == match(getline('.'), '\S') + 1 ? ++ \ repeat('U', col('.') - 1) : ++ \ (col('.') < match(getline('.'), '\S') ? ++ \ repeat('U', match(getline('.'), '\S') + 0) : ++ \ repeat('U', col('.') - 1 - match(getline('.'), '\S'))) ++ inoremap repeat('U', col('$') - col('.')) ++ inoremap ( ()U ++ ++ This makes it possible to use the cursor keys in Insert mode, without breaking ++ the undo sequence and therefore using |.| (redo) will work as expected. ++ Also entering a text like (with the "(" mapping from above): > ++ ++ Lorem ipsum (dolor ++ ++ will be repeatable by the |.|to the expected ++ ++ Lorem ipsum (dolor) ++ + Using CTRL-O splits undo: the text typed before and after it is undone + separately. If you want to avoid this (e.g., in a mapping) you might be able + to use CTRL-R = |i_CTRL-R|. E.g., to call a function: > +*** ../vim-7.4.848/src/edit.c 2015-07-28 21:17:31.526069349 +0200 +--- src/edit.c 2015-09-01 19:15:52.938978211 +0200 +*************** +*** 202,207 **** +--- 202,209 ---- + static void check_auto_format __ARGS((int)); + static void redo_literal __ARGS((int c)); + static void start_arrow __ARGS((pos_T *end_insert_pos)); ++ static void start_arrow_with_change __ARGS((pos_T *end_insert_pos, int change)); ++ static void start_arrow_common __ARGS((pos_T *end_insert_pos, int change)); + #ifdef FEAT_SPELL + static void check_spell_redraw __ARGS((void)); + static void spell_back_to_badword __ARGS((void)); +*************** +*** 241,251 **** + #if defined(FEAT_GUI_TABLINE) || defined(PROTO) + static void ins_tabline __ARGS((int c)); + #endif +! static void ins_left __ARGS((void)); + static void ins_home __ARGS((int c)); + static void ins_end __ARGS((int c)); + static void ins_s_left __ARGS((void)); +! static void ins_right __ARGS((void)); + static void ins_s_right __ARGS((void)); + static void ins_up __ARGS((int startcol)); + static void ins_pageup __ARGS((void)); +--- 243,253 ---- + #if defined(FEAT_GUI_TABLINE) || defined(PROTO) + static void ins_tabline __ARGS((int c)); + #endif +! static void ins_left __ARGS((int end_change)); + static void ins_home __ARGS((int c)); + static void ins_end __ARGS((int c)); + static void ins_s_left __ARGS((void)); +! static void ins_right __ARGS((int end_change)); + static void ins_s_right __ARGS((void)); + static void ins_up __ARGS((int startcol)); + static void ins_pageup __ARGS((void)); +*************** +*** 297,302 **** +--- 299,306 ---- + + static int did_add_space = FALSE; /* auto_format() added an extra space + under the cursor */ ++ static int dont_sync_undo = FALSE; /* CTRL-G U prevents syncing undo for ++ the next left/right cursor */ + + /* + * edit(): Start inserting text. +*************** +*** 767,772 **** +--- 771,782 ---- + */ + if (c != K_CURSORHOLD) + lastc = c; /* remember the previous char for CTRL-D */ ++ ++ /* After using CTRL-G U the next cursor key will not break undo. */ ++ if (dont_sync_undo == MAYBE) ++ dont_sync_undo = TRUE; ++ else ++ dont_sync_undo = FALSE; + do + { + c = safe_vgetc(); +*************** +*** 1237,1243 **** + if (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)) + ins_s_left(); + else +! ins_left(); + break; + + case K_S_LEFT: /* */ +--- 1247,1253 ---- + if (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)) + ins_s_left(); + else +! ins_left(dont_sync_undo == FALSE); + break; + + case K_S_LEFT: /* */ +*************** +*** 1249,1255 **** + if (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)) + ins_s_right(); + else +! ins_right(); + break; + + case K_S_RIGHT: /* */ +--- 1259,1265 ---- + if (mod_mask & (MOD_MASK_SHIFT|MOD_MASK_CTRL)) + ins_s_right(); + else +! ins_right(dont_sync_undo == FALSE); + break; + + case K_S_RIGHT: /* */ +*************** +*** 6787,6795 **** + */ + static void + start_arrow(end_insert_pos) +! pos_T *end_insert_pos; /* can be NULL */ + { +! if (!arrow_used) /* something has been inserted */ + { + AppendToRedobuff(ESC_STR); + stop_insert(end_insert_pos, FALSE, FALSE); +--- 6797,6830 ---- + */ + static void + start_arrow(end_insert_pos) +! pos_T *end_insert_pos; /* can be NULL */ +! { +! start_arrow_common(end_insert_pos, TRUE); +! } +! +! /* +! * Like start_arrow() but with end_change argument. +! * Will prepare for redo of CTRL-G U if "end_change" is FALSE. +! */ +! static void +! start_arrow_with_change(end_insert_pos, end_change) +! pos_T *end_insert_pos; /* can be NULL */ +! int end_change; /* end undoable change */ + { +! start_arrow_common(end_insert_pos, end_change); +! if (!end_change) +! { +! AppendCharToRedobuff(Ctrl_G); +! AppendCharToRedobuff('U'); +! } +! } +! +! static void +! start_arrow_common(end_insert_pos, end_change) +! pos_T *end_insert_pos; /* can be NULL */ +! int end_change; /* end undoable change */ +! { +! if (!arrow_used && end_change) /* something has been inserted */ + { + AppendToRedobuff(ESC_STR); + stop_insert(end_insert_pos, FALSE, FALSE); +*************** +*** 8359,8364 **** +--- 8394,8406 ---- + Insstart = curwin->w_cursor; + break; + ++ /* CTRL-G U: do not break undo with the next char */ ++ case 'U': ++ /* Allow one left/right cursor movement with the next char, ++ * without breaking undo. */ ++ dont_sync_undo = MAYBE; ++ break; ++ + /* Unknown CTRL-G command, reserved for future expansion. */ + default: vim_beep(BO_CTRLG); + } +*************** +*** 9440,9446 **** + #endif + + static void +! ins_left() + { + pos_T tpos; + +--- 9482,9489 ---- + #endif + + static void +! ins_left(end_change) +! int end_change; /* end undoable change */ + { + pos_T tpos; + +*************** +*** 9457,9463 **** + * break undo. K_LEFT is inserted in im_correct_cursor(). */ + if (!im_is_preediting()) + #endif +! start_arrow(&tpos); + #ifdef FEAT_RIGHTLEFT + /* If exit reversed string, position is fixed */ + if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) +--- 9500,9510 ---- + * break undo. K_LEFT is inserted in im_correct_cursor(). */ + if (!im_is_preediting()) + #endif +! { +! start_arrow_with_change(&tpos, end_change); +! if (!end_change) +! AppendCharToRedobuff(K_LEFT); +! } + #ifdef FEAT_RIGHTLEFT + /* If exit reversed string, position is fixed */ + if (revins_scol != -1 && (int)curwin->w_cursor.col >= revins_scol) +*************** +*** 9472,9477 **** +--- 9519,9525 ---- + */ + else if (vim_strchr(p_ww, '[') != NULL && curwin->w_cursor.lnum > 1) + { ++ /* always break undo when moving upwards/downwards, else undo may break */ + start_arrow(&tpos); + --(curwin->w_cursor.lnum); + coladvance((colnr_T)MAXCOL); +*************** +*** 9479,9484 **** +--- 9527,9533 ---- + } + else + vim_beep(BO_CRSR); ++ dont_sync_undo = FALSE; + } + + static void +*************** +*** 9542,9548 **** + } + + static void +! ins_right() + { + #ifdef FEAT_FOLDING + if ((fdo_flags & FDO_HOR) && KeyTyped) +--- 9591,9598 ---- + } + + static void +! ins_right(end_change) +! int end_change; /* end undoable change */ + { + #ifdef FEAT_FOLDING + if ((fdo_flags & FDO_HOR) && KeyTyped) +*************** +*** 9555,9561 **** + #endif + ) + { +! start_arrow(&curwin->w_cursor); + curwin->w_set_curswant = TRUE; + #ifdef FEAT_VIRTUALEDIT + if (virtual_active()) +--- 9605,9613 ---- + #endif + ) + { +! start_arrow_with_change(&curwin->w_cursor, end_change); +! if (!end_change) +! AppendCharToRedobuff(K_RIGHT); + curwin->w_set_curswant = TRUE; + #ifdef FEAT_VIRTUALEDIT + if (virtual_active()) +*************** +*** 9589,9594 **** +--- 9641,9647 ---- + } + else + vim_beep(BO_CRSR); ++ dont_sync_undo = FALSE; + } + + static void +*** ../vim-7.4.848/src/testdir/test_mapping.in 2015-07-10 17:19:25.024620239 +0200 +--- src/testdir/test_mapping.in 2015-09-01 18:57:22.578641036 +0200 +*************** +*** 45,50 **** +--- 45,65 ---- + :/^a b + 0qqdw.ifooqj0@q:unmap . + ++ :" U works only within a single line ++ :imapclear ++ :imap ( ()U ++ G2oki ++ Test1: text with a (here some more textk. ++ :" test undo ++ G2oki ++ Test2: text wit a (here some more text [und undo]uk.u ++ :" ++ :imapclear ++ :set whichwrap=<,>,[,] ++ G3o2k ++ :exe ":norm! iTest3: text with a (parenthesis here\U\new line here\\\." ++ ++ + + :/^test/,$w! test.out + :qa! +*** ../vim-7.4.848/src/testdir/test_mapping.ok 2015-07-10 17:19:25.024620239 +0200 +--- src/testdir/test_mapping.ok 2015-09-01 18:57:22.578641036 +0200 +*************** +*** 10,12 **** +--- 10,22 ---- + + + + + + ++ ++ Test1: text with a (here some more text) ++ Test1: text with a (here some more text) ++ ++ ++ Test2: text wit a (here some more text [und undo]) ++ ++ new line here ++ Test3: text with a (parenthesis here ++ new line here +*** ../vim-7.4.848/src/version.c 2015-09-01 18:51:35.126294303 +0200 +--- src/version.c 2015-09-01 18:57:09.862774703 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 849, + /**/ + +-- +The chat program is in public domain. This is not the GNU public license. +If it breaks then you get to keep both pieces. + -- Copyright notice for the chat program + + /// 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 /// From b326b31c389dea1834d106c640bb18d302b7dcce Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:04 +0200 Subject: [PATCH 0344/1407] - patchlevel 850 --- 7.4.850 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.850 diff --git a/7.4.850 b/7.4.850 new file mode 100644 index 00000000..9e0df0ec --- /dev/null +++ b/7.4.850 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.850 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.850 (after 7.4.846) +Problem: does not show up. +Solution: Use > and <. (Kazunobu Kuriyama) +Files: CONTRIBUTING.md + + +*** ../vim-7.4.849/CONTRIBUTING.md 2015-09-01 17:50:32.476494002 +0200 +--- CONTRIBUTING.md 2015-09-01 19:47:33.679001533 +0200 +*************** +*** 27,34 **** + + If you report an issue, please describe exactly how to reproduce it. + For example, don't say "insert some text" but say what you did exactly: +! "ahere is some text". Ideally, the steps you list can be used to write a +! test to verify the problem is fixed. + + Feel free to report even the smallest problem, also typos in the documentation. + +--- 27,35 ---- + + If you report an issue, please describe exactly how to reproduce it. + For example, don't say "insert some text" but say what you did exactly: +! "ahere is some text<Esc>". +! Ideally, the steps you list can be used to write a test to verify the problem +! is fixed. + + Feel free to report even the smallest problem, also typos in the documentation. + +*** ../vim-7.4.849/src/version.c 2015-09-01 19:25:58.324615363 +0200 +--- src/version.c 2015-09-01 19:48:54.298154726 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 850, + /**/ + +-- +God made machine language; all the rest is the work of man. + + /// 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 /// From 86ae3170b477f297ba411fdde807208422f62986 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:05 +0200 Subject: [PATCH 0345/1407] - patchlevel 851 --- 7.4.851 | 386 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 386 insertions(+) create mode 100644 7.4.851 diff --git a/7.4.851 b/7.4.851 new file mode 100644 index 00000000..3765b4cd --- /dev/null +++ b/7.4.851 @@ -0,0 +1,386 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.851 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.851 +Problem: Saving and restoring the console buffer does not work properly. +Solution: Instead of ReadConsoleOutputA/WriteConsoleOutputA use + CreateConsoleScreenBuffer and SetConsoleActiveScreenBuffer. + (Ken Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.850/src/os_win32.c 2015-08-04 19:26:59.747310733 +0200 +--- src/os_win32.c 2015-09-01 20:03:57.428750713 +0200 +*************** +*** 2192,2199 **** + { + BOOL IsValid; + CONSOLE_SCREEN_BUFFER_INFO Info; +! PCHAR_INFO Buffer; +! COORD BufferSize; + } ConsoleBuffer; + + /* +--- 2192,2198 ---- + { + BOOL IsValid; + CONSOLE_SCREEN_BUFFER_INFO Info; +! HANDLE handle; + } ConsoleBuffer; + + /* +*************** +*** 2210,2286 **** + SaveConsoleBuffer( + ConsoleBuffer *cb) + { +- DWORD NumCells; +- COORD BufferCoord; +- SMALL_RECT ReadRegion; +- WORD Y, Y_incr; +- + if (cb == NULL) + return FALSE; + +! if (!GetConsoleScreenBufferInfo(g_hConOut, &cb->Info)) + { + cb->IsValid = FALSE; + return FALSE; + } + cb->IsValid = TRUE; + +! /* +! * Allocate a buffer large enough to hold the entire console screen +! * buffer. If this ConsoleBuffer structure has already been initialized +! * with a buffer of the correct size, then just use that one. +! */ +! if (!cb->IsValid || cb->Buffer == NULL || +! cb->BufferSize.X != cb->Info.dwSize.X || +! cb->BufferSize.Y != cb->Info.dwSize.Y) +! { +! cb->BufferSize.X = cb->Info.dwSize.X; +! cb->BufferSize.Y = cb->Info.dwSize.Y; +! NumCells = cb->BufferSize.X * cb->BufferSize.Y; +! vim_free(cb->Buffer); +! cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO)); +! if (cb->Buffer == NULL) +! return FALSE; +! } + + /* +! * We will now copy the console screen buffer into our buffer. +! * ReadConsoleOutput() seems to be limited as far as how much you +! * can read at a time. Empirically, this number seems to be about +! * 12000 cells (rows * columns). Start at position (0, 0) and copy +! * in chunks until it is all copied. The chunks will all have the +! * same horizontal characteristics, so initialize them now. The +! * height of each chunk will be (12000 / width). + */ +! BufferCoord.X = 0; + ReadRegion.Left = 0; +! ReadRegion.Right = cb->Info.dwSize.X - 1; +! Y_incr = 12000 / cb->Info.dwSize.X; +! for (Y = 0; Y < cb->BufferSize.Y; Y += Y_incr) + { +! /* +! * Read into position (0, Y) in our buffer. +! */ +! BufferCoord.Y = Y; +! /* +! * Read the region whose top left corner is (0, Y) and whose bottom +! * right corner is (width - 1, Y + Y_incr - 1). This should define +! * a region of size width by Y_incr. Don't worry if this region is +! * too large for the remaining buffer; it will be cropped. +! */ +! ReadRegion.Top = Y; +! ReadRegion.Bottom = Y + Y_incr - 1; +! if (!ReadConsoleOutput(g_hConOut, /* output handle */ +! cb->Buffer, /* our buffer */ +! cb->BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &ReadRegion)) /* region to save */ +! { +! vim_free(cb->Buffer); +! cb->Buffer = NULL; +! return FALSE; +! } + } + + return TRUE; + } +--- 2209,2289 ---- + SaveConsoleBuffer( + ConsoleBuffer *cb) + { + if (cb == NULL) + return FALSE; + +! if (!GetConsoleScreenBufferInfo(cb->handle, &cb->Info)) + { + cb->IsValid = FALSE; + return FALSE; + } + cb->IsValid = TRUE; + +! return TRUE; +! } +! +! /* +! * CopyOldConsoleBuffer() +! * Description: +! * Copies the old console buffer contents to the current console buffer. +! * This is used when 'restorescreen' is off. +! * Returns: +! * TRUE on success +! */ +! static BOOL +! CopyOldConsoleBuffer( +! ConsoleBuffer *cb, +! HANDLE hConOld) +! { +! COORD BufferCoord; +! COORD BufferSize; +! PCHAR_INFO Buffer; +! DWORD NumCells; +! SMALL_RECT ReadRegion; + + /* +! * Before copying the buffer contents, clear the current buffer, and +! * restore the window information. Doing this now prevents old buffer +! * contents from "flashing" onto the screen. + */ +! ClearConsoleBuffer(cb->Info.wAttributes); +! +! /* We only need to copy the window area, not whole buffer. */ +! BufferSize.X = cb->Info.srWindow.Right - cb->Info.srWindow.Left + 1; +! BufferSize.Y = cb->Info.srWindow.Bottom - cb->Info.srWindow.Top + 1; + ReadRegion.Left = 0; +! ReadRegion.Right = BufferSize.X - 1; +! ReadRegion.Top = 0; +! ReadRegion.Bottom = BufferSize.Y - 1; +! +! NumCells = BufferSize.X * BufferSize.Y; +! Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO)); +! if (Buffer == NULL) +! return FALSE; +! +! BufferCoord.X = 0; +! BufferCoord.Y = 0; +! +! if (!ReadConsoleOutputW(hConOld, /* output handle */ +! Buffer, /* our buffer */ +! BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &ReadRegion)) /* region to save */ + { +! vim_free(Buffer); +! return FALSE; +! } +! if (!WriteConsoleOutputW(g_hConOut, /* output handle */ +! Buffer, /* our buffer */ +! BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &ReadRegion)) /* region to restore */ +! { +! vim_free(Buffer); +! return FALSE; + } ++ vim_free(Buffer); ++ SetConsoleWindowInfo(g_hConOut, TRUE, &ReadRegion); + + return TRUE; + } +*************** +*** 2299,2365 **** + ConsoleBuffer *cb, + BOOL RestoreScreen) + { +! COORD BufferCoord; +! SMALL_RECT WriteRegion; + + if (cb == NULL || !cb->IsValid) + return FALSE; + +! /* +! * Before restoring the buffer contents, clear the current buffer, and +! * restore the cursor position and window information. Doing this now +! * prevents old buffer contents from "flashing" onto the screen. +! */ +! if (RestoreScreen) +! ClearConsoleBuffer(cb->Info.wAttributes); +! +! FitConsoleWindow(cb->Info.dwSize, TRUE); +! if (!SetConsoleScreenBufferSize(g_hConOut, cb->Info.dwSize)) +! return FALSE; +! if (!SetConsoleTextAttribute(g_hConOut, cb->Info.wAttributes)) +! return FALSE; +! +! if (!RestoreScreen) +! { +! /* +! * No need to restore the screen buffer contents, so we're done. +! */ +! return TRUE; +! } +! +! if (!SetConsoleCursorPosition(g_hConOut, cb->Info.dwCursorPosition)) +! return FALSE; +! if (!SetConsoleWindowInfo(g_hConOut, TRUE, &cb->Info.srWindow)) +! return FALSE; +! +! /* +! * Restore the screen buffer contents. +! */ +! if (cb->Buffer != NULL) +! { +! BufferCoord.X = 0; +! BufferCoord.Y = 0; +! WriteRegion.Left = 0; +! WriteRegion.Top = 0; +! WriteRegion.Right = cb->Info.dwSize.X - 1; +! WriteRegion.Bottom = cb->Info.dwSize.Y - 1; +! if (!WriteConsoleOutput(g_hConOut, /* output handle */ +! cb->Buffer, /* our buffer */ +! cb->BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &WriteRegion)) /* region to restore */ +! { +! return FALSE; +! } +! } + + return TRUE; + } + +- #define FEAT_RESTORE_ORIG_SCREEN +- #ifdef FEAT_RESTORE_ORIG_SCREEN +- static ConsoleBuffer g_cbOrig = { 0 }; +- #endif + static ConsoleBuffer g_cbNonTermcap = { 0 }; + static ConsoleBuffer g_cbTermcap = { 0 }; + +--- 2302,2321 ---- + ConsoleBuffer *cb, + BOOL RestoreScreen) + { +! HANDLE hConOld; + + if (cb == NULL || !cb->IsValid) + return FALSE; + +! hConOld = g_hConOut; +! g_hConOut = cb->handle; +! if (!RestoreScreen && exiting) +! CopyOldConsoleBuffer(cb, hConOld); +! SetConsoleActiveScreenBuffer(g_hConOut); + + return TRUE; + } + + static ConsoleBuffer g_cbNonTermcap = { 0 }; + static ConsoleBuffer g_cbTermcap = { 0 }; + +*************** +*** 2498,2506 **** + void + mch_init(void) + { +- #ifndef FEAT_RESTORE_ORIG_SCREEN +- CONSOLE_SCREEN_BUFFER_INFO csbi; +- #endif + #ifndef __MINGW32__ + extern int _fmode; + #endif +--- 2454,2459 ---- +*************** +*** 2521,2536 **** + else + create_conin(); + g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE); + +- #ifdef FEAT_RESTORE_ORIG_SCREEN +- /* Save the initial console buffer for later restoration */ +- SaveConsoleBuffer(&g_cbOrig); +- g_attrCurrent = g_attrDefault = g_cbOrig.Info.wAttributes; +- #else + /* Get current text attributes */ +! GetConsoleScreenBufferInfo(g_hConOut, &csbi); +! g_attrCurrent = g_attrDefault = csbi.wAttributes; +! #endif + if (cterm_normal_fg_color == 0) + cterm_normal_fg_color = (g_attrCurrent & 0xf) + 1; + if (cterm_normal_bg_color == 0) +--- 2474,2487 ---- + else + create_conin(); + g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE); ++ g_cbNonTermcap.handle = g_hConOut; ++ g_cbTermcap.handle = CreateConsoleScreenBuffer( ++ GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, ++ NULL, CONSOLE_TEXTMODE_BUFFER, NULL); + + /* Get current text attributes */ +! SaveConsoleBuffer(&g_cbNonTermcap); +! g_attrCurrent = g_attrDefault = g_cbNonTermcap.Info.wAttributes; + if (cterm_normal_fg_color == 0) + cterm_normal_fg_color = (g_attrCurrent & 0xf) + 1; + if (cterm_normal_bg_color == 0) +*************** +*** 2630,2635 **** +--- 2581,2588 ---- + SetConsoleMode(g_hConIn, g_cmodein); + SetConsoleMode(g_hConOut, g_cmodeout); + ++ CloseHandle(g_cbTermcap.handle); ++ + #ifdef DYNAMIC_GETTEXT + dyn_libintl_end(); + #endif +*************** +*** 5002,5007 **** +--- 4955,4962 ---- + * screen buffer, and resize the buffer to match the current window + * size. We will use this as the size of our editing environment. + */ ++ g_hConOut = g_cbTermcap.handle; ++ SetConsoleActiveScreenBuffer(g_hConOut); + ClearConsoleBuffer(g_attrCurrent); + ResizeConBufAndWindow(g_hConOut, Columns, Rows); + } +*************** +*** 5045,5055 **** + cmodein &= ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT); + SetConsoleMode(g_hConIn, cmodein); + +- #ifdef FEAT_RESTORE_ORIG_SCREEN +- cb = exiting ? &g_cbOrig : &g_cbNonTermcap; +- #else + cb = &g_cbNonTermcap; +- #endif + RestoreConsoleBuffer(cb, p_rs); + SetConsoleCursorInfo(g_hConOut, &g_cci); + +--- 5000,5006 ---- +*** ../vim-7.4.850/src/version.c 2015-09-01 19:50:05.697404798 +0200 +--- src/version.c 2015-09-01 20:22:33.065197395 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 851, + /**/ + +-- +FATAL ERROR! SYSTEM HALTED! - Press any key to continue doing nothing. + + /// 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 /// From 5bdf71f6ef4e29741c508c86ffd79ce57350768e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:05 +0200 Subject: [PATCH 0346/1407] - patchlevel 852 --- 7.4.852 | 594 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 594 insertions(+) create mode 100644 7.4.852 diff --git a/7.4.852 b/7.4.852 new file mode 100644 index 00000000..c820cba2 --- /dev/null +++ b/7.4.852 @@ -0,0 +1,594 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.852 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.852 +Problem: On MS-Windows console Vim uses ANSI APIs for keyboard input and + console output, it cannot input/output Unicode characters. +Solution: Use Unicode APIs for console I/O. (Ken Takata, Yasuhiro Matsumoto) +Files: src/os_win32.c, src/ui.c, runtime/doc/options.txt + + +*** ../vim-7.4.851/src/os_win32.c 2015-09-01 20:23:30.408603580 +0200 +--- src/os_win32.c 2015-09-01 20:28:43.193363546 +0200 +*************** +*** 213,220 **** + static void standend(void); + static void visual_bell(void); + static void cursor_visible(BOOL fVisible); +! static BOOL write_chars(LPCSTR pchBuf, DWORD cchToWrite); +! static char_u tgetch(int *pmodifiers, char_u *pch2); + static void create_conin(void); + static int s_cursor_visible = TRUE; + static int did_create_conin = FALSE; +--- 213,220 ---- + static void standend(void); + static void visual_bell(void); + static void cursor_visible(BOOL fVisible); +! static DWORD write_chars(char_u *pchBuf, DWORD cbToWrite); +! static WCHAR tgetch(int *pmodifiers, WCHAR *pch2); + static void create_conin(void); + static int s_cursor_visible = TRUE; + static int did_create_conin = FALSE; +*************** +*** 265,279 **** + if (!win8_or_later) + { + if (nLength == -1) +! return PeekConsoleInput(hInput, lpBuffer, 1, lpEvents); +! return ReadConsoleInput(hInput, lpBuffer, 1, &dwEvents); + } + + if (s_dwMax == 0) + { + if (nLength == -1) +! return PeekConsoleInput(hInput, lpBuffer, 1, lpEvents); +! if (!ReadConsoleInput(hInput, s_irCache, IRSIZE, &dwEvents)) + return FALSE; + s_dwIndex = 0; + s_dwMax = dwEvents; +--- 265,279 ---- + if (!win8_or_later) + { + if (nLength == -1) +! return PeekConsoleInputW(hInput, lpBuffer, 1, lpEvents); +! return ReadConsoleInputW(hInput, lpBuffer, 1, &dwEvents); + } + + if (s_dwMax == 0) + { + if (nLength == -1) +! return PeekConsoleInputW(hInput, lpBuffer, 1, lpEvents); +! if (!ReadConsoleInputW(hInput, s_irCache, IRSIZE, &dwEvents)) + return FALSE; + s_dwIndex = 0; + s_dwMax = dwEvents; +*************** +*** 868,876 **** + #endif + + #if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__) +! # define AChar AsciiChar + #else +! # define AChar uChar.AsciiChar + #endif + + /* The return code indicates key code size. */ +--- 868,876 ---- + #endif + + #if defined(__GNUC__) && !defined(__MINGW32__) && !defined(__CYGWIN__) +! # define UChar UnicodeChar + #else +! # define UChar uChar.UnicodeChar + #endif + + /* The return code indicates key code size. */ +*************** +*** 889,900 **** + + if (s_iIsDead == 2) + { +! pker->AChar = (CHAR) awAnsiCode[1]; + s_iIsDead = 0; + return 1; + } + +! if (pker->AChar != 0) + return 1; + + vim_memset(abKeystate, 0, sizeof (abKeystate)); +--- 889,900 ---- + + if (s_iIsDead == 2) + { +! pker->UChar = (WCHAR) awAnsiCode[1]; + s_iIsDead = 0; + return 1; + } + +! if (pker->UChar != 0) + return 1; + + vim_memset(abKeystate, 0, sizeof (abKeystate)); +*************** +*** 909,915 **** + } + + /* Clear any pending dead keys */ +! ToAscii(VK_SPACE, MapVirtualKey(VK_SPACE, 0), abKeystate, awAnsiCode, 0); + + if (uMods & SHIFT_PRESSED) + abKeystate[VK_SHIFT] = 0x80; +--- 909,915 ---- + } + + /* Clear any pending dead keys */ +! ToUnicode(VK_SPACE, MapVirtualKey(VK_SPACE, 0), abKeystate, awAnsiCode, 2, 0); + + if (uMods & SHIFT_PRESSED) + abKeystate[VK_SHIFT] = 0x80; +*************** +*** 922,932 **** + abKeystate[VK_MENU] = abKeystate[VK_RMENU] = 0x80; + } + +! s_iIsDead = ToAscii(pker->wVirtualKeyCode, pker->wVirtualScanCode, +! abKeystate, awAnsiCode, 0); + + if (s_iIsDead > 0) +! pker->AChar = (CHAR) awAnsiCode[0]; + + return s_iIsDead; + } +--- 922,932 ---- + abKeystate[VK_MENU] = abKeystate[VK_RMENU] = 0x80; + } + +! s_iIsDead = ToUnicode(pker->wVirtualKeyCode, pker->wVirtualScanCode, +! abKeystate, awAnsiCode, 2, 0); + + if (s_iIsDead > 0) +! pker->UChar = (WCHAR) awAnsiCode[0]; + + return s_iIsDead; + } +*************** +*** 953,960 **** + static BOOL + decode_key_event( + KEY_EVENT_RECORD *pker, +! char_u *pch, +! char_u *pch2, + int *pmodifiers, + BOOL fDoPost) + { +--- 953,960 ---- + static BOOL + decode_key_event( + KEY_EVENT_RECORD *pker, +! WCHAR *pch, +! WCHAR *pch2, + int *pmodifiers, + BOOL fDoPost) + { +*************** +*** 982,988 **** + } + + /* special cases */ +! if ((nModifs & CTRL) != 0 && (nModifs & ~CTRL) == 0 && pker->AChar == NUL) + { + /* Ctrl-6 is Ctrl-^ */ + if (pker->wVirtualKeyCode == '6') +--- 982,988 ---- + } + + /* special cases */ +! if ((nModifs & CTRL) != 0 && (nModifs & ~CTRL) == 0 && pker->UChar == NUL) + { + /* Ctrl-6 is Ctrl-^ */ + if (pker->wVirtualKeyCode == '6') +*************** +*** 1044,1050 **** + *pch = NUL; + else + { +! *pch = (i > 0) ? pker->AChar : NUL; + + if (pmodifiers != NULL) + { +--- 1044,1050 ---- + *pch = NUL; + else + { +! *pch = (i > 0) ? pker->UChar : NUL; + + if (pmodifiers != NULL) + { +*************** +*** 1436,1442 **** + DWORD dwNow = 0, dwEndTime = 0; + INPUT_RECORD ir; + DWORD cRecords; +! char_u ch, ch2; + + if (msec > 0) + /* Wait until the specified time has elapsed. */ +--- 1436,1442 ---- + DWORD dwNow = 0, dwEndTime = 0; + INPUT_RECORD ir; + DWORD cRecords; +! WCHAR ch, ch2; + + if (msec > 0) + /* Wait until the specified time has elapsed. */ +*************** +*** 1523,1529 **** + #ifdef FEAT_MBYTE_IME + /* Windows IME sends two '\n's with only one 'ENTER'. First: + * wVirtualKeyCode == 13. second: wVirtualKeyCode == 0 */ +! if (ir.Event.KeyEvent.uChar.UnicodeChar == 0 + && ir.Event.KeyEvent.wVirtualKeyCode == 13) + { + read_console_input(g_hConIn, &ir, 1, &cRecords); +--- 1523,1529 ---- + #ifdef FEAT_MBYTE_IME + /* Windows IME sends two '\n's with only one 'ENTER'. First: + * wVirtualKeyCode == 13. second: wVirtualKeyCode == 0 */ +! if (ir.Event.KeyEvent.UChar == 0 + && ir.Event.KeyEvent.wVirtualKeyCode == 13) + { + read_console_input(g_hConIn, &ir, 1, &cRecords); +*************** +*** 1586,1595 **** + /* + * Get a keystroke or a mouse event + */ +! static char_u +! tgetch(int *pmodifiers, char_u *pch2) + { +! char_u ch; + + for (;;) + { +--- 1586,1595 ---- + /* + * Get a keystroke or a mouse event + */ +! static WCHAR +! tgetch(int *pmodifiers, WCHAR *pch2) + { +! WCHAR ch; + + for (;;) + { +*************** +*** 1658,1668 **** + #define TYPEAHEADLEN 20 + static char_u typeahead[TYPEAHEADLEN]; /* previously typed bytes. */ + static int typeaheadlen = 0; +- #ifdef FEAT_MBYTE +- static char_u *rest = NULL; /* unconverted rest of previous read */ +- static int restlen = 0; +- int unconverted; +- #endif + + /* First use any typeahead that was kept because "buf" was too small. */ + if (typeaheadlen > 0) +--- 1658,1663 ---- +*************** +*** 1761,1798 **** + else + #endif + { +! char_u ch2 = NUL; + int modifiers = 0; + + c = tgetch(&modifiers, &ch2); + +- #ifdef FEAT_MBYTE +- /* stolen from fill_input_buf() in ui.c */ +- if (rest != NULL) +- { +- /* Use remainder of previous call, starts with an invalid +- * character that may become valid when reading more. */ +- if (restlen > TYPEAHEADLEN - typeaheadlen) +- unconverted = TYPEAHEADLEN - typeaheadlen; +- else +- unconverted = restlen; +- mch_memmove(typeahead + typeaheadlen, rest, unconverted); +- if (unconverted == restlen) +- { +- vim_free(rest); +- rest = NULL; +- } +- else +- { +- restlen -= unconverted; +- mch_memmove(rest, rest + unconverted, restlen); +- } +- typeaheadlen += unconverted; +- } +- else +- unconverted = 0; +- #endif +- + if (typebuf_changed(tb_change_cnt)) + { + /* "buf" may be invalid now if a client put something in the +--- 1756,1766 ---- + else + #endif + { +! WCHAR ch2 = NUL; + int modifiers = 0; + + c = tgetch(&modifiers, &ch2); + + if (typebuf_changed(tb_change_cnt)) + { + /* "buf" may be invalid now if a client put something in the +*************** +*** 1816,1842 **** + int n = 1; + int conv = FALSE; + +- typeahead[typeaheadlen] = c; +- if (ch2 != NUL) +- { +- typeahead[typeaheadlen + 1] = 3; +- typeahead[typeaheadlen + 2] = ch2; +- n += 2; +- } + #ifdef FEAT_MBYTE +! /* Only convert normal characters, not special keys. Need to +! * convert before applying ALT, otherwise mapping breaks +! * when 'tenc' is set. */ +! if (input_conv.vc_type != CONV_NONE +! && (ch2 == NUL || c != K_NUL)) + { +! conv = TRUE; +! typeaheadlen -= unconverted; +! n = convert_input_safe(typeahead + typeaheadlen, +! n + unconverted, TYPEAHEADLEN - typeaheadlen, +! rest == NULL ? &rest : NULL, &restlen); + } + #endif + + if (conv) + { +--- 1784,1819 ---- + int n = 1; + int conv = FALSE; + + #ifdef FEAT_MBYTE +! if (ch2 == NUL) + { +! int i; +! char_u *p; +! WCHAR ch[2]; +! +! ch[0] = c; +! if (c >= 0xD800 && c <= 0xDBFF) /* High surrogate */ +! { +! ch[1] = tgetch(&modifiers, &ch2); +! n++; +! } +! p = utf16_to_enc(ch, &n); +! if (p != NULL) +! { +! for (i = 0; i < n; i++) +! typeahead[typeaheadlen + i] = p[i]; +! vim_free(p); +! } + } ++ else + #endif ++ typeahead[typeaheadlen] = c; ++ if (ch2 != NUL) ++ { ++ typeahead[typeaheadlen + n] = 3; ++ typeahead[typeaheadlen + n + 1] = (char_u)ch2; ++ n += 2; ++ } + + if (conv) + { +*************** +*** 5366,5392 **** + + + /* +! * write `cchToWrite' characters in `pchBuf' to the screen +! * Returns the number of characters actually written (at least one). + */ +! static BOOL + write_chars( +! LPCSTR pchBuf, +! DWORD cchToWrite) + { + COORD coord = g_coord; + DWORD written; + +! FillConsoleOutputAttribute(g_hConOut, g_attrCurrent, cchToWrite, +! coord, &written); +! /* When writing fails or didn't write a single character, pretend one +! * character was written, otherwise we get stuck. */ +! if (WriteConsoleOutputCharacter(g_hConOut, pchBuf, cchToWrite, +! coord, &written) == 0 +! || written == 0) +! written = 1; + +! g_coord.X += (SHORT) written; + + while (g_coord.X > g_srScrollRegion.Right) + { +--- 5343,5415 ---- + + + /* +! * write `cbToWrite' bytes in `pchBuf' to the screen +! * Returns the number of bytes actually written (at least one). + */ +! static DWORD + write_chars( +! char_u *pchBuf, +! DWORD cbToWrite) + { + COORD coord = g_coord; + DWORD written; + +! #ifdef FEAT_MBYTE +! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! { +! static WCHAR *unicodebuf = NULL; +! static int unibuflen = 0; +! int length; +! DWORD n, cchwritten, cells; +! +! length = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)pchBuf, cbToWrite, 0, 0); +! if (unicodebuf == NULL || length > unibuflen) +! { +! vim_free(unicodebuf); +! unicodebuf = (WCHAR *)lalloc(length * sizeof(WCHAR), FALSE); +! unibuflen = length; +! } +! MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)pchBuf, cbToWrite, +! unicodebuf, unibuflen); +! +! cells = mb_string2cells(pchBuf, cbToWrite); +! FillConsoleOutputAttribute(g_hConOut, g_attrCurrent, cells, +! coord, &written); +! /* When writing fails or didn't write a single character, pretend one +! * character was written, otherwise we get stuck. */ +! if (WriteConsoleOutputCharacterW(g_hConOut, unicodebuf, length, +! coord, &cchwritten) == 0 +! || cchwritten == 0) +! cchwritten = 1; +! +! if (cchwritten == length) +! { +! written = cbToWrite; +! g_coord.X += (SHORT)cells; +! } +! else +! { +! char_u *p = pchBuf; +! for (n = 0; n < cchwritten; n++) +! mb_cptr_adv(p); +! written = p - pchBuf; +! g_coord.X += (SHORT)mb_string2cells(pchBuf, written); +! } +! } +! else +! #endif +! { +! FillConsoleOutputAttribute(g_hConOut, g_attrCurrent, cbToWrite, +! coord, &written); +! /* When writing fails or didn't write a single character, pretend one +! * character was written, otherwise we get stuck. */ +! if (WriteConsoleOutputCharacter(g_hConOut, (LPCSTR)pchBuf, cbToWrite, +! coord, &written) == 0 +! || written == 0) +! written = 1; + +! g_coord.X += (SHORT) written; +! } + + while (g_coord.X > g_srScrollRegion.Right) + { +*** ../vim-7.4.851/src/ui.c 2015-08-11 19:13:55.146175594 +0200 +--- src/ui.c 2015-09-01 20:27:49.069924312 +0200 +*************** +*** 42,48 **** + /* Don't output anything in silent mode ("ex -s") unless 'verbose' set */ + if (!(silent_mode && p_verbose == 0)) + { +! #ifdef FEAT_MBYTE + char_u *tofree = NULL; + + if (output_conv.vc_type != CONV_NONE) +--- 42,48 ---- + /* Don't output anything in silent mode ("ex -s") unless 'verbose' set */ + if (!(silent_mode && p_verbose == 0)) + { +! #if defined(FEAT_MBYTE) && !defined(WIN3264) + char_u *tofree = NULL; + + if (output_conv.vc_type != CONV_NONE) +*************** +*** 56,62 **** + + mch_write(s, len); + +! #ifdef FEAT_MBYTE + if (output_conv.vc_type != CONV_NONE) + vim_free(tofree); + #endif +--- 56,62 ---- + + mch_write(s, len); + +! #if defined(FEAT_MBYTE) && !defined(WIN3264) + if (output_conv.vc_type != CONV_NONE) + vim_free(tofree); + #endif +*** ../vim-7.4.851/runtime/doc/options.txt 2015-07-21 17:53:11.573528028 +0200 +--- runtime/doc/options.txt 2015-09-01 20:29:21.724964297 +0200 +*************** +*** 7377,7390 **** + the GUI it only applies to the keyboard ( 'encoding' is used for the + display). Except for the Mac when 'macatsui' is off, then + 'termencoding' should be "macroman". +- In the Win32 console version the default value is the console codepage +- when it differs from the ANSI codepage. + *E617* + Note: This does not apply to the GTK+ 2 GUI. After the GUI has been + successfully initialized, 'termencoding' is forcibly set to "utf-8". + Any attempts to set a different value will be rejected, and an error + message is shown. +! For the Win32 GUI 'termencoding' is not used for typed characters, + because the Win32 system always passes Unicode characters. + When empty, the same encoding is used as for the 'encoding' option. + This is the normal value. +--- 7396,7407 ---- + the GUI it only applies to the keyboard ( 'encoding' is used for the + display). Except for the Mac when 'macatsui' is off, then + 'termencoding' should be "macroman". + *E617* + Note: This does not apply to the GTK+ 2 GUI. After the GUI has been + successfully initialized, 'termencoding' is forcibly set to "utf-8". + Any attempts to set a different value will be rejected, and an error + message is shown. +! For the Win32 GUI and console versions 'termencoding' is not used, + because the Win32 system always passes Unicode characters. + When empty, the same encoding is used as for the 'encoding' option. + This is the normal value. +*** ../vim-7.4.851/src/version.c 2015-09-01 20:23:30.408603580 +0200 +--- src/version.c 2015-09-01 20:27:43.713979797 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 852, + /**/ + +-- +(letter from Mark to Mike, about the film's probable certificate) + I would like to get back to the Censor and agree to lose the shits, take + the odd Jesus Christ out and lose Oh fuck off, but to retain 'fart in + your general direction', 'castanets of your testicles' and 'oral sex' + and ask him for an 'A' rating on that basis. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From e7a6c09ddd4535689b20a1567fdca697dae190e9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:05 +0200 Subject: [PATCH 0347/1407] - patchlevel 853 --- 7.4.853 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.4.853 diff --git a/7.4.853 b/7.4.853 new file mode 100644 index 00000000..3d38f562 --- /dev/null +++ b/7.4.853 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.853 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.853 +Problem: "zt" in diff mode does not always work properly. (Gary Johnson) +Solution: Don't count filler lines twice. (Christian Brabandt) +Files: src/move.c + + +*** ../vim-7.4.852/src/move.c 2015-08-11 19:13:55.142175641 +0200 +--- src/move.c 2015-09-01 20:44:12.507720203 +0200 +*************** +*** 1732,1738 **** + * - at least 'scrolloff' lines above and below the cursor + */ + validate_cheight(); +! used = curwin->w_cline_height; + if (curwin->w_cursor.lnum < curwin->w_topline) + scrolled = used; + +--- 1732,1738 ---- + * - at least 'scrolloff' lines above and below the cursor + */ + validate_cheight(); +! used = curwin->w_cline_height; /* includes filler lines above */ + if (curwin->w_cursor.lnum < curwin->w_topline) + scrolled = used; + +*************** +*** 1751,1760 **** + new_topline = top + 1; + + #ifdef FEAT_DIFF +! /* count filler lines of the cursor window as context */ +! i = diff_check_fill(curwin, curwin->w_cursor.lnum); +! used += i; +! extra += i; + #endif + + /* +--- 1751,1762 ---- + new_topline = top + 1; + + #ifdef FEAT_DIFF +! /* used already contains the number of filler lines above, don't add it +! * again. +! * TODO: if filler lines above new top are to be considered as context for +! * the current window, leave next statement commented, else hide filler +! * lines above cursor line, by adding them to extra */ +! /* extra += diff_check_fill(curwin, curwin->w_cursor.lnum); */ + #endif + + /* +*** ../vim-7.4.852/src/version.c 2015-09-01 20:31:16.311776122 +0200 +--- src/version.c 2015-09-01 20:40:44.433880446 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 853, + /**/ + +-- +A fool must search for a greater fool to find admiration. + + /// 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 /// From 98d7da6862a96e506d0b1820472dd5e8082ce5f7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:06 +0200 Subject: [PATCH 0348/1407] - patchlevel 854 --- 7.4.854 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.4.854 diff --git a/7.4.854 b/7.4.854 new file mode 100644 index 00000000..9e52a0bd --- /dev/null +++ b/7.4.854 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.854 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.854 (after 7.4.850) +Problem: Missing information about runtime files. +Solution: Add section about runtime files. (Christian Brabandt) +Files: CONTRIBUTING.md + + +*** ../vim-7.4.853/CONTRIBUTING.md 2015-09-01 19:50:05.697404798 +0200 +--- CONTRIBUTING.md 2015-09-01 21:22:38.119765678 +0200 +*************** +*** 37,39 **** +--- 37,54 ---- + Or open [the todo file] on GitHub to see the latest version. + + [the todo file]: https://github.com/vim/vim/blob/master/runtime/doc/todo.txt ++ ++ ++ # Syntax, indent and other runtime files ++ ++ The latest version of these files can be obtained from the repository. ++ They are usually not updated with numbered patches. ++ ++ If you find a problem with one of these files or have a suggestion for ++ improvement, please first try to contact the maintainer directly. ++ Look in the header of the file for the name and email address. ++ ++ The maintainer will take care of issues and send updates to Bram for ++ distribution with Vim. ++ ++ If the maintainer does not react, contact the vim-dev maillist. +*** ../vim-7.4.853/src/version.c 2015-09-01 20:53:20.294030821 +0200 +--- src/version.c 2015-09-01 21:23:38.559133262 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 854, + /**/ + +-- +The Characters and incidents portrayed and the names used are fictitious and +any similarity to the names, characters, or history of any person is entirely +accidental and unintentional. + Signed RICHARD M. NIXON + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 26455479586fcba835cc5110bc3f29d5af2708b0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 2 Sep 2015 11:20:06 +0200 Subject: [PATCH 0349/1407] - patchlevel 854 --- README.patches | 11 +++++++++++ vim.spec | 27 ++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 9ce50b64..a28c6553 100644 --- a/README.patches +++ b/README.patches @@ -865,3 +865,14 @@ Individual patches for Vim 7.4: 2380 7.4.841 can't compile without the multi-byte feature 1456 7.4.842 sending too many messages to close the balloon 2336 7.4.843 (after 7.4.835) still possible to go beyond end of a string + 5956 7.4.844 when '#' is in 'isident' the is# comparator doesn't work + 1720 7.4.845 compiler warning for possible loss of data + 3410 7.4.846 some GitHub users don't know how to use issues + 1541 7.4.847 "vi)d" may leave a character behind + 2613 7.4.848 CTRL-A on hex number in Visual block mode is incorrect + 11225 7.4.849 moving the cursor in Insert mode starts new undo sequence + 1868 7.4.850 does not show up + 11192 7.4.851 saving and restoring console buffer does not work properly + 16460 7.4.852 MS-Windows console cannot input/output Unicode characters + 2377 7.4.853 "zt" in diff mode does not always work properly + 2145 7.4.854 missing information about runtime files diff --git a/vim.spec b/vim.spec index a797422c..2b19f373 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 843 +%define patchlevel 854 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -890,6 +890,17 @@ Patch840: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.840 Patch841: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.841 Patch842: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.842 Patch843: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.843 +Patch844: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.844 +Patch845: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.845 +Patch846: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.846 +Patch847: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.847 +Patch848: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.848 +Patch849: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.849 +Patch850: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.850 +Patch851: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.851 +Patch852: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.852 +Patch853: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.853 +Patch854: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.854 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1883,6 +1894,17 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch841 -p0 %patch842 -p0 %patch843 -p0 +%patch844 -p0 +%patch845 -p0 +%patch846 -p0 +%patch847 -p0 +%patch848 -p0 +%patch849 -p0 +%patch850 -p0 +%patch851 -p0 +%patch852 -p0 +%patch853 -p0 +%patch854 -p0 # install spell files %if %{withvimspell} @@ -2442,6 +2464,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 02 2015 Karsten Hopp 7.4.854-1 +- patchlevel 854 + * Fri Aug 28 2015 Karsten Hopp 7.4.843-1 - patchlevel 843 From dd65d6dd2dc2b7b98c400b72122f870c8ab20703 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:03 +0200 Subject: [PATCH 0350/1407] - patchlevel 855 --- 7.4.855 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.855 diff --git a/7.4.855 b/7.4.855 new file mode 100644 index 00000000..c3399bd8 --- /dev/null +++ b/7.4.855 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.855 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.855 +Problem: GTK: font glitches for combining characters +Solution: Use pango_shape_full() instead of pango_shape(). (luchr, PR #393) +Files: src/gui_gtk_x11.c + + +*** ../vim-7.4.854/src/gui_gtk_x11.c 2015-06-09 19:14:18.773373964 +0200 +--- src/gui_gtk_x11.c 2015-09-08 16:18:51.944711934 +0200 +*************** +*** 5063,5070 **** + * done, because drawing the cursor would change the display. */ + item->analysis.shape_engine = default_shape_engine; + +! pango_shape((const char *)s + item->offset, item->length, +! &item->analysis, glyphs); + /* + * Fixed-width hack: iterate over the array and assign a fixed + * width to each glyph, thus overriding the choice made by the +--- 5063,5070 ---- + * done, because drawing the cursor would change the display. */ + item->analysis.shape_engine = default_shape_engine; + +! pango_shape_full((const char *)s + item->offset, item->length, +! (const char *)s, len, &item->analysis, glyphs); + /* + * Fixed-width hack: iterate over the array and assign a fixed + * width to each glyph, thus overriding the choice made by the +*** ../vim-7.4.854/src/version.c 2015-09-01 21:25:38.845874761 +0200 +--- src/version.c 2015-09-08 16:28:14.186863672 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 855, + /**/ + +-- +CART DRIVER: Bring out your dead! +LARGE MAN: Here's one! +CART DRIVER: Ninepence. +BODY: I'm not dead! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 2d4691f562bfe6e23b0f3d32225450a06e36ef29 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:04 +0200 Subject: [PATCH 0351/1407] - patchlevel 856 --- 7.4.856 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.4.856 diff --git a/7.4.856 b/7.4.856 new file mode 100644 index 00000000..ec178151 --- /dev/null +++ b/7.4.856 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.856 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.856 +Problem: "zt" still doesn't work well with filler lines. (Gary Johnson) +Solution: Check for filler lines above the cursor. (Christian Brabandt) +Files: src/move.c + + +*** ../vim-7.4.855/src/move.c 2015-09-01 20:53:20.294030821 +0200 +--- src/move.c 2015-09-08 17:18:09.315751849 +0200 +*************** +*** 1751,1762 **** + new_topline = top + 1; + + #ifdef FEAT_DIFF +! /* used already contains the number of filler lines above, don't add it + * again. +! * TODO: if filler lines above new top are to be considered as context for +! * the current window, leave next statement commented, else hide filler +! * lines above cursor line, by adding them to extra */ +! /* extra += diff_check_fill(curwin, curwin->w_cursor.lnum); */ + #endif + + /* +--- 1751,1760 ---- + new_topline = top + 1; + + #ifdef FEAT_DIFF +! /* "used" already contains the number of filler lines above, don't add it + * again. +! * Hide filler lines above cursor line by adding them to "extra". */ +! extra += diff_check_fill(curwin, curwin->w_cursor.lnum); + #endif + + /* +*************** +*** 1771,1777 **** + i = 1; + else + #endif +! i = plines(top); + used += i; + if (extra + i <= off && bot < curbuf->b_ml.ml_line_count) + { +--- 1769,1775 ---- + i = 1; + else + #endif +! i = plines_nofill(top); + used += i; + if (extra + i <= off && bot < curbuf->b_ml.ml_line_count) + { +*** ../vim-7.4.855/src/version.c 2015-09-08 16:31:01.673123014 +0200 +--- src/version.c 2015-09-08 17:15:18.005529911 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 856, + /**/ + +-- +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 /// From 11d165f27c762dfeef837cb40fc9c00a27914d48 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:04 +0200 Subject: [PATCH 0352/1407] - patchlevel 857 --- 7.4.857 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.857 diff --git a/7.4.857 b/7.4.857 new file mode 100644 index 00000000..c97696ab --- /dev/null +++ b/7.4.857 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.857 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.857 +Problem: Dragging the current tab with the mouse doesn't work properly. +Solution: Take the current tabpage index into account. (Hirohito Higashi) +Files: src/normal.c + + +*** ../vim-7.4.856/src/normal.c 2015-08-11 19:13:55.142175641 +0200 +--- src/normal.c 2015-09-08 17:50:31.147618211 +0200 +*************** +*** 2561,2567 **** + if (in_tab_line) + { + c1 = TabPageIdxs[mouse_col]; +! tabpage_move(c1 <= 0 ? 9999 : c1 - 1); + } + return FALSE; + } +--- 2561,2568 ---- + if (in_tab_line) + { + c1 = TabPageIdxs[mouse_col]; +! tabpage_move(c1 <= 0 ? 9999 : c1 < tabpage_index(curtab) +! ? c1 - 1 : c1); + } + return FALSE; + } +*** ../vim-7.4.856/src/version.c 2015-09-08 17:31:38.591350883 +0200 +--- src/version.c 2015-09-08 17:48:17.700998564 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 857, + /**/ + +-- +BODY: I'm not dead! +CART DRIVER: 'Ere. He says he's not dead. +LARGE MAN: Yes he is. +BODY: I'm not! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From cdccbcef68754d6ce0811f1bc948e83091482383 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:04 +0200 Subject: [PATCH 0353/1407] - patchlevel 858 --- 7.4.858 | 1327 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1327 insertions(+) create mode 100644 7.4.858 diff --git a/7.4.858 b/7.4.858 new file mode 100644 index 00000000..f7fcf627 --- /dev/null +++ b/7.4.858 @@ -0,0 +1,1327 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.858 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.858 +Problem: It's a bit clumsy to execute a command on a list of matches. +Solution: Add the ":ldo", ":lfdo", ":cdo" and ":cfdo" commands. (Yegappan + Lakshmanan) +Files: runtime/doc/cmdline.txt, runtime/doc/editing.txt, + runtime/doc/index.txt, runtime/doc/quickfix.txt, + runtime/doc/tabpage.txt, runtime/doc/windows.txt, src/ex_cmds.h, + src/ex_cmds2.c, src/ex_docmd.c, src/proto/quickfix.pro, + src/quickfix.c, src/testdir/Make_amiga.mak, + src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, + src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, + src/testdir/Makefile, src/testdir/test_cdo.in, + src/testdir/test_cdo.ok + + +*** ../vim-7.4.857/runtime/doc/cmdline.txt 2014-02-23 23:38:58.812760280 +0100 +--- runtime/doc/cmdline.txt 2015-09-08 18:07:42.256948348 +0200 +*************** +*** 511,516 **** +--- 511,518 ---- + :argdo + :autocmd + :bufdo ++ :cdo ++ :cfdo + :command + :cscope + :debug +*************** +*** 521,526 **** +--- 523,530 ---- + :help + :helpfind + :lcscope ++ :ldo ++ :lfdo + :make + :normal + :perl +*** ../vim-7.4.857/runtime/doc/editing.txt 2015-01-07 16:52:53.506792420 +0100 +--- runtime/doc/editing.txt 2015-09-08 18:07:42.256948348 +0200 +*************** +*** 854,860 **** + each file. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:windo|, |:tabdo| and |:bufdo|. + + Example: > + :args *.c +--- 868,875 ---- + each file. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:windo|, |:tabdo|, |:bufdo|, |:cdo|, |:ldo|, +! |:cfdo| and |:lfdo| + + Example: > + :args *.c +*** ../vim-7.4.857/runtime/doc/index.txt 2014-09-19 19:39:30.762446025 +0200 +--- runtime/doc/index.txt 2015-09-08 18:10:53.402969644 +0200 +*************** +*** 1133,1138 **** +--- 1138,1145 ---- + |:cc| :cc go to specific error + |:cclose| :ccl[ose] close quickfix window + |:cd| :cd change directory ++ |:cdo| :cdo execute command in each valid error list entry ++ |:cfdo| :cfd[o] execute command in each file in error list + |:center| :ce[nter] format lines at the center + |:cexpr| :cex[pr] read errors from expr and jump to first + |:cfile| :cf[ile] read file with error messages and jump to first +*************** +*** 1290,1295 **** +--- 1298,1305 ---- + |:lchdir| :lch[dir] change directory locally + |:lclose| :lcl[ose] close location window + |:lcscope| :lcs[cope] like ":cscope" but uses location list ++ |:ldo| :ld[o] execute command in valid location list entries ++ |:lfdo| :lfd[o] execute command in each file in location list + |:left| :le[ft] left align lines + |:leftabove| :lefta[bove] make split window appear left or above + |:let| :let assign a value to a variable or option +*** ../vim-7.4.857/runtime/doc/quickfix.txt 2014-02-23 23:38:58.820760280 +0100 +--- runtime/doc/quickfix.txt 2015-09-08 18:27:53.564412123 +0200 +*************** +*** 299,321 **** + au QuickfixCmdPost make call QfMakeConv() + + + ============================================================================= + 2. The error window *quickfix-window* + + *:cope* *:copen* *w:quickfix_title* + :cope[n] [height] Open a window to show the current list of errors. + When [height] is given, the window becomes that high +! (if there is room). Otherwise the window is made ten +! lines high. +! The window will contain a special buffer, with +! 'buftype' equal to "quickfix". Don't change this! + If there already is a quickfix window, it will be made + the current window. It is not possible to open a +! second quickfix window. The window will have the +! w:quickfix_title variable set which will indicate the +! command that produced the quickfix list. This can be +! used to compose a custom status line if the value of +! 'statusline' is adjusted properly. + + *:lop* *:lopen* + :lop[en] [height] Open a window to show the location list for the +--- 299,395 ---- + au QuickfixCmdPost make call QfMakeConv() + + ++ EXECUTE A COMMAND IN ALL THE BUFFERS IN QUICKFIX OR LOCATION LIST: ++ *:cdo* ++ :cdo[!] {cmd} Execute {cmd} in each valid entry in the quickfix list. ++ It works like doing this: > ++ :cfirst ++ :{cmd} ++ :cnext ++ :{cmd} ++ etc. ++ < When the current file can't be |abandon|ed and the [!] ++ is not present, the command fails. ++ When an error is detected excecution stops. ++ The last buffer (or where an error occurred) becomes ++ the current buffer. ++ {cmd} can contain '|' to concatenate several commands. ++ ++ Only valid entries in the quickfix list are used. ++ A range can be used to select entries, e.g.: > ++ :10,$cdo cmd ++ < To skip entries 1 to 9. ++ ++ Note: While this command is executing, the Syntax ++ autocommand event is disabled by adding it to ++ 'eventignore'. This considerably speeds up editing ++ each buffer. ++ {not in Vi} {not available when compiled without the ++ |+listcmds| feature} ++ Also see |:bufdo|, |:tabdo|, |:argdo|, |:windo|, ++ |:ldo|, |:cfdo| and |:lfdo|. ++ ++ *:cfdo* ++ :cfdo[!] {cmd} Execute {cmd} in each file in the quickfix list. ++ It works like doing this: > ++ :cfirst ++ :{cmd} ++ :cnfile ++ :{cmd} ++ etc. ++ < Otherwise it works the same as `:cdo`. ++ {not in Vi} {not available when compiled without the ++ |+listcmds| feature} ++ ++ *:ldo* ++ :ld[o][!] {cmd} Execute {cmd} in each valid entry in the location list ++ for the current window. ++ It works like doing this: > ++ :lfirst ++ :{cmd} ++ :lnext ++ :{cmd} ++ etc. ++ < Only valid entries in the location list are used. ++ Otherwise it works the same as `:cdo`. ++ {not in Vi} {not available when compiled without the ++ |+listcmds| feature} ++ ++ *:lfdo* ++ :lfdo[!] {cmd} Execute {cmd} in each file in the location list for ++ the current window. ++ It works like doing this: > ++ :lfirst ++ :{cmd} ++ :lnfile ++ :{cmd} ++ etc. ++ < Otherwise it works the same as `:ldo`. ++ {not in Vi} {not available when compiled without the ++ |+listcmds| feature} ++ + ============================================================================= + 2. The error window *quickfix-window* + + *:cope* *:copen* *w:quickfix_title* + :cope[n] [height] Open a window to show the current list of errors. ++ + When [height] is given, the window becomes that high +! (if there is room). When [height] is omitted the +! window is made ten lines high. +! + If there already is a quickfix window, it will be made + the current window. It is not possible to open a +! second quickfix window. If [height] is given the +! existing window will be resized to it. +! +! The window will contain a special buffer, with +! 'buftype' equal to "quickfix". Don't change this! +! The window will have the w:quickfix_title variable set +! which will indicate the command that produced the +! quickfix list. This can be used to compose a custom +! status line if the value of 'statusline' is adjusted +! properly. + + *:lop* *:lopen* + :lop[en] [height] Open a window to show the location list for the +*** ../vim-7.4.857/runtime/doc/tabpage.txt 2015-04-21 18:08:21.838719097 +0200 +--- runtime/doc/tabpage.txt 2015-09-08 18:07:42.256948348 +0200 +*************** +*** 248,254 **** + {cmd} must not open or close tab pages or reorder them. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:windo|, |:argdo| and |:bufdo|. + + ============================================================================== + 3. Other items *tab-page-other* +--- 248,255 ---- + {cmd} must not open or close tab pages or reorder them. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:windo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, |:cfdo| +! and |:lfdo| + + ============================================================================== + 3. Other items *tab-page-other* +*** ../vim-7.4.857/runtime/doc/windows.txt 2015-07-21 15:03:00.691467213 +0200 +--- runtime/doc/windows.txt 2015-09-08 18:07:42.256948348 +0200 +*************** +*** 715,721 **** + {cmd} must not open or close windows or reorder them. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:tabdo|, |:argdo| and |:bufdo|. + + *:bufdo* + :[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if +--- 715,722 ---- + {cmd} must not open or close windows or reorder them. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:tabdo|, |:argdo|, |:bufdo|, |:cdo|, |:ldo|, +! |:cfdo| and |:lfdo| + + *:bufdo* + :[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if +*************** +*** 743,749 **** + each buffer. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:tabdo|, |:argdo| and |:windo|. + + Examples: > + +--- 744,751 ---- + each buffer. + {not in Vi} {not available when compiled without the + |+listcmds| feature} +! Also see |:tabdo|, |:argdo|, |:windo|, |:cdo|, |:ldo|, +! |:cfdo| and |:lfdo| + + Examples: > + +*** ../vim-7.4.857/src/ex_cmds.h 2015-07-21 15:03:00.691467213 +0200 +--- src/ex_cmds.h 2015-09-08 18:20:51.228782439 +0200 +*************** +*** 65,70 **** +--- 65,71 ---- + #define ADDR_LOADED_BUFFERS 3 + #define ADDR_BUFFERS 4 + #define ADDR_TABS 5 ++ #define ADDR_QUICKFIX 6 + + #ifndef DO_DECLARE_EXCMD + typedef struct exarg exarg_T; +*************** +*** 270,275 **** +--- 271,279 ---- + EX(CMD_cd, "cd", ex_cd, + BANG|FILE1|TRLBAR|CMDWIN, + ADDR_LINES), ++ EX(CMD_cdo, "cdo", ex_listdo, ++ BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, ++ ADDR_QUICKFIX), + EX(CMD_center, "center", ex_align, + TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, + ADDR_LINES), +*************** +*** 279,284 **** +--- 283,291 ---- + EX(CMD_cfile, "cfile", ex_cfile, + TRLBAR|FILE1|BANG, + ADDR_LINES), ++ EX(CMD_cfdo, "cfdo", ex_listdo, ++ BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, ++ ADDR_QUICKFIX), + EX(CMD_cfirst, "cfirst", ex_cc, + RANGE|NOTADR|COUNT|TRLBAR|BANG, + ADDR_LINES), +*************** +*** 729,734 **** +--- 736,744 ---- + EX(CMD_lcscope, "lcscope", do_cscope, + EXTRA|NOTRLCOM|XFILE, + ADDR_LINES), ++ EX(CMD_ldo, "ldo", ex_listdo, ++ BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, ++ ADDR_QUICKFIX), + EX(CMD_left, "left", ex_align, + TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, + ADDR_LINES), +*************** +*** 744,749 **** +--- 754,762 ---- + EX(CMD_lfile, "lfile", ex_cfile, + TRLBAR|FILE1|BANG, + ADDR_LINES), ++ EX(CMD_lfdo, "lfdo", ex_listdo, ++ BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, ++ ADDR_QUICKFIX), + EX(CMD_lfirst, "lfirst", ex_cc, + RANGE|NOTADR|COUNT|TRLBAR|BANG, + ADDR_LINES), +*** ../vim-7.4.857/src/ex_cmds2.c 2015-08-11 19:13:55.134175736 +0200 +--- src/ex_cmds2.c 2015-09-08 18:24:57.594233149 +0200 +*************** +*** 2429,2435 **** + } + + /* +! * ":argdo", ":windo", ":bufdo", ":tabdo" + */ + void + ex_listdo(eap) +--- 2429,2435 ---- + } + + /* +! * ":argdo", ":windo", ":bufdo", ":tabdo", ":cdo", ":ldo", ":cfdo" and ":lfdo" + */ + void + ex_listdo(eap) +*************** +*** 2446,2451 **** +--- 2446,2455 ---- + char_u *save_ei = NULL; + #endif + char_u *p_shm_save; ++ #ifdef FEAT_QUICKFIX ++ int qf_size; ++ int qf_idx; ++ #endif + + #ifndef FEAT_WINDOWS + if (eap->cmdidx == CMD_windo) +*************** +*** 2498,2515 **** + } + /* set pcmark now */ + if (eap->cmdidx == CMD_bufdo) +! { + /* Advance to the first listed buffer after "eap->line1". */ +! for (buf = firstbuf; buf != NULL && (buf->b_fnum < eap->line1 + || !buf->b_p_bl); buf = buf->b_next) + if (buf->b_fnum > eap->line2) + { + buf = NULL; + break; + } +! if (buf != NULL) + goto_buffer(eap, DOBUF_FIRST, FORWARD, buf->b_fnum); +! } + else + setpcmark(); + listcmd_busy = TRUE; /* avoids setting pcmark below */ +--- 2502,2538 ---- + } + /* set pcmark now */ + if (eap->cmdidx == CMD_bufdo) +! { + /* Advance to the first listed buffer after "eap->line1". */ +! for (buf = firstbuf; buf != NULL && (buf->b_fnum < eap->line1 + || !buf->b_p_bl); buf = buf->b_next) + if (buf->b_fnum > eap->line2) + { + buf = NULL; + break; + } +! if (buf != NULL) + goto_buffer(eap, DOBUF_FIRST, FORWARD, buf->b_fnum); +! } +! #ifdef FEAT_QUICKFIX +! else if (eap->cmdidx == CMD_cdo || eap->cmdidx == CMD_ldo +! || eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo) +! { +! qf_size = qf_get_size(eap); +! if (qf_size <= 0 || eap->line1 > qf_size) +! buf = NULL; +! else +! { +! ex_cc(eap); +! +! buf = curbuf; +! i = eap->line1 - 1; +! if (eap->addr_count <= 0) +! /* default is all the quickfix/location list entries */ +! eap->line2 = qf_size; +! } +! } +! #endif + else + setpcmark(); + listcmd_busy = TRUE; /* avoids setting pcmark below */ +*************** +*** 2595,2605 **** + set_option_value((char_u *)"shm", 0L, p_shm_save, 0); + vim_free(p_shm_save); + +! /* If autocommands took us elsewhere, quit here */ + if (curbuf->b_fnum != next_fnum) + break; + } + + if (eap->cmdidx == CMD_windo) + { + validate_cursor(); /* cursor may have moved */ +--- 2618,2645 ---- + set_option_value((char_u *)"shm", 0L, p_shm_save, 0); + vim_free(p_shm_save); + +! /* If autocommands took us elsewhere, quit here. */ + if (curbuf->b_fnum != next_fnum) + break; + } + ++ #ifdef FEAT_QUICKFIX ++ if (eap->cmdidx == CMD_cdo || eap->cmdidx == CMD_ldo ++ || eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo) ++ { ++ if (i >= qf_size || i >= eap->line2) ++ break; ++ ++ qf_idx = qf_get_cur_idx(eap); ++ ++ ex_cnext(eap); ++ ++ /* If jumping to the next quickfix entry fails, quit here */ ++ if (qf_get_cur_idx(eap) == qf_idx) ++ break; ++ } ++ #endif ++ + if (eap->cmdidx == CMD_windo) + { + validate_cursor(); /* cursor may have moved */ +*** ../vim-7.4.857/src/ex_docmd.c 2015-08-11 18:52:58.073121563 +0200 +--- src/ex_docmd.c 2015-09-08 18:07:42.260948306 +0200 +*************** +*** 135,141 **** + #endif + + static int check_more __ARGS((int, int)); +! static linenr_T get_address __ARGS((char_u **, int addr_type, int skip, int to_other_file)); + static void get_flags __ARGS((exarg_T *eap)); + #if !defined(FEAT_PERL) \ + || !defined(FEAT_PYTHON) || !defined(FEAT_PYTHON3) \ +--- 135,141 ---- + #endif + + static int check_more __ARGS((int, int)); +! static linenr_T get_address __ARGS((exarg_T *, char_u **, int addr_type, int skip, int to_other_file)); + static void get_flags __ARGS((exarg_T *eap)); + #if !defined(FEAT_PERL) \ + || !defined(FEAT_PYTHON) || !defined(FEAT_PYTHON3) \ +*************** +*** 2173,2181 **** + lnum = CURRENT_TAB_NR; + ea.line2 = lnum; + break; + } + ea.cmd = skipwhite(ea.cmd); +! lnum = get_address(&ea.cmd, ea.addr_type, ea.skip, ea.addr_count == 0); + if (ea.cmd == NULL) /* error detected */ + goto doend; + if (lnum == MAXLNUM) +--- 2173,2184 ---- + lnum = CURRENT_TAB_NR; + ea.line2 = lnum; + break; ++ case ADDR_QUICKFIX: ++ ea.line2 = qf_get_cur_valid_idx(&ea); ++ break; + } + ea.cmd = skipwhite(ea.cmd); +! lnum = get_address(&ea, &ea.cmd, ea.addr_type, ea.skip, ea.addr_count == 0); + if (ea.cmd == NULL) /* error detected */ + goto doend; + if (lnum == MAXLNUM) +*************** +*** 2233,2238 **** +--- 2236,2247 ---- + ea.line2 = ARGCOUNT; + } + break; ++ case ADDR_QUICKFIX: ++ ea.line1 = 1; ++ ea.line2 = qf_get_size(&ea); ++ if (ea.line2 == 0) ++ ea.line2 = 1; ++ break; + } + ++ea.addr_count; + } +*************** +*** 2693,2698 **** +--- 2702,2712 ---- + else + ea.line2 = ARGCOUNT; + break; ++ case ADDR_QUICKFIX: ++ ea.line2 = qf_get_size(&ea); ++ if (ea.line2 == 0) ++ ea.line2 = 1; ++ break; + } + } + +*************** +*** 3839,3844 **** +--- 3853,3860 ---- + case CMD_botright: + case CMD_browse: + case CMD_bufdo: ++ case CMD_cdo: ++ case CMD_cfdo: + case CMD_confirm: + case CMD_debug: + case CMD_folddoclosed: +*************** +*** 3848,3854 **** +--- 3864,3872 ---- + case CMD_keepjumps: + case CMD_keepmarks: + case CMD_keeppatterns: ++ case CMD_ldo: + case CMD_leftabove: ++ case CMD_lfdo: + case CMD_lockmarks: + case CMD_noautocmd: + case CMD_noswapfile: +*************** +*** 4321,4327 **** + * Return MAXLNUM when no Ex address was found. + */ + static linenr_T +! get_address(ptr, addr_type, skip, to_other_file) + char_u **ptr; + int addr_type; /* flag: one of ADDR_LINES, ... */ + int skip; /* only skip the address, don't use it */ +--- 4339,4346 ---- + * Return MAXLNUM when no Ex address was found. + */ + static linenr_T +! get_address(eap, ptr, addr_type, skip, to_other_file) +! exarg_T *eap; + char_u **ptr; + int addr_type; /* flag: one of ADDR_LINES, ... */ + int skip; /* only skip the address, don't use it */ +*************** +*** 4362,4367 **** +--- 4381,4389 ---- + case ADDR_TABS: + lnum = CURRENT_TAB_NR; + break; ++ case ADDR_QUICKFIX: ++ lnum = qf_get_cur_valid_idx(eap); ++ break; + } + break; + +*************** +*** 4394,4399 **** +--- 4416,4426 ---- + case ADDR_TABS: + lnum = LAST_TAB_NR; + break; ++ case ADDR_QUICKFIX: ++ lnum = qf_get_size(eap); ++ if (lnum == 0) ++ lnum = 1; ++ break; + } + break; + +*************** +*** 4569,4574 **** +--- 4596,4604 ---- + case ADDR_TABS: + lnum = CURRENT_TAB_NR; + break; ++ case ADDR_QUICKFIX: ++ lnum = qf_get_cur_valid_idx(eap); ++ break; + } + } + +*************** +*** 4707,4712 **** +--- 4737,4746 ---- + if (eap->line2 > LAST_TAB_NR) + return (char_u *)_(e_invrange); + break; ++ case ADDR_QUICKFIX: ++ if (eap->line2 != 1 && eap->line2 > qf_get_size(eap)) ++ return (char_u *)_(e_invrange); ++ break; + } + } + return NULL; +*************** +*** 5817,5822 **** +--- 5851,5857 ---- + {ADDR_TABS, "tabs"}, + {ADDR_BUFFERS, "buffers"}, + {ADDR_WINDOWS, "windows"}, ++ {ADDR_QUICKFIX, "quickfix"}, + {-1, NULL} + }; + #endif +*************** +*** 9224,9230 **** + { + long n; + +! n = get_address(&eap->arg, eap->addr_type, FALSE, FALSE); + if (eap->arg == NULL) /* error detected */ + { + eap->nextcmd = NULL; +--- 9259,9265 ---- + { + long n; + +! n = get_address(eap, &eap->arg, eap->addr_type, FALSE, FALSE); + if (eap->arg == NULL) /* error detected */ + { + eap->nextcmd = NULL; +*** ../vim-7.4.857/src/proto/quickfix.pro 2013-08-10 13:37:24.000000000 +0200 +--- src/proto/quickfix.pro 2015-09-08 18:29:04.723675697 +0200 +*************** +*** 17,22 **** +--- 17,25 ---- + int buf_hide __ARGS((buf_T *buf)); + int grep_internal __ARGS((cmdidx_T cmdidx)); + void ex_make __ARGS((exarg_T *eap)); ++ int qf_get_size __ARGS((exarg_T *eap)); ++ int qf_get_cur_idx __ARGS((exarg_T *eap)); ++ int qf_get_cur_valid_idx __ARGS((exarg_T *eap)); + void ex_cc __ARGS((exarg_T *eap)); + void ex_cnext __ARGS((exarg_T *eap)); + void ex_cfile __ARGS((exarg_T *eap)); +*** ../vim-7.4.857/src/quickfix.c 2015-06-19 18:35:29.683602295 +0200 +--- src/quickfix.c 2015-09-08 18:30:09.711003127 +0200 +*************** +*** 1373,1379 **** + /* + * Check in which directory of the directory stack the given file can be + * found. +! * Returns a pointer to the directory name or NULL if not found + * Cleans up intermediate directory entries. + * + * TODO: How to solve the following problem? +--- 1373,1379 ---- + /* + * Check in which directory of the directory stack the given file can be + * found. +! * Returns a pointer to the directory name or NULL if not found. + * Cleans up intermediate directory entries. + * + * TODO: How to solve the following problem? +*************** +*** 2990,3008 **** + } + + /* + * ":cc", ":crewind", ":cfirst" and ":clast". + * ":ll", ":lrewind", ":lfirst" and ":llast". + */ + void + ex_cc(eap) + exarg_T *eap; + { + qf_info_T *qi = &ql_info; + + if (eap->cmdidx == CMD_ll + || eap->cmdidx == CMD_lrewind + || eap->cmdidx == CMD_lfirst +! || eap->cmdidx == CMD_llast) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 2990,3172 ---- + } + + /* ++ * Returns the number of valid entries in the current quickfix/location list. ++ */ ++ int ++ qf_get_size(eap) ++ exarg_T *eap; ++ { ++ qf_info_T *qi = &ql_info; ++ qfline_T *qfp; ++ int i, sz = 0; ++ int prev_fnum = 0; ++ ++ if (eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) ++ { ++ /* Location list */ ++ qi = GET_LOC_LIST(curwin); ++ if (qi == NULL) ++ return 0; ++ } ++ ++ for (i = 0, qfp = qi->qf_lists[qi->qf_curlist].qf_start; ++ (i < qi->qf_lists[qi->qf_curlist].qf_count) && (qfp != NULL); ++ ++i, qfp = qfp->qf_next) ++ { ++ if (qfp->qf_valid) ++ { ++ if (eap->cmdidx == CMD_cdo || eap->cmdidx == CMD_ldo) ++ sz++; /* Count all valid entries */ ++ else if (qfp->qf_fnum > 0 && qfp->qf_fnum != prev_fnum) ++ { ++ /* Count the number of files */ ++ sz++; ++ prev_fnum = qfp->qf_fnum; ++ } ++ } ++ } ++ ++ return sz; ++ } ++ ++ /* ++ * Returns the current index of the quickfix/location list. ++ * Returns 0 if there is an error. ++ */ ++ int ++ qf_get_cur_idx(eap) ++ exarg_T *eap; ++ { ++ qf_info_T *qi = &ql_info; ++ ++ if (eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) ++ { ++ /* Location list */ ++ qi = GET_LOC_LIST(curwin); ++ if (qi == NULL) ++ return 0; ++ } ++ ++ return qi->qf_lists[qi->qf_curlist].qf_index; ++ } ++ ++ /* ++ * Returns the current index in the quickfix/location list (counting only valid ++ * entries). If no valid entries are in the list, then returns 1. ++ */ ++ int ++ qf_get_cur_valid_idx(eap) ++ exarg_T *eap; ++ { ++ qf_info_T *qi = &ql_info; ++ qf_list_T *qfl; ++ qfline_T *qfp; ++ int i, eidx = 0; ++ int prev_fnum = 0; ++ ++ if (eap->cmdidx == CMD_ldo || eap->cmdidx == CMD_lfdo) ++ { ++ /* Location list */ ++ qi = GET_LOC_LIST(curwin); ++ if (qi == NULL) ++ return 1; ++ } ++ ++ qfl = &qi->qf_lists[qi->qf_curlist]; ++ qfp = qfl->qf_start; ++ ++ /* check if the list has valid errors */ ++ if (qfl->qf_count <= 0 || qfl->qf_nonevalid) ++ return 1; ++ ++ for (i = 1; i <= qfl->qf_index && qfp!= NULL; i++, qfp = qfp->qf_next) ++ { ++ if (qfp->qf_valid) ++ { ++ if (eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo) ++ { ++ if (qfp->qf_fnum > 0 && qfp->qf_fnum != prev_fnum) ++ { ++ /* Count the number of files */ ++ eidx++; ++ prev_fnum = qfp->qf_fnum; ++ } ++ } ++ else ++ eidx++; ++ } ++ } ++ ++ return eidx ? eidx : 1; ++ } ++ ++ /* ++ * Get the 'n'th valid error entry in the quickfix or location list. ++ * Used by :cdo, :ldo, :cfdo and :lfdo commands. ++ * For :cdo and :ldo returns the 'n'th valid error entry. ++ * For :cfdo and :lfdo returns the 'n'th valid file entry. ++ */ ++ static int ++ qf_get_nth_valid_entry(qi, n, fdo) ++ qf_info_T *qi; ++ int n; ++ int fdo; ++ { ++ qf_list_T *qfl = &qi->qf_lists[qi->qf_curlist]; ++ qfline_T *qfp = qfl->qf_start; ++ int i, eidx; ++ int prev_fnum = 0; ++ ++ /* check if the list has valid errors */ ++ if (qfl->qf_count <= 0 || qfl->qf_nonevalid) ++ return 1; ++ ++ for (i = 1, eidx = 0; i <= qfl->qf_count && qfp!= NULL; ++ i++, qfp = qfp->qf_next) ++ { ++ if (qfp->qf_valid) ++ { ++ if (fdo) ++ { ++ if (qfp->qf_fnum > 0 && qfp->qf_fnum != prev_fnum) ++ { ++ /* Count the number of files */ ++ eidx++; ++ prev_fnum = qfp->qf_fnum; ++ } ++ } ++ else ++ eidx++; ++ } ++ ++ if (eidx == n) ++ break; ++ } ++ ++ if (i <= qfl->qf_count) ++ return i; ++ else ++ return 1; ++ } ++ ++ /* + * ":cc", ":crewind", ":cfirst" and ":clast". + * ":ll", ":lrewind", ":lfirst" and ":llast". ++ * ":cdo", ":ldo", ":cfdo" and ":lfdo" + */ + void + ex_cc(eap) + exarg_T *eap; + { + qf_info_T *qi = &ql_info; ++ int errornr; + + if (eap->cmdidx == CMD_ll + || eap->cmdidx == CMD_lrewind + || eap->cmdidx == CMD_lfirst +! || eap->cmdidx == CMD_llast +! || eap->cmdidx == CMD_ldo +! || eap->cmdidx == CMD_lfdo) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3012,3045 **** + } + } + +! qf_jump(qi, 0, +! eap->addr_count > 0 +! ? (int)eap->line2 +! : (eap->cmdidx == CMD_cc || eap->cmdidx == CMD_ll) +! ? 0 +! : (eap->cmdidx == CMD_crewind || eap->cmdidx == CMD_lrewind +! || eap->cmdidx == CMD_cfirst || eap->cmdidx == CMD_lfirst) +! ? 1 +! : 32767, +! eap->forceit); + } + + /* + * ":cnext", ":cnfile", ":cNext" and ":cprevious". + * ":lnext", ":lNext", ":lprevious", ":lnfile", ":lNfile" and ":lpfile". + */ + void + ex_cnext(eap) + exarg_T *eap; + { + qf_info_T *qi = &ql_info; + + if (eap->cmdidx == CMD_lnext + || eap->cmdidx == CMD_lNext + || eap->cmdidx == CMD_lprevious + || eap->cmdidx == CMD_lnfile + || eap->cmdidx == CMD_lNfile +! || eap->cmdidx == CMD_lpfile) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +--- 3176,3226 ---- + } + } + +! if (eap->addr_count > 0) +! errornr = (int)eap->line2; +! else +! { +! if (eap->cmdidx == CMD_cc || eap->cmdidx == CMD_ll) +! errornr = 0; +! else if (eap->cmdidx == CMD_crewind || eap->cmdidx == CMD_lrewind +! || eap->cmdidx == CMD_cfirst || eap->cmdidx == CMD_lfirst) +! errornr = 1; +! else +! errornr = 32767; +! } +! +! /* For cdo and ldo commands, jump to the nth valid error. +! * For cfdo and lfdo commands, jump to the nth valid file entry. +! */ +! if (eap->cmdidx == CMD_cdo || eap->cmdidx == CMD_ldo || +! eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo) +! errornr = qf_get_nth_valid_entry(qi, +! eap->addr_count > 0 ? (int)eap->line1 : 1, +! eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo); +! +! qf_jump(qi, 0, errornr, eap->forceit); + } + + /* + * ":cnext", ":cnfile", ":cNext" and ":cprevious". + * ":lnext", ":lNext", ":lprevious", ":lnfile", ":lNfile" and ":lpfile". ++ * Also, used by ":cdo", ":ldo", ":cfdo" and ":lfdo" commands. + */ + void + ex_cnext(eap) + exarg_T *eap; + { + qf_info_T *qi = &ql_info; ++ int errornr; + + if (eap->cmdidx == CMD_lnext + || eap->cmdidx == CMD_lNext + || eap->cmdidx == CMD_lprevious + || eap->cmdidx == CMD_lnfile + || eap->cmdidx == CMD_lNfile +! || eap->cmdidx == CMD_lpfile +! || eap->cmdidx == CMD_ldo +! || eap->cmdidx == CMD_lfdo) + { + qi = GET_LOC_LIST(curwin); + if (qi == NULL) +*************** +*** 3049,3063 **** + } + } + +! qf_jump(qi, (eap->cmdidx == CMD_cnext || eap->cmdidx == CMD_lnext) + ? FORWARD +! : (eap->cmdidx == CMD_cnfile || eap->cmdidx == CMD_lnfile) + ? FORWARD_FILE + : (eap->cmdidx == CMD_cpfile || eap->cmdidx == CMD_lpfile + || eap->cmdidx == CMD_cNfile || eap->cmdidx == CMD_lNfile) + ? BACKWARD_FILE + : BACKWARD, +! eap->addr_count > 0 ? (int)eap->line2 : 1, eap->forceit); + } + + /* +--- 3230,3253 ---- + } + } + +! if (eap->addr_count > 0 && +! (eap->cmdidx != CMD_cdo && eap->cmdidx != CMD_ldo && +! eap->cmdidx != CMD_cfdo && eap->cmdidx != CMD_lfdo)) +! errornr = (int)eap->line2; +! else +! errornr = 1; +! +! qf_jump(qi, (eap->cmdidx == CMD_cnext || eap->cmdidx == CMD_lnext +! || eap->cmdidx == CMD_cdo || eap->cmdidx == CMD_ldo) + ? FORWARD +! : (eap->cmdidx == CMD_cnfile || eap->cmdidx == CMD_lnfile +! || eap->cmdidx == CMD_cfdo || eap->cmdidx == CMD_lfdo) + ? FORWARD_FILE + : (eap->cmdidx == CMD_cpfile || eap->cmdidx == CMD_lpfile + || eap->cmdidx == CMD_cNfile || eap->cmdidx == CMD_lNfile) + ? BACKWARD_FILE + : BACKWARD, +! errornr, eap->forceit); + } + + /* +*** ../vim-7.4.857/src/testdir/Make_amiga.mak 2015-09-01 16:04:26.706472322 +0200 +--- src/testdir/Make_amiga.mak 2015-09-08 18:33:40.696822313 +0200 +*************** +*** 41,46 **** +--- 41,47 ---- + test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_cdo.out \ + test_changelist.out \ + test_charsearch.out \ + test_close_count.out \ +*************** +*** 195,200 **** +--- 196,202 ---- + test_autocmd_option.out: test_autocmd_option.in + test_autoformat_join.out: test_autoformat_join.in + test_breakindent.out: test_breakindent.in ++ test_cdo.out: test_cdo.in + test_changelist.out: test_changelist.in + test_charsearch.out: test_charsearch.in + test_close_count.out: test_close_count.in +*** ../vim-7.4.857/src/testdir/Make_dos.mak 2015-09-01 16:04:26.706472322 +0200 +--- src/testdir/Make_dos.mak 2015-09-08 18:33:24.828984002 +0200 +*************** +*** 40,45 **** +--- 40,46 ---- + test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_cdo.out \ + test_changelist.out \ + test_charsearch.out \ + test_close_count.out \ +*** ../vim-7.4.857/src/testdir/Make_ming.mak 2015-09-01 16:04:26.706472322 +0200 +--- src/testdir/Make_ming.mak 2015-09-08 18:33:54.412682545 +0200 +*************** +*** 62,67 **** +--- 62,68 ---- + test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_cdo.out \ + test_changelist.out \ + test_charsearch.out \ + test_close_count.out \ +*** ../vim-7.4.857/src/testdir/Make_os2.mak 2015-09-01 16:04:26.706472322 +0200 +--- src/testdir/Make_os2.mak 2015-09-08 18:34:06.004564414 +0200 +*************** +*** 42,47 **** +--- 42,48 ---- + test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_cdo.out \ + test_changelist.out \ + test_charsearch.out \ + test_close_count.out \ +*** ../vim-7.4.857/src/testdir/Make_vms.mms 2015-09-01 16:04:26.706472322 +0200 +--- src/testdir/Make_vms.mms 2015-09-08 18:34:18.448437596 +0200 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Sep 01 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +--- 4,10 ---- + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2015 Sep 08 + # + # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. + # Edit the lines in the Configuration section below to select. +*************** +*** 101,106 **** +--- 101,107 ---- + test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_cdo.out \ + test_changelist.out \ + test_charsearch.out \ + test_close_count.out \ +*** ../vim-7.4.857/src/testdir/Makefile 2015-09-01 16:04:26.706472322 +0200 +--- src/testdir/Makefile 2015-09-08 18:34:35.048268412 +0200 +*************** +*** 38,43 **** +--- 38,44 ---- + test_autocmd_option.out \ + test_autoformat_join.out \ + test_breakindent.out \ ++ test_cdo.out \ + test_changelist.out \ + test_charsearch.out \ + test_close_count.out \ +*** ../vim-7.4.857/src/testdir/test_cdo.in 2015-09-08 18:42:16.203563949 +0200 +--- src/testdir/test_cdo.in 2015-09-08 18:07:42.260948306 +0200 +*************** +*** 0 **** +--- 1,107 ---- ++ Tests for the :cdo, :cfdo, :ldo and :lfdo commands ++ ++ STARTTEST ++ :so small.vim ++ :if !has('quickfix') | e! test.ok | wq! test.out | endif ++ ++ :call writefile(["Line1", "Line2", "Line3"], 'Xtestfile1') ++ :call writefile(["Line1", "Line2", "Line3"], 'Xtestfile2') ++ :call writefile(["Line1", "Line2", "Line3"], 'Xtestfile3') ++ ++ :function RunTests(cchar) ++ : let nl="\n" ++ ++ : enew ++ : " Try with an empty list ++ : exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ ++ : " Populate the list and then try ++ : exe a:cchar . "getexpr ['non-error 1', 'Xtestfile1:1:3:Line1', 'non-error 2', 'Xtestfile2:2:2:Line2', 'non-error 3', 'Xtestfile3:3:1:Line3']" ++ : exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ ++ : " Run command only on selected error lines ++ : enew ++ : exe "2,3" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : " Boundary condition tests ++ : enew ++ : exe "1,1" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : enew ++ : exe "3" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : " Range test commands ++ : enew ++ : exe "%" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : enew ++ : exe "1,$" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : enew ++ : exe a:cchar . 'prev' ++ : exe "." . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : " Invalid error lines test ++ : enew ++ : exe "27" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "4,5" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ ++ : " Run commands from an unsaved buffer ++ : let v:errmsg='' ++ : enew ++ : setlocal modified ++ : exe "2,2" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : if v:errmsg =~# 'No write since last change' ++ : let g:result .= 'Unsaved file change test passed' . nl ++ : else ++ : let g:result .= 'Unsaved file change test failed' . nl ++ : endif ++ ++ : " If the executed command fails, then the operation should be aborted ++ : enew! ++ : let subst_count = 0 ++ : exe a:cchar . "do s/Line/xLine/ | let subst_count += 1" ++ : if subst_count == 1 && getline('.') == 'xLine1' ++ : let g:result .= 'Abort command on error test passed' . nl ++ : else ++ : let g:result .= 'Abort command on error test failed' . nl ++ : endif ++ ++ : exe "2,2" . a:cchar . "do! let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ ++ : " List with no valid error entries ++ : edit! +2 Xtestfile1 ++ : exe a:cchar . "getexpr ['non-error 1', 'non-error 2', 'non-error 3']" ++ : exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "2" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : let v:errmsg='' ++ : exe "%" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "1,$" . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "." . a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : let g:result .= v:errmsg ++ ++ : " List with only one valid entry ++ : exe a:cchar . "getexpr ['Xtestfile3:3:1:Line3']" ++ : exe a:cchar . "do let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ ++ : " Tests for :cfdo and :lfdo commands ++ : exe a:cchar . "getexpr ['non-error 1', 'Xtestfile1:1:3:Line1', 'Xtestfile1:2:1:Line2', 'non-error 2', 'Xtestfile2:2:2:Line2', 'non-error 3', 'Xtestfile3:2:3:Line2', 'Xtestfile3:3:1:Line3']" ++ : exe a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "3" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "2,3" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "%" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe "1,$" . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ : exe a:cchar . 'pfile' ++ : exe "." . a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ ++ : " List with only one valid entry ++ : exe a:cchar . "getexpr ['Xtestfile2:2:5:Line2']" ++ : exe a:cchar . "fdo let g:result .= expand('%') . ' ' . line('.') . 'L' . ' ' . col('.') . 'C' . nl" ++ :endfunction ++ ++ :let result='' ++ :" Tests for the :cdo quickfix list command ++ :call RunTests('c') ++ :let result .= "\n" ++ :" Tests for the :ldo location list command ++ :call RunTests('l') ++ ++ :edit! test.out ++ :0put =result ++ :wq! ++ ENDTEST ++ +*** ../vim-7.4.857/src/testdir/test_cdo.ok 2015-09-08 18:42:16.207563908 +0200 +--- src/testdir/test_cdo.ok 2015-09-08 18:07:42.260948306 +0200 +*************** +*** 0 **** +--- 1,66 ---- ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile2 2L 2C ++ Unsaved file change test passed ++ Abort command on error test passed ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile3 2L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile2 2L 2C ++ Xtestfile2 2L 5C ++ ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile2 2L 2C ++ Unsaved file change test passed ++ Abort command on error test passed ++ Xtestfile2 2L 2C ++ Xtestfile3 3L 1C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile3 2L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile1 1L 3C ++ Xtestfile2 2L 2C ++ Xtestfile3 2L 3C ++ Xtestfile2 2L 2C ++ Xtestfile2 2L 5C ++ +*** ../vim-7.4.857/src/version.c 2015-09-08 17:50:38.071546587 +0200 +--- src/version.c 2015-09-08 18:07:17.353206130 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 858, + /**/ + +-- +Why I like vim: +> I like VIM because, when I ask a question in this newsgroup, I get a +> one-line answer. With xemacs, I get a 1Kb lisp script with bugs in it ;-) + + /// 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 /// From e7082cf0ad495efae29fe3023060fe2e1090acf2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:04 +0200 Subject: [PATCH 0354/1407] - patchlevel 859 --- 7.4.859 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.859 diff --git a/7.4.859 b/7.4.859 new file mode 100644 index 00000000..6525dff7 --- /dev/null +++ b/7.4.859 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.859 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.859 +Problem: Vim doesn't recognize all htmldjango files. +Solution: Recognize a comment. (Daniel Hahler, PR #410) +Files: runtime/filetype.vim + + +*** ../vim-7.4.858/runtime/filetype.vim 2013-08-03 17:50:05.000000000 +0200 +--- runtime/filetype.vim 2015-09-08 19:08:38.039364393 +0200 +*************** +*** 843,849 **** + setf xhtml + return + endif +! if getline(n) =~ '{%\s*\(extends\|block\)\>' + setf htmldjango + return + endif +--- 872,878 ---- + setf xhtml + return + endif +! if getline(n) =~ '{%\s*\(extends\|block\|load\)\>\|{#\s\+' + setf htmldjango + return + endif +*** ../vim-7.4.858/src/version.c 2015-09-08 18:46:04.349233550 +0200 +--- src/version.c 2015-09-08 19:07:39.943960712 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 859, + /**/ + +-- +LARGE MAN: Who's that then? +CART DRIVER: (Grudgingly) I dunno, Must be a king. +LARGE MAN: Why? +CART DRIVER: He hasn't got shit all over him. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 5f80157cbdcd4b65fbdc383145ea1ffedc949075 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:05 +0200 Subject: [PATCH 0355/1407] - patchlevel 860 --- 7.4.860 | 646 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 646 insertions(+) create mode 100644 7.4.860 diff --git a/7.4.860 b/7.4.860 new file mode 100644 index 00000000..139af36d --- /dev/null +++ b/7.4.860 @@ -0,0 +1,646 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.860 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.860 +Problem: Filetype detection is outdated. +Solution: Include all recent and not-so-recent changes. +Files: runtime/filetype.vim + + +*** ../vim-7.4.859/runtime/filetype.vim 2015-09-08 19:10:12.446395189 +0200 +--- runtime/filetype.vim 2015-09-08 19:08:38.039364393 +0200 +*************** +*** 1,7 **** + " Vim support file to detect file types + " + " Maintainer: Bram Moolenaar +! " Last Change: 2013 Aug 03 + + " Listen very carefully, I will say this only once + if exists("did_load_filetypes") +--- 1,7 ---- + " Vim support file to detect file types + " + " Maintainer: Bram Moolenaar +! " Last Change: 2015 Sep 08 + + " Listen very carefully, I will say this only once + if exists("did_load_filetypes") +*************** +*** 106,111 **** +--- 106,114 ---- + " Ant + au BufNewFile,BufRead build.xml setf ant + ++ " Arduino ++ au BufNewFile,BufRead *.ino,*.pde setf arduino ++ + " Apache style config file + au BufNewFile,BufRead proftpd.conf* call s:StarSetf('apachestyle') + +*************** +*** 129,135 **** + au BufNewFile,BufRead *.aml setf aml + + " APT config file +! au BufNewFile,BufRead apt.conf setf aptconf + au BufNewFile,BufRead */.aptitude/config setf aptconf + au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf + +--- 132,138 ---- + au BufNewFile,BufRead *.aml setf aml + + " APT config file +! au BufNewFile,BufRead apt.conf setf aptconf + au BufNewFile,BufRead */.aptitude/config setf aptconf + au BufNewFile,BufRead */etc/apt/apt.conf.d/{[-_[:alnum:]]\+,[-_.[:alnum:]]\+.conf} setf aptconf + +*************** +*** 496,502 **** + \ endif + + " Clojure +! au BufNewFile,BufRead *.clj,*.cljs setf clojure + + " Cmake + au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake +--- 499,505 ---- + \ endif + + " Clojure +! au BufNewFile,BufRead *.clj,*.cljs,*.cljx,*.cljc setf clojure + + " Cmake + au BufNewFile,BufRead CMakeLists.txt,*.cmake,*.cmake.in setf cmake +*************** +*** 527,532 **** +--- 530,538 ---- + " CUDA Cumpute Unified Device Architecture + au BufNewFile,BufRead *.cu setf cuda + ++ " Dockerfile ++ au BufNewFile,BufRead Dockerfile setf dockerfile ++ + " WildPackets EtherPeek Decoder + au BufNewFile,BufRead *.dcd setf dcd + +*************** +*** 536,541 **** +--- 542,561 ---- + " Eterm + au BufNewFile,BufRead *Eterm/*.cfg setf eterm + ++ " Euphoria 3 or 4 ++ au BufNewFile,BufRead *.eu,*.ew,*.ex,*.exu,*.exw call s:EuphoriaCheck() ++ if has("fname_case") ++ au BufNewFile,BufRead *.EU,*.EW,*.EX,*.EXU,*.EXW call s:EuphoriaCheck() ++ endif ++ ++ func! s:EuphoriaCheck() ++ if exists('g:filetype_euphoria') ++ exe 'setf ' . g:filetype_euphoria ++ else ++ setf euphoria3 ++ endif ++ endfunc ++ + " Lynx config files + au BufNewFile,BufRead lynx.cfg setf lynx + +*************** +*** 656,677 **** + " Embedix Component Description + au BufNewFile,BufRead *.ecd setf ecd + +! " Eiffel or Specman + au BufNewFile,BufRead *.e,*.E call s:FTe() + + " Elinks configuration + au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks + + func! s:FTe() +! let n = 1 +! while n < 100 && n < line("$") +! if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$" +! setf specman +! return +! endif +! let n = n + 1 +! endwhile +! setf eiffel + endfunc + + " ERicsson LANGuage; Yaws is erlang too +--- 676,701 ---- + " Embedix Component Description + au BufNewFile,BufRead *.ecd setf ecd + +! " Eiffel or Specman or Euphoria + au BufNewFile,BufRead *.e,*.E call s:FTe() + + " Elinks configuration + au BufNewFile,BufRead */etc/elinks.conf,*/.elinks/elinks.conf setf elinks + + func! s:FTe() +! if exists('g:filetype_euphoria') +! exe 'setf ' . g:filetype_euphoria +! else +! let n = 1 +! while n < 100 && n < line("$") +! if getline(n) =~ "^\\s*\\(<'\\|'>\\)\\s*$" +! setf specman +! return +! endif +! let n = n + 1 +! endwhile +! setf eiffel +! endif + endfunc + + " ERicsson LANGuage; Yaws is erlang too +*************** +*** 752,763 **** + au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom + + " Git +! au BufNewFile,BufRead *.git/COMMIT_EDITMSG setf gitcommit +! au BufNewFile,BufRead *.git/MERGE_MSG setf gitcommit + au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig +- au BufNewFile,BufRead *.git/modules/*/COMMIT_EDITMSG setf gitcommit + au BufNewFile,BufRead *.git/modules/*/config setf gitconfig + au BufNewFile,BufRead */.config/git/config setf gitconfig + au BufNewFile,BufRead git-rebase-todo setf gitrebase + au BufNewFile,BufRead .msg.[0-9]* + \ if getline(1) =~ '^From.*# This line is ignored.$' | +--- 776,789 ---- + au BufNewFile,BufRead *.ged,lltxxxxx.txt setf gedcom + + " Git +! au BufNewFile,BufRead COMMIT_EDITMSG setf gitcommit +! au BufNewFile,BufRead MERGE_MSG setf gitcommit + au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig + au BufNewFile,BufRead *.git/modules/*/config setf gitconfig + au BufNewFile,BufRead */.config/git/config setf gitconfig ++ if !empty($XDG_CONFIG_HOME) ++ au BufNewFile,BufRead $XDG_CONFIG_HOME/git/config setf gitconfig ++ endif + au BufNewFile,BufRead git-rebase-todo setf gitrebase + au BufNewFile,BufRead .msg.[0-9]* + \ if getline(1) =~ '^From.*# This line is ignored.$' | +*************** +*** 790,795 **** +--- 816,824 ---- + " Gnuplot scripts + au BufNewFile,BufRead *.gpi setf gnuplot + ++ " Go (Google) ++ au BufNewFile,BufRead *.go setf go ++ + " GrADS scripts + au BufNewFile,BufRead *.gs setf grads + +*************** +*** 952,957 **** +--- 981,989 ---- + " Inno Setup + au BufNewFile,BufRead *.iss setf iss + ++ " J ++ au BufNewFile,BufRead *.ijs setf j ++ + " JAL + au BufNewFile,BufRead *.jal,*.JAL setf jal + +*************** +*** 965,971 **** + au BufNewFile,BufRead *.jj,*.jjt setf javacc + + " JavaScript, ECMAScript +! au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx,*.json setf javascript + + " Java Server Pages + au BufNewFile,BufRead *.jsp setf jsp +--- 997,1003 ---- + au BufNewFile,BufRead *.jj,*.jjt setf javacc + + " JavaScript, ECMAScript +! au BufNewFile,BufRead *.js,*.javascript,*.es,*.jsx setf javascript + + " Java Server Pages + au BufNewFile,BufRead *.jsp setf jsp +*************** +*** 983,994 **** +--- 1015,1032 ---- + " Jovial + au BufNewFile,BufRead *.jov,*.j73,*.jovial setf jovial + ++ " JSON ++ au BufNewFile,BufRead *.json,*.jsonp setf json ++ + " Kixtart + au BufNewFile,BufRead *.kix setf kix + + " Kimwitu[++] + au BufNewFile,BufRead *.k setf kwt + ++ " Kivy ++ au BufNewFile,BufRead *.kv setf kivy ++ + " KDE script + au BufNewFile,BufRead *.ks setf kscript + +*************** +*** 1013,1020 **** + " Ld loader + au BufNewFile,BufRead *.ld setf ld + + " Lex +! au BufNewFile,BufRead *.lex,*.l setf lex + + " Libao + au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao +--- 1051,1061 ---- + " Ld loader + au BufNewFile,BufRead *.ld setf ld + ++ " Less ++ au BufNewFile,BufRead *.less setf less ++ + " Lex +! au BufNewFile,BufRead *.lex,*.l,*.lxx,*.l++ setf lex + + " Libao + au BufNewFile,BufRead */etc/libao.conf,*/.libao setf libao +*************** +*** 1068,1073 **** +--- 1109,1117 ---- + " Lua + au BufNewFile,BufRead *.lua setf lua + ++ " Luarocks ++ au BufNewFile,BufRead *.rockspec setf lua ++ + " Linden Scripting Language (Second Life) + au BufNewFile,BufRead *.lsl setf lsl + +*************** +*** 1112,1121 **** + au BufNewFile,BufRead *.map setf map + + " Markdown +! au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,README.md setf markdown + + " Mason +! au BufNewFile,BufRead *.mason,*.mhtml setf mason + + " Matlab or Objective C + au BufNewFile,BufRead *.m call s:FTm() +--- 1156,1165 ---- + au BufNewFile,BufRead *.map setf map + + " Markdown +! au BufNewFile,BufRead *.markdown,*.mdown,*.mkd,*.mkdn,*.mdwn,*.md setf markdown + + " Mason +! au BufNewFile,BufRead *.mason,*.mhtml,*.comp setf mason + + " Matlab or Objective C + au BufNewFile,BufRead *.m call s:FTm() +*************** +*** 1124,1130 **** + let n = 1 + while n < 10 + let line = getline(n) +! if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\|//\)' + setf objc + return + endif +--- 1168,1174 ---- + let n = 1 + while n < 10 + let line = getline(n) +! if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\|//\)' + setf objc + return + endif +*************** +*** 1169,1174 **** +--- 1213,1221 ---- + " MGL + au BufNewFile,BufRead *.mgl setf mgl + ++ " MIX - Knuth assembly ++ au BufNewFile,BufRead *.mix,*.mixal setf mix ++ + " MMIX or VMS makefile + au BufNewFile,BufRead *.mms call s:FTmms() + +*************** +*** 1201,1208 **** + \ setf modsim3 | + \ endif + +! " Modula 2 +! au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.md,*.mi setf modula2 + + " Modula 3 (.m3, .i3, .mg, .ig) + au BufNewFile,BufRead *.[mi][3g] setf modula3 +--- 1248,1255 ---- + \ setf modsim3 | + \ endif + +! " Modula 2 (.md removed in favor of Markdown) +! au BufNewFile,BufRead *.m2,*.DEF,*.MOD,*.mi setf modula2 + + " Modula 3 (.m3, .i3, .mg, .ig) + au BufNewFile,BufRead *.[mi][3g] setf modula3 +*************** +*** 1219,1226 **** + " Mplayer config + au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf + +! " Moterola S record +! au BufNewFile,BufRead *.s19,*.s28,*.s37 setf srec + + " Mrxvtrc + au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc +--- 1266,1273 ---- + " Mplayer config + au BufNewFile,BufRead mplayer.conf,*/.mplayer/config setf mplayerconf + +! " Motorola S record +! au BufNewFile,BufRead *.s19,*.s28,*.s37,*.mot,*.srec setf srec + + " Mrxvtrc + au BufNewFile,BufRead mrxvtrc,.mrxvtrc setf mrxvtrc +*************** +*** 1247,1253 **** + au BufNewFile,BufRead Mutt{ng,}rc setf muttrc + + " Nano +! au BufNewFile,BufRead */etc/nanorc,.nanorc setf nanorc + + " Nastran input/DMAP + "au BufNewFile,BufRead *.dat setf nastran +--- 1294,1300 ---- + au BufNewFile,BufRead Mutt{ng,}rc setf muttrc + + " Nano +! au BufNewFile,BufRead */etc/nanorc,*.nanorc setf nanorc + + " Nastran input/DMAP + "au BufNewFile,BufRead *.dat setf nastran +*************** +*** 1289,1295 **** + let n = 1 + while n < 10 + let line = getline(n) +! if line =~ '^\s*\(#\s*\(include\|import\)\>\|/\*\)' + setf objcpp + return + endif +--- 1336,1342 ---- + let n = 1 + while n < 10 + let line = getline(n) +! if line =~ '^\s*\(#\s*\(include\|import\)\>\|@import\>\|/\*\)' + setf objcpp + return + endif +*************** +*** 1619,1624 **** +--- 1666,1685 ---- + au BufNewFile,BufRead *.rnw,*.snw setf rnoweb + endif + ++ " R Markdown file ++ if has("fname_case") ++ au BufNewFile,BufRead *.Rmd,*.rmd,*.Smd,*.smd setf rmd ++ else ++ au BufNewFile,BufRead *.rmd,*.smd setf rmd ++ endif ++ ++ " R reStructuredText file ++ if has("fname_case") ++ au BufNewFile,BufRead *.Rrst,*.rrst,*.Srst,*.srst setf rrst ++ else ++ au BufNewFile,BufRead *.rrst,*.srst setf rrst ++ endif ++ + " Rexx, Rebol or R + au BufNewFile,BufRead *.r,*.R call s:FTr() + +*************** +*** 1797,1803 **** + + " Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. + " Gentoo ebuilds are actually bash scripts +! au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash_profile*,.bash_logout*,*.bash,*.ebuild call SetFileTypeSH("bash") + au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh") + au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1)) + +--- 1858,1864 ---- + + " Shell scripts (sh, ksh, bash, bash2, csh); Allow .profile_foo etc. + " Gentoo ebuilds are actually bash scripts +! au BufNewFile,BufRead .bashrc*,bashrc,bash.bashrc,.bash[_-]profile*,.bash[_-]logout*,.bash[_-]aliases*,*.bash,*/{,.}bash[_-]completion{,.d,.sh}{,/*},*.ebuild,*.eclass call SetFileTypeSH("bash") + au BufNewFile,BufRead .kshrc*,*.ksh call SetFileTypeSH("ksh") + au BufNewFile,BufRead */etc/profile,.profile*,*.sh,*.env call SetFileTypeSH(getline(1)) + +*************** +*** 1967,1972 **** +--- 2028,2037 ---- + setf conf " Better than hog + return + endif ++ if path =~ '^/\(etc\|usr/share\)/polkit-1/rules\.d' ++ setf javascript ++ return ++ endif + try + let config_lines = readfile('/etc/udev/udev.conf') + catch /^Vim\%((\a\+)\)\=:E484/ +*************** +*** 2058,2071 **** + " SVG (Scalable Vector Graphics) + au BufNewFile,BufRead *.svg setf svg + +! " If the file has an extension of 't' and is in a directory 't' then it is +! " almost certainly a Perl test file. + " If the first line starts with '#' and contains 'perl' it's probably a Perl + " file. + " (Slow test) If a file contains a 'use' statement then it is almost certainly + " a Perl file. + func! s:FTperl() +! if expand("%:e") == 't' && expand("%:p:h:t") == 't' + setf perl + return 1 + endif +--- 2123,2137 ---- + " SVG (Scalable Vector Graphics) + au BufNewFile,BufRead *.svg setf svg + +! " If the file has an extension of 't' and is in a directory 't' or 'xt' then +! " it is almost certainly a Perl test file. + " If the first line starts with '#' and contains 'perl' it's probably a Perl + " file. + " (Slow test) If a file contains a 'use' statement then it is almost certainly + " a Perl file. + func! s:FTperl() +! let dirname = expand("%:p:h:t") +! if expand("%:e") == 't' && (dirname == 't' || dirname == 'xt') + setf perl + return 1 + endif +*************** +*** 2092,2098 **** + + " Task + au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata +! au BufRead,BufNewFile *.task setf taskedit + + " Tcl (JACL too) + au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl +--- 2158,2164 ---- + + " Task + au BufRead,BufNewFile {pending,completed,undo}.data setf taskdata +! au BufRead,BufNewFile *.task setf taskedit + + " Tcl (JACL too) + au BufNewFile,BufRead *.tcl,*.tk,*.itcl,*.itk,*.jacl setf tcl +*************** +*** 2103,2108 **** +--- 2169,2177 ---- + " Telix Salt + au BufNewFile,BufRead *.slt setf tsalt + ++ " Tera Term Language ++ au BufRead,BufNewFile *.ttl setf teraterm ++ + " Terminfo + au BufNewFile,BufRead *.ti setf terminfo + +*************** +*** 2217,2228 **** + au BufNewFile,BufRead */etc/updatedb.conf setf updatedb + + " Upstart (init(8)) config files +! au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart +! au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart + au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart + au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart +! au BufNewFile,BufRead */.config/upstart/*.conf setf upstart +! au BufNewFile,BufRead */.config/upstart/*.override setf upstart + + " Vera + au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera +--- 2286,2297 ---- + au BufNewFile,BufRead */etc/updatedb.conf setf updatedb + + " Upstart (init(8)) config files +! au BufNewFile,BufRead */usr/share/upstart/*.conf setf upstart +! au BufNewFile,BufRead */usr/share/upstart/*.override setf upstart + au BufNewFile,BufRead */etc/init/*.conf,*/etc/init/*.override setf upstart + au BufNewFile,BufRead */.init/*.conf,*/.init/*.override setf upstart +! au BufNewFile,BufRead */.config/upstart/*.conf setf upstart +! au BufNewFile,BufRead */.config/upstart/*.override setf upstart + + " Vera + au BufNewFile,BufRead *.vr,*.vri,*.vrh setf vera +*************** +*** 2233,2238 **** +--- 2302,2310 ---- + " Verilog-AMS HDL + au BufNewFile,BufRead *.va,*.vams setf verilogams + ++ " SystemVerilog ++ au BufNewFile,BufRead *.sv,*.svh setf systemverilog ++ + " VHDL + au BufNewFile,BufRead *.hdl,*.vhd,*.vhdl,*.vbe,*.vst setf vhdl + au BufNewFile,BufRead *.vhdl_[0-9]* call s:StarSetf('vhdl') +*************** +*** 2263,2268 **** +--- 2335,2343 ---- + " VRML V1.0c + au BufNewFile,BufRead *.wrl setf vrml + ++ " Vroom (vim testing and executable documentation) ++ au BufNewFile,BufRead *.vroom setf vroom ++ + " Webmacro + au BufNewFile,BufRead *.wm setf webmacro + +*************** +*** 2405,2411 **** + au BufNewFile,BufRead *.xsl,*.xslt setf xslt + + " Yacc +! au BufNewFile,BufRead *.yy setf yacc + + " Yacc or racc + au BufNewFile,BufRead *.y call s:FTy() +--- 2480,2486 ---- + au BufNewFile,BufRead *.xsl,*.xslt setf xslt + + " Yacc +! au BufNewFile,BufRead *.yy,*.yxx,*.y++ setf yacc + + " Yacc or racc + au BufNewFile,BufRead *.y call s:FTy() +*************** +*** 2436,2441 **** +--- 2511,2518 ---- + + " Zimbu + au BufNewFile,BufRead *.zu setf zimbu ++ " Zimbu Templates ++ au BufNewFile,BufRead *.zut setf zimbutempl + + " Zope + " dtml (zope dynamic template markup language), pt (zope page template), +*************** +*** 2630,2636 **** + + " Plain text files, needs to be far down to not override others. This avoids + " the "conf" type being used if there is a line starting with '#'. +! au BufNewFile,BufRead *.txt,*.text setf text + + + " Use the filetype detect plugins. They may overrule any of the previously +--- 2707,2713 ---- + + " Plain text files, needs to be far down to not override others. This avoids + " the "conf" type being used if there is a line starting with '#'. +! au BufNewFile,BufRead *.txt,*.text,README setf text + + + " Use the filetype detect plugins. They may overrule any of the previously +*** ../vim-7.4.859/src/version.c 2015-09-08 19:10:12.450395148 +0200 +--- src/version.c 2015-09-08 19:12:11.161176150 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 860, + /**/ + +-- +ARTHUR: Old woman! +DENNIS: Man! +ARTHUR: Man. I'm sorry. Old man, What knight live in that castle over there? +DENNIS: I'm thirty-seven. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From a7547f7a5b7d842f54f0f20b828d8f74dce4b4d8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:05 +0200 Subject: [PATCH 0356/1407] - patchlevel 861 --- 7.4.861 | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 7.4.861 diff --git a/7.4.861 b/7.4.861 new file mode 100644 index 00000000..ce581635 --- /dev/null +++ b/7.4.861 @@ -0,0 +1,134 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.861 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.861 (after 7.4.855) +Problem: pango_shape_full() is not always available. +Solution: Add a configure check. +Files: src/configure.in, src/auto/configure, src/config.h.in, + src/gui_gtk_x11.c + + +*** ../vim-7.4.860/src/configure.in 2015-06-21 13:41:02.811278596 +0200 +--- src/configure.in 2015-09-08 19:50:24.985682545 +0200 +*************** +*** 3539,3544 **** +--- 3539,3560 ---- + AC_MSG_RESULT(yes) + fi + ++ if test "x$GTK_CFLAGS" != "x"; then ++ dnl pango_shape_full() is new, fall back to pango_shape(). ++ AC_MSG_CHECKING(for pango_shape_full) ++ ac_save_CFLAGS="$CFLAGS" ++ ac_save_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $GTK_CFLAGS" ++ LIBS="$LIBS $GTK_LIBS" ++ AC_TRY_COMPILE( ++ [#include ], ++ [ pango_shape_full(NULL, 0, NULL, 0, NULL, NULL); ], ++ AC_MSG_RESULT(yes); AC_DEFINE(HAVE_PANGO_SHAPE_FULL), ++ AC_MSG_RESULT(no)) ++ CFLAGS="$ac_save_CFLAGS" ++ LIBS="$ac_save_LIBS" ++ fi ++ + AC_MSG_CHECKING(--disable-gpm argument) + AC_ARG_ENABLE(gpm, + [ --disable-gpm Don't use gpm (Linux mouse daemon).], , +*** ../vim-7.4.860/src/auto/configure 2015-06-21 13:41:02.815278555 +0200 +--- src/auto/configure 2015-09-08 19:56:12.910128272 +0200 +*************** +*** 12181,12186 **** +--- 12181,12217 ---- + $as_echo "yes" >&6; } + fi + ++ if test "x$GTK_CFLAGS" != "x"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pango_shape_full" >&5 ++ $as_echo_n "checking for pango_shape_full... " >&6; } ++ ac_save_CFLAGS="$CFLAGS" ++ ac_save_LIBS="$LIBS" ++ CFLAGS="$CFLAGS $GTK_CFLAGS" ++ LIBS="$LIBS $GTK_LIBS" ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++ /* end confdefs.h. */ ++ #include ++ int ++ main () ++ { ++ pango_shape_full(NULL, 0, NULL, 0, NULL, NULL); ++ ; ++ return 0; ++ } ++ _ACEOF ++ if ac_fn_c_try_compile "$LINENO"; then : ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++ $as_echo "yes" >&6; }; $as_echo "#define HAVE_PANGO_SHAPE_FULL 1" >>confdefs.h ++ ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++ $as_echo "no" >&6; } ++ fi ++ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ++ CFLAGS="$ac_save_CFLAGS" ++ LIBS="$ac_save_LIBS" ++ fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --disable-gpm argument" >&5 + $as_echo_n "checking --disable-gpm argument... " >&6; } + # Check whether --enable-gpm was given. +*** ../vim-7.4.860/src/config.h.in 2014-10-11 14:47:22.825275547 +0200 +--- src/config.h.in 2015-09-08 19:56:07.242186195 +0200 +*************** +*** 369,374 **** +--- 369,377 ---- + #undef HAVE_SOLARIS_ACL + #undef HAVE_AIX_ACL + ++ /* Define if pango_shape_full() is available. */ ++ #undef HAVE_PANGO_SHAPE_FULL ++ + /* Define if you want to add support of GPM (Linux console mouse daemon) */ + #undef HAVE_GPM + +*** ../vim-7.4.860/src/gui_gtk_x11.c 2015-09-08 16:31:01.673123014 +0200 +--- src/gui_gtk_x11.c 2015-09-08 19:54:10.199382153 +0200 +*************** +*** 5063,5070 **** +--- 5063,5075 ---- + * done, because drawing the cursor would change the display. */ + item->analysis.shape_engine = default_shape_engine; + ++ #ifdef HAVE_PANGO_SHAPE_FULL + pango_shape_full((const char *)s + item->offset, item->length, + (const char *)s, len, &item->analysis, glyphs); ++ #else ++ pango_shape((const char *)s + item->offset, item->length, ++ &item->analysis, glyphs); ++ #endif + /* + * Fixed-width hack: iterate over the array and assign a fixed + * width to each glyph, thus overriding the choice made by the +*** ../vim-7.4.860/src/version.c 2015-09-08 19:13:17.568494100 +0200 +--- src/version.c 2015-09-08 19:52:12.152588060 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 861, + /**/ + +-- +Looking at Perl through Lisp glasses, Perl looks atrocious. + + /// 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 /// From 0cce32df2914c591c93da8583328597d509981bc Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 9 Sep 2015 11:20:05 +0200 Subject: [PATCH 0357/1407] - patchlevel 861 --- README.patches | 7 +++++++ vim.spec | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a28c6553..6548643c 100644 --- a/README.patches +++ b/README.patches @@ -876,3 +876,10 @@ Individual patches for Vim 7.4: 16460 7.4.852 MS-Windows console cannot input/output Unicode characters 2377 7.4.853 "zt" in diff mode does not always work properly 2145 7.4.854 missing information about runtime files + 2113 7.4.855 GTK: font glitches for combining characters + 2405 7.4.856 "zt" still doesn't work well with filler lines + 1663 7.4.857 dragging the current tab with the mouse doesn't work properly + 39395 7.4.858 it's a bit clumsy to execute a command on a list of matches + 1653 7.4.859 Vim doesn't recognize all htmldjango files + 18401 7.4.860 filetype detection is outdated + 4357 7.4.861 (after 7.4.855) pango_shape_full() is not always available diff --git a/vim.spec b/vim.spec index 2b19f373..6f5d5762 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 854 +%define patchlevel 861 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -901,6 +901,13 @@ Patch851: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.851 Patch852: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.852 Patch853: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.853 Patch854: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.854 +Patch855: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.855 +Patch856: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.856 +Patch857: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.857 +Patch858: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.858 +Patch859: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.859 +Patch860: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.860 +Patch861: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.861 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1905,6 +1912,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch852 -p0 %patch853 -p0 %patch854 -p0 +%patch855 -p0 +%patch856 -p0 +%patch857 -p0 +%patch858 -p0 +%patch859 -p0 +%patch860 -p0 +%patch861 -p0 # install spell files %if %{withvimspell} @@ -2464,6 +2478,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 09 2015 Karsten Hopp 7.4.861-1 +- patchlevel 861 + * Wed Sep 02 2015 Karsten Hopp 7.4.854-1 - patchlevel 854 From d7cf6f746072938b782f9b25a998614beacd2c42 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 10 Sep 2015 11:20:03 +0200 Subject: [PATCH 0358/1407] - patchlevel 862 --- 7.4.862 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 7.4.862 diff --git a/7.4.862 b/7.4.862 new file mode 100644 index 00000000..439365f7 --- /dev/null +++ b/7.4.862 @@ -0,0 +1,92 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.862 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.862 (after 7.4.861) +Problem: Still problems with pango_shape_full() not available. +Solution: Change AC_TRY_COMPILE to AC_TRY_LINK. +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.4.861/src/configure.in 2015-09-08 20:00:17.527627756 +0200 +--- src/configure.in 2015-09-09 20:08:26.833746422 +0200 +*************** +*** 3546,3552 **** + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$LIBS $GTK_LIBS" +! AC_TRY_COMPILE( + [#include ], + [ pango_shape_full(NULL, 0, NULL, 0, NULL, NULL); ], + AC_MSG_RESULT(yes); AC_DEFINE(HAVE_PANGO_SHAPE_FULL), +--- 3546,3552 ---- + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $GTK_CFLAGS" + LIBS="$LIBS $GTK_LIBS" +! AC_TRY_LINK( + [#include ], + [ pango_shape_full(NULL, 0, NULL, 0, NULL, NULL); ], + AC_MSG_RESULT(yes); AC_DEFINE(HAVE_PANGO_SHAPE_FULL), +*** ../vim-7.4.861/src/auto/configure 2015-09-08 20:00:17.531627716 +0200 +--- src/auto/configure 2015-09-09 20:08:29.721697479 +0200 +*************** +*** 12199,12205 **** + return 0; + } + _ACEOF +! if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; }; $as_echo "#define HAVE_PANGO_SHAPE_FULL 1" >>confdefs.h + +--- 12199,12205 ---- + return 0; + } + _ACEOF +! if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + $as_echo "yes" >&6; }; $as_echo "#define HAVE_PANGO_SHAPE_FULL 1" >>confdefs.h + +*************** +*** 12207,12213 **** + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi +! rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi +--- 12207,12214 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 + $as_echo "no" >&6; } + fi +! rm -f core conftest.err conftest.$ac_objext \ +! conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi +*** ../vim-7.4.861/src/version.c 2015-09-08 20:00:17.535627675 +0200 +--- src/version.c 2015-09-09 20:11:51.130471208 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 862, + /**/ + +-- +ARTHUR: Be quiet! I order you to shut up. +OLD WOMAN: Order, eh -- who does he think he is? +ARTHUR: I am your king! +OLD WOMAN: Well, I didn't vote for you. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From ac08c1d3609c0521142433ed8c6e30bac7182641 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 10 Sep 2015 11:20:03 +0200 Subject: [PATCH 0359/1407] - patchlevel 863 --- 7.4.863 | 199 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 7.4.863 diff --git a/7.4.863 b/7.4.863 new file mode 100644 index 00000000..7dc760c3 --- /dev/null +++ b/7.4.863 @@ -0,0 +1,199 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.863 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.863 +Problem: plines_nofill() used without the diff feature. +Solution: Define PLINES_NOFILL(). +Files: src/macros.h, src/move.c + + +*** ../vim-7.4.862/src/macros.h 2015-07-10 17:56:18.219777154 +0200 +--- src/macros.h 2015-09-09 20:14:30.153091468 +0200 +*************** +*** 315,317 **** +--- 315,323 ---- + # endif + # endif + #endif ++ ++ #ifdef FEAT_DIFF ++ # define PLINES_NOFILL(x) plines_nofill(x) ++ #else ++ # define PLINES_NOFILL(x) plines(x) ++ #endif +*** ../vim-7.4.862/src/move.c 2015-09-08 17:31:38.591350883 +0200 +--- src/move.c 2015-09-09 20:40:43.264983747 +0200 +*************** +*** 1252,1262 **** + } + else + #endif +! #ifdef FEAT_DIFF +! done += plines_nofill(curwin->w_topline); +! #else +! done += plines(curwin->w_topline); +! #endif + } + --curwin->w_botline; /* approximate w_botline */ + invalidate_botline(); +--- 1252,1258 ---- + } + else + #endif +! done += PLINES_NOFILL(curwin->w_topline); + } + --curwin->w_botline; /* approximate w_botline */ + invalidate_botline(); +*************** +*** 1609,1621 **** + lp->height = 1; + else + #endif +! { +! #ifdef FEAT_DIFF +! lp->height = plines_nofill(lp->lnum); +! #else +! lp->height = plines(lp->lnum); +! #endif +! } + } + } + +--- 1605,1611 ---- + lp->height = 1; + else + #endif +! lp->height = PLINES_NOFILL(lp->lnum); + } + } + +*************** +*** 1653,1663 **** + else + #endif + { +! #ifdef FEAT_DIFF +! lp->height = plines_nofill(lp->lnum); +! #else +! lp->height = plines(lp->lnum); +! #endif + } + } + } +--- 1643,1649 ---- + else + #endif + { +! lp->height = PLINES_NOFILL(lp->lnum); + } + } + } +*************** +*** 1769,1775 **** + i = 1; + else + #endif +! i = plines_nofill(top); + used += i; + if (extra + i <= off && bot < curbuf->b_ml.ml_line_count) + { +--- 1755,1761 ---- + i = 1; + else + #endif +! i = PLINES_NOFILL(top); + used += i; + if (extra + i <= off && bot < curbuf->b_ml.ml_line_count) + { +*************** +*** 2273,2283 **** + ++above; + else + #endif +! #ifndef FEAT_DIFF +! above += plines(topline); +! #else +! above += plines_nofill(topline); +! + /* Count filler lines below this line as context. */ + if (topline < botline) + above += diff_check_fill(curwin, topline + 1); +--- 2259,2266 ---- + ++above; + else + #endif +! above += PLINES_NOFILL(topline); +! #ifdef FEAT_DIFF + /* Count filler lines below this line as context. */ + if (topline < botline) + above += diff_check_fill(curwin, topline + 1); +*************** +*** 2666,2676 **** + else + #endif + { +! #ifdef FEAT_DIFF +! i = plines_nofill(curwin->w_topline); +! #else +! i = plines(curwin->w_topline); +! #endif + n -= i; + if (n < 0 && scrolled > 0) + break; +--- 2649,2655 ---- + else + #endif + { +! i = PLINES_NOFILL(curwin->w_topline); + n -= i; + if (n < 0 && scrolled > 0) + break; +*************** +*** 2776,2786 **** + else + #endif + { +! #ifdef FEAT_DIFF +! i = plines_nofill(curwin->w_topline - 1); +! #else +! i = plines(curwin->w_topline - 1); +! #endif + n -= i; + if (n < 0 && scrolled > 0) + break; +--- 2755,2761 ---- + else + #endif + { +! i = PLINES_NOFILL(curwin->w_topline - 1); + n -= i; + if (n < 0 && scrolled > 0) + break; +*** ../vim-7.4.862/src/version.c 2015-09-09 20:26:58.909675729 +0200 +--- src/version.c 2015-09-09 20:28:25.236703587 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 863, + /**/ + +-- +OLD WOMAN: Well, how did you become king, then? +ARTHUR: The Lady of the Lake, her arm clad in the purest shimmering samite, + held Excalibur aloft from the bosom of the water to signify by Divine + Providence ... that I, Arthur, was to carry Excalibur ... That is + why I am your king! + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 74c9c15737778b5294a9a6c17c6849e1055b7d88 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 10 Sep 2015 11:20:04 +0200 Subject: [PATCH 0360/1407] - patchlevel 864 --- 7.4.864 | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 7.4.864 diff --git a/7.4.864 b/7.4.864 new file mode 100644 index 00000000..f3788a47 --- /dev/null +++ b/7.4.864 @@ -0,0 +1,161 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.864 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.864 (after 7.4.858) +Problem: Tiny build fails. +Solution: Put qf_ items inside #ifdef. +Files: src/ex_docmd.c + + +*** ../vim-7.4.863/src/ex_docmd.c 2015-09-08 18:46:04.345233591 +0200 +--- src/ex_docmd.c 2015-09-09 20:57:46.382355308 +0200 +*************** +*** 2173,2181 **** +--- 2173,2183 ---- + lnum = CURRENT_TAB_NR; + ea.line2 = lnum; + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + ea.line2 = qf_get_cur_valid_idx(&ea); + break; ++ #endif + } + ea.cmd = skipwhite(ea.cmd); + lnum = get_address(&ea, &ea.cmd, ea.addr_type, ea.skip, ea.addr_count == 0); +*************** +*** 2236,2247 **** +--- 2238,2251 ---- + ea.line2 = ARGCOUNT; + } + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + ea.line1 = 1; + ea.line2 = qf_get_size(&ea); + if (ea.line2 == 0) + ea.line2 = 1; + break; ++ #endif + } + ++ea.addr_count; + } +*************** +*** 2702,2712 **** +--- 2706,2718 ---- + else + ea.line2 = ARGCOUNT; + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + ea.line2 = qf_get_size(&ea); + if (ea.line2 == 0) + ea.line2 = 1; + break; ++ #endif + } + } + +*************** +*** 4340,4346 **** + */ + static linenr_T + get_address(eap, ptr, addr_type, skip, to_other_file) +! exarg_T *eap; + char_u **ptr; + int addr_type; /* flag: one of ADDR_LINES, ... */ + int skip; /* only skip the address, don't use it */ +--- 4346,4352 ---- + */ + static linenr_T + get_address(eap, ptr, addr_type, skip, to_other_file) +! exarg_T *eap UNUSED; + char_u **ptr; + int addr_type; /* flag: one of ADDR_LINES, ... */ + int skip; /* only skip the address, don't use it */ +*************** +*** 4381,4389 **** +--- 4387,4397 ---- + case ADDR_TABS: + lnum = CURRENT_TAB_NR; + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + lnum = qf_get_cur_valid_idx(eap); + break; ++ #endif + } + break; + +*************** +*** 4416,4426 **** +--- 4424,4436 ---- + case ADDR_TABS: + lnum = LAST_TAB_NR; + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + lnum = qf_get_size(eap); + if (lnum == 0) + lnum = 1; + break; ++ #endif + } + break; + +*************** +*** 4596,4604 **** +--- 4606,4616 ---- + case ADDR_TABS: + lnum = CURRENT_TAB_NR; + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + lnum = qf_get_cur_valid_idx(eap); + break; ++ #endif + } + } + +*************** +*** 4737,4746 **** +--- 4749,4760 ---- + if (eap->line2 > LAST_TAB_NR) + return (char_u *)_(e_invrange); + break; ++ #ifdef FEAT_QUICKFIX + case ADDR_QUICKFIX: + if (eap->line2 != 1 && eap->line2 > qf_get_size(eap)) + return (char_u *)_(e_invrange); + break; ++ #endif + } + } + return NULL; +*** ../vim-7.4.863/src/version.c 2015-09-09 20:59:34.013186842 +0200 +--- src/version.c 2015-09-09 21:09:48.691066099 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 864, + /**/ + +-- +DENNIS: Look, strange women lying on their backs in ponds handing out + swords ... that's no basis for a system of government. Supreme + executive power derives from a mandate from the masses, not from some + farcical aquatic ceremony. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 3064e9857b506e43d18908743bfba9ed6fe0881c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 10 Sep 2015 11:20:04 +0200 Subject: [PATCH 0361/1407] - patchlevel 865 --- 7.4.865 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.865 diff --git a/7.4.865 b/7.4.865 new file mode 100644 index 00000000..a7d368c1 --- /dev/null +++ b/7.4.865 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.865 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.865 +Problem: Compiler warning for uninitialized variable. +Solution: Initialize. +Files: src/ex_cmds2.c + + +*** ../vim-7.4.864/src/ex_cmds2.c 2015-09-08 18:46:04.345233591 +0200 +--- src/ex_cmds2.c 2015-09-09 22:32:59.866035538 +0200 +*************** +*** 2447,2453 **** + #endif + char_u *p_shm_save; + #ifdef FEAT_QUICKFIX +! int qf_size; + int qf_idx; + #endif + +--- 2447,2453 ---- + #endif + char_u *p_shm_save; + #ifdef FEAT_QUICKFIX +! int qf_size = 0; + int qf_idx; + #endif + +*** ../vim-7.4.864/src/version.c 2015-09-09 21:10:34.334602633 +0200 +--- src/version.c 2015-09-09 22:33:33.781694232 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 865, + /**/ + +-- +BLACK KNIGHT: I'm invincible! +ARTHUR: You're a looney. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From 0100e9a368a5149fd6880578b4f8a58fd03c6e7c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 10 Sep 2015 11:20:04 +0200 Subject: [PATCH 0362/1407] - patchlevel 865 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6548643c..0539794b 100644 --- a/README.patches +++ b/README.patches @@ -883,3 +883,7 @@ Individual patches for Vim 7.4: 1653 7.4.859 Vim doesn't recognize all htmldjango files 18401 7.4.860 filetype detection is outdated 4357 7.4.861 (after 7.4.855) pango_shape_full() is not always available + 3012 7.4.862 (after 7.4.861) still problems with pango_shape_full() + 4501 7.4.863 plines_nofill() used without the diff feature + 3940 7.4.864 (after 7.4.858) tiny build fails + 1434 7.4.865 compiler warning for uninitialized variable diff --git a/vim.spec b/vim.spec index 6f5d5762..91a8666d 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 861 +%define patchlevel 865 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -908,6 +908,10 @@ Patch858: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.858 Patch859: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.859 Patch860: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.860 Patch861: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.861 +Patch862: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.862 +Patch863: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.863 +Patch864: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.864 +Patch865: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.865 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1919,6 +1923,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch859 -p0 %patch860 -p0 %patch861 -p0 +%patch862 -p0 +%patch863 -p0 +%patch864 -p0 +%patch865 -p0 # install spell files %if %{withvimspell} @@ -2478,6 +2486,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Sep 10 2015 Karsten Hopp 7.4.865-1 +- patchlevel 865 + * Wed Sep 09 2015 Karsten Hopp 7.4.861-1 - patchlevel 861 From d250f9904e643149ea907cbfea6e19e7ea0ad933 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:03 +0200 Subject: [PATCH 0363/1407] - patchlevel 866 --- 7.4.866 | 656 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 656 insertions(+) create mode 100644 7.4.866 diff --git a/7.4.866 b/7.4.866 new file mode 100644 index 00000000..4764ffd8 --- /dev/null +++ b/7.4.866 @@ -0,0 +1,656 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.866 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.866 +Problem: Crash when changing the 'tags' option from a remote command. + (Benjamin Fritz) +Solution: Instead of executing messages immediately, use a queue, like for + netbeans. (James Kolb) +Files: src/ex_docmd.c, src/getchar.c, src/gui_gtk_x11.c, src/gui_w48.c, + src/gui_x11.c, src/if_xcmdsrv.c, src/misc2.c, src/os_unix.c, + src/proto/if_xcmdsrv.pro, src/proto/misc2.pro, src/macros.h + + +*** ../vim-7.4.865/src/ex_docmd.c 2015-09-09 21:10:34.334602633 +0200 +--- src/ex_docmd.c 2015-09-15 13:27:17.534755748 +0200 +*************** +*** 9033,9043 **** + { + ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE); + ui_breakcheck(); +! #ifdef FEAT_NETBEANS_INTG +! /* Process the netbeans messages that may have been received in the +! * call to ui_breakcheck() when the GUI is in use. This may occur when +! * running a test case. */ +! netbeans_parse_messages(); + #endif + } + } +--- 9033,9043 ---- + { + ui_delay(msec - done > 1000L ? 1000L : msec - done, TRUE); + ui_breakcheck(); +! #ifdef MESSAGE_QUEUE +! /* Process the netbeans and clientserver messages that may have been +! * received in the call to ui_breakcheck() when the GUI is in use. This +! * may occur when running a test case. */ +! parse_queued_messages(); + #endif + } + } +*** ../vim-7.4.865/src/getchar.c 2015-07-10 17:19:25.024620239 +0200 +--- src/getchar.c 2015-09-15 13:27:23.318695538 +0200 +*************** +*** 3034,3042 **** + ) + { + +! #if defined(FEAT_NETBEANS_INTG) +! /* Process the queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + + if (got_int || (script_char = getc(scriptin[curscript])) < 0) +--- 3034,3041 ---- + ) + { + +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + + if (got_int || (script_char = getc(scriptin[curscript])) < 0) +*** ../vim-7.4.865/src/gui_gtk_x11.c 2015-09-08 20:00:17.531627716 +0200 +--- src/gui_gtk_x11.c 2015-09-15 13:27:27.514651858 +0200 +*************** +*** 650,656 **** + xev.xproperty.atom = commProperty; + xev.xproperty.window = commWindow; + xev.xproperty.state = PropertyNewValue; +! serverEventProc(GDK_WINDOW_XDISPLAY(widget->window), &xev); + } + return FALSE; + } +--- 650,656 ---- + xev.xproperty.atom = commProperty; + xev.xproperty.window = commWindow; + xev.xproperty.state = PropertyNewValue; +! serverEventProc(GDK_WINDOW_XDISPLAY(widget->window), &xev, 0); + } + return FALSE; + } +*************** +*** 5476,5484 **** + focus = gui.in_focus; + } + +! #if defined(FEAT_NETBEANS_INTG) +! /* Process any queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + + /* +--- 5476,5483 ---- + focus = gui.in_focus; + } + +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + + /* +*** ../vim-7.4.865/src/gui_w48.c 2015-06-09 19:14:18.773373964 +0200 +--- src/gui_w48.c 2015-09-15 13:27:31.402611385 +0200 +*************** +*** 2016,2024 **** + s_need_activate = FALSE; + } + +! #ifdef FEAT_NETBEANS_INTG +! /* Process the queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + + /* +--- 2016,2023 ---- + s_need_activate = FALSE; + } + +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + + /* +*** ../vim-7.4.865/src/gui_x11.c 2013-07-14 15:01:56.000000000 +0200 +--- src/gui_x11.c 2015-09-15 13:27:35.482568913 +0200 +*************** +*** 2895,2903 **** + focus = gui.in_focus; + } + +! #if defined(FEAT_NETBEANS_INTG) +! /* Process any queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + + /* +--- 2895,2902 ---- + focus = gui.in_focus; + } + +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + + /* +*************** +*** 3199,3205 **** + if (e->type == PropertyNotify && e->window == commWindow + && e->atom == commProperty && e->state == PropertyNewValue) + { +! serverEventProc(gui.dpy, event); + } + } + #endif +--- 3198,3204 ---- + if (e->type == PropertyNotify && e->window == commWindow + && e->atom == commProperty && e->state == PropertyNewValue) + { +! serverEventProc(gui.dpy, event, 0); + } + } + #endif +*** ../vim-7.4.865/src/if_xcmdsrv.c 2015-08-11 19:13:55.138175689 +0200 +--- src/if_xcmdsrv.c 2015-09-15 14:01:47.597081931 +0200 +*************** +*** 169,174 **** +--- 169,187 ---- + + typedef int (*EndCond) __ARGS((void *)); + ++ struct x_cmdqueue ++ { ++ char_u *propInfo; ++ int len; ++ struct x_cmdqueue *next; ++ struct x_cmdqueue *prev; ++ }; ++ ++ typedef struct x_cmdqueue x_queue_T; ++ ++ /* dummy node, header for circular queue */ ++ static x_queue_T head = {NULL, 0, NULL, NULL}; ++ + /* + * Forward declarations for procedures defined later in this file: + */ +*************** +*** 186,191 **** +--- 199,206 ---- + static int AppendPropCarefully __ARGS((Display *display, Window window, Atom property, char_u *value, int length)); + static int x_error_check __ARGS((Display *dpy, XErrorEvent *error_event)); + static int IsSerialName __ARGS((char_u *name)); ++ static void save_in_queue __ARGS((char_u *buf, int len)); ++ static void server_parse_message __ARGS((Display *dpy, char_u *propInfo, int numItems)); + + /* Private variables for the "server" functionality */ + static Atom registryProperty = None; +*************** +*** 595,601 **** + while (TRUE) + { + while (XCheckWindowEvent(dpy, commWindow, PropertyChangeMask, &event)) +! serverEventProc(dpy, &event); + + if (endCond(endData) != 0) + break; +--- 610,616 ---- + while (TRUE) + { + while (XCheckWindowEvent(dpy, commWindow, PropertyChangeMask, &event)) +! serverEventProc(dpy, &event, 1); + + if (endCond(endData) != 0) + break; +*************** +*** 1127,1148 **** + return OK; + } + + /* + * This procedure is invoked by the various X event loops throughout Vims when + * a property changes on the communication window. This procedure reads the +! * property and handles command requests and responses. + */ + void +! serverEventProc(dpy, eventPtr) + Display *dpy; +! XEvent *eventPtr; /* Information about event. */ + { + char_u *propInfo; +! char_u *p; +! int result, actualFormat, code; + long_u numItems, bytesAfter; + Atom actualType; +- char_u *tofree; + + if (eventPtr != NULL) + { +--- 1142,1166 ---- + return OK; + } + ++ + /* + * This procedure is invoked by the various X event loops throughout Vims when + * a property changes on the communication window. This procedure reads the +! * property and enqueues command requests and responses. If immediate is true, +! * it runs the event immediatly instead of enqueuing it. Immediate can cause +! * unintended behavior and should only be used for code that blocks for a +! * response. + */ + void +! serverEventProc(dpy, eventPtr, immediate) + Display *dpy; +! XEvent *eventPtr; /* Information about event. */ +! int immediate; /* Run event immediately. Should mostly be 0. */ + { + char_u *propInfo; +! int result, actualFormat; + long_u numItems, bytesAfter; + Atom actualType; + + if (eventPtr != NULL) + { +*************** +*** 1168,1173 **** +--- 1186,1272 ---- + XFree(propInfo); + return; + } ++ if (immediate) ++ server_parse_message(dpy, propInfo, numItems); ++ else ++ save_in_queue(propInfo, numItems); ++ } ++ ++ /* ++ * Saves x clientserver commands in a queue so that they can be called when ++ * vim is idle. ++ */ ++ static void ++ save_in_queue(propInfo, len) ++ char_u *propInfo; ++ int len; ++ { ++ x_queue_T *node; ++ ++ node = (x_queue_T *)alloc(sizeof(x_queue_T)); ++ if (node == NULL) ++ return; /* out of memory */ ++ node->propInfo = propInfo; ++ node->len = len; ++ ++ if (head.next == NULL) /* initialize circular queue */ ++ { ++ head.next = &head; ++ head.prev = &head; ++ } ++ ++ /* insert node at tail of queue */ ++ node->next = &head; ++ node->prev = head.prev; ++ head.prev->next = node; ++ head.prev = node; ++ } ++ ++ /* ++ * Parses queued clientserver messages. ++ */ ++ void ++ server_parse_messages() ++ { ++ char_u *p; ++ x_queue_T *node; ++ ++ if (!X_DISPLAY) ++ return; /* cannot happen? */ ++ while (head.next != NULL && head.next != &head) ++ { ++ node = head.next; ++ server_parse_message(X_DISPLAY, node->propInfo, node->len); ++ head.next = node->next; ++ node->next->prev = node->prev; ++ vim_free(node); ++ } ++ } ++ ++ /* ++ * Returns a non-zero value if there are clientserver messages waiting ++ * int the queue. ++ */ ++ int ++ server_waiting() ++ { ++ return head.next != NULL && head.next != &head; ++ } ++ ++ /* ++ * Prases a single clientserver message. A single message may contain multiple ++ * commands. ++ * "propInfo" will be freed. ++ */ ++ static void ++ server_parse_message(dpy, propInfo, numItems) ++ Display *dpy; ++ char_u *propInfo; /* A string containing 0 or more X commands */ ++ int numItems; /* The size of propInfo in bytes. */ ++ { ++ char_u *p; ++ int code; ++ char_u *tofree; + + /* + * Several commands and results could arrive in the property at +*************** +*** 1248,1263 **** + if (script == NULL || name == NULL) + continue; + +! if (serverName != NULL && STRICMP(name, serverName) == 0) +! { +! script = serverConvert(enc, script, &tofree); +! if (asKeys) +! server_to_input_buf(script); +! else +! { +! char_u *res; + +! res = eval_client_expr_to_string(script); + if (resWindow != None) + { + garray_T reply; +--- 1347,1362 ---- + if (script == NULL || name == NULL) + continue; + +! if (serverName != NULL && STRICMP(name, serverName) == 0) +! { +! script = serverConvert(enc, script, &tofree); +! if (asKeys) +! server_to_input_buf(script); +! else +! { +! char_u *res; + +! res = eval_client_expr_to_string(script); + if (resWindow != None) + { + garray_T reply; +*************** +*** 1290,1299 **** + reply.ga_data, reply.ga_len); + ga_clear(&reply); + } +! vim_free(res); +! } +! vim_free(tofree); +! } + } + else if (*p == 'r' && p[1] == 0) + { +--- 1389,1398 ---- + reply.ga_data, reply.ga_len); + ga_clear(&reply); + } +! vim_free(res); +! } +! vim_free(tofree); +! } + } + else if (*p == 'r' && p[1] == 0) + { +*** ../vim-7.4.865/src/misc2.c 2015-08-27 22:30:43.548873347 +0200 +--- src/misc2.c 2015-09-15 13:28:12.086187881 +0200 +*************** +*** 6328,6330 **** +--- 6328,6350 ---- + return FALSE; + } + #endif ++ ++ #if defined(MESSAGE_QUEUE) || defined(PROTO) ++ /* ++ * Process messages that have been queued for netbeans or clientserver. ++ * These functions can call arbitrary vimscript and should only be called when ++ * it is safe to do so. ++ */ ++ void ++ parse_queued_messages() ++ { ++ # ifdef FEAT_NETBEANS_INTG ++ /* Process the queued netbeans messages. */ ++ netbeans_parse_messages(); ++ # endif ++ # ifdef FEAT_CLIENTSERVER ++ /* Process the queued clientserver messages. */ ++ server_parse_messages(); ++ # endif ++ } ++ #endif +*** ../vim-7.4.865/src/os_unix.c 2015-08-11 19:13:55.130175784 +0200 +--- src/os_unix.c 2015-09-15 13:33:20.218978266 +0200 +*************** +*** 388,396 **** + { + int len; + +! #ifdef FEAT_NETBEANS_INTG +! /* Process the queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + + /* Check if window changed size while we were busy, perhaps the ":set +--- 388,395 ---- + { + int len; + +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + + /* Check if window changed size while we were busy, perhaps the ":set +*************** +*** 405,413 **** + if (!do_resize) /* return if not interrupted by resize */ + return 0; + handle_resize(); +! #ifdef FEAT_NETBEANS_INTG +! /* Process the queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + } + } +--- 404,411 ---- + if (!do_resize) /* return if not interrupted by resize */ + return 0; + handle_resize(); +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + } + } +*************** +*** 439,447 **** + while (do_resize) /* window changed size */ + handle_resize(); + +! #ifdef FEAT_NETBEANS_INTG +! /* Process the queued netbeans messages. */ +! netbeans_parse_messages(); + #endif + /* + * We want to be interrupted by the winch signal +--- 437,444 ---- + while (do_resize) /* window changed size */ + handle_resize(); + +! #ifdef MESSAGE_QUEUE +! parse_queued_messages(); + #endif + /* + * We want to be interrupted by the winch signal +*************** +*** 5208,5213 **** +--- 5205,5211 ---- + * When a GUI is being used, this will not be used for input -- webb + * Returns also, when a request from Sniff is waiting -- toni. + * Or when a Linux GPM mouse event is waiting. ++ * Or when a clientserver message is on the queue. + */ + #if defined(__BEOS__) + int +*************** +*** 5601,5606 **** +--- 5599,5609 ---- + if (finished || msec == 0) + break; + ++ # ifdef FEAT_CLIENTSERVER ++ if (server_waiting()) ++ break; ++ # endif ++ + /* We're going to loop around again, find out for how long */ + if (msec > 0) + { +*************** +*** 7106,7136 **** + + for (;;) + { +! XtInputMask mask = XtAppPending(app_context); + +! if (mask == 0 || vim_is_input_buf_full()) + break; + +! if (mask & XtIMXEvent) + { + /* There is an event to process. */ +! XtAppNextEvent(app_context, &event); + #ifdef FEAT_CLIENTSERVER + { + XPropertyEvent *e = (XPropertyEvent *)&event; + + if (e->type == PropertyNotify && e->window == commWindow + && e->atom == commProperty && e->state == PropertyNewValue) +! serverEventProc(xterm_dpy, &event); + } + #endif +! XtDispatchEvent(&event); +! } + else + { + /* There is something else than an event to process. */ +! XtAppProcessEvent(app_context, mask); +! } + } + } + +--- 7109,7139 ---- + + for (;;) + { +! XtInputMask mask = XtAppPending(app_context); + +! if (mask == 0 || vim_is_input_buf_full()) + break; + +! if (mask & XtIMXEvent) + { + /* There is an event to process. */ +! XtAppNextEvent(app_context, &event); + #ifdef FEAT_CLIENTSERVER + { + XPropertyEvent *e = (XPropertyEvent *)&event; + + if (e->type == PropertyNotify && e->window == commWindow + && e->atom == commProperty && e->state == PropertyNewValue) +! serverEventProc(xterm_dpy, &event, 0); + } + #endif +! XtDispatchEvent(&event); +! } + else + { + /* There is something else than an event to process. */ +! XtAppProcessEvent(app_context, mask); +! } + } + } + +*** ../vim-7.4.865/src/proto/if_xcmdsrv.pro 2013-08-10 13:37:15.000000000 +0200 +--- src/proto/if_xcmdsrv.pro 2015-09-15 13:50:22.648292769 +0200 +*************** +*** 7,11 **** + int serverSendReply __ARGS((char_u *name, char_u *str)); + int serverReadReply __ARGS((Display *dpy, Window win, char_u **str, int localLoop)); + int serverPeekReply __ARGS((Display *dpy, Window win, char_u **str)); +! void serverEventProc __ARGS((Display *dpy, XEvent *eventPtr)); + /* vim: set ft=c : */ +--- 7,13 ---- + int serverSendReply __ARGS((char_u *name, char_u *str)); + int serverReadReply __ARGS((Display *dpy, Window win, char_u **str, int localLoop)); + int serverPeekReply __ARGS((Display *dpy, Window win, char_u **str)); +! void serverEventProc __ARGS((Display *dpy, XEvent *eventPtr, int immediate)); +! void server_parse_messages __ARGS((void)); +! int server_waiting __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.4.865/src/proto/misc2.pro 2015-07-17 13:22:43.157523671 +0200 +--- src/proto/misc2.pro 2015-09-15 13:34:55.177985281 +0200 +*************** +*** 106,109 **** +--- 106,110 ---- + void put_time __ARGS((FILE *fd, time_t the_time)); + void time_to_bytes __ARGS((time_t the_time, char_u *buf)); + int has_non_ascii __ARGS((char_u *s)); ++ void parse_queued_messages __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.4.865/src/macros.h 2015-09-09 20:59:34.013186842 +0200 +--- src/macros.h 2015-09-15 13:26:44.155103230 +0200 +*************** +*** 321,323 **** +--- 321,327 ---- + #else + # define PLINES_NOFILL(x) plines(x) + #endif ++ ++ #if defined(FEAT_NETBEANS_INTG) || defined(FEAT_CLIENTSERVER) ++ # define MESSAGE_QUEUE ++ #endif +*** ../vim-7.4.865/src/version.c 2015-09-09 22:35:25.792564584 +0200 +--- src/version.c 2015-09-15 14:08:07.297090947 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 866, + /**/ + +-- +ALL: A witch! A witch! +WITCH: It's a fair cop. +ALL: Burn her! Burn her! Let's make her into a ladder. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// 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 /// From a6c2df0c4a46a7d50d28b74759d7ad55052fda53 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:03 +0200 Subject: [PATCH 0364/1407] - patchlevel 867 --- 7.4.867 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.867 diff --git a/7.4.867 b/7.4.867 new file mode 100644 index 00000000..445652fd --- /dev/null +++ b/7.4.867 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.867 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.867 (after 7.4.866) +Problem: Can't build on MS-Windows. (Taro Muraoka) +Solution: Adjust #ifdef. +Files: src/misc2.c + + +*** ../vim-7.4.866/src/misc2.c 2015-09-15 14:12:01.382632522 +0200 +--- src/misc2.c 2015-09-15 15:55:19.589159669 +0200 +*************** +*** 6342,6348 **** + /* Process the queued netbeans messages. */ + netbeans_parse_messages(); + # endif +! # ifdef FEAT_CLIENTSERVER + /* Process the queued clientserver messages. */ + server_parse_messages(); + # endif +--- 6342,6348 ---- + /* Process the queued netbeans messages. */ + netbeans_parse_messages(); + # endif +! # if defined(FEAT_CLIENTSERVER) && defined(FEAT_X11) + /* Process the queued clientserver messages. */ + server_parse_messages(); + # endif +*** ../vim-7.4.866/src/version.c 2015-09-15 14:12:01.386632480 +0200 +--- src/version.c 2015-09-15 15:55:57.900761842 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 867, + /**/ + +-- +If you had to identify, in one word, the reason why the +human race has not achieved, and never will achieve, its +full potential, that word would be "meetings." + + /// 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 /// From 6fcbe9d43410995e21532dd597b9d609cad8b5f3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:03 +0200 Subject: [PATCH 0365/1407] - patchlevel 868 --- 7.4.868 | 187 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 187 insertions(+) create mode 100644 7.4.868 diff --git a/7.4.868 b/7.4.868 new file mode 100644 index 00000000..89e5dad8 --- /dev/null +++ b/7.4.868 @@ -0,0 +1,187 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.868 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.868 +Problem: 'smarttab' is also effective when 'paste' is enabled. (Alexander + Monakov) +Solution: Disable 'smarttab' when 'paste' is set. (Christian Brabandt) + Do the same for 'expandtab'. +Files: src/option.c, src/structs.h + + +*** ../vim-7.4.867/src/option.c 2015-08-26 23:24:06.854494285 +0200 +--- src/option.c 2015-09-15 17:20:59.307643051 +0200 +*************** +*** 387,396 **** + static long p_wm_nobin; + + /* Saved values for when 'paste' is set */ + static long p_tw_nopaste; + static long p_wm_nopaste; +- static long p_sts_nopaste; +- static int p_ai_nopaste; + + struct vimoption + { +--- 387,397 ---- + static long p_wm_nobin; + + /* Saved values for when 'paste' is set */ ++ static int p_ai_nopaste; ++ static int p_et_nopaste; ++ static long p_sts_nopaste; + static long p_tw_nopaste; + static long p_wm_nopaste; + + struct vimoption + { +*************** +*** 10702,10707 **** +--- 10703,10709 ---- + buf->b_p_fixeol = p_fixeol; + buf->b_p_et = p_et; + buf->b_p_et_nobin = p_et_nobin; ++ buf->b_p_et_nopaste = p_et_nopaste; + buf->b_p_ml = p_ml; + buf->b_p_ml_nobin = p_ml_nobin; + buf->b_p_inf = p_inf; +*************** +*** 11640,11645 **** +--- 11642,11648 ---- + { + static int old_p_paste = FALSE; + static int save_sm = 0; ++ static int save_sta = 0; + #ifdef FEAT_CMDL_INFO + static int save_ru = 0; + #endif +*************** +*** 11664,11673 **** +--- 11667,11678 ---- + buf->b_p_wm_nopaste = buf->b_p_wm; + buf->b_p_sts_nopaste = buf->b_p_sts; + buf->b_p_ai_nopaste = buf->b_p_ai; ++ buf->b_p_et_nopaste = buf->b_p_et; + } + + /* save global options */ + save_sm = p_sm; ++ save_sta = p_sta; + #ifdef FEAT_CMDL_INFO + save_ru = p_ru; + #endif +*************** +*** 11676,11685 **** + save_hkmap = p_hkmap; + #endif + /* save global values for local buffer options */ + p_tw_nopaste = p_tw; + p_wm_nopaste = p_wm; +- p_sts_nopaste = p_sts; +- p_ai_nopaste = p_ai; + } + + /* +--- 11681,11691 ---- + save_hkmap = p_hkmap; + #endif + /* save global values for local buffer options */ ++ p_ai_nopaste = p_ai; ++ p_et_nopaste = p_et; ++ p_sts_nopaste = p_sts; + p_tw_nopaste = p_tw; + p_wm_nopaste = p_wm; + } + + /* +*************** +*** 11693,11702 **** +--- 11699,11710 ---- + buf->b_p_wm = 0; /* wrapmargin is 0 */ + buf->b_p_sts = 0; /* softtabstop is 0 */ + buf->b_p_ai = 0; /* no auto-indent */ ++ buf->b_p_et = 0; /* no expandtab */ + } + + /* set global options */ + p_sm = 0; /* no showmatch */ ++ p_sta = 0; /* no smarttab */ + #ifdef FEAT_CMDL_INFO + # ifdef FEAT_WINDOWS + if (p_ru) +*************** +*** 11727,11736 **** +--- 11735,11746 ---- + buf->b_p_wm = buf->b_p_wm_nopaste; + buf->b_p_sts = buf->b_p_sts_nopaste; + buf->b_p_ai = buf->b_p_ai_nopaste; ++ buf->b_p_et = buf->b_p_et_nopaste; + } + + /* restore global options */ + p_sm = save_sm; ++ p_sta = save_sta; + #ifdef FEAT_CMDL_INFO + # ifdef FEAT_WINDOWS + if (p_ru != save_ru) +*************** +*** 11743,11752 **** + p_hkmap = save_hkmap; + #endif + /* set global values for local buffer options */ + p_tw = p_tw_nopaste; + p_wm = p_wm_nopaste; +- p_sts = p_sts_nopaste; +- p_ai = p_ai_nopaste; + } + + old_p_paste = p_paste; +--- 11753,11763 ---- + p_hkmap = save_hkmap; + #endif + /* set global values for local buffer options */ ++ p_ai = p_ai_nopaste; ++ p_et = p_et_nopaste; ++ p_sts = p_sts_nopaste; + p_tw = p_tw_nopaste; + p_wm = p_wm_nopaste; + } + + old_p_paste = p_paste; +*** ../vim-7.4.867/src/structs.h 2015-07-21 15:48:13.589517950 +0200 +--- src/structs.h 2015-09-15 17:16:58.742127236 +0200 +*************** +*** 1589,1594 **** +--- 1589,1595 ---- + int b_p_fixeol; /* 'fixendofline' */ + int b_p_et; /* 'expandtab' */ + int b_p_et_nobin; /* b_p_et saved for binary mode */ ++ int b_p_et_nopaste; /* b_p_et saved for paste mode */ + #ifdef FEAT_MBYTE + char_u *b_p_fenc; /* 'fileencoding' */ + #endif +*** ../vim-7.4.867/src/version.c 2015-09-15 15:57:22.815879940 +0200 +--- src/version.c 2015-09-15 17:01:01.468036320 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 868, + /**/ + +-- +Are leaders born or made? And if they're made, can we return them under +warranty? + (Scott Adams - The Dilbert principle) + + /// 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 /// From a584b0550d84ea713321b031f90f369c367cb8f0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:04 +0200 Subject: [PATCH 0366/1407] - patchlevel 869 --- 7.4.869 | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 7.4.869 diff --git a/7.4.869 b/7.4.869 new file mode 100644 index 00000000..f12c0242 --- /dev/null +++ b/7.4.869 @@ -0,0 +1,143 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.869 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.869 +Problem: MS-Windows: scrolling may cause text to disappear when using an + Intel GPU. +Solution: Call GetPixel(). (Yohei Endo) +Files: src/gui_w48.c + + +*** ../vim-7.4.868/src/gui_w48.c 2015-09-15 14:12:01.382632522 +0200 +--- src/gui_w48.c 2015-09-15 17:57:35.316887514 +0200 +*************** +*** 2389,2395 **** + return; + + if (first_tabpage->tp_next != NULL) +! add_tabline_popup_menu_entry(tab_pmenu, + TABLINE_MENU_CLOSE, _("Close tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_NEW, _("New tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_OPEN, +--- 2389,2395 ---- + return; + + if (first_tabpage->tp_next != NULL) +! add_tabline_popup_menu_entry(tab_pmenu, + TABLINE_MENU_CLOSE, _("Close tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_NEW, _("New tab")); + add_tabline_popup_menu_entry(tab_pmenu, TABLINE_MENU_OPEN, +*************** +*** 2931,2940 **** + + base_width = gui_get_base_width() + + (GetSystemMetrics(SM_CXFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2; + base_height = gui_get_base_height() + + (GetSystemMetrics(SM_CYFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2 + + GetSystemMetrics(SM_CYCAPTION) + #ifdef FEAT_MENU + + gui_mswin_get_menu_height(FALSE) +--- 2931,2940 ---- + + base_width = gui_get_base_width() + + (GetSystemMetrics(SM_CXFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2; + base_height = gui_get_base_height() + + (GetSystemMetrics(SM_CYFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2 + + GetSystemMetrics(SM_CYCAPTION) + #ifdef FEAT_MENU + + gui_mswin_get_menu_height(FALSE) +*************** +*** 2997,3002 **** +--- 2997,3016 ---- + } + + /* ++ * On some Intel GPUs, the regions drawn just prior to ScrollWindowEx() ++ * may not be scrolled out properly. ++ * For gVim, when _OnScroll() is repeated, the character at the ++ * previous cursor position may be left drawn after scroll. ++ * The problem can be avoided by calling GetPixel() to get a pixel in ++ * the region before ScrollWindowEx(). ++ */ ++ static void ++ intel_gpu_workaround(void) ++ { ++ GetPixel(s_hdc, FILL_X(gui.col), FILL_Y(gui.row)); ++ } ++ ++ /* + * Delete the given number of lines from the given row, scrolling up any + * text further down within the scroll region. + */ +*************** +*** 3007,3012 **** +--- 3021,3028 ---- + { + RECT rc; + ++ intel_gpu_workaround(); ++ + rc.left = FILL_X(gui.scroll_region_left); + rc.right = FILL_X(gui.scroll_region_right + 1); + rc.top = FILL_Y(row); +*************** +*** 3038,3043 **** +--- 3054,3061 ---- + { + RECT rc; + ++ intel_gpu_workaround(); ++ + rc.left = FILL_X(gui.scroll_region_left); + rc.right = FILL_X(gui.scroll_region_right + 1); + rc.top = FILL_Y(row); +*************** +*** 3319,3328 **** + GetWindowRect(s_hwnd, &rect); + gui_resize_shell(rect.right - rect.left + - (GetSystemMetrics(SM_CXFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2, + rect.bottom - rect.top + - (GetSystemMetrics(SM_CYFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2 + - GetSystemMetrics(SM_CYCAPTION) + #ifdef FEAT_MENU + - gui_mswin_get_menu_height(FALSE) +--- 3337,3346 ---- + GetWindowRect(s_hwnd, &rect); + gui_resize_shell(rect.right - rect.left + - (GetSystemMetrics(SM_CXFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2, + rect.bottom - rect.top + - (GetSystemMetrics(SM_CYFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2 + - GetSystemMetrics(SM_CYCAPTION) + #ifdef FEAT_MENU + - gui_mswin_get_menu_height(FALSE) +*** ../vim-7.4.868/src/version.c 2015-09-15 17:30:35.913682004 +0200 +--- src/version.c 2015-09-15 17:55:53.009950236 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 869, + /**/ + +-- +Lower life forms have more fun! + + /// 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 /// From 54d6b10e616a9e5b9e3d52a0540440a04c254adf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:04 +0200 Subject: [PATCH 0367/1407] - patchlevel 870 --- 7.4.870 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.4.870 diff --git a/7.4.870 b/7.4.870 new file mode 100644 index 00000000..f87412bd --- /dev/null +++ b/7.4.870 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.870 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.870 +Problem: May get into an invalid state when using getchar() in an + expression mapping. +Solution: Anticipate mod_mask to change. (idea by Yukihiro Nakadaira) +Files: src/getchar.c + + +*** ../vim-7.4.869/src/getchar.c 2015-09-15 14:12:01.378632565 +0200 +--- src/getchar.c 2015-09-15 18:17:50.192261837 +0200 +*************** +*** 1630,1642 **** + last_recorded_len = 0; + for (;;) /* this is done twice if there are modifiers */ + { + if (mod_mask) /* no mapping after modifier has been read */ + { + ++no_mapping; + ++allow_keys; + } + c = vgetorpeek(TRUE); +! if (mod_mask) + { + --no_mapping; + --allow_keys; +--- 1630,1645 ---- + last_recorded_len = 0; + for (;;) /* this is done twice if there are modifiers */ + { ++ int did_inc = FALSE; ++ + if (mod_mask) /* no mapping after modifier has been read */ + { + ++no_mapping; + ++allow_keys; ++ did_inc = TRUE; /* mod_mask may change value */ + } + c = vgetorpeek(TRUE); +! if (did_inc) + { + --no_mapping; + --allow_keys; +*** ../vim-7.4.869/src/version.c 2015-09-15 17:58:22.760394656 +0200 +--- src/version.c 2015-09-15 18:15:46.745544634 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 870, + /**/ + +-- +I once paid $12 to peer at the box that held King Tutankhamen's little +bandage-covered midget corpse at the De Young Museum in San Francisco. I +remember thinking how pleased he'd be about the way things turned out in his +afterlife. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 510c26757d5032d84685a88c55a498255709463f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:04 +0200 Subject: [PATCH 0368/1407] - patchlevel 871 --- 7.4.871 | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 7.4.871 diff --git a/7.4.871 b/7.4.871 new file mode 100644 index 00000000..ddeba4ea --- /dev/null +++ b/7.4.871 @@ -0,0 +1,191 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.871 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.871 +Problem: Vim leaks memory, when 'wildignore' filters out all matches. +Solution: Free the files array when it becomes empty. +Files: src/misc1.c + + +*** ../vim-7.4.870/src/misc1.c 2015-09-01 16:25:28.357392851 +0200 +--- src/misc1.c 2015-09-15 19:00:07.569914562 +0200 +*************** +*** 9697,9710 **** + /* + * Expand wildcards. Calls gen_expand_wildcards() and removes files matching + * 'wildignore'. +! * Returns OK or FAIL. When FAIL then "num_file" won't be set. + */ + int +! expand_wildcards(num_pat, pat, num_file, file, flags) + int num_pat; /* number of input patterns */ + char_u **pat; /* array of input patterns */ +! int *num_file; /* resulting number of files */ +! char_u ***file; /* array of resulting files */ + int flags; /* EW_DIR, etc. */ + { + int retval; +--- 9697,9710 ---- + /* + * Expand wildcards. Calls gen_expand_wildcards() and removes files matching + * 'wildignore'. +! * Returns OK or FAIL. When FAIL then "num_files" won't be set. + */ + int +! expand_wildcards(num_pat, pat, num_files, files, flags) + int num_pat; /* number of input patterns */ + char_u **pat; /* array of input patterns */ +! int *num_files; /* resulting number of files */ +! char_u ***files; /* array of resulting files */ + int flags; /* EW_DIR, etc. */ + { + int retval; +*************** +*** 9712,9718 **** + char_u *p; + int non_suf_match; /* number without matching suffix */ + +! retval = gen_expand_wildcards(num_pat, pat, num_file, file, flags); + + /* When keeping all matches, return here */ + if ((flags & EW_KEEPALL) || retval == FAIL) +--- 9712,9718 ---- + char_u *p; + int non_suf_match; /* number without matching suffix */ + +! retval = gen_expand_wildcards(num_pat, pat, num_files, files, flags); + + /* When keeping all matches, return here */ + if ((flags & EW_KEEPALL) || retval == FAIL) +*************** +*** 9726,9772 **** + { + char_u *ffname; + +! /* check all files in (*file)[] */ +! for (i = 0; i < *num_file; ++i) + { +! ffname = FullName_save((*file)[i], FALSE); + if (ffname == NULL) /* out of memory */ + break; + # ifdef VMS + vms_remove_version(ffname); + # endif +! if (match_file_list(p_wig, (*file)[i], ffname)) + { +! /* remove this matching file from the list */ +! vim_free((*file)[i]); +! for (j = i; j + 1 < *num_file; ++j) +! (*file)[j] = (*file)[j + 1]; +! --*num_file; + --i; + } + vim_free(ffname); + } + } + #endif + + /* + * Move the names where 'suffixes' match to the end. + */ +! if (*num_file > 1) + { + non_suf_match = 0; +! for (i = 0; i < *num_file; ++i) + { +! if (!match_suffix((*file)[i])) + { + /* + * Move the name without matching suffix to the front + * of the list. + */ +! p = (*file)[i]; + for (j = i; j > non_suf_match; --j) +! (*file)[j] = (*file)[j - 1]; +! (*file)[non_suf_match++] = p; + } + } + } +--- 9726,9780 ---- + { + char_u *ffname; + +! /* check all files in (*files)[] */ +! for (i = 0; i < *num_files; ++i) + { +! ffname = FullName_save((*files)[i], FALSE); + if (ffname == NULL) /* out of memory */ + break; + # ifdef VMS + vms_remove_version(ffname); + # endif +! if (match_file_list(p_wig, (*files)[i], ffname)) + { +! /* remove this matching files from the list */ +! vim_free((*files)[i]); +! for (j = i; j + 1 < *num_files; ++j) +! (*files)[j] = (*files)[j + 1]; +! --*num_files; + --i; + } + vim_free(ffname); + } ++ ++ /* If the number of matches is now zero, we fail. */ ++ if (*num_files == 0) ++ { ++ vim_free(*files); ++ *files = NULL; ++ return FAIL; ++ } + } + #endif + + /* + * Move the names where 'suffixes' match to the end. + */ +! if (*num_files > 1) + { + non_suf_match = 0; +! for (i = 0; i < *num_files; ++i) + { +! if (!match_suffix((*files)[i])) + { + /* + * Move the name without matching suffix to the front + * of the list. + */ +! p = (*files)[i]; + for (j = i; j > non_suf_match; --j) +! (*files)[j] = (*files)[j - 1]; +! (*files)[non_suf_match++] = p; + } + } + } +*** ../vim-7.4.870/src/version.c 2015-09-15 18:29:35.488932799 +0200 +--- src/version.c 2015-09-15 18:58:45.310768934 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 871, + /**/ + +-- +Team-building exercises come in many forms but they all trace their roots back +to the prison system. In your typical team-building exercise the employees +are subjected to a variety of unpleasant situations until they become either a +cohesive team or a ring of car jackers. + (Scott Adams - The Dilbert principle) + + /// 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 /// From 46ca4e7c1593f3bbfc43833ba51e7163f1583432 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 16 Sep 2015 11:20:05 +0200 Subject: [PATCH 0369/1407] - patchlevel 871 --- README.patches | 6 ++++++ vim.spec | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 0539794b..23985350 100644 --- a/README.patches +++ b/README.patches @@ -887,3 +887,9 @@ Individual patches for Vim 7.4: 4501 7.4.863 plines_nofill() used without the diff feature 3940 7.4.864 (after 7.4.858) tiny build fails 1434 7.4.865 compiler warning for uninitialized variable + 17603 7.4.866 crash when changing the 'tags' option from a remote command + 1698 7.4.867 (after 7.4.866) can't build on MS-Windows + 4998 7.4.868 'smarttab' is also effective when 'paste' is enabled + 4534 7.4.869 MS-Windows with Intel GPU: scroll may cause text to disappear + 2143 7.4.870 get into an invalid state when using getchar() in expr mapping + 5367 7.4.871 Vim leaks memory when 'wildignore' filters out all matches diff --git a/vim.spec b/vim.spec index 91a8666d..8cb987ee 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 865 +%define patchlevel 871 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -912,6 +912,12 @@ Patch862: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.862 Patch863: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.863 Patch864: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.864 Patch865: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.865 +Patch866: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.866 +Patch867: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.867 +Patch868: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.868 +Patch869: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.869 +Patch870: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.870 +Patch871: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.871 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1927,6 +1933,12 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch863 -p0 %patch864 -p0 %patch865 -p0 +%patch866 -p0 +%patch867 -p0 +%patch868 -p0 +%patch869 -p0 +%patch870 -p0 +%patch871 -p0 # install spell files %if %{withvimspell} @@ -2486,6 +2498,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 16 2015 Karsten Hopp 7.4.871-1 +- patchlevel 871 + * Thu Sep 10 2015 Karsten Hopp 7.4.865-1 - patchlevel 865 From 987fd537cb23f63ef3addf6673972f047bf03bc6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 18 Sep 2015 11:20:03 +0200 Subject: [PATCH 0370/1407] - patchlevel 872 --- 7.4.872 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.4.872 diff --git a/7.4.872 b/7.4.872 new file mode 100644 index 00000000..128903d0 --- /dev/null +++ b/7.4.872 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.872 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.872 +Problem: Not using CI services available. +Solution: Add configuration files for travis and appveyor. (PR #401) +Files: .travis.yml, appveyor.yml, Filelist + + +*** ../vim-7.4.871/.travis.yml 2015-09-15 19:17:22.019085105 +0200 +--- .travis.yml 2015-09-15 19:15:43.168128234 +0200 +*************** +*** 0 **** +--- 1,37 ---- ++ language: c ++ ++ compiler: ++ - clang ++ - gcc ++ ++ env: ++ - COVERAGE=yes CFLAGS=--coverage LDFLAGS=--coverage FEATURES=huge ++ "CONFOPT='--enable-perlinterp --enable-pythoninterp --enable-python3interp --enable-rubyinterp --enable-luainterp'" ++ - COVERAGE=no FEATURES=small CONFOPT= ++ - COVERAGE=no FEATURES=tiny CONFOPT= ++ ++ sudo: false ++ ++ addons: ++ apt: ++ packages: ++ - lcov ++ - libperl-dev ++ - python-dev ++ - python3-dev ++ - liblua5.1-0-dev ++ - lua5.1 ++ ++ before_install: ++ - pip install --user cpp-coveralls ++ ++ script: ++ - NPROC=$(getconf _NPROCESSORS_ONLN) ++ - ./configure --with-features=$FEATURES $CONFOPT --enable-fail-if-missing && make -j$NPROC ++ - ./src/vim --version ++ - make test ++ ++ after_success: ++ - if [ x"$COVERAGE" = "xyes" ]; then ~/.local/bin/coveralls -b src -x .xs -e src/xxd -e src/if_perl.c --encodings utf-8 latin-1 EUC-KR; fi ++ ++ # vim:set sts=2 sw=2 tw=0 et: +*** ../vim-7.4.871/appveyor.yml 2015-09-15 19:17:22.027085021 +0200 +--- appveyor.yml 2015-09-15 19:15:43.168128234 +0200 +*************** +*** 0 **** +--- 1,15 ---- ++ version: "{build}" ++ ++ before_build: ++ - '"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release' ++ ++ build_script: ++ - cd src ++ - sed -e "s/\$(LINKARGS2)/\$(LINKARGS2) | sed -e 's#.*\\\\r.*##'/" Make_mvc.mak > Make_mvc2.mak ++ - nmake -f Make_mvc2.mak CPU=AMD64 GUI=yes IME=yes MBYTE=yes ICONV=yes DEBUG=no PYTHON_VER=27 DYNAMIC_PYTHON=yes PYTHON=C:\Python27-x64 PYTHON3_VER=34 DYNAMIC_PYTHON3=yes PYTHON3=C:\Python34-x64 ++ - .\gvim -u NONE -c "redir @a | ver | 0put a | wq!" ver.txt ++ - type ver.txt ++ ++ test_script: ++ - cd testdir ++ - nmake -f Make_dos.mak VIMPROG=..\gvim +*** ../vim-7.4.871/Filelist 2015-09-01 17:50:32.476494002 +0200 +--- Filelist 2015-09-15 19:16:22.327714977 +0200 +*************** +*** 4,9 **** +--- 4,11 ---- + # source files for all source archives + SRC_ALL = \ + .hgignore \ ++ .travis.yml \ ++ appveyor.yml \ + src/README.txt \ + src/arabic.c \ + src/arabic.h \ +*** ../vim-7.4.871/src/version.c 2015-09-15 19:05:49.250365080 +0200 +--- src/version.c 2015-09-15 19:17:34.998948148 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 872, + /**/ + +-- +The acknowledged parents of reengineering are Michael Hammer and James Champy. +When I say they're the "parents" I don't mean they had sex - and I apologize +for making you think about it. I mean they wrote the best-selling business +book _Reengineering the Corporation_, which was published in 1993. + Businesses flocked to reengineering like frat boys to a drunken +cheerleader. (This analogy wasn't necessary, but I'm trying to get my mind +off that Hammer and Champy thing.) + (Scott Adams - The Dilbert principle) + + /// 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 /// From 9471287049e5f56d659f8bebc3a73a160b0bd3c7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 18 Sep 2015 11:20:04 +0200 Subject: [PATCH 0371/1407] - patchlevel 873 --- 7.4.873 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.873 diff --git a/7.4.873 b/7.4.873 new file mode 100644 index 00000000..9d6f798a --- /dev/null +++ b/7.4.873 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.873 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.873 (after 7.4.866) +Problem: Compiler warning for unused variable. (Tony Mechelynck) +Solution: Remove the variable. Also fix int vs long_u mixup. +Files: src/if_xcmdsrv.c + + +*** ../vim-7.4.872/src/if_xcmdsrv.c 2015-09-15 14:12:01.382632522 +0200 +--- src/if_xcmdsrv.c 2015-09-17 23:19:33.877882652 +0200 +*************** +*** 172,178 **** + struct x_cmdqueue + { + char_u *propInfo; +! int len; + struct x_cmdqueue *next; + struct x_cmdqueue *prev; + }; +--- 172,178 ---- + struct x_cmdqueue + { + char_u *propInfo; +! long_u len; + struct x_cmdqueue *next; + struct x_cmdqueue *prev; + }; +*************** +*** 199,206 **** + static int AppendPropCarefully __ARGS((Display *display, Window window, Atom property, char_u *value, int length)); + static int x_error_check __ARGS((Display *dpy, XErrorEvent *error_event)); + static int IsSerialName __ARGS((char_u *name)); +! static void save_in_queue __ARGS((char_u *buf, int len)); +! static void server_parse_message __ARGS((Display *dpy, char_u *propInfo, int numItems)); + + /* Private variables for the "server" functionality */ + static Atom registryProperty = None; +--- 199,206 ---- + static int AppendPropCarefully __ARGS((Display *display, Window window, Atom property, char_u *value, int length)); + static int x_error_check __ARGS((Display *dpy, XErrorEvent *error_event)); + static int IsSerialName __ARGS((char_u *name)); +! static void save_in_queue __ARGS((char_u *buf, long_u len)); +! static void server_parse_message __ARGS((Display *dpy, char_u *propInfo, long_u numItems)); + + /* Private variables for the "server" functionality */ + static Atom registryProperty = None; +*************** +*** 1198,1205 **** + */ + static void + save_in_queue(propInfo, len) +! char_u *propInfo; +! int len; + { + x_queue_T *node; + +--- 1198,1205 ---- + */ + static void + save_in_queue(propInfo, len) +! char_u *propInfo; +! long_u len; + { + x_queue_T *node; + +*************** +*** 1228,1234 **** + void + server_parse_messages() + { +- char_u *p; + x_queue_T *node; + + if (!X_DISPLAY) +--- 1228,1233 ---- +*************** +*** 1262,1268 **** + server_parse_message(dpy, propInfo, numItems) + Display *dpy; + char_u *propInfo; /* A string containing 0 or more X commands */ +! int numItems; /* The size of propInfo in bytes. */ + { + char_u *p; + int code; +--- 1261,1267 ---- + server_parse_message(dpy, propInfo, numItems) + Display *dpy; + char_u *propInfo; /* A string containing 0 or more X commands */ +! long_u numItems; /* The size of propInfo in bytes. */ + { + char_u *p; + int code; +*** ../vim-7.4.872/src/version.c 2015-09-15 19:17:51.990768865 +0200 +--- src/version.c 2015-09-17 23:16:45.507625630 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 873, + /**/ + +-- +Article in the first Free Software Magazine: "Bram Moolenaar studied electrical +engineering at the Technical University of Delft and graduated in 1985 on a +multi-processor Unix architecture." +Response by "dimator": Could the school not afford a proper stage for the +ceremony? + + /// 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 /// From 1757e929fb5ba1f4e560ac362c7796b2b718cea3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 18 Sep 2015 11:20:05 +0200 Subject: [PATCH 0372/1407] - patchlevel 873 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 23985350..a8f06145 100644 --- a/README.patches +++ b/README.patches @@ -893,3 +893,5 @@ Individual patches for Vim 7.4: 4534 7.4.869 MS-Windows with Intel GPU: scroll may cause text to disappear 2143 7.4.870 get into an invalid state when using getchar() in expr mapping 5367 7.4.871 Vim leaks memory when 'wildignore' filters out all matches + 3694 7.4.872 not using CI services available + 3729 7.4.873 (after 7.4.866) compiler warning for unused variable diff --git a/vim.spec b/vim.spec index 8cb987ee..6642f733 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 871 +%define patchlevel 873 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -918,6 +918,8 @@ Patch868: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.868 Patch869: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.869 Patch870: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.870 Patch871: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.871 +Patch872: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.872 +Patch873: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.873 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1939,6 +1941,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch869 -p0 %patch870 -p0 %patch871 -p0 +%patch872 -p0 +%patch873 -p0 # install spell files %if %{withvimspell} @@ -2498,6 +2502,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Sep 18 2015 Karsten Hopp 7.4.873-1 +- patchlevel 873 + * Wed Sep 16 2015 Karsten Hopp 7.4.871-1 - patchlevel 871 From e4a268398861008ddaff42e742e8fa04e7783963 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 22 Sep 2015 11:49:50 +0200 Subject: [PATCH 0373/1407] add Provides: mergetool for bugzilla #990444 --- vim.spec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/vim.spec b/vim.spec index 6642f733..2ac22269 100644 --- a/vim.spec +++ b/vim.spec @@ -1012,6 +1012,7 @@ Summary: A version of the VIM editor which includes recent enhancements Group: Applications/Editors Requires: vim-common = %{epoch}:%{version}-%{release} which Provides: vim = %{version}-%{release} +Provides: mergetool Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) %description enhanced @@ -1040,6 +1041,7 @@ Summary: The VIM version of the vi editor for the X Window System Group: Applications/Editors Requires: vim-common = %{epoch}:%{version}-%{release} libattr >= 2.4 gtk2 >= 2.6 Provides: gvim = %{version}-%{release} +Provides: mergetool BuildRequires: gtk2-devel libSM-devel libXt-devel libXpm-devel Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) Requires: hicolor-icon-theme @@ -2502,6 +2504,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Sep 22 2015 Karsten Hopp 7.4.873-1 +- add Provides: mergetool for bugzilla #990444 + * Fri Sep 18 2015 Karsten Hopp 7.4.873-1 - patchlevel 873 From 1eb8d3f8219cf7511626bf40a83ed39c437684b0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 22 Sep 2015 15:26:37 +0200 Subject: [PATCH 0374/1407] fix garbled xxd manpage in Japanese locale (bugzilla #1035606), Masayuki Oshima --- vim.spec | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/vim.spec b/vim.spec index 2ac22269..d29c23e2 100644 --- a/vim.spec +++ b/vim.spec @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -939,7 +939,7 @@ Patch3015: vim-7.4-ssh-keywords.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel python3-devel ncurses-devel gettext perl-devel BuildRequires: perl(ExtUtils::Embed) perl(ExtUtils::ParseXS) -BuildRequires: libacl-devel gpm-devel autoconf +BuildRequires: libacl-devel gpm-devel autoconf file %if %{WITH_SELINUX} BuildRequires: libselinux-devel %endif @@ -2246,6 +2246,9 @@ rm -rf %{buildroot}/%{_datadir}/vim/%{vimdir}/doc/vim2html.pl rm -f %{buildroot}/%{_datadir}/vim/%{vimdir}/tutor/tutor.gr.utf-8~ ( cd %{buildroot}/%{_mandir} for i in `find ??/ -type f`; do + if [[ "`file $i`" == *UTF-8\ Unicode\ text* ]]; then + continue + fi bi=`basename $i` iconv -f latin1 -t UTF8 $i > %{buildroot}/$bi mv -f %{buildroot}/$bi $i @@ -2504,6 +2507,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Sep 22 2015 Karsten Hopp 7.4.873-2 +- fix garbled xxd manpage in Japanese locale (bugzilla #1035606), Masayuki Oshima + * Tue Sep 22 2015 Karsten Hopp 7.4.873-1 - add Provides: mergetool for bugzilla #990444 From 4da47b82d6e4423606852fc235d467db24391f38 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:03 +0200 Subject: [PATCH 0375/1407] - patchlevel 874 --- 7.4.874 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.4.874 diff --git a/7.4.874 b/7.4.874 new file mode 100644 index 00000000..344c02aa --- /dev/null +++ b/7.4.874 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.874 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.874 +Problem: MS-Windows: When Vim runs inside another application, the size + isn't right. +Solution: When in child mode compute the size differently. (Agorgianitis + Loukas) +Files: src/gui_w48.c + + +*** ../vim-7.4.873/src/gui_w48.c 2015-09-15 17:58:22.760394656 +0200 +--- src/gui_w48.c 2015-09-25 14:08:38.914825744 +0200 +*************** +*** 3335,3351 **** + RECT rect; + + GetWindowRect(s_hwnd, &rect); +! gui_resize_shell(rect.right - rect.left +! - (GetSystemMetrics(SM_CXFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2, +! rect.bottom - rect.top +! - (GetSystemMetrics(SM_CYFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2 +! - GetSystemMetrics(SM_CYCAPTION) + #ifdef FEAT_MENU + - gui_mswin_get_menu_height(FALSE) + #endif +! ); + } + + /* +--- 3335,3364 ---- + RECT rect; + + GetWindowRect(s_hwnd, &rect); +! if (win_socket_id == 0) +! { +! gui_resize_shell(rect.right - rect.left +! - (GetSystemMetrics(SM_CXFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2, +! rect.bottom - rect.top +! - (GetSystemMetrics(SM_CYFRAME) + +! GetSystemMetrics(SM_CXPADDEDBORDER)) * 2 +! - GetSystemMetrics(SM_CYCAPTION) +! #ifdef FEAT_MENU +! - gui_mswin_get_menu_height(FALSE) +! #endif +! ); +! } +! else +! { +! /* Inside another window, don't use the frame and border. */ +! gui_resize_shell(rect.right - rect.left, +! rect.bottom - rect.top + #ifdef FEAT_MENU + - gui_mswin_get_menu_height(FALSE) + #endif +! ); +! } + } + + /* +*** ../vim-7.4.873/src/version.c 2015-09-17 23:20:38.577212536 +0200 +--- src/version.c 2015-09-25 14:07:42.195418589 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 874, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +3. Your bookmark takes 15 minutes to scroll from top to bottom. + + /// 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 /// From 03c1055f211acde8bf18466c4fa5cd89188abe55 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:03 +0200 Subject: [PATCH 0376/1407] - patchlevel 875 --- 7.4.875 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.4.875 diff --git a/7.4.875 b/7.4.875 new file mode 100644 index 00000000..45584dba --- /dev/null +++ b/7.4.875 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.875 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.875 +Problem: Not obvious how to contribute. +Solution: Add a remark about CONTRIBUTING.md to README.md +Files: README.md + + +*** ../vim-7.4.874/README.md 2015-07-10 19:21:45.667489110 +0200 +--- README.md 2015-09-25 14:55:34.837215815 +0200 +*************** +*** 89,94 **** +--- 89,99 ---- + There are more `README_*.txt` files, depending on the distribution you used. + + ++ ## Contributing ## ++ ++ If you would like to help making Vim better, see the `CONTRIBUTING.md` file. ++ ++ + ## Information ## + + The latest news about Vim can be found on the Vim home page: +*** ../vim-7.4.874/src/version.c 2015-09-25 15:00:16.150212206 +0200 +--- src/version.c 2015-09-25 14:56:49.100422649 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 875, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +4. Your eyeglasses have a web site burned in on them. + + /// 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 /// From 3b1279e5905df364725340bea628d3b803dd8e6f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:03 +0200 Subject: [PATCH 0377/1407] - patchlevel 876 --- 7.4.876 | 130 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 130 insertions(+) create mode 100644 7.4.876 diff --git a/7.4.876 b/7.4.876 new file mode 100644 index 00000000..dfec8e97 --- /dev/null +++ b/7.4.876 @@ -0,0 +1,130 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.876 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.876 +Problem: Windows7: when using vim.exe with msys or msys2, conhost.exe + (console window provider on Windows7) will freeze or crash. +Solution: Make original screen buffer active, before executing external + program. And when the program is finished, revert to vim's one. + (Taro Muraoka) +Files: src/os_win32.c + + +*** ../vim-7.4.875/src/os_win32.c 2015-09-01 20:31:16.307776163 +0200 +--- src/os_win32.c 2015-09-25 15:27:22.772877421 +0200 +*************** +*** 234,239 **** +--- 234,240 ---- + + static char_u *exe_path = NULL; + ++ static BOOL is_win7 = FALSE; + static BOOL win8_or_later = FALSE; + + /* +*************** +*** 680,685 **** +--- 681,689 ---- + + g_PlatformId = ovi.dwPlatformId; + ++ if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion == 1)) ++ is_win7 = TRUE; ++ + if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion >= 2) + || ovi.dwMajorVersion > 6) + win8_or_later = TRUE; +*************** +*** 4581,4591 **** + else + return mch_system_classic(cmd, options); + } + #else + + # ifdef FEAT_MBYTE + static int +! mch_system(char *cmd, int options) + { + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +--- 4585,4596 ---- + else + return mch_system_classic(cmd, options); + } ++ + #else + + # ifdef FEAT_MBYTE + static int +! mch_system1(char *cmd, int options) + { + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +*************** +*** 4600,4608 **** + return system(cmd); + } + # else +! # define mch_system(c, o) system(c) + # endif + + #endif + + /* +--- 4605,4635 ---- + return system(cmd); + } + # else +! # define mch_system1(c, o) system(c) + # endif + ++ static int ++ mch_system(char *cmd, int options) ++ { ++ int ret; ++ ++ /* ++ * Restore non-termcap screen buffer before execute external program, and ++ * revert it after. Because msys and msys2's programs will cause freeze ++ * or crash conhost.exe (Windows's console window provider) and vim.exe, ++ * if active screen buffer is vim's one on Windows7. ++ */ ++ if (is_win7 && g_fTermcapMode) ++ SetConsoleActiveScreenBuffer(g_cbNonTermcap.handle); ++ ++ ret = mch_system1(cmd, options); ++ ++ if (is_win7 && g_fTermcapMode) ++ SetConsoleActiveScreenBuffer(g_cbTermcap.handle); ++ ++ return ret; ++ } ++ + #endif + + /* +*** ../vim-7.4.875/src/version.c 2015-09-25 15:00:53.537813204 +0200 +--- src/version.c 2015-09-25 15:23:09.863577538 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 876, + /**/ + + +-- +hundred-and-one symptoms of being an internet addict: +5. You find yourself brainstorming for new subjects to search. + + /// 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 /// From 4beb5c2ca34769acfb2f5eda1d6ef8f1cf8a5477 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:04 +0200 Subject: [PATCH 0378/1407] - patchlevel 877 --- 7.4.877 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.877 diff --git a/7.4.877 b/7.4.877 new file mode 100644 index 00000000..f9bd1bc9 --- /dev/null +++ b/7.4.877 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.877 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.877 (after 7.4.843) +Problem: ":find" sometimes fails. (Excanoe) +Solution: Compare current characters instead of previous ones. +Files: src/misc2.c + + +*** ../vim-7.4.876/src/misc2.c 2015-09-15 15:57:22.815879940 +0200 +--- src/misc2.c 2015-09-25 16:31:54.883481435 +0200 +*************** +*** 5084,5090 **** + i += MB_PTR2LEN(s1 + i); + j += MB_PTR2LEN(s2 + j); + } +! return c1 == c2; + } + #endif + +--- 5084,5090 ---- + i += MB_PTR2LEN(s1 + i); + j += MB_PTR2LEN(s2 + j); + } +! return s1[i] == s2[j]; + } + #endif + +*** ../vim-7.4.876/src/version.c 2015-09-25 15:28:32.744126036 +0200 +--- src/version.c 2015-09-25 16:35:44.085077423 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 877, + /**/ + + +-- +hundred-and-one symptoms of being an internet addict: +6. You refuse to go to a vacation spot with no electricity and no phone lines. + + /// 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 /// From d178bbba8f09736a57a7bb67932d34e11ac6d5f6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:04 +0200 Subject: [PATCH 0379/1407] - patchlevel 878 --- 7.4.878 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.878 diff --git a/7.4.878 b/7.4.878 new file mode 100644 index 00000000..5fd32ee2 --- /dev/null +++ b/7.4.878 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.878 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.878 +Problem: Coverity error for clearing only one byte of struct. +Solution: Clear the whole struct. (Dominique Pelle) +Files: src/ex_docmd.c + + +*** ../vim-7.4.877/src/ex_docmd.c 2015-09-15 14:12:01.374632607 +0200 +--- src/ex_docmd.c 2015-09-25 16:52:00.718823730 +0200 +*************** +*** 871,877 **** + if (flags & DOCMD_EXCRESET) + save_dbg_stuff(&debug_saved); + else +! vim_memset(&debug_saved, 0, 1); + + initial_trylevel = trylevel; + +--- 871,877 ---- + if (flags & DOCMD_EXCRESET) + save_dbg_stuff(&debug_saved); + else +! vim_memset(&debug_saved, 0, sizeof(debug_saved)); + + initial_trylevel = trylevel; + +*** ../vim-7.4.877/src/version.c 2015-09-25 16:37:57.231680454 +0200 +--- src/version.c 2015-09-25 16:51:54.634887652 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 878, + /**/ + +-- +The goal of science is to build better mousetraps. +The goal of nature is to build better mice. + + /// 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 /// From c0900633d32103484a3e5e62b1c3bcfc84d702f9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:04 +0200 Subject: [PATCH 0380/1407] - patchlevel 879 --- 7.4.879 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.4.879 diff --git a/7.4.879 b/7.4.879 new file mode 100644 index 00000000..f5eeddeb --- /dev/null +++ b/7.4.879 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.879 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.879 +Problem: Can't see line numbers in nested function calls. +Solution: Add line number to the file name. (Alberto Fanjul) +Files: src/eval.c + + +*** ../vim-7.4.878/src/eval.c 2015-09-01 16:04:26.702472363 +0200 +--- src/eval.c 2015-09-25 17:15:40.627893181 +0200 +*************** +*** 23817,23822 **** +--- 23817,23823 ---- + int ai; + char_u numbuf[NUMBUFLEN]; + char_u *name; ++ size_t len; + #ifdef FEAT_PROFILE + proftime_T wait_start; + proftime_T call_start; +*************** +*** 23948,23960 **** + save_sourcing_name = sourcing_name; + save_sourcing_lnum = sourcing_lnum; + sourcing_lnum = 1; +! sourcing_name = alloc((unsigned)((save_sourcing_name == NULL ? 0 +! : STRLEN(save_sourcing_name)) + STRLEN(fp->uf_name) + 13)); + if (sourcing_name != NULL) + { + if (save_sourcing_name != NULL + && STRNCMP(save_sourcing_name, "function ", 9) == 0) +! sprintf((char *)sourcing_name, "%s..", save_sourcing_name); + else + STRCPY(sourcing_name, "function "); + cat_func_name(sourcing_name + STRLEN(sourcing_name), fp); +--- 23949,23964 ---- + save_sourcing_name = sourcing_name; + save_sourcing_lnum = sourcing_lnum; + sourcing_lnum = 1; +! /* need space for function name + ("function " + 3) or "[number]" */ +! len = (save_sourcing_name == NULL ? 0 : STRLEN(save_sourcing_name)) +! + STRLEN(fp->uf_name) + 20; +! sourcing_name = alloc((unsigned)len); + if (sourcing_name != NULL) + { + if (save_sourcing_name != NULL + && STRNCMP(save_sourcing_name, "function ", 9) == 0) +! sprintf((char *)sourcing_name, "%s[%d]..", +! save_sourcing_name, (int)save_sourcing_lnum); + else + STRCPY(sourcing_name, "function "); + cat_func_name(sourcing_name + STRLEN(sourcing_name), fp); +*** ../vim-7.4.878/src/version.c 2015-09-25 16:59:43.001963805 +0200 +--- src/version.c 2015-09-25 17:36:15.198910955 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 879, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +7. You finally do take that vacation, but only after buying a cellular modem + and a laptop. + + /// 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 /// From fd1ab8bac9e5dc3ee3a223f5ee587cefef330b8c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:04 +0200 Subject: [PATCH 0381/1407] - patchlevel 880 --- 7.4.880 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.880 diff --git a/7.4.880 b/7.4.880 new file mode 100644 index 00000000..0c664b56 --- /dev/null +++ b/7.4.880 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.880 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.880 +Problem: No build and coverage status. +Solution: Add links to the README file. (Christian Brabandt) +Files: README.md + + +*** ../vim-7.4.879/README.md 2015-09-25 15:00:53.537813204 +0200 +--- README.md 2015-09-25 17:48:39.443078759 +0200 +*************** +*** 29,34 **** +--- 29,37 ---- + want or must compile it yourself. Check http://www.vim.org/download.php for + an overview of currently available distributions. + ++ [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) ++ [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) ++ + + ## Documentation ## + +*** ../vim-7.4.879/src/version.c 2015-09-25 17:37:12.242310841 +0200 +--- src/version.c 2015-09-25 17:49:43.374405292 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 880, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +9. All your daydreaming is preoccupied with getting a faster connection to the + net: 28.8...ISDN...cable modem...T1...T3. + + /// 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 /// From 9593c90872cbab5ad77bcfa7e3c7e83c28b2d14a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:05 +0200 Subject: [PATCH 0382/1407] - patchlevel 881 --- 7.4.881 | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 7.4.881 diff --git a/7.4.881 b/7.4.881 new file mode 100644 index 00000000..ed23b41f --- /dev/null +++ b/7.4.881 @@ -0,0 +1,183 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.881 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.881 (after 7.4.879) +Problem: Test 49 fails. +Solution: Add line number to check of call stack. +Files: src/testdir/test49.vim + + +*** ../vim-7.4.880/src/testdir/test49.vim 2013-06-06 18:13:46.000000000 +0200 +--- src/testdir/test49.vim 2015-09-25 17:25:33.609659111 +0200 +*************** +*** 1,6 **** + " Vim script language tests + " Author: Servatius Brandt +! " Last Change: 2013 Jun 06 + + "------------------------------------------------------------------------------- + " Test environment {{{1 +--- 1,6 ---- + " Vim script language tests + " Author: Servatius Brandt +! " Last Change: 2015 Sep 25 + + "------------------------------------------------------------------------------- + " Test environment {{{1 +*************** +*** 5188,5206 **** + Xpath 65536 " X: 65536 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(1, "oops", '\', '\<2\>') + exec "let exception = v:exception" + exec "let throwpoint = v:throwpoint" +! call CHECK(2, "oops", '\', '\<2\>') + CmdException + CmdThrowpoint +! call CHECK(3, "oops", '\', '\<2\>') + call FuncException() + call FuncThrowpoint() +! call CHECK(4, "oops", '\', '\<2\>') + exec "source" scriptException + exec "source" scriptThrowPoint +! call CHECK(5, "oops", '\', '\<2\>') + try + Xpath 131072 " X: 131072 + call G("arrgh", 4) +--- 5188,5206 ---- + Xpath 65536 " X: 65536 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(1, "oops", '\', '\<2\>') + exec "let exception = v:exception" + exec "let throwpoint = v:throwpoint" +! call CHECK(2, "oops", '\', '\<2\>') + CmdException + CmdThrowpoint +! call CHECK(3, "oops", '\', '\<2\>') + call FuncException() + call FuncThrowpoint() +! call CHECK(4, "oops", '\', '\<2\>') + exec "source" scriptException + exec "source" scriptThrowPoint +! call CHECK(5, "oops", '\', '\<2\>') + try + Xpath 131072 " X: 131072 + call G("arrgh", 4) +*************** +*** 5208,5214 **** + Xpath 262144 " X: 262144 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(6, "arrgh", '\', '\<4\>') + try + Xpath 524288 " X: 524288 + let g:arg = "autsch" +--- 5208,5214 ---- + Xpath 262144 " X: 262144 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(6, "arrgh", '\', '\<4\>') + try + Xpath 524288 " X: 524288 + let g:arg = "autsch" +*************** +*** 5226,5232 **** + Xpath 2097152 " X: 2097152 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(8, "arrgh", '\', '\<4\>') + try + Xpath 4194304 " X: 4194304 + let g:arg = "brrrr" +--- 5226,5232 ---- + Xpath 2097152 " X: 2097152 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(8, "arrgh", '\', '\<4\>') + try + Xpath 4194304 " X: 4194304 + let g:arg = "brrrr" +*************** +*** 5242,5268 **** + Xpath 16777216 " X: 16777216 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(10, "arrgh", '\', '\<4\>') + endtry + Xpath 33554432 " X: 33554432 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(11, "arrgh", '\', '\<4\>') + endtry + Xpath 67108864 " X: 67108864 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(12, "arrgh", '\', '\<4\>') + finally + Xpath 134217728 " X: 134217728 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(13, "oops", '\', '\<2\>') + endtry + Xpath 268435456 " X: 268435456 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(14, "oops", '\', '\<2\>') + finally + Xpath 536870912 " X: 536870912 + let exception = v:exception +--- 5242,5268 ---- + Xpath 16777216 " X: 16777216 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(10, "arrgh", '\', '\<4\>') + endtry + Xpath 33554432 " X: 33554432 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(11, "arrgh", '\', '\<4\>') + endtry + Xpath 67108864 " X: 67108864 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(12, "arrgh", '\', '\<4\>') + finally + Xpath 134217728 " X: 134217728 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(13, "oops", '\', '\<2\>') + endtry + Xpath 268435456 " X: 268435456 + let exception = v:exception + let throwpoint = v:throwpoint +! call CHECK(14, "oops", '\', '\<2\>') + finally + Xpath 536870912 " X: 536870912 + let exception = v:exception +*** ../vim-7.4.880/src/version.c 2015-09-25 17:50:16.350057915 +0200 +--- src/version.c 2015-09-25 17:56:08.866344257 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 881, + /**/ + +-- +"How is your new girlfriend?" +"90-60-90 man!" +"What, pale purple?" + + /// 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 /// From 2e5c477027184f25760043f845c47873a47d168c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:05 +0200 Subject: [PATCH 0383/1407] - patchlevel 882 --- 7.4.882 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.882 diff --git a/7.4.882 b/7.4.882 new file mode 100644 index 00000000..d66a34ac --- /dev/null +++ b/7.4.882 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.882 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.882 +Problem: When leaving the command line window with CTRL-C while a + completion menu is displayed the menu isn't removed. +Solution: Force a screen update. (Hirohito Higashi) +Files: src/edit.c + + +*** ../vim-7.4.881/src/edit.c 2015-09-01 19:25:58.324615363 +0200 +--- src/edit.c 2015-09-25 19:08:23.220720902 +0200 +*************** +*** 3903,3908 **** +--- 3903,3914 ---- + showmode(); + } + ++ #ifdef FEAT_CMDWIN ++ if (c == Ctrl_C && cmdwin_type != 0) ++ /* Avoid the popup menu remains displayed when leaving the ++ * command line window. */ ++ update_screen(0); ++ #endif + #ifdef FEAT_CINDENT + /* + * Indent now if a key was typed that is in 'cinkeys'. +*** ../vim-7.4.881/src/version.c 2015-09-25 17:56:46.497947805 +0200 +--- src/version.c 2015-09-25 19:06:29.745915553 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 882, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +11. You find yourself typing "com" after every period when using a word + processor.com + + /// 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 /// From 944788eaae7f5a715a2f301921f0bcfb3904e08c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:05 +0200 Subject: [PATCH 0384/1407] - patchlevel 883 --- 7.4.883 | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 7.4.883 diff --git a/7.4.883 b/7.4.883 new file mode 100644 index 00000000..c3343a86 --- /dev/null +++ b/7.4.883 @@ -0,0 +1,79 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.883 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.883 (after 7.4.818) +Problem: Block-mode replace works characterwise instead of blockwise after + column 147. (Issue #422) +Solution: Set Visual mode. (Christian Brabandt) +Files: src/normal.c, src/testdir/test_listlbr.in, + src/testdir/test_listlbr.ok + + +*** ../vim-7.4.882/src/normal.c 2015-09-08 17:50:38.071546587 +0200 +--- src/normal.c 2015-09-25 19:24:44.890385976 +0200 +*************** +*** 9596,9602 **** + || (!initial && oap->end.col < W_WIDTH(curwin))) + return; + +! oap->block_mode = VIsual_active; + + #ifdef FEAT_MBYTE + /* prevent from moving onto a trail byte */ +--- 9596,9602 ---- + || (!initial && oap->end.col < W_WIDTH(curwin))) + return; + +! oap->block_mode = TRUE; + + #ifdef FEAT_MBYTE + /* prevent from moving onto a trail byte */ +*** ../vim-7.4.882/src/testdir/test_listlbr.in 2015-08-11 17:46:31.212481064 +0200 +--- src/testdir/test_listlbr.in 2015-09-25 19:24:44.890385976 +0200 +*************** +*** 87,92 **** +--- 87,96 ---- + abcd{ef + ghijklm + no}pqrs2k0f{c% ++ :let g:test ="Test 11: using block replace mode after wrapping" ++ :$put =g:test ++ :set linebreak wrap ++ Go150aayypk147|jr0 + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.882/src/testdir/test_listlbr.ok 2015-08-11 17:46:31.212481064 +0200 +--- src/testdir/test_listlbr.ok 2015-09-25 19:24:44.890385976 +0200 +*************** +*** 49,51 **** +--- 49,54 ---- + Test 10: using normal commands after block-visual + + abcdpqrs ++ Test 11: using block replace mode after wrapping ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0aaa ++ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0aaa +*** ../vim-7.4.882/src/version.c 2015-09-25 19:12:16.282267255 +0200 +--- src/version.c 2015-09-25 19:24:18.338665510 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 883, + /**/ + +-- +Me? A skeptic? I trust you have proof. + + /// 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 /// From 1ed1427ea198dcb36c38c0389686c9ed14a3e5a3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:05 +0200 Subject: [PATCH 0385/1407] - patchlevel 884 --- 7.4.884 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.884 diff --git a/7.4.884 b/7.4.884 new file mode 100644 index 00000000..532b794e --- /dev/null +++ b/7.4.884 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.884 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.884 +Problem: Travis also builds on a tag push. +Solution: Filter out tag pushes. (Kenichi Ito) +Files: .travis.yml + + +*** ../vim-7.4.883/.travis.yml 2015-09-15 19:17:51.990768865 +0200 +--- .travis.yml 2015-09-25 20:28:08.798341040 +0200 +*************** +*** 12,17 **** +--- 12,21 ---- + + sudo: false + ++ branches: ++ except: ++ - /^v[0-9]/ ++ + addons: + apt: + packages: +*** ../vim-7.4.883/src/version.c 2015-09-25 19:34:57.895936899 +0200 +--- src/version.c 2015-09-25 20:29:16.449627412 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 884, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +14. You start introducing yourself as "Jim at I-I-Net dot net dot au" + + /// 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 /// From 39d2399c586fb25b8ea82fb8ba74737102cad37b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 26 Sep 2015 11:20:06 +0200 Subject: [PATCH 0386/1407] - patchlevel 884 --- README.patches | 15 +++++++++++++-- vim.spec | 29 +++++++++++++++++++++++++++-- 2 files changed, 40 insertions(+), 4 deletions(-) diff --git a/README.patches b/README.patches index a8f06145..366b9fa1 100644 --- a/README.patches +++ b/README.patches @@ -823,14 +823,14 @@ Individual patches for Vim 7.4: 1598 7.4.799 accessing memory before an allocated block 1889 7.4.800 using freed memory when triggering CmdUndefined autocommands 2265 7.4.801 (after 7.4.769) ":diffoff" test could catch more problems - 2317 7.4.802 using "A" in Visual mode with 'linebreak' set is not tested + 2315 7.4.802 using "A" in Visual mode with 'linebreak' set is not tested 41522 7.4.803 C indent does not support C11 raw strings 1515 7.4.804 Xxd doesn't have a license notice 1662 7.4.805 ruler shows "Bot" when there are only filler lines missing 3907 7.4.806 CTRL-A in Visual mode fails with "alpha" in 'nrformat' 3649 7.4.807 (after 7.4.798) after CTRL-V CTRL-A mode isn't updated 3304 7.4.808 on MS-Windows 10 IME input doesn't work correctly - 2338 7.4.809 (after 7.4.802) duplicate test case + 2336 7.4.809 (after 7.4.802) duplicate test case 1825 7.4.810 sequence of commands using buffers in diff mode gives E749 2419 7.4.811 invalid memory access when using "exe 'sc'" 1927 7.4.812 Gcc sanitizer complains about using NULL pointer to memmove() @@ -895,3 +895,14 @@ Individual patches for Vim 7.4: 5367 7.4.871 Vim leaks memory when 'wildignore' filters out all matches 3694 7.4.872 not using CI services available 3729 7.4.873 (after 7.4.866) compiler warning for unused variable + 2467 7.4.874 MS-Windows: size isn't right when inside another application + 1459 7.4.875 not obvious how to contribute + 3258 7.4.876 Windows7: using vim with msys/msys2, conhost.exe freezes + 1484 7.4.877 ":find" sometimes fails + 1527 7.4.878 Coverity error for clearing only one byte of struct + 2727 7.4.879 can't see line numbers in nested function calls + 1665 7.4.880 no build and coverage status + 6097 7.4.881 (after 7.4.879) test 49 fails + 1623 7.4.882 popup menu remains visible when leaving command line window + 2651 7.4.883 (after 7.4.818) block-mode replace works characterwise + 1293 7.4.884 Travis also builds on a tag push diff --git a/vim.spec b/vim.spec index d29c23e2..3be43a76 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 873 +%define patchlevel 884 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -21,7 +21,7 @@ Summary: The VIM editor URL: http://www.vim.org/ Name: vim Version: %{baseversion}.%{patchlevel} -Release: 2%{?dist} +Release: 1%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -920,6 +920,17 @@ Patch870: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.870 Patch871: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.871 Patch872: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.872 Patch873: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.873 +Patch874: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.874 +Patch875: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.875 +Patch876: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.876 +Patch877: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.877 +Patch878: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.878 +Patch879: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.879 +Patch880: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.880 +Patch881: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.881 +Patch882: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.882 +Patch883: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.883 +Patch884: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.884 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1945,6 +1956,17 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch871 -p0 %patch872 -p0 %patch873 -p0 +%patch874 -p0 +%patch875 -p0 +%patch876 -p0 +%patch877 -p0 +%patch878 -p0 +%patch879 -p0 +%patch880 -p0 +%patch881 -p0 +%patch882 -p0 +%patch883 -p0 +%patch884 -p0 # install spell files %if %{withvimspell} @@ -2507,6 +2529,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Sep 26 2015 Karsten Hopp 7.4.884-1 +- patchlevel 884 + * Tue Sep 22 2015 Karsten Hopp 7.4.873-2 - fix garbled xxd manpage in Japanese locale (bugzilla #1035606), Masayuki Oshima From 734e674b8a917719b637e3f49ba58af0c7eec203 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 30 Sep 2015 11:20:03 +0200 Subject: [PATCH 0387/1407] - patchlevel 885 --- 7.4.885 | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 7.4.885 diff --git a/7.4.885 b/7.4.885 new file mode 100644 index 00000000..d5a20a9e --- /dev/null +++ b/7.4.885 @@ -0,0 +1,80 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.885 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.885 +Problem: When doing an upwards search without wildcards the search fails if + the initial directory doesn't exist. +Solution: Fix the non-wildcard case. (Stefan Kempf) +Files: src/misc2.c + + +*** ../vim-7.4.884/src/misc2.c 2015-09-25 16:37:57.231680454 +0200 +--- src/misc2.c 2015-09-29 12:03:09.548854560 +0200 +*************** +*** 4369,4389 **** + temp = alloc((int)(STRLEN(search_ctx->ffsc_wc_path) + + STRLEN(search_ctx->ffsc_fix_path + len) + + 1)); +! } + +! if (temp == NULL || wc_path == NULL) +! { +! vim_free(buf); +! vim_free(temp); + vim_free(wc_path); +! goto error_return; + } +- +- STRCPY(temp, search_ctx->ffsc_fix_path + len); +- STRCAT(temp, search_ctx->ffsc_wc_path); +- vim_free(search_ctx->ffsc_wc_path); +- vim_free(wc_path); +- search_ctx->ffsc_wc_path = temp; + } + #endif + vim_free(buf); +--- 4369,4388 ---- + temp = alloc((int)(STRLEN(search_ctx->ffsc_wc_path) + + STRLEN(search_ctx->ffsc_fix_path + len) + + 1)); +! if (temp == NULL || wc_path == NULL) +! { +! vim_free(buf); +! vim_free(temp); +! vim_free(wc_path); +! goto error_return; +! } + +! STRCPY(temp, search_ctx->ffsc_fix_path + len); +! STRCAT(temp, search_ctx->ffsc_wc_path); +! vim_free(search_ctx->ffsc_wc_path); + vim_free(wc_path); +! search_ctx->ffsc_wc_path = temp; + } + } + #endif + vim_free(buf); +*** ../vim-7.4.884/src/version.c 2015-09-25 20:30:55.192585861 +0200 +--- src/version.c 2015-09-29 12:07:20.382179579 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 885, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +27. You refer to your age as 3.x. + + /// 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 /// From 02a447257f88e192e0dab6e51e699358e58a071f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 30 Sep 2015 11:20:03 +0200 Subject: [PATCH 0388/1407] - patchlevel 886 --- 7.4.886 | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 7.4.886 diff --git a/7.4.886 b/7.4.886 new file mode 100644 index 00000000..570d8d7c --- /dev/null +++ b/7.4.886 @@ -0,0 +1,95 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.886 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.886 (after 7.4.876) +Problem: Windows7: Switching screen buffer causes flicker when using + system(). +Solution: Instead of actually switching screen buffer, duplicate the handle. + (Yasuhiro Matsumoto) +Files: src/os_win32.c + + +*** ../vim-7.4.885/src/os_win32.c 2015-09-25 15:28:32.740126079 +0200 +--- src/os_win32.c 2015-09-29 13:59:59.648635163 +0200 +*************** +*** 4612,4631 **** + mch_system(char *cmd, int options) + { + int ret; + + /* +! * Restore non-termcap screen buffer before execute external program, and +! * revert it after. Because msys and msys2's programs will cause freeze +! * or crash conhost.exe (Windows's console window provider) and vim.exe, +! * if active screen buffer is vim's one on Windows7. + */ +! if (is_win7 && g_fTermcapMode) +! SetConsoleActiveScreenBuffer(g_cbNonTermcap.handle); + + ret = mch_system1(cmd, options); + +! if (is_win7 && g_fTermcapMode) +! SetConsoleActiveScreenBuffer(g_cbTermcap.handle); + + return ret; + } +--- 4612,4645 ---- + mch_system(char *cmd, int options) + { + int ret; ++ HANDLE hTemp = INVALID_HANDLE_VALUE; + + /* +! * Call DuplicateHandle before executing an external program, because msys +! * and msys2's programs will call CreateConsoleScreenBuffer and +! * CloseHandle. CreateConsoleScreenBuffer returns the same handle which +! * created by vim. This causes a crash. This workaround is required on +! * Windows7. + */ +! if (is_win7 +! && g_fTermcapMode +! && DuplicateHandle( +! GetCurrentProcess(), +! g_hConOut, +! GetCurrentProcess(), +! &hTemp, +! 0, +! TRUE, +! DUPLICATE_SAME_ACCESS)) +! SetConsoleActiveScreenBuffer(hTemp); + + ret = mch_system1(cmd, options); + +! if (hTemp != INVALID_HANDLE_VALUE) +! { +! SetConsoleActiveScreenBuffer(g_hConOut); +! CloseHandle(hTemp); +! } + + return ret; + } +*** ../vim-7.4.885/src/version.c 2015-09-29 12:08:39.333321460 +0200 +--- src/version.c 2015-09-29 13:56:54.234534337 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 886, + /**/ + +-- +Anyone who is capable of getting themselves made President should on no +account be allowed to do the job. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 4b06596f35232c31665cf53615e1301aeed7313b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 30 Sep 2015 11:20:04 +0200 Subject: [PATCH 0389/1407] - patchlevel 887 --- 7.4.887 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.887 diff --git a/7.4.887 b/7.4.887 new file mode 100644 index 00000000..e16453ca --- /dev/null +++ b/7.4.887 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.887 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.887 +Problem: Using uninitialized memory for regexp with back reference. + (Dominique Pelle) +Solution: Initialize end_lnum. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.886/src/regexp_nfa.c 2015-07-10 19:16:27.302493581 +0200 +--- src/regexp_nfa.c 2015-09-29 14:46:17.003965566 +0200 +*************** +*** 4523,4528 **** +--- 4523,4529 ---- + sub->list.multi[subidx].start_col = + (colnr_T)(reginput - regline + off); + } ++ sub->list.multi[subidx].end_lnum = -1; + } + else + { +*** ../vim-7.4.886/src/version.c 2015-09-29 14:01:08.059935930 +0200 +--- src/version.c 2015-09-29 14:48:14.250754469 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 887, + /**/ + +-- +Bypasses are devices that allow some people to dash from point A to +point B very fast while other people dash from point B to point A very +fast. People living at point C, being a point directly in between, are +often given to wonder what's so great about point A that so many people +from point B are so keen to get there and what's so great about point B +that so many people from point A are so keen to get there. They often +wish that people would just once and for all work out where the hell +they wanted to be. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From d424db39c1a8fef951bb856755db418449f068c1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 30 Sep 2015 11:20:04 +0200 Subject: [PATCH 0390/1407] - patchlevel 888 --- 7.4.888 | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 7.4.888 diff --git a/7.4.888 b/7.4.888 new file mode 100644 index 00000000..02beec3a --- /dev/null +++ b/7.4.888 @@ -0,0 +1,169 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.888 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.888 +Problem: The OptionSet autocommands are not triggered from setwinvar(). +Solution: Do not use switch_win() when not needed. (Hirohito Higashi) +Files: src/eval.c + + +*** ../vim-7.4.887/src/eval.c 2015-09-25 17:37:12.242310841 +0200 +--- src/eval.c 2015-09-29 16:07:10.385294539 +0200 +*************** +*** 12420,12431 **** + typval_T *rettv; + int off; /* 1 for gettabwinvar() */ + { +! win_T *win, *oldcurwin; + char_u *varname; + dictitem_T *v; + tabpage_T *tp = NULL; +- tabpage_T *oldtabpage; + int done = FALSE; + + #ifdef FEAT_WINDOWS + if (off == 1) +--- 12420,12435 ---- + typval_T *rettv; + int off; /* 1 for gettabwinvar() */ + { +! win_T *win; + char_u *varname; + dictitem_T *v; + tabpage_T *tp = NULL; + int done = FALSE; ++ #ifdef FEAT_WINDOWS ++ win_T *oldcurwin; ++ tabpage_T *oldtabpage; ++ int need_switch_win; ++ #endif + + #ifdef FEAT_WINDOWS + if (off == 1) +*************** +*** 12442,12450 **** + + if (win != NULL && varname != NULL) + { + /* Set curwin to be our win, temporarily. Also set the tabpage, +! * otherwise the window is not valid. */ +! if (switch_win(&oldcurwin, &oldtabpage, win, tp, TRUE) == OK) + { + if (*varname == '&') /* window-local-option */ + { +--- 12446,12459 ---- + + if (win != NULL && varname != NULL) + { ++ #ifdef FEAT_WINDOWS + /* Set curwin to be our win, temporarily. Also set the tabpage, +! * otherwise the window is not valid. Only do this when needed, +! * autocommands get blocked. */ +! need_switch_win = !(tp == curtab && win == curwin); +! if (!need_switch_win +! || switch_win(&oldcurwin, &oldtabpage, win, tp, TRUE) == OK) +! #endif + { + if (*varname == '&') /* window-local-option */ + { +*************** +*** 12465,12472 **** + } + } + +! /* restore previous notion of curwin */ +! restore_win(oldcurwin, oldtabpage, TRUE); + } + + if (!done && argvars[off + 2].v_type != VAR_UNKNOWN) +--- 12474,12484 ---- + } + } + +! #ifdef FEAT_WINDOWS +! if (need_switch_win) +! /* restore previous notion of curwin */ +! restore_win(oldcurwin, oldtabpage, TRUE); +! #endif + } + + if (!done && argvars[off + 2].v_type != VAR_UNKNOWN) +*************** +*** 17597,17602 **** +--- 17609,17615 ---- + #ifdef FEAT_WINDOWS + win_T *save_curwin; + tabpage_T *save_curtab; ++ int need_switch_win; + #endif + char_u *varname, *winvarname; + typval_T *varp; +*************** +*** 17619,17625 **** + if (win != NULL && varname != NULL && varp != NULL) + { + #ifdef FEAT_WINDOWS +! if (switch_win(&save_curwin, &save_curtab, win, tp, TRUE) == OK) + #endif + { + if (*varname == '&') +--- 17632,17640 ---- + if (win != NULL && varname != NULL && varp != NULL) + { + #ifdef FEAT_WINDOWS +! need_switch_win = !(tp == curtab && win == curwin); +! if (!need_switch_win +! || switch_win(&save_curwin, &save_curtab, win, tp, TRUE) == OK) + #endif + { + if (*varname == '&') +*************** +*** 17647,17653 **** + } + } + #ifdef FEAT_WINDOWS +! restore_win(save_curwin, save_curtab, TRUE); + #endif + } + } +--- 17662,17669 ---- + } + } + #ifdef FEAT_WINDOWS +! if (need_switch_win) +! restore_win(save_curwin, save_curtab, TRUE); + #endif + } + } +*** ../vim-7.4.887/src/version.c 2015-09-29 15:06:10.783577763 +0200 +--- src/version.c 2015-09-29 15:59:58.409791366 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 888, + /**/ + +-- +Far back in the mists of ancient time, in the great and glorious days of the +former Galactic Empire, life was wild, rich and largely tax free. +Mighty starships plied their way between exotic suns, seeking adventure and +reward among the furthest reaches of Galactic space. In those days, spirits +were brave, the stakes were high, men were real men, women were real women +and small furry creatures from Alpha Centauri were real small furry creatures +from Alpha Centauri. And all dared to brave unknown terrors, to do mighty +deeds, to boldly split infinitives that no man had split before -- and thus +was the Empire forged. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From fa40a824cd08bea4edda88138289a67f99786447 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 30 Sep 2015 11:20:04 +0200 Subject: [PATCH 0391/1407] - patchlevel 889 --- 7.4.889 | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 7.4.889 diff --git a/7.4.889 b/7.4.889 new file mode 100644 index 00000000..3ff6ae92 --- /dev/null +++ b/7.4.889 @@ -0,0 +1,90 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.889 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.889 +Problem: Triggering OptionSet from setwinvar() isn't tested. +Solution: Add a test. (Christian Brabandt) +Files: src/testdir/test_autocmd_option.in, + src/testdir/test_autocmd_option.ok + + +*** ../vim-7.4.888/src/testdir/test_autocmd_option.in 2015-07-21 10:57:35.379311166 +0200 +--- src/testdir/test_autocmd_option.in 2015-09-29 18:03:38.704496393 +0200 +*************** +*** 59,72 **** + :call setbufvar(1, '&l:bk', 1) + : "should trigger, use correct option name + :call setbufvar(1, '&backup', 1) + :" Write register now, because next test shouldn't output anything. + :$put r + :let @r='' +! :let g:testcase="\n14: Setting key option, shouldn't trigger\n" + :let g:options=[['key', 'invalid', 'invalid1', 'invalid']] + :setlocal key=blah + :setlocal key= + :$put =g:testcase + :/^dummy text/,$w! test.out + :qa! + ENDTEST +--- 59,76 ---- + :call setbufvar(1, '&l:bk', 1) + : "should trigger, use correct option name + :call setbufvar(1, '&backup', 1) ++ :let g:testcase="14: Setting number option using setwinvar\n" ++ :let g:options=[['number', 0, 1, 'local']] ++ :call setwinvar(0, '&number', 1) + :" Write register now, because next test shouldn't output anything. + :$put r + :let @r='' +! :let g:testcase="\n15: Setting key option, shouldn't trigger\n" + :let g:options=[['key', 'invalid', 'invalid1', 'invalid']] + :setlocal key=blah + :setlocal key= + :$put =g:testcase ++ :$put r + :/^dummy text/,$w! test.out + :qa! + ENDTEST +*** ../vim-7.4.888/src/testdir/test_autocmd_option.ok 2015-07-21 10:57:35.379311166 +0200 +--- src/testdir/test_autocmd_option.ok 2015-09-29 18:03:38.704496393 +0200 +*************** +*** 56,59 **** + Expected: Name: , Oldval: <>, NewVal: <1>, Scope: + Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: + +! 14: Setting key option, shouldn't trigger +--- 56,64 ---- + Expected: Name: , Oldval: <>, NewVal: <1>, Scope: + Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: + +! 14: Setting number option using setwinvar +! Expected: Name: , Oldval: <0>, NewVal: <1>, Scope: +! Autocmd Option: , OldVal: <0>, NewVal: <1>, Scope: +! +! 15: Setting key option, shouldn't trigger +! +*** ../vim-7.4.888/src/version.c 2015-09-29 16:53:18.200480733 +0200 +--- src/version.c 2015-09-29 18:08:21.341560463 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 889, + /**/ + +-- +For a moment, nothing happened. +Then, after a second or so, nothing continued to happen. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 432a09ffac6f9897d88ddfb4264a40ab1314836a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 30 Sep 2015 11:20:05 +0200 Subject: [PATCH 0392/1407] - patchlevel 889 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 366b9fa1..5e493d9e 100644 --- a/README.patches +++ b/README.patches @@ -906,3 +906,8 @@ Individual patches for Vim 7.4: 1623 7.4.882 popup menu remains visible when leaving command line window 2651 7.4.883 (after 7.4.818) block-mode replace works characterwise 1293 7.4.884 Travis also builds on a tag push + 2287 7.4.885 upwards search without wildcards does not always work + 2908 7.4.886 (after 7.4.876) Windows7: screen flicker when using system() + 1873 7.4.887 using uninitialized memory for regexp with back reference + 4794 7.4.888 OptionSet autocommands are not triggered from setwinvar() + 3145 7.4.889 triggering OptionSet from setwinvar() isn't tested diff --git a/vim.spec b/vim.spec index 3be43a76..b2de229f 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 884 +%define patchlevel 889 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -931,6 +931,11 @@ Patch881: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.881 Patch882: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.882 Patch883: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.883 Patch884: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.884 +Patch885: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.885 +Patch886: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.886 +Patch887: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.887 +Patch888: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.888 +Patch889: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.889 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1967,6 +1972,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch882 -p0 %patch883 -p0 %patch884 -p0 +%patch885 -p0 +%patch886 -p0 +%patch887 -p0 +%patch888 -p0 +%patch889 -p0 # install spell files %if %{withvimspell} @@ -2529,6 +2539,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 30 2015 Karsten Hopp 7.4.889-1 +- patchlevel 889 + * Sat Sep 26 2015 Karsten Hopp 7.4.884-1 - patchlevel 884 From 3d68d97cee44523c2ad9abb048cfa78f0503865d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Oct 2015 11:20:04 +0200 Subject: [PATCH 0393/1407] - patchlevel 890 --- 7.4.890 | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 7.4.890 diff --git a/7.4.890 b/7.4.890 new file mode 100644 index 00000000..cfdd8bc8 --- /dev/null +++ b/7.4.890 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.890 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.890 +Problem: Build failure when using dynamic python but not python3. +Solution: Adjust the #if to also include DYNAMIC_PYTHON3 and UNIX. +Files: src/if_python3.c + + +*** ../vim-7.4.889/src/if_python3.c 2015-02-03 13:15:59.614101028 +0100 +--- src/if_python3.c 2015-10-04 15:20:57.016272462 +0200 +*************** +*** 828,834 **** + --recurse; + } + +! #if (defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON)) || defined(PROTO) + int + python3_loaded() + { +--- 828,834 ---- + --recurse; + } + +! #if (defined(DYNAMIC_PYTHON3) && defined(DYNAMIC_PYTHON) && defined(FEAT_PYTHON) && defined(UNIX)) || defined(PROTO) + int + python3_loaded() + { +*** ../vim-7.4.889/src/version.c 2015-09-29 18:08:28.625484808 +0200 +--- src/version.c 2015-09-29 18:35:01.668951021 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 890, + /**/ + +-- +In many of the more relaxed civilizations on the Outer Eastern Rim of the +Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the +great "Encyclopedia Galactica" as the standard repository of all knowledge +and wisdom, for though it has many omissions and contains much that is +apocryphal, or at least wildly inaccurate, it scores over the older, more +pedestrian work in two important respects. +First, it is slightly cheaper; and second, it has the words "DON'T PANIC" +inscribed in large friendly letters on its cover. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From 857d79a4e6dd26e93b900ac9f56c6440b545638c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Oct 2015 11:20:04 +0200 Subject: [PATCH 0394/1407] - patchlevel 890 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 5e493d9e..a91338ff 100644 --- a/README.patches +++ b/README.patches @@ -911,3 +911,4 @@ Individual patches for Vim 7.4: 1873 7.4.887 using uninitialized memory for regexp with back reference 4794 7.4.888 OptionSet autocommands are not triggered from setwinvar() 3145 7.4.889 triggering OptionSet from setwinvar() isn't tested + 2032 7.4.890 build failure when using dynamic python but not python3 diff --git a/vim.spec b/vim.spec index b2de229f..3ee17a05 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 889 +%define patchlevel 890 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -936,6 +936,7 @@ Patch886: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.886 Patch887: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.887 Patch888: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.888 Patch889: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.889 +Patch890: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.890 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1977,6 +1978,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch887 -p0 %patch888 -p0 %patch889 -p0 +%patch890 -p0 # install spell files %if %{withvimspell} @@ -2539,6 +2541,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Oct 07 2015 Karsten Hopp 7.4.890-1 +- patchlevel 890 + * Wed Sep 30 2015 Karsten Hopp 7.4.889-1 - patchlevel 889 From 1c56f40cbbb7efb91f52aa0a330f7cc29cb18d8c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 8 Oct 2015 11:20:03 +0200 Subject: [PATCH 0395/1407] - patchlevel 891 --- 7.4.891 | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 7.4.891 diff --git a/7.4.891 b/7.4.891 new file mode 100644 index 00000000..b77292bc --- /dev/null +++ b/7.4.891 @@ -0,0 +1,182 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.891 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.891 +Problem: Indentation of array initializer is wrong. +Solution: Avoid that calling find_start_rawstring() changes the position + returned by find_start_comment(), add a test. (Hirohito Higashi) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.4.890/src/misc1.c 2015-09-15 19:05:49.250365080 +0200 +--- src/misc1.c 2015-10-07 11:36:05.441677658 +0200 +*************** +*** 5345,5352 **** + static pos_T * + ind_find_start_CORS() /* XXX */ + { +! pos_T *comment_pos = find_start_comment(curbuf->b_ind_maxcomment); +! pos_T *rs_pos = find_start_rawstring(curbuf->b_ind_maxcomment); + + /* If comment_pos is before rs_pos the raw string is inside the comment. + * If rs_pos is before comment_pos the comment is inside the raw string. */ +--- 5345,5363 ---- + static pos_T * + ind_find_start_CORS() /* XXX */ + { +! static pos_T comment_pos_copy; +! pos_T *comment_pos; +! pos_T *rs_pos; +! +! comment_pos = find_start_comment(curbuf->b_ind_maxcomment); +! if (comment_pos != NULL) +! { +! /* Need to make a copy of the static pos in findmatchlimit(), +! * calling find_start_rawstring() may change it. */ +! comment_pos_copy = *comment_pos; +! comment_pos = &comment_pos_copy; +! } +! rs_pos = find_start_rawstring(curbuf->b_ind_maxcomment); + + /* If comment_pos is before rs_pos the raw string is inside the comment. + * If rs_pos is before comment_pos the comment is inside the raw string. */ +*************** +*** 8334,8340 **** + if (terminated == 0 || (lookfor != LOOKFOR_UNTERM + && terminated == ',')) + { +! if (*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '[') + amount += ind_continuation; + /* + * if we're in the middle of a paren thing, +--- 8345,8352 ---- + if (terminated == 0 || (lookfor != LOOKFOR_UNTERM + && terminated == ',')) + { +! if (lookfor != LOOKFOR_ENUM_OR_INIT && +! (*skipwhite(l) == '[' || l[STRLEN(l) - 1] == '[')) + amount += ind_continuation; + /* + * if we're in the middle of a paren thing, +*************** +*** 8576,8582 **** + */ + l = ml_get_curline(); + amount = cur_amount; +! if (*skipwhite(l) == ']' || l[STRLEN(l) - 1] == ']') + break; + + /* +--- 8588,8597 ---- + */ + l = ml_get_curline(); + amount = cur_amount; +! +! n = (int)STRLEN(l); +! if (terminated == ',' && (*skipwhite(l) == ']' +! || (n >=2 && l[n - 2] == ']'))) + break; + + /* +*** ../vim-7.4.890/src/testdir/test3.in 2015-07-28 21:17:31.526069349 +0200 +--- src/testdir/test3.in 2015-10-07 11:02:39.058670265 +0200 +*************** +*** 910,915 **** +--- 910,937 ---- + )foo"; + } + ++ { ++ int a[4] = { ++ [0] = 0, ++ [1] = 1, ++ [2] = 2, ++ [3] = 3, ++ }; ++ } ++ ++ { ++ a = b[2] ++ + 3; ++ } ++ ++ { ++ if (1) ++ /* aaaaa ++ * bbbbb ++ */ ++ a = 1; ++ } ++ + /* end of AUTO */ + + STARTTEST +*** ../vim-7.4.890/src/testdir/test3.ok 2015-07-28 21:17:31.526069349 +0200 +--- src/testdir/test3.ok 2015-10-07 11:02:39.058670265 +0200 +*************** +*** 898,903 **** +--- 898,925 ---- + )foo"; + } + ++ { ++ int a[4] = { ++ [0] = 0, ++ [1] = 1, ++ [2] = 2, ++ [3] = 3, ++ }; ++ } ++ ++ { ++ a = b[2] ++ + 3; ++ } ++ ++ { ++ if (1) ++ /* aaaaa ++ * bbbbb ++ */ ++ a = 1; ++ } ++ + /* end of AUTO */ + + +*** ../vim-7.4.890/src/version.c 2015-10-07 10:39:49.572914770 +0200 +--- src/version.c 2015-10-07 11:02:31.614748215 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 891, + /**/ + +-- +Now it is such a bizarrely improbable coincidence that anything as +mind-bogglingly useful as the Babel fish could have evolved purely by chance +that some thinkers have chosen to see it as a final and clinching proof of the +NON-existence of God. +The argument goes something like this: 'I refuse to prove that I exist,' says +God, 'for proof denies faith, and without faith I am nothing.' +'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not +have evolved by chance. It proves you exist, and so therefore, by your own +arguments, you don't. QED.' +'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a +puff of logic. +'Oh, that was easy,' says Man, and for an encore goes on to prove that black +is white and gets himself killed on the next pedestrian crossing. + -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" + + /// 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 /// From f342dec5a8596f0575d88b8b4ee06007205c87d5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 8 Oct 2015 11:20:04 +0200 Subject: [PATCH 0396/1407] - patchlevel 891 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a91338ff..88b9a401 100644 --- a/README.patches +++ b/README.patches @@ -912,3 +912,4 @@ Individual patches for Vim 7.4: 4794 7.4.888 OptionSet autocommands are not triggered from setwinvar() 3145 7.4.889 triggering OptionSet from setwinvar() isn't tested 2032 7.4.890 build failure when using dynamic python but not python3 + 5013 7.4.891 indentation of array initializer is wrong diff --git a/vim.spec b/vim.spec index 3ee17a05..1fab448f 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 890 +%define patchlevel 891 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -937,6 +937,7 @@ Patch887: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.887 Patch888: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.888 Patch889: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.889 Patch890: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.890 +Patch891: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.891 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1979,6 +1980,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch888 -p0 %patch889 -p0 %patch890 -p0 +%patch891 -p0 # install spell files %if %{withvimspell} @@ -2541,6 +2543,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Oct 08 2015 Karsten Hopp 7.4.891-1 +- patchlevel 891 + * Wed Oct 07 2015 Karsten Hopp 7.4.890-1 - patchlevel 890 From 7119c5ba64ab202b4ae4bc5687503d18573375de Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:04 +0200 Subject: [PATCH 0397/1407] - patchlevel 892 --- 7.4.892 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.4.892 diff --git a/7.4.892 b/7.4.892 new file mode 100644 index 00000000..2c6ec5bb --- /dev/null +++ b/7.4.892 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.892 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.892 +Problem: On MS-Windows the iconv DLL may have a different name. +Solution: Also try libiconv2.dll and libiconv-2.dll. (Yasuhiro Matsumoto) +Files: src/mbyte.c + + +*** ../vim-7.4.891/src/mbyte.c 2015-06-21 14:21:54.477599972 +0200 +--- src/mbyte.c 2015-10-13 13:43:51.747457468 +0200 +*************** +*** 4400,4406 **** + + # ifndef DYNAMIC_ICONV_DLL + # define DYNAMIC_ICONV_DLL "iconv.dll" +! # define DYNAMIC_ICONV_DLL_ALT "libiconv.dll" + # endif + # ifndef DYNAMIC_MSVCRT_DLL + # define DYNAMIC_MSVCRT_DLL "msvcrt.dll" +--- 4400,4408 ---- + + # ifndef DYNAMIC_ICONV_DLL + # define DYNAMIC_ICONV_DLL "iconv.dll" +! # define DYNAMIC_ICONV_DLL_ALT1 "libiconv.dll" +! # define DYNAMIC_ICONV_DLL_ALT2 "libiconv2.dll" +! # define DYNAMIC_ICONV_DLL_ALT3 "libiconv-2.dll" + # endif + # ifndef DYNAMIC_MSVCRT_DLL + # define DYNAMIC_MSVCRT_DLL "msvcrt.dll" +*************** +*** 4456,4464 **** + { + if (hIconvDLL != 0 && hMsvcrtDLL != 0) + return TRUE; + hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL); +! if (hIconvDLL == 0) /* sometimes it's called libiconv.dll */ +! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT); + if (hIconvDLL != 0) + hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL); + if (hIconvDLL == 0 || hMsvcrtDLL == 0) +--- 4458,4473 ---- + { + if (hIconvDLL != 0 && hMsvcrtDLL != 0) + return TRUE; ++ ++ /* The iconv DLL file goes under different names, try them all. */ + hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL); +! if (hIconvDLL == 0) +! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT1); +! if (hIconvDLL == 0) +! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT2); +! if (hIconvDLL == 0) +! hIconvDLL = vimLoadLib(DYNAMIC_ICONV_DLL_ALT3); +! + if (hIconvDLL != 0) + hMsvcrtDLL = vimLoadLib(DYNAMIC_MSVCRT_DLL); + if (hIconvDLL == 0 || hMsvcrtDLL == 0) +*** ../vim-7.4.891/src/version.c 2015-10-07 11:41:43.158141156 +0200 +--- src/version.c 2015-10-13 13:47:01.433459855 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 892, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +32. You don't know what sex three of your closest friends are, because they + have neutral nicknames and you never bothered to ask. + + /// 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 /// + + /// 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 /// From 645760260cb07648f3de60080315a552d84848f5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:04 +0200 Subject: [PATCH 0398/1407] - patchlevel 893 --- 7.4.893 | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 7.4.893 diff --git a/7.4.893 b/7.4.893 new file mode 100644 index 00000000..ec58e953 --- /dev/null +++ b/7.4.893 @@ -0,0 +1,145 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.893 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.893 +Problem: C indenting is wrong below a "case (foo):" because it is + recognized as a C++ base class construct. Issue #38. +Solution: Check for the case keyword. +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.4.892/src/misc1.c 2015-10-07 11:41:43.154141198 +0200 +--- src/misc1.c 2015-10-13 16:03:35.727021051 +0200 +*************** +*** 6555,6561 **** + + pos->lnum = lnum; + line = ml_get(lnum); +! s = cin_skipcomment(line); + for (;;) + { + if (*s == NUL) +--- 6555,6561 ---- + + pos->lnum = lnum; + line = ml_get(lnum); +! s = line; + for (;;) + { + if (*s == NUL) +*************** +*** 6564,6569 **** +--- 6564,6576 ---- + break; + /* Continue in the cursor line. */ + line = ml_get(++lnum); ++ s = line; ++ } ++ if (s == line) ++ { ++ /* don't recognize "case (foo):" as a baseclass */ ++ if (cin_iscase(s, FALSE)) ++ break; + s = cin_skipcomment(line); + if (*s == NUL) + continue; +*** ../vim-7.4.892/src/testdir/test3.in 2015-10-07 11:41:43.158141156 +0200 +--- src/testdir/test3.in 2015-10-13 16:06:13.781358279 +0200 +*************** +*** 932,937 **** +--- 932,964 ---- + a = 1; + } + ++ void func() ++ { ++ switch (foo) ++ { ++ case (bar): ++ if (baz()) ++ quux(); ++ break; ++ case (shmoo): ++ if (!bar) ++ { ++ } ++ case (foo1): ++ switch (bar) ++ { ++ case baz: ++ baz_f(); ++ break; ++ } ++ break; ++ default: ++ baz(); ++ baz(); ++ break; ++ } ++ } ++ + /* end of AUTO */ + + STARTTEST +*** ../vim-7.4.892/src/testdir/test3.ok 2015-10-07 11:41:43.158141156 +0200 +--- src/testdir/test3.ok 2015-10-13 16:05:58.869515164 +0200 +*************** +*** 920,925 **** +--- 920,952 ---- + a = 1; + } + ++ void func() ++ { ++ switch (foo) ++ { ++ case (bar): ++ if (baz()) ++ quux(); ++ break; ++ case (shmoo): ++ if (!bar) ++ { ++ } ++ case (foo1): ++ switch (bar) ++ { ++ case baz: ++ baz_f(); ++ break; ++ } ++ break; ++ default: ++ baz(); ++ baz(); ++ break; ++ } ++ } ++ + /* end of AUTO */ + + +*** ../vim-7.4.892/src/version.c 2015-10-13 13:49:04.068168461 +0200 +--- src/version.c 2015-10-13 16:11:50.681813418 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 893, + /**/ + +-- +My sister Cecilia opened a computer store in Hawaii. +She sells C shells by the seashore. + + /// 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 /// From 83334b927725696ec607a237f3cb8a58d1c9b0d0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:04 +0200 Subject: [PATCH 0399/1407] - patchlevel 894 --- 7.4.894 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 7.4.894 diff --git a/7.4.894 b/7.4.894 new file mode 100644 index 00000000..1547e1f6 --- /dev/null +++ b/7.4.894 @@ -0,0 +1,50 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.894 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.894 +Problem: vimrun.exe is picky about the number of spaces before -s. +Solution: Skip all spaces. (Cam Sinclair) +Files: src/vimrun.c + + +*** ../vim-7.4.893/src/vimrun.c 2010-05-15 13:04:08.000000000 +0200 +--- src/vimrun.c 2015-10-13 17:52:19.458373362 +0200 +*************** +*** 79,84 **** +--- 79,86 ---- + } + ++p; + } ++ while (*p == ' ') ++ ++p; + + /* + * "-s" argument: don't wait for a key hit. +*** ../vim-7.4.893/src/version.c 2015-10-13 16:13:33.460731830 +0200 +--- src/version.c 2015-10-13 17:50:14.099697025 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 894, + /**/ + +-- +Q. What happens to programmers when they die? +A: MS-Windows programmers are reinstalled. C++ programmers become undefined, + anyone who refers to them will die as well. Java programmers reincarnate + after being garbage collected, unless they are in permgen, in which case + they become zombies. Zimbu programmers leave a stack trace that tells us + exactly where they died and how they got there. + + /// 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 /// From 333f9066e50ee3d65261cf75a7478ed6157e486e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:04 +0200 Subject: [PATCH 0400/1407] - patchlevel 895 --- 7.4.895 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.4.895 diff --git a/7.4.895 b/7.4.895 new file mode 100644 index 00000000..cd26010c --- /dev/null +++ b/7.4.895 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.895 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.895 +Problem: Custom command line completion does not work for a command + containing digits. +Solution: Skip over the digits. (suggested by Yasuhiro Matsumoto) +Files: src/ex_docmd.c + + +*** ../vim-7.4.894/src/ex_docmd.c 2015-09-25 16:59:43.001963805 +0200 +--- src/ex_docmd.c 2015-10-13 19:15:10.518151666 +0200 +*************** +*** 3517,3525 **** + p = cmd; + while (ASCII_ISALPHA(*p) || *p == '*') /* Allow * wild card */ + ++p; +! /* check for non-alpha command */ +! if (p == cmd && vim_strchr((char_u *)"@*!=><&~#", *p) != NULL) +! ++p; + /* for python 3.x: ":py3*" commands completion */ + if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3') + { +--- 3517,3526 ---- + p = cmd; + while (ASCII_ISALPHA(*p) || *p == '*') /* Allow * wild card */ + ++p; +! /* a user command may contain digits */ +! if (ASCII_ISUPPER(cmd[0])) +! while (ASCII_ISALNUM(*p) || *p == '*') +! ++p; + /* for python 3.x: ":py3*" commands completion */ + if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3') + { +*************** +*** 3527,3532 **** +--- 3528,3536 ---- + while (ASCII_ISALPHA(*p) || *p == '*') + ++p; + } ++ /* check for non-alpha command */ ++ if (p == cmd && vim_strchr((char_u *)"@*!=><&~#", *p) != NULL) ++ ++p; + len = (int)(p - cmd); + + if (len == 0) +*** ../vim-7.4.894/src/version.c 2015-10-13 17:52:55.921988351 +0200 +--- src/version.c 2015-10-13 19:09:26.773766612 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 895, + /**/ + +-- +To define recursion, we must first define recursion. + + /// 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 /// From 4c56497267d78ce5c0d7ad01b20d130eaad9077b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:05 +0200 Subject: [PATCH 0401/1407] - patchlevel 896 --- 7.4.896 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.4.896 diff --git a/7.4.896 b/7.4.896 new file mode 100644 index 00000000..8ba84e96 --- /dev/null +++ b/7.4.896 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.896 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.896 +Problem: Editing a URL, which netrw should handle, doesn't work. +Solution: Avoid changing slashes to backslashes. (Yasuhiro Matsumoto) +Files: src/fileio.c, src/os_mswin.c + + +*** ../vim-7.4.895/src/fileio.c 2015-08-11 18:45:43.122311811 +0200 +--- src/fileio.c 2015-10-13 19:41:02.297893970 +0200 +*************** +*** 7547,7553 **** + + #if defined(BACKSLASH_IN_FILENAME) || defined(PROTO) + /* +! * Convert all backslashes in fname to forward slashes in-place. + */ + void + forward_slash(fname) +--- 7547,7554 ---- + + #if defined(BACKSLASH_IN_FILENAME) || defined(PROTO) + /* +! * Convert all backslashes in fname to forward slashes in-place, unless when +! * it looks like a URL. + */ + void + forward_slash(fname) +*************** +*** 7555,7560 **** +--- 7556,7563 ---- + { + char_u *p; + ++ if (path_with_url(fname)) ++ return; + for (p = fname; *p != NUL; ++p) + # ifdef FEAT_MBYTE + /* The Big5 encoding can have '\' in the trail byte. */ +*** ../vim-7.4.895/src/os_mswin.c 2014-11-05 19:33:19.548314778 +0100 +--- src/os_mswin.c 2015-10-13 19:41:56.637324394 +0200 +*************** +*** 481,491 **** +--- 481,494 ---- + * commands that use a file name should try to avoid the need to type a + * backslash twice. + * When 'shellslash' set do it the other way around. ++ * When the path looks like a URL leave it unmodified. + */ + void + slash_adjust(p) + char_u *p; + { ++ if (path_with_url(p)) ++ return; + while (*p) + { + if (*p == psepcN) +*** ../vim-7.4.895/src/version.c 2015-10-13 19:18:00.252374217 +0200 +--- src/version.c 2015-10-13 19:21:05.238436798 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 896, + /**/ + +-- +Have you heard about the new Beowulf cluster? It's so fast, it executes +an infinite loop in 6 seconds. + + /// 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 /// From 153d6bc2707cb481b9cf1a78eb21717ae9cbfc21 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:05 +0200 Subject: [PATCH 0402/1407] - patchlevel 897 --- 7.4.897 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.897 diff --git a/7.4.897 b/7.4.897 new file mode 100644 index 00000000..310e40b9 --- /dev/null +++ b/7.4.897 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.897 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.897 +Problem: Freeze and crash when there is a sleep in a remote command. + (Karl Yngve LervÃ¥g) +Solution: Remove a message from the queue before dealing with it. (James + Kolb) +Files: src/if_xcmdsrv.c + + +*** ../vim-7.4.896/src/if_xcmdsrv.c 2015-09-17 23:20:38.573212578 +0200 +--- src/if_xcmdsrv.c 2015-10-13 20:04:35.731052256 +0200 +*************** +*** 1235,1243 **** + while (head.next != NULL && head.next != &head) + { + node = head.next; +- server_parse_message(X_DISPLAY, node->propInfo, node->len); + head.next = node->next; + node->next->prev = node->prev; + vim_free(node); + } + } +--- 1235,1243 ---- + while (head.next != NULL && head.next != &head) + { + node = head.next; + head.next = node->next; + node->next->prev = node->prev; ++ server_parse_message(X_DISPLAY, node->propInfo, node->len); + vim_free(node); + } + } +*** ../vim-7.4.896/src/version.c 2015-10-13 19:43:14.140511991 +0200 +--- src/version.c 2015-10-13 20:04:03.531390715 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 897, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +34. You laugh at people with a 10 Mbit connection. + + /// 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 /// From 7c46ebe634efc72c06177e4f138649630027efd2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:05 +0200 Subject: [PATCH 0403/1407] - patchlevel 898 --- 7.4.898 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.898 diff --git a/7.4.898 b/7.4.898 new file mode 100644 index 00000000..4083c583 --- /dev/null +++ b/7.4.898 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.898 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.898 +Problem: The 'fixendofline' option is set on with ":edit". +Solution: Don't set the option when clearing a buffer. (Yasuhiro Matsumoto) +Files: src/buffer.c + + +*** ../vim-7.4.897/src/buffer.c 2015-08-04 17:43:20.577543527 +0200 +--- src/buffer.c 2015-10-13 20:39:51.476794341 +0200 +*************** +*** 547,553 **** + buf->b_shortname = FALSE; + #endif + buf->b_p_eol = TRUE; +- buf->b_p_fixeol = TRUE; + buf->b_start_eol = TRUE; + #ifdef FEAT_MBYTE + buf->b_p_bomb = FALSE; +--- 547,552 ---- +*** ../vim-7.4.897/src/version.c 2015-10-13 20:21:45.220226141 +0200 +--- src/version.c 2015-10-13 20:41:17.031890643 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 898, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +37. You start looking for hot HTML addresses in public restrooms. + + /// 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 /// From 4d54ca969015dc54dcd0c750eb175d795b20038c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Oct 2015 11:20:06 +0200 Subject: [PATCH 0404/1407] - patchlevel 898 --- README.patches | 7 +++++++ vim.spec | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 88b9a401..f45affa2 100644 --- a/README.patches +++ b/README.patches @@ -913,3 +913,10 @@ Individual patches for Vim 7.4: 3145 7.4.889 triggering OptionSet from setwinvar() isn't tested 2032 7.4.890 build failure when using dynamic python but not python3 5013 7.4.891 indentation of array initializer is wrong + 3100 7.4.892 on MS-Windows the iconv DLL may have a different name + 2911 7.4.893 C indenting is wrong below a "case (foo):" + 1617 7.4.894 vimrun.exe is picky about the number of spaces before -s + 2169 7.4.895 cmdline completion does not work for a command with digits + 2387 7.4.896 editing a URL, which netrw should handle, doesn't work + 1776 7.4.897 freeze and crash when there is a sleep in a remote command + 1419 7.4.898 the 'fixendofline' option is set on with ":edit" diff --git a/vim.spec b/vim.spec index 1fab448f..48563efc 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 891 +%define patchlevel 898 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -938,6 +938,13 @@ Patch888: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.888 Patch889: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.889 Patch890: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.890 Patch891: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.891 +Patch892: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.892 +Patch893: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.893 +Patch894: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.894 +Patch895: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.895 +Patch896: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.896 +Patch897: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.897 +Patch898: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.898 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1981,6 +1988,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch889 -p0 %patch890 -p0 %patch891 -p0 +%patch892 -p0 +%patch893 -p0 +%patch894 -p0 +%patch895 -p0 +%patch896 -p0 +%patch897 -p0 +%patch898 -p0 # install spell files %if %{withvimspell} @@ -2543,6 +2557,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Oct 14 2015 Karsten Hopp 7.4.898-1 +- patchlevel 898 + * Thu Oct 08 2015 Karsten Hopp 7.4.891-1 - patchlevel 891 From 4373f1f0a4e3f3d7f9bccfece500a58f26079df0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 26 Oct 2015 11:20:04 +0100 Subject: [PATCH 0405/1407] - patchlevel 899 --- 7.4.899 | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100644 7.4.899 diff --git a/7.4.899 b/7.4.899 new file mode 100644 index 00000000..df1534fd --- /dev/null +++ b/7.4.899 @@ -0,0 +1,140 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.899 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.899 +Problem: README file is not optimal. +Solution: Move buttons, update some text. (closes #460) +Files: README.txt, README.md + + +*** ../vim-7.4.898/README.txt 2013-08-10 13:24:51.000000000 +0200 +--- README.txt 2015-10-25 13:50:34.962876572 +0100 +*************** +*** 1,7 **** + README.txt for version 7.4 of Vim: Vi IMproved. + + +! WHAT IS VIM + + Vim is an almost compatible version of the UNIX editor Vi. Many new features + have been added: multi-level undo, syntax highlighting, command line history, +--- 1,7 ---- + README.txt for version 7.4 of Vim: Vi IMproved. + + +! WHAT IS VIM? + + Vim is an almost compatible version of the UNIX editor Vi. Many new features + have been added: multi-level undo, syntax highlighting, command line history, +*************** +*** 21,26 **** +--- 21,30 ---- + + DISTRIBUTION + ++ You can often use your favorite package manager to install Vim. On Mac and ++ Linux a small version of Vim is pre-installed, you still need to install Vim ++ if you want more features. ++ + There are separate distributions for Unix, PC, Amiga and some other systems. + This README.txt file comes with the runtime archive. It includes the + documentation, syntax files and other files that are used at runtime. To run +*************** +*** 94,101 **** + The latest news about Vim can be found on the Vim home page: + http://www.vim.org/ + +! If you have problems, have a look at the Vim FAQ: +! http://vimdoc.sf.net/vimfaq.html + + If you still have problems or any other questions, use one of the mailing + lists to discuss them with Vim users and developers: +--- 98,106 ---- + The latest news about Vim can be found on the Vim home page: + http://www.vim.org/ + +! If you have problems, have a look at the Vim documentation or tips: +! http://www.vim.org/docs.php +! http://vim.wikia.com/wiki/Vim_Tips_Wiki + + If you still have problems or any other questions, use one of the mailing + lists to discuss them with Vim users and developers: +*************** +*** 110,115 **** + Send any other comments, patches, flowers and suggestions to: + + Bram Moolenaar E-mail: Bram@vim.org +- Finsterruetihof 1 +- 8134 Adliswil +- Switzerland +--- 115,117 ---- +*** ../vim-7.4.898/README.md 2015-09-25 17:50:16.350057915 +0200 +--- README.md 2015-10-25 13:50:31.734914034 +0100 +*************** +*** 1,7 **** + `README.md` for version 7.4 of Vim: Vi IMproved. + + +! ## What is VIM ## + + Vim is an almost compatible version of the UNIX editor Vi. Many new features + have been added: multi-level undo, syntax highlighting, command line history, +--- 1,9 ---- + `README.md` for version 7.4 of Vim: Vi IMproved. ++ [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) ++ [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) + + +! ## What is Vim? ## + + Vim is an almost compatible version of the UNIX editor Vi. Many new features + have been added: multi-level undo, syntax highlighting, command line history, +*************** +*** 21,26 **** +--- 23,32 ---- + + ## Distribution ## + ++ You can often use your favorite package manager to install Vim. On Mac and ++ Linux a small version of Vim is pre-installed, you still need to install Vim ++ if you want more features. ++ + There are separate distributions for Unix, PC, Amiga and some other systems. + This `README.md` file comes with the runtime archive. It includes the + documentation, syntax files and other files that are used at runtime. To run +*************** +*** 29,37 **** + want or must compile it yourself. Check http://www.vim.org/download.php for + an overview of currently available distributions. + +- [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) +- [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) +- + + ## Documentation ## + +--- 35,40 ---- +*** ../vim-7.4.898/src/version.c 2015-10-13 20:55:46.058715228 +0200 +--- src/version.c 2015-10-25 13:52:02.669858690 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 899, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +45. You buy a Captain Kirk chair with a built-in keyboard and mouse. + + /// 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 /// From a5776443e33a848a3a535e30509b2aa66517d390 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 26 Oct 2015 11:20:04 +0100 Subject: [PATCH 0406/1407] - patchlevel 900 --- 7.4.900 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 7.4.900 diff --git a/7.4.900 b/7.4.900 new file mode 100644 index 00000000..58df7d7d --- /dev/null +++ b/7.4.900 @@ -0,0 +1,63 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.900 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.900 (after 7.4.899) +Problem: README file can still be improved +Solution: Add a couple of links. (Christian Brabandt) +Files: README.md + + +*** ../vim-7.4.899/README.md 2015-10-25 13:54:55.295855322 +0100 +--- README.md 2015-10-25 22:37:29.690425913 +0100 +*************** +*** 1,6 **** +--- 1,7 ---- + `README.md` for version 7.4 of Vim: Vi IMproved. + [![Build Status](https://travis-ci.org/vim/vim.svg?branch=master)](https://travis-ci.org/vim/vim) + [![Coverage Status](https://coveralls.io/repos/vim/vim/badge.svg?branch=master&service=github)](https://coveralls.io/github/vim/vim?branch=master) ++ [![Appveyor Build status](https://ci.appveyor.com/api/projects/status/o2qht2kjm02sgghk?svg=true)](https://ci.appveyor.com/project/chrisbra/vim) + + + ## What is Vim? ## +*************** +*** 97,103 **** + + ## Contributing ## + +! If you would like to help making Vim better, see the `CONTRIBUTING.md` file. + + + ## Information ## +--- 98,104 ---- + + ## Contributing ## + +! If you would like to help making Vim better, see the [CONTRIBUTING.md](https://github.com/vim/vim/blob/master/CONTRIBUTING.md) file. + + + ## Information ## +*** ../vim-7.4.899/src/version.c 2015-10-25 13:54:55.295855322 +0100 +--- src/version.c 2015-10-25 22:38:13.829864624 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 900, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +51. You put a pillow case over your laptop so your lover doesn't see it while + you are pretending to catch your breath. + + /// 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 /// From 1a5b2d9a35cd71ac87eb0c80e8e7752eba232979 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 26 Oct 2015 11:20:04 +0100 Subject: [PATCH 0407/1407] - patchlevel 900 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index f45affa2..bae6818c 100644 --- a/README.patches +++ b/README.patches @@ -920,3 +920,5 @@ Individual patches for Vim 7.4: 2387 7.4.896 editing a URL, which netrw should handle, doesn't work 1776 7.4.897 freeze and crash when there is a sleep in a remote command 1419 7.4.898 the 'fixendofline' option is set on with ":edit" + 4930 7.4.899 README file is not optimal + 2100 7.4.900 (after 7.4.899) README file can still be improved diff --git a/vim.spec b/vim.spec index 48563efc..515c0b2f 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 898 +%define patchlevel 900 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -945,6 +945,8 @@ Patch895: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.895 Patch896: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.896 Patch897: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.897 Patch898: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.898 +Patch899: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.899 +Patch900: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.900 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1995,6 +1997,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch896 -p0 %patch897 -p0 %patch898 -p0 +%patch899 -p0 +%patch900 -p0 # install spell files %if %{withvimspell} @@ -2557,6 +2561,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Oct 26 2015 Karsten Hopp 7.4.900-1 +- patchlevel 900 + * Wed Oct 14 2015 Karsten Hopp 7.4.898-1 - patchlevel 898 From a20c56c9753a89279efd39c70eb3486eefc06ef7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 31 Oct 2015 11:35:38 +0100 Subject: [PATCH 0408/1407] - patchlevel 901 --- 7.4.901 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 7.4.901 diff --git a/7.4.901 b/7.4.901 new file mode 100644 index 00000000..8ad799a4 --- /dev/null +++ b/7.4.901 @@ -0,0 +1,77 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.901 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.901 +Problem: When a BufLeave autocommand changes folding in a way it syncs + undo, undo can be corrupted. +Solution: Prevent undo sync. (Jacob Niehus) +Files: src/popupmnu.c + + +*** ../vim-7.4.900/src/popupmnu.c 2014-07-23 21:10:39.867766788 +0200 +--- src/popupmnu.c 2015-10-30 14:19:21.681104047 +0100 +*************** +*** 568,574 **** +--- 568,578 ---- + if (p_pvh > 0 && p_pvh < g_do_tagpreview) + g_do_tagpreview = p_pvh; + ++RedrawingDisabled; ++ /* Prevent undo sync here, if an autocommand syncs undo weird ++ * things can happen to the undo tree. */ ++ ++no_u_sync; + resized = prepare_tagpreview(FALSE); ++ --no_u_sync; + --RedrawingDisabled; + g_do_tagpreview = 0; + +*************** +*** 659,665 **** +--- 663,671 ---- + * redraw. */ + if (resized) + { ++ ++no_u_sync; + win_enter(curwin_save, TRUE); ++ --no_u_sync; + update_topline(); + } + +*************** +*** 670,676 **** +--- 676,686 ---- + pum_do_redraw = FALSE; + + if (!resized && win_valid(curwin_save)) ++ { ++ ++no_u_sync; + win_enter(curwin_save, TRUE); ++ --no_u_sync; ++ } + + /* May need to update the screen again when there are + * autocommands involved. */ +*** ../vim-7.4.900/src/version.c 2015-10-25 22:41:56.703017233 +0100 +--- src/version.c 2015-10-30 14:16:43.274962288 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 901, + /**/ + + +-- +Creating the world with Emacs: M-x let-there-be-light +Creating the world with Vim: :make world + + /// 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 /// From 4c88de877569a3c543fb7ff6613aa8ea7546b31e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 31 Oct 2015 11:35:38 +0100 Subject: [PATCH 0409/1407] - patchlevel 902 --- 7.4.902 | 491 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 491 insertions(+) create mode 100644 7.4.902 diff --git a/7.4.902 b/7.4.902 new file mode 100644 index 00000000..d83174a0 --- /dev/null +++ b/7.4.902 @@ -0,0 +1,491 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.902 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.902 +Problem: Problems with using the MS-Windows console. +Solution: Revert patches 7.4.851, 7.4.876 and 7.4.886 until we find a better + solution. (suggested by Ken Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.901/src/os_win32.c 2015-09-29 14:01:08.059935930 +0200 +--- src/os_win32.c 2015-10-30 16:43:34.543013902 +0100 +*************** +*** 234,240 **** + + static char_u *exe_path = NULL; + +- static BOOL is_win7 = FALSE; + static BOOL win8_or_later = FALSE; + + /* +--- 234,239 ---- +*************** +*** 681,689 **** + + g_PlatformId = ovi.dwPlatformId; + +- if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion == 1)) +- is_win7 = TRUE; +- + if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion >= 2) + || ovi.dwMajorVersion > 6) + win8_or_later = TRUE; +--- 680,685 ---- +*************** +*** 2173,2179 **** + { + BOOL IsValid; + CONSOLE_SCREEN_BUFFER_INFO Info; +! HANDLE handle; + } ConsoleBuffer; + + /* +--- 2169,2176 ---- + { + BOOL IsValid; + CONSOLE_SCREEN_BUFFER_INFO Info; +! PCHAR_INFO Buffer; +! COORD BufferSize; + } ConsoleBuffer; + + /* +*************** +*** 2190,2270 **** + SaveConsoleBuffer( + ConsoleBuffer *cb) + { + if (cb == NULL) + return FALSE; + +! if (!GetConsoleScreenBufferInfo(cb->handle, &cb->Info)) + { + cb->IsValid = FALSE; + return FALSE; + } + cb->IsValid = TRUE; + +- return TRUE; +- } +- +- /* +- * CopyOldConsoleBuffer() +- * Description: +- * Copies the old console buffer contents to the current console buffer. +- * This is used when 'restorescreen' is off. +- * Returns: +- * TRUE on success +- */ +- static BOOL +- CopyOldConsoleBuffer( +- ConsoleBuffer *cb, +- HANDLE hConOld) +- { +- COORD BufferCoord; +- COORD BufferSize; +- PCHAR_INFO Buffer; +- DWORD NumCells; +- SMALL_RECT ReadRegion; +- + /* +! * Before copying the buffer contents, clear the current buffer, and +! * restore the window information. Doing this now prevents old buffer +! * contents from "flashing" onto the screen. + */ +! ClearConsoleBuffer(cb->Info.wAttributes); +! +! /* We only need to copy the window area, not whole buffer. */ +! BufferSize.X = cb->Info.srWindow.Right - cb->Info.srWindow.Left + 1; +! BufferSize.Y = cb->Info.srWindow.Bottom - cb->Info.srWindow.Top + 1; +! ReadRegion.Left = 0; +! ReadRegion.Right = BufferSize.X - 1; +! ReadRegion.Top = 0; +! ReadRegion.Bottom = BufferSize.Y - 1; +! +! NumCells = BufferSize.X * BufferSize.Y; +! Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO)); +! if (Buffer == NULL) +! return FALSE; + + BufferCoord.X = 0; +! BufferCoord.Y = 0; +! +! if (!ReadConsoleOutputW(hConOld, /* output handle */ +! Buffer, /* our buffer */ +! BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &ReadRegion)) /* region to save */ +! { +! vim_free(Buffer); +! return FALSE; +! } +! if (!WriteConsoleOutputW(g_hConOut, /* output handle */ +! Buffer, /* our buffer */ +! BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &ReadRegion)) /* region to restore */ + { +! vim_free(Buffer); +! return FALSE; + } +- vim_free(Buffer); +- SetConsoleWindowInfo(g_hConOut, TRUE, &ReadRegion); + + return TRUE; + } +--- 2187,2263 ---- + SaveConsoleBuffer( + ConsoleBuffer *cb) + { ++ DWORD NumCells; ++ COORD BufferCoord; ++ SMALL_RECT ReadRegion; ++ WORD Y, Y_incr; ++ + if (cb == NULL) + return FALSE; + +! if (!GetConsoleScreenBufferInfo(g_hConOut, &cb->Info)) + { + cb->IsValid = FALSE; + return FALSE; + } + cb->IsValid = TRUE; + + /* +! * Allocate a buffer large enough to hold the entire console screen +! * buffer. If this ConsoleBuffer structure has already been initialized +! * with a buffer of the correct size, then just use that one. + */ +! if (!cb->IsValid || cb->Buffer == NULL || +! cb->BufferSize.X != cb->Info.dwSize.X || +! cb->BufferSize.Y != cb->Info.dwSize.Y) +! { +! cb->BufferSize.X = cb->Info.dwSize.X; +! cb->BufferSize.Y = cb->Info.dwSize.Y; +! NumCells = cb->BufferSize.X * cb->BufferSize.Y; +! vim_free(cb->Buffer); +! cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO)); +! if (cb->Buffer == NULL) +! return FALSE; +! } + ++ /* ++ * We will now copy the console screen buffer into our buffer. ++ * ReadConsoleOutput() seems to be limited as far as how much you ++ * can read at a time. Empirically, this number seems to be about ++ * 12000 cells (rows * columns). Start at position (0, 0) and copy ++ * in chunks until it is all copied. The chunks will all have the ++ * same horizontal characteristics, so initialize them now. The ++ * height of each chunk will be (12000 / width). ++ */ + BufferCoord.X = 0; +! ReadRegion.Left = 0; +! ReadRegion.Right = cb->Info.dwSize.X - 1; +! Y_incr = 12000 / cb->Info.dwSize.X; +! for (Y = 0; Y < cb->BufferSize.Y; Y += Y_incr) + { +! /* +! * Read into position (0, Y) in our buffer. +! */ +! BufferCoord.Y = Y; +! /* +! * Read the region whose top left corner is (0, Y) and whose bottom +! * right corner is (width - 1, Y + Y_incr - 1). This should define +! * a region of size width by Y_incr. Don't worry if this region is +! * too large for the remaining buffer; it will be cropped. +! */ +! ReadRegion.Top = Y; +! ReadRegion.Bottom = Y + Y_incr - 1; +! if (!ReadConsoleOutput(g_hConOut, /* output handle */ +! cb->Buffer, /* our buffer */ +! cb->BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &ReadRegion)) /* region to save */ +! { +! vim_free(cb->Buffer); +! cb->Buffer = NULL; +! return FALSE; +! } + } + + return TRUE; + } +*************** +*** 2283,2302 **** + ConsoleBuffer *cb, + BOOL RestoreScreen) + { +! HANDLE hConOld; + + if (cb == NULL || !cb->IsValid) + return FALSE; + +! hConOld = g_hConOut; +! g_hConOut = cb->handle; +! if (!RestoreScreen && exiting) +! CopyOldConsoleBuffer(cb, hConOld); +! SetConsoleActiveScreenBuffer(g_hConOut); + + return TRUE; + } + + static ConsoleBuffer g_cbNonTermcap = { 0 }; + static ConsoleBuffer g_cbTermcap = { 0 }; + +--- 2276,2342 ---- + ConsoleBuffer *cb, + BOOL RestoreScreen) + { +! COORD BufferCoord; +! SMALL_RECT WriteRegion; + + if (cb == NULL || !cb->IsValid) + return FALSE; + +! /* +! * Before restoring the buffer contents, clear the current buffer, and +! * restore the cursor position and window information. Doing this now +! * prevents old buffer contents from "flashing" onto the screen. +! */ +! if (RestoreScreen) +! ClearConsoleBuffer(cb->Info.wAttributes); +! +! FitConsoleWindow(cb->Info.dwSize, TRUE); +! if (!SetConsoleScreenBufferSize(g_hConOut, cb->Info.dwSize)) +! return FALSE; +! if (!SetConsoleTextAttribute(g_hConOut, cb->Info.wAttributes)) +! return FALSE; +! +! if (!RestoreScreen) +! { +! /* +! * No need to restore the screen buffer contents, so we're done. +! */ +! return TRUE; +! } +! +! if (!SetConsoleCursorPosition(g_hConOut, cb->Info.dwCursorPosition)) +! return FALSE; +! if (!SetConsoleWindowInfo(g_hConOut, TRUE, &cb->Info.srWindow)) +! return FALSE; +! +! /* +! * Restore the screen buffer contents. +! */ +! if (cb->Buffer != NULL) +! { +! BufferCoord.X = 0; +! BufferCoord.Y = 0; +! WriteRegion.Left = 0; +! WriteRegion.Top = 0; +! WriteRegion.Right = cb->Info.dwSize.X - 1; +! WriteRegion.Bottom = cb->Info.dwSize.Y - 1; +! if (!WriteConsoleOutput(g_hConOut, /* output handle */ +! cb->Buffer, /* our buffer */ +! cb->BufferSize, /* dimensions of our buffer */ +! BufferCoord, /* offset in our buffer */ +! &WriteRegion)) /* region to restore */ +! { +! return FALSE; +! } +! } + + return TRUE; + } + ++ #define FEAT_RESTORE_ORIG_SCREEN ++ #ifdef FEAT_RESTORE_ORIG_SCREEN ++ static ConsoleBuffer g_cbOrig = { 0 }; ++ #endif + static ConsoleBuffer g_cbNonTermcap = { 0 }; + static ConsoleBuffer g_cbTermcap = { 0 }; + +*************** +*** 2435,2440 **** +--- 2475,2483 ---- + void + mch_init(void) + { ++ #ifndef FEAT_RESTORE_ORIG_SCREEN ++ CONSOLE_SCREEN_BUFFER_INFO csbi; ++ #endif + #ifndef __MINGW32__ + extern int _fmode; + #endif +*************** +*** 2455,2468 **** + else + create_conin(); + g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE); +- g_cbNonTermcap.handle = g_hConOut; +- g_cbTermcap.handle = CreateConsoleScreenBuffer( +- GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, +- NULL, CONSOLE_TEXTMODE_BUFFER, NULL); + + /* Get current text attributes */ +! SaveConsoleBuffer(&g_cbNonTermcap); +! g_attrCurrent = g_attrDefault = g_cbNonTermcap.Info.wAttributes; + if (cterm_normal_fg_color == 0) + cterm_normal_fg_color = (g_attrCurrent & 0xf) + 1; + if (cterm_normal_bg_color == 0) +--- 2498,2513 ---- + else + create_conin(); + g_hConOut = GetStdHandle(STD_OUTPUT_HANDLE); + ++ #ifdef FEAT_RESTORE_ORIG_SCREEN ++ /* Save the initial console buffer for later restoration */ ++ SaveConsoleBuffer(&g_cbOrig); ++ g_attrCurrent = g_attrDefault = g_cbOrig.Info.wAttributes; ++ #else + /* Get current text attributes */ +! GetConsoleScreenBufferInfo(g_hConOut, &csbi); +! g_attrCurrent = g_attrDefault = csbi.wAttributes; +! #endif + if (cterm_normal_fg_color == 0) + cterm_normal_fg_color = (g_attrCurrent & 0xf) + 1; + if (cterm_normal_bg_color == 0) +*************** +*** 2562,2569 **** + SetConsoleMode(g_hConIn, g_cmodein); + SetConsoleMode(g_hConOut, g_cmodeout); + +- CloseHandle(g_cbTermcap.handle); +- + #ifdef DYNAMIC_GETTEXT + dyn_libintl_end(); + #endif +--- 2607,2612 ---- +*************** +*** 4585,4596 **** + else + return mch_system_classic(cmd, options); + } +- + #else + + # ifdef FEAT_MBYTE + static int +! mch_system1(char *cmd, int options) + { + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +--- 4628,4638 ---- + else + return mch_system_classic(cmd, options); + } + #else + + # ifdef FEAT_MBYTE + static int +! mch_system(char *cmd, int options) + { + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +*************** +*** 4605,4649 **** + return system(cmd); + } + # else +! # define mch_system1(c, o) system(c) + # endif + +- static int +- mch_system(char *cmd, int options) +- { +- int ret; +- HANDLE hTemp = INVALID_HANDLE_VALUE; +- +- /* +- * Call DuplicateHandle before executing an external program, because msys +- * and msys2's programs will call CreateConsoleScreenBuffer and +- * CloseHandle. CreateConsoleScreenBuffer returns the same handle which +- * created by vim. This causes a crash. This workaround is required on +- * Windows7. +- */ +- if (is_win7 +- && g_fTermcapMode +- && DuplicateHandle( +- GetCurrentProcess(), +- g_hConOut, +- GetCurrentProcess(), +- &hTemp, +- 0, +- TRUE, +- DUPLICATE_SAME_ACCESS)) +- SetConsoleActiveScreenBuffer(hTemp); +- +- ret = mch_system1(cmd, options); +- +- if (hTemp != INVALID_HANDLE_VALUE) +- { +- SetConsoleActiveScreenBuffer(g_hConOut); +- CloseHandle(hTemp); +- } +- +- return ret; +- } +- + #endif + + /* +--- 4647,4655 ---- + return system(cmd); + } + # else +! # define mch_system(c, o) system(c) + # endif + + #endif + + /* +*************** +*** 4973,4980 **** + * screen buffer, and resize the buffer to match the current window + * size. We will use this as the size of our editing environment. + */ +- g_hConOut = g_cbTermcap.handle; +- SetConsoleActiveScreenBuffer(g_hConOut); + ClearConsoleBuffer(g_attrCurrent); + ResizeConBufAndWindow(g_hConOut, Columns, Rows); + } +--- 4979,4984 ---- +*************** +*** 5018,5024 **** +--- 5022,5032 ---- + cmodein &= ~(ENABLE_MOUSE_INPUT | ENABLE_WINDOW_INPUT); + SetConsoleMode(g_hConIn, cmodein); + ++ #ifdef FEAT_RESTORE_ORIG_SCREEN ++ cb = exiting ? &g_cbOrig : &g_cbNonTermcap; ++ #else + cb = &g_cbNonTermcap; ++ #endif + RestoreConsoleBuffer(cb, p_rs); + SetConsoleCursorInfo(g_hConOut, &g_cci); + +*** ../vim-7.4.901/src/version.c 2015-10-30 14:23:29.158200567 +0100 +--- src/version.c 2015-10-30 16:45:09.697887553 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 902, + /**/ + +-- +Q: Should I clean my house or work on Vim? +A: Whatever contains more bugs. + + /// 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 /// From d7795642cc44f5248c28545f9c2f949ed5622186 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 31 Oct 2015 11:35:38 +0100 Subject: [PATCH 0410/1407] - patchlevel 902 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index bae6818c..ab5fd11a 100644 --- a/README.patches +++ b/README.patches @@ -922,3 +922,5 @@ Individual patches for Vim 7.4: 1419 7.4.898 the 'fixendofline' option is set on with ":edit" 4930 7.4.899 README file is not optimal 2100 7.4.900 (after 7.4.899) README file can still be improved + 2150 7.4.901 BufLeave autocommand an corrupt undo + 13294 7.4.902 problems with using the MS-Windows console diff --git a/vim.spec b/vim.spec index 515c0b2f..b812698c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 900 +%define patchlevel 902 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -947,6 +947,8 @@ Patch897: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.897 Patch898: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.898 Patch899: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.899 Patch900: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.900 +Patch901: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.901 +Patch902: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.902 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1999,6 +2001,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch898 -p0 %patch899 -p0 %patch900 -p0 +%patch901 -p0 +%patch902 -p0 # install spell files %if %{withvimspell} @@ -2561,6 +2565,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Oct 31 2015 Karsten Hopp 7.4.902-1 +- patchlevel 902 + * Mon Oct 26 2015 Karsten Hopp 7.4.900-1 - patchlevel 900 From ccfa150d48faac8622afbc508d55e8611c3f4106 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 2 Nov 2015 11:20:04 +0100 Subject: [PATCH 0411/1407] - patchlevel 903 --- 7.4.903 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.903 diff --git a/7.4.903 b/7.4.903 new file mode 100644 index 00000000..ebc44937 --- /dev/null +++ b/7.4.903 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.903 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.903 +Problem: MS-Windows: When 'encoding' differs from the current code page, + expandinig wildcards may cause illegal memory access. +Solution: Allocate a longer buffer. (Ken Takata) +Files: src/misc1.c + + +*** ../vim-7.4.902/src/misc1.c 2015-10-13 16:13:33.456731872 +0200 +--- src/misc1.c 2015-10-31 15:27:59.450227298 +0100 +*************** +*** 9940,9947 **** + return 0; + } + +! /* make room for file name */ +! buf = alloc((int)STRLEN(path) + BASENAMELEN + 5); + if (buf == NULL) + return 0; + +--- 9940,9948 ---- + return 0; + } + +! /* Make room for file name. When doing encoding conversion the actual +! * length may be quite a bit longer, thus use the maximum possible length. */ +! buf = alloc((int)MAXPATHL); + if (buf == NULL) + return 0; + +*** ../vim-7.4.902/src/version.c 2015-10-30 16:46:50.504694378 +0100 +--- src/version.c 2015-10-31 15:31:15.079927177 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 903, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +65. The last time you looked at the clock it was 11:30pm, and in what + seems like only a few seconds later, your sister runs past you to + catch her 7am school bus. + + /// 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 /// From 0516cb27e5da830d213f8df2a98703c7f71e8a8e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 2 Nov 2015 11:20:04 +0100 Subject: [PATCH 0412/1407] - patchlevel 903 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index ab5fd11a..ff3711f5 100644 --- a/README.patches +++ b/README.patches @@ -924,3 +924,4 @@ Individual patches for Vim 7.4: 2100 7.4.900 (after 7.4.899) README file can still be improved 2150 7.4.901 BufLeave autocommand an corrupt undo 13294 7.4.902 problems with using the MS-Windows console + 1820 7.4.903 MS-Windows: expandinig wildcards may cause bad memory access diff --git a/vim.spec b/vim.spec index b812698c..a4431a16 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 902 +%define patchlevel 903 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -949,6 +949,7 @@ Patch899: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.899 Patch900: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.900 Patch901: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.901 Patch902: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.902 +Patch903: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.903 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -2003,6 +2004,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch900 -p0 %patch901 -p0 %patch902 -p0 +%patch903 -p0 # install spell files %if %{withvimspell} @@ -2565,6 +2567,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Nov 02 2015 Karsten Hopp 7.4.903-1 +- patchlevel 903 + * Sat Oct 31 2015 Karsten Hopp 7.4.902-1 - patchlevel 902 From 9d61f61dd64d8b371bd17183bd15c1c34882e189 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Nov 2015 11:20:04 +0100 Subject: [PATCH 0413/1407] - patchlevel 904 --- 7.4.904 | 251 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 251 insertions(+) create mode 100644 7.4.904 diff --git a/7.4.904 b/7.4.904 new file mode 100644 index 00000000..611b9bdc --- /dev/null +++ b/7.4.904 @@ -0,0 +1,251 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.904 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.904 +Problem: Vim does not provide .desktop files. +Solution: Include and install .desktop files. (James McCoy, closes #455) +Files: Filelist, runtime/vim.desktop, runtime/gvim.desktop, src/Makefile + + +*** ../vim-7.4.903/Filelist 2015-09-15 19:17:51.990768865 +0200 +--- Filelist 2015-11-02 12:47:17.827018004 +0100 +*************** +*** 584,589 **** +--- 584,591 ---- + runtime/vim32x32.xpm \ + runtime/vim48x48.png \ + runtime/vim48x48.xpm \ ++ runtime/gvim.desktop \ ++ runtime/vim.desktop \ + + # Unix and DOS runtime without CR-LF translation + RT_UNIX_DOS_BIN = \ +*** ../vim-7.4.903/runtime/vim.desktop 2015-11-02 12:50:22.500853811 +0100 +--- runtime/vim.desktop 2015-11-02 12:43:16.581844811 +0100 +*************** +*** 0 **** +--- 1,80 ---- ++ [Desktop Entry] ++ Name=Vim ++ GenericName=Text Editor ++ GenericName[de]=Texteditor ++ Comment=Edit text files ++ Comment[af]=Redigeer tekslêers ++ Comment[am]=የጽሑá á‹á‹­áˆŽá‰½ ያስተካክሉ ++ Comment[ar]=حرّر Ù…Ù„ÙØ§Øª نصية ++ Comment[az]=MÉ™tn fayllarını redaktÉ™ edin ++ Comment[be]=РÑдагаваньне Ñ‚ÑкÑтавых файлаў ++ Comment[bg]=Редактиране на текÑтови файлове ++ Comment[bn]=টেকà§à¦¸à§à¦Ÿ ফাইল à¦à¦¡à¦¿à¦Ÿ করà§à¦¨ ++ Comment[bs]=Izmijeni tekstualne datoteke ++ Comment[ca]=Edita fitxers de text ++ Comment[cs]=Úprava textových souborů ++ Comment[cy]=Golygu ffeiliau testun ++ Comment[da]=Redigér tekstfiler ++ Comment[de]=Textdateien bearbeiten ++ Comment[el]=ΕπεξεÏγασία αÏχείων κειμένου ++ Comment[en_CA]=Edit text files ++ Comment[en_GB]=Edit text files ++ Comment[es]=Edita archivos de texto ++ Comment[et]=Redigeeri tekstifaile ++ Comment[eu]=Editatu testu-fitxategiak ++ Comment[fa]=ویرایش پرونده‌های متنی ++ Comment[fi]=Muokkaa tekstitiedostoja ++ Comment[fr]=Édite des fichiers texte ++ Comment[ga]=Eagar comhad Téacs ++ Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો ++ Comment[he]=ערוך קבצי טקסט ++ Comment[hi]=पाठ फ़ाइलें संपादित करें ++ Comment[hr]=UreÄ‘ivanje tekstualne datoteke ++ Comment[hu]=Szövegfájlok szerkesztése ++ Comment[id]=Edit file teks ++ Comment[it]=Modifica file di testo ++ Comment[ja]=テキストファイルを編集ã—ã¾ã™ ++ Comment[kn]=ಪಠà³à²¯ ಕಡತಗಳನà³à²¨à³ ಸಂಪಾದಿಸೠ++ Comment[ko]=í…스트 파ì¼ì„ 편집합니다 ++ Comment[lt]=Redaguoti tekstines bylas ++ Comment[lv]=Rediģēt teksta failus ++ Comment[mk]=Уреди текÑтуални фајлови ++ Comment[ml]=വാചക രചനകളൠതിരàµà´¤àµà´¤àµà´• ++ Comment[mn]=ТекÑÑ‚ файл боловÑруулах ++ Comment[mr]=गदà¥à¤¯ फाइल संपादित करा ++ Comment[ms]=Edit fail teks ++ Comment[nb]=Rediger tekstfiler ++ Comment[ne]=पाठ फाइललाई संशोधन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ++ Comment[nl]=Tekstbestanden bewerken ++ Comment[nn]=Rediger tekstfiler ++ Comment[no]=Rediger tekstfiler ++ Comment[or]=ପାଠà­à¬¯ ଫାଇଲଗà­à¬¡à¬¼à¬¿à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­ ++ Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ ++ Comment[pl]=Edytor plików tekstowych ++ Comment[pt]=Editar ficheiros de texto ++ Comment[pt_BR]=Edite arquivos de texto ++ Comment[ro]=Editare fiÅŸiere text ++ Comment[ru]=Редактор текÑтовых файлов ++ Comment[sk]=Úprava textových súborov ++ Comment[sl]=Urejanje datotek z besedili ++ Comment[sq]=Përpuno files teksti ++ Comment[sr]=Измени текÑтуалне датотеке ++ Comment[sr@Latn]=Izmeni tekstualne datoteke ++ Comment[sv]=Redigera textfiler ++ Comment[ta]=உரை கோபà¯à®ªà¯à®•ளை தொகà¯à®•à¯à®•வà¯à®®à¯ ++ Comment[th]=à¹à¸à¹‰à¹„ขà¹à¸Ÿà¹‰à¸¡à¸‚้อความ ++ Comment[tk]=Metin faýllary editle ++ Comment[tr]=Metin dosyalarını düzenle ++ Comment[uk]=Редактор текÑтових файлів ++ Comment[vi]=Soạn thảo tập tin văn bản ++ Comment[wa]=Asspougnî des fitchîs tecses ++ Comment[zh_CN]=编辑文本文件 ++ Comment[zh_TW]=編輯文字檔 ++ TryExec=vim ++ Exec=vim %F ++ Terminal=true ++ Type=Application ++ Icon=gvim ++ Categories=Utility;TextEditor; ++ StartupNotify=false ++ MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; +*** ../vim-7.4.903/runtime/gvim.desktop 2015-11-02 12:50:22.504853764 +0100 +--- runtime/gvim.desktop 2015-11-02 12:43:16.581844811 +0100 +*************** +*** 0 **** +--- 1,80 ---- ++ [Desktop Entry] ++ Name=GVim ++ GenericName=Text Editor ++ GenericName[de]=Texteditor ++ Comment=Edit text files ++ Comment[af]=Redigeer tekslêers ++ Comment[am]=የጽሑá á‹á‹­áˆŽá‰½ ያስተካክሉ ++ Comment[ar]=حرّر Ù…Ù„ÙØ§Øª نصية ++ Comment[az]=MÉ™tn fayllarını redaktÉ™ edin ++ Comment[be]=РÑдагаваньне Ñ‚ÑкÑтавых файлаў ++ Comment[bg]=Редактиране на текÑтови файлове ++ Comment[bn]=টেকà§à¦¸à§à¦Ÿ ফাইল à¦à¦¡à¦¿à¦Ÿ করà§à¦¨ ++ Comment[bs]=Izmijeni tekstualne datoteke ++ Comment[ca]=Edita fitxers de text ++ Comment[cs]=Úprava textových souborů ++ Comment[cy]=Golygu ffeiliau testun ++ Comment[da]=Redigér tekstfiler ++ Comment[de]=Textdateien bearbeiten ++ Comment[el]=ΕπεξεÏγασία αÏχείων κειμένου ++ Comment[en_CA]=Edit text files ++ Comment[en_GB]=Edit text files ++ Comment[es]=Edita archivos de texto ++ Comment[et]=Redigeeri tekstifaile ++ Comment[eu]=Editatu testu-fitxategiak ++ Comment[fa]=ویرایش پرونده‌های متنی ++ Comment[fi]=Muokkaa tekstitiedostoja ++ Comment[fr]=Édite des fichiers texte ++ Comment[ga]=Eagar comhad Téacs ++ Comment[gu]=લખાણ ફાઇલોમાં ફેરફાર કરો ++ Comment[he]=ערוך קבצי טקסט ++ Comment[hi]=पाठ फ़ाइलें संपादित करें ++ Comment[hr]=UreÄ‘ivanje tekstualne datoteke ++ Comment[hu]=Szövegfájlok szerkesztése ++ Comment[id]=Edit file teks ++ Comment[it]=Modifica file di testo ++ Comment[ja]=テキストファイルを編集ã—ã¾ã™ ++ Comment[kn]=ಪಠà³à²¯ ಕಡತಗಳನà³à²¨à³ ಸಂಪಾದಿಸೠ++ Comment[ko]=í…스트 파ì¼ì„ 편집합니다 ++ Comment[lt]=Redaguoti tekstines bylas ++ Comment[lv]=Rediģēt teksta failus ++ Comment[mk]=Уреди текÑтуални фајлови ++ Comment[ml]=വാചക രചനകളൠതിരàµà´¤àµà´¤àµà´• ++ Comment[mn]=ТекÑÑ‚ файл боловÑруулах ++ Comment[mr]=गदà¥à¤¯ फाइल संपादित करा ++ Comment[ms]=Edit fail teks ++ Comment[nb]=Rediger tekstfiler ++ Comment[ne]=पाठ फाइललाई संशोधन गरà¥à¤¨à¥à¤¹à¥‹à¤¸à¥ ++ Comment[nl]=Tekstbestanden bewerken ++ Comment[nn]=Rediger tekstfiler ++ Comment[no]=Rediger tekstfiler ++ Comment[or]=ପାଠà­à¬¯ ଫାଇଲଗà­à¬¡à¬¼à¬¿à¬•ୠସମà­à¬ªà¬¾à¬¦à¬¨ କରନà­à¬¤à­ ++ Comment[pa]=ਪਾਠ ਫਾਇਲਾਂ ਸੰਪਾਦਨ ++ Comment[pl]=Edytor plików tekstowych ++ Comment[pt]=Editar ficheiros de texto ++ Comment[pt_BR]=Edite arquivos de texto ++ Comment[ro]=Editare fiÅŸiere text ++ Comment[ru]=Редактор текÑтовых файлов ++ Comment[sk]=Úprava textových súborov ++ Comment[sl]=Urejanje datotek z besedili ++ Comment[sq]=Përpuno files teksti ++ Comment[sr]=Измени текÑтуалне датотеке ++ Comment[sr@Latn]=Izmeni tekstualne datoteke ++ Comment[sv]=Redigera textfiler ++ Comment[ta]=உரை கோபà¯à®ªà¯à®•ளை தொகà¯à®•à¯à®•வà¯à®®à¯ ++ Comment[th]=à¹à¸à¹‰à¹„ขà¹à¸Ÿà¹‰à¸¡à¸‚้อความ ++ Comment[tk]=Metin faýllary editle ++ Comment[tr]=Metin dosyalarını düzenle ++ Comment[uk]=Редактор текÑтових файлів ++ Comment[vi]=Soạn thảo tập tin văn bản ++ Comment[wa]=Asspougnî des fitchîs tecses ++ Comment[zh_CN]=编辑文本文件 ++ Comment[zh_TW]=編輯文字檔 ++ TryExec=gvim ++ Exec=gvim -f %F ++ Terminal=false ++ Type=Application ++ Icon=gvim ++ Categories=Utility;TextEditor; ++ StartupNotify=true ++ MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; +*** ../vim-7.4.903/src/Makefile 2015-08-18 13:48:49.831988811 +0200 +--- src/Makefile 2015-11-02 12:49:43.537310437 +0100 +*************** +*** 1905,1914 **** +--- 1905,1916 ---- + test_autocmd_option \ + test_autoformat_join \ + test_breakindent \ ++ test_cdo \ + test_changelist \ + test_charsearch \ + test_close_count \ + test_command_count \ ++ test_comparators \ + test_erasebackword \ + test_eval \ + test_fixeol \ +*************** +*** 2225,2231 **** + -a ! -f $(ICON16PATH)/gvim.png; then \ + $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \ + fi +! + + $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE): + @echo Runtime files not found. +--- 2227,2234 ---- + -a ! -f $(ICON16PATH)/gvim.png; then \ + $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \ + fi +! $(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop $(SCRIPTSOURCE)/gvim.desktop \ +! $(DESTDIR)$(DATADIR)/applications + + $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE): + @echo Runtime files not found. +*** ../vim-7.4.903/src/version.c 2015-10-31 15:32:48.182832539 +0100 +--- src/version.c 2015-11-02 12:45:50.164045239 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 904, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +76. Your ISP regards you as a business partner rather than as a customer. + + /// 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 /// From 16e164f86b8be972f150908108d3ed0a13546b1e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Nov 2015 11:20:04 +0100 Subject: [PATCH 0414/1407] - patchlevel 905 --- 7.4.905 | 235 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 7.4.905 diff --git a/7.4.905 b/7.4.905 new file mode 100644 index 00000000..2233b748 --- /dev/null +++ b/7.4.905 @@ -0,0 +1,235 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.905 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.905 +Problem: Python interface can produce error "vim.message' object has no + attribute 'isatty'". +Solution: Add dummy isatty(), readable(), etc. (closes #464) +Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, + src/testdir/test87.in, src/testdir/test87.ok + + +*** ../vim-7.4.904/src/if_py_both.h 2015-02-10 18:41:53.006111926 +0100 +--- src/if_py_both.h 2015-11-02 13:21:24.911033469 +0100 +*************** +*** 465,484 **** + } + + static PyObject * +! OutputFlush(PyObject *self UNUSED) + { + /* do nothing */ + Py_INCREF(Py_None); + return Py_None; + } + + /***************/ + + static struct PyMethodDef OutputMethods[] = { + /* name, function, calling, doc */ + {"write", (PyCFunction)OutputWrite, METH_O, ""}, + {"writelines", (PyCFunction)OutputWritelines, METH_O, ""}, +! {"flush", (PyCFunction)OutputFlush, METH_NOARGS, ""}, + {"__dir__", (PyCFunction)OutputDir, METH_NOARGS, ""}, + { NULL, NULL, 0, NULL} + }; +--- 465,505 ---- + } + + static PyObject * +! AlwaysNone(PyObject *self UNUSED) + { + /* do nothing */ + Py_INCREF(Py_None); + return Py_None; + } + ++ static PyObject * ++ AlwaysFalse(PyObject *self UNUSED) ++ { ++ /* do nothing */ ++ Py_INCREF(Py_False); ++ return Py_False; ++ } ++ ++ static PyObject * ++ AlwaysTrue(PyObject *self UNUSED) ++ { ++ /* do nothing */ ++ Py_INCREF(Py_True); ++ return Py_True; ++ } ++ + /***************/ + + static struct PyMethodDef OutputMethods[] = { + /* name, function, calling, doc */ + {"write", (PyCFunction)OutputWrite, METH_O, ""}, + {"writelines", (PyCFunction)OutputWritelines, METH_O, ""}, +! {"flush", (PyCFunction)AlwaysNone, METH_NOARGS, ""}, +! {"close", (PyCFunction)AlwaysNone, METH_NOARGS, ""}, +! {"isatty", (PyCFunction)AlwaysFalse, METH_NOARGS, ""}, +! {"readable", (PyCFunction)AlwaysFalse, METH_NOARGS, ""}, +! {"seekable", (PyCFunction)AlwaysFalse, METH_NOARGS, ""}, +! {"writable", (PyCFunction)AlwaysTrue, METH_NOARGS, ""}, + {"__dir__", (PyCFunction)OutputDir, METH_NOARGS, ""}, + { NULL, NULL, 0, NULL} + }; +*** ../vim-7.4.904/src/testdir/test86.in 2014-09-29 18:08:54.587952270 +0200 +--- src/testdir/test86.in 2015-11-02 13:19:04.276680955 +0100 +*************** +*** 1094,1101 **** +--- 1094,1113 ---- + ee('del sys.stdout.softspace') + number_test('sys.stdout.softspace = %s', unsigned=True) + number_test('sys.stderr.softspace = %s', unsigned=True) ++ ee('assert sys.stdout.isatty()==False') ++ ee('assert sys.stdout.seekable()==False') ++ ee('sys.stdout.close()') ++ ee('sys.stdout.flush()') ++ ee('assert sys.stderr.isatty()==False') ++ ee('assert sys.stderr.seekable()==False') ++ ee('sys.stderr.close()') ++ ee('sys.stderr.flush()') + ee('sys.stdout.attr = None') + cb.append(">> OutputWrite") ++ ee('assert sys.stdout.writable()==True') ++ ee('assert sys.stdout.readable()==False') ++ ee('assert sys.stderr.writable()==True') ++ ee('assert sys.stderr.readable()==False') + ee('sys.stdout.write(None)') + cb.append(">> OutputWriteLines") + ee('sys.stdout.writelines(None)') +*** ../vim-7.4.904/src/testdir/test86.ok 2014-03-12 15:26:36.428714415 +0100 +--- src/testdir/test86.ok 2015-11-02 13:19:04.280680909 +0100 +*************** +*** 447,453 **** + dictionary:__dir__,__members__,get,has_key,items,keys,locked,pop,popitem,scope,update,values + list:__dir__,__members__,extend,locked + function:__dir__,__members__,softspace +! output:__dir__,__members__,flush,softspace,write,writelines + {} + {'a': 1} + {'a': 1} +--- 447,453 ---- + dictionary:__dir__,__members__,get,has_key,items,keys,locked,pop,popitem,scope,update,values + list:__dir__,__members__,extend,locked + function:__dir__,__members__,softspace +! output:__dir__,__members__,close,flush,isatty,readable,seekable,softspace,writable,write,writelines + {} + {'a': 1} + {'a': 1} +*************** +*** 488,495 **** +--- 488,507 ---- + sys.stderr.softspace = None:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',) + sys.stderr.softspace = -1:ValueError:('number must be greater or equal to zero',) + <<< Finished ++ assert sys.stdout.isatty()==False:NOT FAILED ++ assert sys.stdout.seekable()==False:NOT FAILED ++ sys.stdout.close():NOT FAILED ++ sys.stdout.flush():NOT FAILED ++ assert sys.stderr.isatty()==False:NOT FAILED ++ assert sys.stderr.seekable()==False:NOT FAILED ++ sys.stderr.close():NOT FAILED ++ sys.stderr.flush():NOT FAILED + sys.stdout.attr = None:AttributeError:('invalid attribute: attr',) + >> OutputWrite ++ assert sys.stdout.writable()==True:NOT FAILED ++ assert sys.stdout.readable()==False:NOT FAILED ++ assert sys.stderr.writable()==True:NOT FAILED ++ assert sys.stderr.readable()==False:NOT FAILED + sys.stdout.write(None):TypeError:('coercing to Unicode: need string or buffer, NoneType found',) + >> OutputWriteLines + sys.stdout.writelines(None):TypeError:("'NoneType' object is not iterable",) +*** ../vim-7.4.904/src/testdir/test87.in 2014-09-29 18:08:54.591952271 +0200 +--- src/testdir/test87.in 2015-11-02 13:19:04.280680909 +0100 +*************** +*** 1071,1078 **** +--- 1071,1090 ---- + ee('del sys.stdout.softspace') + number_test('sys.stdout.softspace = %s', unsigned=True) + number_test('sys.stderr.softspace = %s', unsigned=True) ++ ee('assert sys.stdout.isatty()==False') ++ ee('assert sys.stdout.seekable()==False') ++ ee('sys.stdout.close()') ++ ee('sys.stdout.flush()') ++ ee('assert sys.stderr.isatty()==False') ++ ee('assert sys.stderr.seekable()==False') ++ ee('sys.stderr.close()') ++ ee('sys.stderr.flush()') + ee('sys.stdout.attr = None') + cb.append(">> OutputWrite") ++ ee('assert sys.stdout.writable()==True') ++ ee('assert sys.stdout.readable()==False') ++ ee('assert sys.stderr.writable()==True') ++ ee('assert sys.stderr.readable()==False') + ee('sys.stdout.write(None)') + cb.append(">> OutputWriteLines") + ee('sys.stdout.writelines(None)') +*** ../vim-7.4.904/src/testdir/test87.ok 2014-03-12 15:26:36.432714415 +0100 +--- src/testdir/test87.ok 2015-11-02 13:19:04.280680909 +0100 +*************** +*** 447,453 **** + dictionary:__dir__,get,has_key,items,keys,locked,pop,popitem,scope,update,values + list:__dir__,extend,locked + function:__dir__,softspace +! output:__dir__,flush,softspace,write,writelines + {} + {'a': 1} + {'a': 1} +--- 447,453 ---- + dictionary:__dir__,get,has_key,items,keys,locked,pop,popitem,scope,update,values + list:__dir__,extend,locked + function:__dir__,softspace +! output:__dir__,close,flush,isatty,readable,seekable,softspace,writable,write,writelines + {} + {'a': 1} + {'a': 1} +*************** +*** 488,495 **** +--- 488,507 ---- + sys.stderr.softspace = None:(, TypeError('expected int() or something supporting coercing to int(), but got NoneType',)) + sys.stderr.softspace = -1:(, ValueError('number must be greater or equal to zero',)) + <<< Finished ++ assert sys.stdout.isatty()==False:NOT FAILED ++ assert sys.stdout.seekable()==False:NOT FAILED ++ sys.stdout.close():NOT FAILED ++ sys.stdout.flush():NOT FAILED ++ assert sys.stderr.isatty()==False:NOT FAILED ++ assert sys.stderr.seekable()==False:NOT FAILED ++ sys.stderr.close():NOT FAILED ++ sys.stderr.flush():NOT FAILED + sys.stdout.attr = None:(, AttributeError('invalid attribute: attr',)) + >> OutputWrite ++ assert sys.stdout.writable()==True:NOT FAILED ++ assert sys.stdout.readable()==False:NOT FAILED ++ assert sys.stderr.writable()==True:NOT FAILED ++ assert sys.stderr.readable()==False:NOT FAILED + sys.stdout.write(None):(, TypeError("Can't convert 'NoneType' object to str implicitly",)) + >> OutputWriteLines + sys.stdout.writelines(None):(, TypeError("'NoneType' object is not iterable",)) +*** ../vim-7.4.904/src/version.c 2015-11-02 12:50:49.760534351 +0100 +--- src/version.c 2015-11-02 13:27:03.923061723 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 905, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +78. You find yourself dialing IP numbers on the phone. + + /// 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 /// From eea98283a3ca7d1b06b2762c37e4e72e21329ab6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Nov 2015 11:20:07 +0100 Subject: [PATCH 0415/1407] - patchlevel 906 --- 7.4.906 | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 7.4.906 diff --git a/7.4.906 b/7.4.906 new file mode 100644 index 00000000..e3d7798e --- /dev/null +++ b/7.4.906 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.906 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.906 +Problem: On MS-Windows the viminfo file is (always) given the hidden + attribute. (raulnac) +Solution: Check the hidden attribute in a different way. (Ken Takata) +Files: src/ex_cmds.c, src/os_win32.c, src/os_win32.pro + + +*** ../vim-7.4.905/src/ex_cmds.c 2015-08-11 19:13:55.134175736 +0200 +--- src/ex_cmds.c 2015-11-02 14:32:36.072850890 +0100 +*************** +*** 1795,1801 **** + struct stat st_old; /* mch_stat() of existing viminfo file */ + #endif + #ifdef WIN3264 +! long perm = -1; + #endif + + if (no_viminfo()) +--- 1795,1801 ---- + struct stat st_old; /* mch_stat() of existing viminfo file */ + #endif + #ifdef WIN3264 +! int hidden = FALSE; + #endif + + if (no_viminfo()) +*************** +*** 1858,1864 **** + #endif + #ifdef WIN3264 + /* Get the file attributes of the existing viminfo file. */ +! perm = mch_getperm(fname); + #endif + + /* +--- 1858,1864 ---- + #endif + #ifdef WIN3264 + /* Get the file attributes of the existing viminfo file. */ +! hidden = mch_ishidden(fname); + #endif + + /* +*************** +*** 2033,2039 **** + + #ifdef WIN3264 + /* If the viminfo file was hidden then also hide the new file. */ +! if (perm > 0 && (perm & FILE_ATTRIBUTE_HIDDEN)) + mch_hide(fname); + #endif + } +--- 2033,2039 ---- + + #ifdef WIN3264 + /* If the viminfo file was hidden then also hide the new file. */ +! if (hidden) + mch_hide(fname); + #endif + } +*** ../vim-7.4.905/src/os_win32.c 2015-10-30 16:46:50.504694378 +0100 +--- src/os_win32.c 2015-11-02 14:43:50.916893452 +0100 +*************** +*** 3098,3103 **** +--- 3098,3117 ---- + } + + /* ++ * Return TRUE if file "name" exists and is hidden. ++ */ ++ int ++ mch_ishidden(char_u *name) ++ { ++ int f = win32_getattrs(name); ++ ++ if (f == -1) ++ return FALSE; /* file does not exist at all */ ++ ++ return (f & FILE_ATTRIBUTE_HIDDEN) != 0; ++ } ++ ++ /* + * return TRUE if "name" is a directory + * return FALSE if "name" is not a directory or upon error + */ +*** ../vim-7.4.905/src/version.c 2015-11-02 13:28:43.577894118 +0100 +--- src/version.c 2015-11-02 14:35:23.938871147 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 906, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +81. At social functions you introduce your husband as "my domain server." + + /// 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 /// From 6ee44b66c6e2870f0da758d4b1d28c9b86e71417 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Nov 2015 11:20:08 +0100 Subject: [PATCH 0416/1407] - patchlevel 907 --- 7.4.907 | 510 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 510 insertions(+) create mode 100644 7.4.907 diff --git a/7.4.907 b/7.4.907 new file mode 100644 index 00000000..0b857ade --- /dev/null +++ b/7.4.907 @@ -0,0 +1,510 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.907 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.907 +Problem: Libraries for dynamically loading interfaces can only be defined + at compile time. +Solution: Add options to specify the dll names. (Kazuki Sakamoto, + closes #452) +Files: runtime/doc/if_lua.txt, runtime/doc/if_perl.txt, + runtime/doc/if_pyth.txt, runtime/doc/if_ruby.txt, + runtime/doc/options.txt, src/if_lua.c, src/if_perl.xs, + src/if_python.c, src/if_python3.c, src/if_ruby.c, src/option.c, + src/option.h + + +*** ../vim-7.4.906/runtime/doc/if_lua.txt 2013-08-10 13:24:55.000000000 +0200 +--- runtime/doc/if_lua.txt 2015-11-02 15:10:05.518333171 +0100 +*************** +*** 14,19 **** +--- 14,20 ---- + 6. Buffer userdata |lua-buffer| + 7. Window userdata |lua-window| + 8. The luaeval function |lua-luaeval| ++ 9. Dynamic loading |lua-dynamic| + + {Vi does not have any of these commands} + +*************** +*** 400,403 **** +--- 401,423 ---- + + + ============================================================================== ++ 9. Dynamic loading *lua-dynamic* ++ ++ On MS-Windows and Unix the Lua library can be loaded dynamically. The ++ |:version| output then includes |+lua/dyn|. ++ ++ This means that Vim will search for the Lua DLL or shared library file only ++ when needed. When you don't use the Lua interface you don't need it, thus ++ you can use Vim without this file. ++ ++ On MS-Windows to use the Lua interface the Lua DLL must be in your search path. ++ In a console window type "path" to see what directories are used. The version ++ of the DLL must match the Lua version Vim was compiled with. ++ ++ On Unix the 'luadll' option can be used to specify the Lua shared library file ++ instead of DYNAMIC_LUA_DLL file what was specified at compile time. The ++ version of the shared library must match the Lua version Vim was compiled with. ++ ++ ++ ============================================================================== + vim:tw=78:ts=8:noet:ft=help:norl: +*** ../vim-7.4.906/runtime/doc/if_perl.txt 2013-08-10 13:24:55.000000000 +0200 +--- runtime/doc/if_perl.txt 2015-11-02 15:10:05.518333171 +0100 +*************** +*** 290,294 **** +--- 290,302 ---- + Currently the name is "perl512.dll". That is for Perl 5.12. To know for + sure edit "gvim.exe" and search for "perl\d*.dll\c". + ++ ++ Unix ~ ++ ++ The 'perldll' option can be used to specify the Perl shared library file ++ instead of DYNAMIC_PERL_DLL file what was specified at compile time. The ++ version of the shared library must match the Perl version Vim was compiled ++ with. ++ + ============================================================================== + vim:tw=78:ts=8:ft=help:norl: +*** ../vim-7.4.906/runtime/doc/if_pyth.txt 2013-08-10 13:24:55.000000000 +0200 +--- runtime/doc/if_pyth.txt 2015-11-02 15:10:05.518333171 +0100 +*************** +*** 28,34 **** + ============================================================================== + 1. Commands *python-commands* + +! *:python* *:py* *E205* *E263* *E264* + :[range]py[thon] {stmt} + Execute Python statement {stmt}. A simple check if + the `:python` command is working: > +--- 28,34 ---- + ============================================================================== + 1. Commands *python-commands* + +! *:python* *:py* *E263* *E264* *E887* + :[range]py[thon] {stmt} + Execute Python statement {stmt}. A simple check if + the `:python` command is working: > +*************** +*** 679,698 **** + ============================================================================== + 9. Dynamic loading *python-dynamic* + +! On MS-Windows the Python library can be loaded dynamically. The |:version| +! output then includes |+python/dyn|. + +! This means that Vim will search for the Python DLL file only when needed. +! When you don't use the Python interface you don't need it, thus you can use +! Vim without this DLL file. + +! To use the Python interface the Python DLL must be in your search path. In a +! console window type "path" to see what directories are used. + + The name of the DLL must match the Python version Vim was compiled with. + Currently the name is "python24.dll". That is for Python 2.4. To know for + sure edit "gvim.exe" and search for "python\d*.dll\c". + + ============================================================================== + 10. Python 3 *python3* + +--- 679,704 ---- + ============================================================================== + 9. Dynamic loading *python-dynamic* + +! On MS-Windows and Unix the Python library can be loaded dynamically. The +! |:version| output then includes |+python/dyn| or |+python3/dyn|. + +! This means that Vim will search for the Python DLL or shared library file only +! when needed. When you don't use the Python interface you don't need it, thus +! you can use Vim without this file. + +! On MS-Windows to use the Python interface the Python DLL must be in your search +! path. In a console window type "path" to see what directories are used. + + The name of the DLL must match the Python version Vim was compiled with. + Currently the name is "python24.dll". That is for Python 2.4. To know for + sure edit "gvim.exe" and search for "python\d*.dll\c". + ++ On Unix the 'pythondll' or 'python3dll' option can be used to specify the ++ Python shared library file instead of DYNAMIC_PYTHON_DLL or ++ DYNAMIC_PYTHON3_DLL file what were specified at compile time. The version of ++ the shared library must match the Python 2.x or Python 3 version Vim was ++ compiled with. ++ + ============================================================================== + 10. Python 3 *python3* + +*** ../vim-7.4.906/runtime/doc/if_ruby.txt 2013-08-10 13:24:55.000000000 +0200 +--- runtime/doc/if_ruby.txt 2015-11-02 15:10:05.518333171 +0100 +*************** +*** 195,200 **** +--- 199,206 ---- + when needed. When you don't use the Ruby interface you don't need it, thus + you can use Vim even though this library file is not on your system. + ++ MS-Windows ~ ++ + You need to install the right version of Ruby for this to work. You can find + the package to download from: + http://www.garbagecollect.jp/ruby/mswin32/en/download/release.html +*************** +*** 212,216 **** +--- 218,229 ---- + You may also need to rename the include directory name to match the version, + strangely for Ruby 1.9.3 the directory is called 1.9.1. + ++ Unix ~ ++ ++ The 'rubydll' option can be used to specify the Ruby shared library file ++ instead of DYNAMIC_RUBY_DLL file what was specified at compile time. The ++ version of the shared library must match the Ruby version Vim was compiled ++ with. ++ + ============================================================================== + vim:tw=78:ts=8:ft=help:norl: +*** ../vim-7.4.906/runtime/doc/options.txt 2015-09-01 20:31:16.311776122 +0200 +--- runtime/doc/options.txt 2015-11-02 15:10:05.526333077 +0100 +*************** +*** 4831,4836 **** +--- 4847,4863 ---- + Note that using the "-u NONE" and "--noplugin" command line arguments + reset this option. |-u| |--noplugin| + ++ *'luadll'* ++ 'luadll' string (default empty) ++ global ++ {not in Vi} {only for Unix} ++ {only available when compiled with the |+lua/dyn| ++ feature} ++ Specifies the path of the Lua shared library instead of DYNAMIC_LUA_DLL ++ what was specified at compile time. ++ This option cannot be set from a |modeline| or in the |sandbox|, for ++ security reasons. ++ + *'macatsui'* *'nomacatsui'* + 'macatsui' boolean (default on) + global +*************** +*** 5532,5537 **** +--- 5561,5577 ---- + < Replace the ';' with a ':' or whatever separator is used. Note that + this doesn't work when $INCL contains a comma or white space. + ++ *'perldll'* ++ 'perldll' string (default empty) ++ global ++ {not in Vi} {only for Unix} ++ {only available when compiled with the |+perl/dyn| ++ feature} ++ Specifies the path of the Perl shared library instead of ++ DYNAMIC_PERL_DLL what was specified at compile time. ++ This option cannot be set from a |modeline| or in the |sandbox|, for ++ security reasons. ++ + *'preserveindent'* *'pi'* *'nopreserveindent'* *'nopi'* + 'preserveindent' 'pi' boolean (default off) + local to buffer +*************** +*** 5658,5663 **** +--- 5698,5724 ---- + Insert mode completion. When zero as much space as available is used. + |ins-completion-menu|. + ++ *'python3dll'* ++ 'python3dll' string (default empty) ++ global ++ {not in Vi} {only for Unix} ++ {only available when compiled with the |+python3/dyn| ++ feature} ++ Specifies the path of the Python 3 shared library instead of ++ DYNAMIC_PYTHON3_DLL what was specified at compile time. ++ This option cannot be set from a |modeline| or in the |sandbox|, for ++ security reasons. ++ ++ *'pythondll'* ++ 'pythondll' string (default empty) ++ global ++ {not in Vi} {only for Unix} ++ {only available when compiled with the |+python/dyn| ++ feature} ++ Specifies the path of the Python 2.x shared library instead of ++ DYNAMIC_PYTHON_DLL what was specified at compile time. ++ This option cannot be set from a |modeline| or in the |sandbox|, for ++ security reasons. + + *'quoteescape'* *'qe'* + 'quoteescape' 'qe' string (default "\") +*************** +*** 5876,5881 **** +--- 5939,5955 ---- + This is useful for languages such as Hebrew, Arabic and Farsi. + The 'rightleft' option must be set for 'rightleftcmd' to take effect. + ++ *'rubydll'* ++ 'rubydll' string (default empty) ++ global ++ {not in Vi} {only for Unix} ++ {only available when compiled with the |+ruby/dyn| ++ feature} ++ Specifies the path of the Ruby shared library instead of ++ DYNAMIC_RUBY_DLL what was specified at compile time. ++ This option cannot be set from a |modeline| or in the |sandbox|, for ++ security reasons. ++ + *'ruler'* *'ru'* *'noruler'* *'noru'* + 'ruler' 'ru' boolean (default off) + global +*** ../vim-7.4.906/src/if_lua.c 2015-07-21 17:53:11.577527989 +0200 +--- src/if_lua.c 2015-11-02 15:10:05.526333077 +0100 +*************** +*** 402,408 **** + int + lua_enabled(int verbose) + { +! return lua_link_init(DYNAMIC_LUA_DLL, verbose) == OK; + } + + #endif /* DYNAMIC_LUA */ +--- 402,413 ---- + int + lua_enabled(int verbose) + { +! #ifdef WIN3264 +! char *dll = DYNAMIC_LUA_DLL; +! #else +! char *dll = *p_luadll ? (char *)p_luadll : DYNAMIC_LUA_DLL; +! #endif +! return lua_link_init(dll, verbose) == OK; + } + + #endif /* DYNAMIC_LUA */ +*** ../vim-7.4.906/src/if_perl.xs 2015-06-25 16:13:37.779750062 +0200 +--- src/if_perl.xs 2015-11-02 15:10:05.530333030 +0100 +*************** +*** 611,617 **** + perl_enabled(verbose) + int verbose; + { +! return perl_runtime_link_init(DYNAMIC_PERL_DLL, verbose) == OK; + } + #endif /* DYNAMIC_PERL */ + +--- 611,622 ---- + perl_enabled(verbose) + int verbose; + { +! #if WIN3264 +! char *dll = DYNAMIC_PERL_DLL; +! #else +! char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL; +! #endif +! return perl_runtime_link_init(dll, verbose) == OK; + } + #endif /* DYNAMIC_PERL */ + +*** ../vim-7.4.906/src/if_python.c 2015-02-03 12:55:11.140179551 +0100 +--- src/if_python.c 2015-11-02 15:10:05.530333030 +0100 +*************** +*** 732,738 **** + int + python_enabled(int verbose) + { +! return python_runtime_link_init(DYNAMIC_PYTHON_DLL, verbose) == OK; + } + + /* +--- 732,743 ---- + int + python_enabled(int verbose) + { +! #ifdef WIN3264 +! char *dll = DYNAMIC_PYTHON_DLL; +! #else +! char *dll = *p_pydll ? (char *)p_pydll : DYNAMIC_PYTHON_DLL; +! #endif +! return python_runtime_link_init(dll, verbose) == OK; + } + + /* +*** ../vim-7.4.906/src/if_python3.c 2015-10-07 10:39:49.568914811 +0200 +--- src/if_python3.c 2015-11-02 15:10:05.530333030 +0100 +*************** +*** 686,692 **** + int + python3_enabled(int verbose) + { +! return py3_runtime_link_init(DYNAMIC_PYTHON3_DLL, verbose) == OK; + } + + /* Load the standard Python exceptions - don't import the symbols from the +--- 686,697 ---- + int + python3_enabled(int verbose) + { +! #ifdef WIN3264 +! char *dll = DYNAMIC_PYTHON3_DLL; +! #else +! char *dll = *p_py3dll ? (char *)p_py3dll : DYNAMIC_PYTHON3_DLL; +! #endif +! return py3_runtime_link_init(dll, verbose) == OK; + } + + /* Load the standard Python exceptions - don't import the symbols from the +*** ../vim-7.4.906/src/if_ruby.c 2015-04-21 15:25:26.425488328 +0200 +--- src/if_ruby.c 2015-11-02 15:10:05.530333030 +0100 +*************** +*** 639,645 **** + ruby_enabled(verbose) + int verbose; + { +! return ruby_runtime_link_init(DYNAMIC_RUBY_DLL, verbose) == OK; + } + #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */ + +--- 639,650 ---- + ruby_enabled(verbose) + int verbose; + { +! #ifdef WIN3264 +! char *dll = DYNAMIC_RUBY_DLL; +! #else +! char *dll = *p_rubydll ? (char *)p_rubydll : DYNAMIC_RUBY_DLL; +! #endif +! return ruby_runtime_link_init(dll, verbose) == OK; + } + #endif /* defined(DYNAMIC_RUBY) || defined(PROTO) */ + +*** ../vim-7.4.906/src/option.c 2015-09-15 17:30:35.909682046 +0200 +--- src/option.c 2015-11-02 15:10:05.534332982 +0100 +*************** +*** 1779,1784 **** +--- 1779,1789 ---- + {"loadplugins", "lpl", P_BOOL|P_VI_DEF, + (char_u *)&p_lpl, PV_NONE, + {(char_u *)TRUE, (char_u *)0L} SCRIPTID_INIT}, ++ #if defined(DYNAMIC_LUA) && !defined(WIN3264) ++ {"luadll", NULL, P_STRING|P_VI_DEF|P_SECURE, ++ (char_u *)&p_luadll, PV_NONE, ++ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, ++ #endif + #ifdef FEAT_GUI_MAC + {"macatsui", NULL, P_BOOL|P_VI_DEF|P_RCLR, + (char_u *)&p_macatsui, PV_NONE, +*************** +*** 2014,2019 **** +--- 2019,2029 ---- + # endif + #endif + (char_u *)0L} SCRIPTID_INIT}, ++ #if defined(DYNAMIC_PERL) && !defined(WIN3264) ++ {"perldll", NULL, P_STRING|P_VI_DEF|P_SECURE, ++ (char_u *)&p_perldll, PV_NONE, ++ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, ++ #endif + {"preserveindent", "pi", P_BOOL|P_VI_DEF|P_VIM, + (char_u *)&p_pi, PV_PI, + {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, +*************** +*** 2119,2124 **** +--- 2129,2144 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)0L, (char_u *)0L} SCRIPTID_INIT}, ++ #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264) ++ {"python3dll", NULL, P_STRING|P_VI_DEF|P_SECURE, ++ (char_u *)&p_py3dll, PV_NONE, ++ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, ++ #endif ++ #if defined(DYNAMIC_PYTHON) && !defined(WIN3264) ++ {"pythondll", NULL, P_STRING|P_VI_DEF|P_SECURE, ++ (char_u *)&p_pydll, PV_NONE, ++ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, ++ #endif + {"quoteescape", "qe", P_STRING|P_ALLOCED|P_VI_DEF, + #ifdef FEAT_TEXTOBJ + (char_u *)&p_qe, PV_QE, +*************** +*** 2192,2197 **** +--- 2212,2222 ---- + {(char_u *)NULL, (char_u *)0L} + #endif + SCRIPTID_INIT}, ++ #if defined(DYNAMIC_RUBY) && !defined(WIN3264) ++ {"rubydll", NULL, P_STRING|P_VI_DEF|P_SECURE, ++ (char_u *)&p_rubydll, PV_NONE, ++ {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, ++ #endif + {"ruler", "ru", P_BOOL|P_VI_DEF|P_VIM|P_RSTAT, + #ifdef FEAT_CMDL_INFO + (char_u *)&p_ru, PV_NONE, +*** ../vim-7.4.906/src/option.h 2015-07-21 17:53:11.585527913 +0200 +--- src/option.h 2015-11-02 15:10:05.534332982 +0100 +*************** +*** 626,631 **** +--- 626,634 ---- + + EXTERN int p_lz; /* 'lazyredraw' */ + EXTERN int p_lpl; /* 'loadplugins' */ ++ #if defined(DYNAMIC_LUA) && !defined(WIN3264) ++ EXTERN char_u *p_luadll; /* 'luadll' */ ++ #endif + #ifdef FEAT_GUI_MAC + EXTERN int p_macatsui; /* 'macatsui' */ + #endif +*************** +*** 682,687 **** +--- 685,699 ---- + #ifdef FEAT_SEARCHPATH + EXTERN char_u *p_cdpath; /* 'cdpath' */ + #endif ++ #if defined(DYNAMIC_PERL) && !defined(WIN3264) ++ EXTERN char_u *p_perldll; /* 'perldll' */ ++ #endif ++ #if defined(DYNAMIC_PYTHON3) && !defined(WIN3264) ++ EXTERN char_u *p_py3dll; /* 'python3dll' */ ++ #endif ++ #if defined(DYNAMIC_PYTHON) && !defined(WIN3264) ++ EXTERN char_u *p_pydll; /* 'pythondll' */ ++ #endif + #ifdef FEAT_RELTIME + EXTERN long p_rdt; /* 'redrawtime' */ + #endif +*************** +*** 701,706 **** +--- 713,721 ---- + EXTERN int p_ari; /* 'allowrevins' */ + EXTERN int p_ri; /* 'revins' */ + #endif ++ #if defined(DYNAMIC_RUBY) && !defined(WIN3264) ++ EXTERN char_u *p_rubydll; /* 'rubydll' */ ++ #endif + #ifdef FEAT_CMDL_INFO + EXTERN int p_ru; /* 'ruler' */ + #endif +*** ../vim-7.4.906/src/version.c 2015-11-02 14:45:12.135936003 +0100 +--- src/version.c 2015-11-02 15:21:12.886459329 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 907, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +82. AT&T names you Customer of the Month for the third consecutive time. + + /// 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 /// From 31d2bf4fe02e264ca5dac321acfc166419922414 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Nov 2015 11:20:11 +0100 Subject: [PATCH 0417/1407] - patchlevel 908 --- 7.4.908 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.908 diff --git a/7.4.908 b/7.4.908 new file mode 100644 index 00000000..5db41163 --- /dev/null +++ b/7.4.908 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.908 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.908 (after 7.4.907) +Problem: Build error with MingW compiler. (Cesar Romani) +Solution: Change #if into #ifdef. +Files: src/if_perl.xs + + +*** ../vim-7.4.907/src/if_perl.xs 2015-11-02 15:27:03.438325506 +0100 +--- src/if_perl.xs 2015-11-02 17:30:13.179498033 +0100 +*************** +*** 611,617 **** + perl_enabled(verbose) + int verbose; + { +! #if WIN3264 + char *dll = DYNAMIC_PERL_DLL; + #else + char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL; +--- 611,617 ---- + perl_enabled(verbose) + int verbose; + { +! #ifdef WIN3264 + char *dll = DYNAMIC_PERL_DLL; + #else + char *dll = *p_perldll ? (char *)p_perldll : DYNAMIC_PERL_DLL; +*** ../vim-7.4.907/src/version.c 2015-11-02 15:27:03.442325459 +0100 +--- src/version.c 2015-11-02 17:35:12.587994312 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 908, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +85. Choice between paying Compuserve bill and paying for kids education + is a no brainer -- although a bit painful for your kids. + + /// 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 /// From 568c1173c835ef6f9513586291c82987c3beb6a9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 3 Nov 2015 11:20:12 +0100 Subject: [PATCH 0418/1407] - patchlevel 908 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index ff3711f5..e690507d 100644 --- a/README.patches +++ b/README.patches @@ -925,3 +925,8 @@ Individual patches for Vim 7.4: 2150 7.4.901 BufLeave autocommand an corrupt undo 13294 7.4.902 problems with using the MS-Windows console 1820 7.4.903 MS-Windows: expandinig wildcards may cause bad memory access + 10391 7.4.904 Vim does not provide .desktop files + 8728 7.4.905 Python interface misses some functions on vim.message + 2927 7.4.906 MS-Windows: viminfo file is (always) given hidden attribute + 17429 7.4.907 dynamically loaded libs can only be defined at compile time + 1639 7.4.908 (after 7.4.907) build error with MingW compiler diff --git a/vim.spec b/vim.spec index a4431a16..882f7b4a 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 903 +%define patchlevel 908 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -950,6 +950,11 @@ Patch900: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.900 Patch901: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.901 Patch902: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.902 Patch903: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.903 +Patch904: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.904 +Patch905: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.905 +Patch906: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.906 +Patch907: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.907 +Patch908: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.908 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -2005,6 +2010,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch901 -p0 %patch902 -p0 %patch903 -p0 +%patch904 -p0 +%patch905 -p0 +%patch906 -p0 +%patch907 -p0 +%patch908 -p0 # install spell files %if %{withvimspell} @@ -2567,6 +2577,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Nov 03 2015 Karsten Hopp 7.4.908-1 +- patchlevel 908 + * Mon Nov 02 2015 Karsten Hopp 7.4.903-1 - patchlevel 903 From 05d83b305a7cc2362186f3c21502c83b8fc6a280 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Nov 2015 11:20:04 +0100 Subject: [PATCH 0419/1407] - patchlevel 909 --- 7.4.909 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.4.909 diff --git a/7.4.909 b/7.4.909 new file mode 100644 index 00000000..fef2dd30 --- /dev/null +++ b/7.4.909 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.909 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.909 (after 7.4.905) +Problem: "make install" fails. +Solution: Only try installing desktop files if the destination directory + exists. +Files: src/Makefile + + +*** ../vim-7.4.908/src/Makefile 2015-11-02 12:50:49.756534398 +0100 +--- src/Makefile 2015-11-03 22:00:24.996063518 +0100 +*************** +*** 2213,2218 **** +--- 2213,2219 ---- + ICON48PATH = $(DESTDIR)$(DATADIR)/icons/hicolor/48x48/apps + ICON32PATH = $(DESTDIR)$(DATADIR)/icons/locolor/32x32/apps + ICON16PATH = $(DESTDIR)$(DATADIR)/icons/locolor/16x16/apps ++ DESKTOPPATH = $(DESTDIR)$(DATADIR)/applications + KDEPATH = $(HOME)/.kde/share/icons + install-icons: + if test -d $(ICON48PATH) -a -w $(ICON48PATH) \ +*************** +*** 2227,2234 **** + -a ! -f $(ICON16PATH)/gvim.png; then \ + $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \ + fi +! $(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop $(SCRIPTSOURCE)/gvim.desktop \ +! $(DESTDIR)$(DATADIR)/applications + + $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE): + @echo Runtime files not found. +--- 2228,2238 ---- + -a ! -f $(ICON16PATH)/gvim.png; then \ + $(INSTALL_DATA) $(SCRIPTSOURCE)/vim16x16.png $(ICON16PATH)/gvim.png; \ + fi +! if test -d $(DESKTOPPATH) -a -w $(DESKTOPPATH); then \ +! $(INSTALL_DATA) $(SCRIPTSOURCE)/vim.desktop \ +! $(SCRIPTSOURCE)/gvim.desktop \ +! $(DESKTOPPATH); \ +! fi + + $(HELPSOURCE)/vim.1 $(MACROSOURCE) $(TOOLSSOURCE): + @echo Runtime files not found. +*** ../vim-7.4.908/src/version.c 2015-11-02 17:35:37.335704679 +0100 +--- src/version.c 2015-11-03 21:56:28.394899507 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 909, + /**/ + +-- +From "know your smileys": + ;-0 Can't find shift key + ,-9 Kann Umschalttaste nicht finden + + /// 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 /// From 82c5248e4561c70c6af034fc057f068530f13ce1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Nov 2015 11:20:04 +0100 Subject: [PATCH 0420/1407] - patchlevel 909 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index e690507d..8919d229 100644 --- a/README.patches +++ b/README.patches @@ -930,3 +930,4 @@ Individual patches for Vim 7.4: 2927 7.4.906 MS-Windows: viminfo file is (always) given hidden attribute 17429 7.4.907 dynamically loaded libs can only be defined at compile time 1639 7.4.908 (after 7.4.907) build error with MingW compiler + 2331 7.4.909 "make install" fails diff --git a/vim.spec b/vim.spec index 882f7b4a..f01042af 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 908 +%define patchlevel 909 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -955,6 +955,7 @@ Patch905: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.905 Patch906: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.906 Patch907: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.907 Patch908: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.908 +Patch909: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.909 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -2015,6 +2016,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch906 -p0 %patch907 -p0 %patch908 -p0 +%patch909 -p0 # install spell files %if %{withvimspell} @@ -2577,6 +2579,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Nov 04 2015 Karsten Hopp 7.4.909-1 +- patchlevel 909 + * Tue Nov 03 2015 Karsten Hopp 7.4.908-1 - patchlevel 908 From e9cd821e44ee9f18c936e1528e4d8165eb81ba21 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Nov 2015 11:39:09 +0100 Subject: [PATCH 0421/1407] update highlight patch --- vim-7.4-checkhl.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 vim-7.4-checkhl.patch diff --git a/vim-7.4-checkhl.patch b/vim-7.4-checkhl.patch new file mode 100644 index 00000000..cccbdbb7 --- /dev/null +++ b/vim-7.4-checkhl.patch @@ -0,0 +1,12 @@ +diff -up vim74/runtime/syntax/spec.vim.kh1 vim74/runtime/syntax/spec.vim +--- vim74/runtime/syntax/spec.vim.kh1 2015-11-04 11:37:16.483417787 +0100 ++++ vim74/runtime/syntax/spec.vim 2015-11-04 11:37:38.033528045 +0100 +@@ -114,7 +114,7 @@ syn region specDescriptionArea matchgrou + syn region specPackageArea matchgroup=specSection start='^%package' end='^%'me=e-1 contains=specPackageOpts,specPreAmble,specComment + + "%% Scripts Section %% +-syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 ++syn region specScriptArea matchgroup=specSection start='^%\(prep\|build\|install\|check\|clean\|pre\|postun\|preun\|post\|posttrans\)\>' skip='^%{\|^%\(define\|patch\d*\|configure\|GNUconfigure\|setup\|find_lang\|makeinstall\|make_install\)\>' end='^%'me=e-1 contains=specSpecialVariables,specVariables,@specCommands,specVariables,shDo,shFor,shCaseEsac,specNoNumberHilite,specCommandOpts,shComment,shIf,specSpecialChar,specMacroIdentifier,specSectionMacroArea,specSectionMacroBracketArea,shOperator,shQuote1,shQuote2 + + "%% Changelog Section %% + syn region specChangelogArea matchgroup=specSection start='^%changelog' end='^%'me=e-1 contains=specEmail,specURL,specWeekday,specMonth,specNumber,specComment,specLicense From 40b389ec84e92a90092bb86f2b82135b4bd3e3f8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 4 Nov 2015 11:53:19 +0100 Subject: [PATCH 0422/1407] remove patches, prepare for update --- 7.4.001 | 489 ---- 7.4.002 | 77 - 7.4.003 | 100 - 7.4.004 | 232 -- 7.4.005 | 48 - 7.4.006 | 66 - 7.4.007 | 95 - 7.4.008 | 71 - 7.4.009 | 64 - 7.4.010 | 79 - 7.4.011 | 100 - 7.4.012 | 202 -- 7.4.013 | 99 - 7.4.014 | 102 - 7.4.015 | 106 - 7.4.016 | 221 -- 7.4.017 | 78 - 7.4.018 | 45 - 7.4.019 | 61 - 7.4.020 | 82 - 7.4.021 | 86 - 7.4.022 | 148 - 7.4.023 | 53 - 7.4.024 | 61 - 7.4.025 | 62 - 7.4.026 | 65 - 7.4.027 | 89 - 7.4.028 | 753 ------ 7.4.029 | 63 - 7.4.030 | 109 - 7.4.031 | 54 - 7.4.032 | 82 - 7.4.033 | 116 - 7.4.034 | 180 -- 7.4.035 | 53 - 7.4.036 | 273 -- 7.4.037 | 130 - 7.4.038 | 116 - 7.4.039 | 217 -- 7.4.040 | 68 - 7.4.041 | 61 - 7.4.042 | 71 - 7.4.043 | 89 - 7.4.044 | 83 - 7.4.045 | 111 - 7.4.046 | 80 - 7.4.047 | 56 - 7.4.048 | 96 - 7.4.049 | 67 - 7.4.050 | 90 - 7.4.051 | 67 - 7.4.052 | 197 -- 7.4.053 | 45 - 7.4.054 | 53 - 7.4.055 | 138 - 7.4.056 | 51 - 7.4.057 | 252 -- 7.4.058 | 67 - 7.4.059 | 53 - 7.4.060 | 71 - 7.4.061 | 144 - 7.4.062 | 87 - 7.4.063 | 105 - 7.4.064 | Bin 5346 -> 0 bytes 7.4.065 | 70 - 7.4.066 | 354 --- 7.4.067 | 126 - 7.4.068 | 131 - 7.4.069 | 2559 ------------------ 7.4.070 | 47 - 7.4.071 | 1302 --------- 7.4.072 | 61 - 7.4.073 | 404 --- 7.4.074 | 67 - 7.4.075 | 290 -- 7.4.076 | 66 - 7.4.077 | 63 - 7.4.078 | 114 - 7.4.079 | 470 ---- 7.4.080 | 52 - 7.4.081 | 52 - 7.4.082 | 344 --- 7.4.083 | 136 - 7.4.084 | 184 -- 7.4.085 | 118 - 7.4.086 | 145 - 7.4.087 | 56 - 7.4.088 | 564 ---- 7.4.089 | 47 - 7.4.090 | 223 -- 7.4.091 | 59 - 7.4.092 | 62 - 7.4.093 | 72 - 7.4.094 | 139 - 7.4.095 | 73 - 7.4.096 | 96 - 7.4.097 | 50 - 7.4.098 | 243 -- 7.4.099 | 113 - 7.4.100 | 82 - 7.4.101 | 93 - 7.4.102 | 84 - 7.4.103 | 93 - 7.4.104 | 107 - 7.4.105 | 58 - 7.4.106 | 68 - 7.4.107 | 639 ----- 7.4.108 | 215 -- 7.4.109 | 123 - 7.4.110 | 102 - 7.4.111 | 63 - 7.4.112 | 70 - 7.4.113 | 101 - 7.4.114 | 56 - 7.4.115 | 52 - 7.4.116 | 46 - 7.4.117 | 263 -- 7.4.118 | 90 - 7.4.119 | 245 -- 7.4.120 | 53 - 7.4.121 | 48 - 7.4.122 | 215 -- 7.4.123 | 64 - 7.4.124 | 63 - 7.4.125 | 57 - 7.4.126 | 68 - 7.4.127 | 67 - 7.4.128 | 66 - 7.4.129 | 56 - 7.4.130 | 69 - 7.4.131 | 113 - 7.4.132 | 54 - 7.4.133 | 74 - 7.4.134 | 53 - 7.4.135 | 51 - 7.4.136 | 75 - 7.4.137 | 239 -- 7.4.138 | 55 - 7.4.139 | 76 - 7.4.140 | 174 -- 7.4.141 | 88 - 7.4.142 | 186 -- 7.4.143 | 214 -- 7.4.144 | 52 - 7.4.145 | 75 - 7.4.146 | 67 - 7.4.147 | Bin 2583 -> 0 bytes 7.4.148 | 83 - 7.4.149 | 822 ------ 7.4.150 | 93 - 7.4.151 | 1470 ---------- 7.4.152 | 708 ----- 7.4.153 | 176 -- 7.4.154 | 153 -- 7.4.155 | 83 - 7.4.156 | 49 - 7.4.157 | 53 - 7.4.158 | 140 - 7.4.159 | 116 - 7.4.160 | 66 - 7.4.161 | 75 - 7.4.162 | 45 - 7.4.163 | 75 - 7.4.164 | 78 - 7.4.165 | 71 - 7.4.166 | 53 - 7.4.167 | 195 -- 7.4.168 | 91 - 7.4.169 | 53 - 7.4.170 | 90 - 7.4.171 | 841 ------ 7.4.172 | 346 --- 7.4.173 | 61 - 7.4.174 | 94 - 7.4.175 | 180 -- 7.4.176 | 91 - 7.4.177 | 48 - 7.4.178 | 62 - 7.4.179 | 57 - 7.4.180 | 76 - 7.4.181 | 68 - 7.4.182 | 56 - 7.4.183 | 49 - 7.4.184 | 250 -- 7.4.185 | 64 - 7.4.186 | 164 -- 7.4.187 | 136 - 7.4.188 | 617 ----- 7.4.189 | 52 - 7.4.190 | 70 - 7.4.191 | 689 ----- 7.4.192 | 44 - 7.4.193 | 106 - 7.4.194 | 53 - 7.4.195 | 164 -- 7.4.196 | 51 - 7.4.197 | 1052 -------- 7.4.198 | 103 - 7.4.199 | 106 - 7.4.200 | 68 - 7.4.201 | 273 -- 7.4.202 | 281 -- 7.4.203 | 203 -- 7.4.204 | 113 - 7.4.205 | 113 - 7.4.206 | 72 - 7.4.207 | 176 -- 7.4.208 | 57 - 7.4.209 | 63 - 7.4.210 | 133 - 7.4.211 | 68 - 7.4.212 | 5720 --------------------------------------- 7.4.213 | 211 -- 7.4.214 | 50 - 7.4.215 | 87 - 7.4.216 | 73 - 7.4.217 | 85 - 7.4.218 | 578 ---- 7.4.219 | 100 - 7.4.220 | 106 - 7.4.221 | 62 - 7.4.222 | 83 - 7.4.223 | 6557 --------------------------------------------- 7.4.224 | 210 -- 7.4.225 | 83 - 7.4.226 | 136 - 7.4.227 | 87 - 7.4.228 | 189 -- 7.4.229 | 141 - 7.4.230 | 53 - 7.4.231 | 267 -- 7.4.232 | 109 - 7.4.233 | 80 - 7.4.234 | 95 - 7.4.235 | 552 ---- 7.4.236 | 159 -- 7.4.237 | 127 - 7.4.238 | 505 ---- 7.4.239 | 55 - 7.4.240 | 57 - 7.4.241 | 386 --- 7.4.242 | 520 ---- 7.4.243 | 1109 -------- 7.4.244 | 60 - 7.4.245 | 52 - 7.4.246 | 121 - 7.4.247 | 227 -- 7.4.248 | 515 ---- 7.4.249 | Bin 6037 -> 0 bytes 7.4.250 | 52 - 7.4.251 | 164 -- 7.4.252 | 47 - 7.4.253 | 76 - 7.4.254 | 183 -- 7.4.255 | 108 - 7.4.256 | 83 - 7.4.257 | 64 - 7.4.258 | 114 - 7.4.259 | 53 - 7.4.260 | 281 -- 7.4.261 | 106 - 7.4.262 | 314 --- 7.4.263 | 44 - 7.4.264 | 176 -- 7.4.265 | 153 -- 7.4.266 | 46 - 7.4.267 | 438 --- 7.4.268 | 108 - 7.4.269 | 213 -- 7.4.270 | 62 - 7.4.271 | 52 - 7.4.272 | 148 - 7.4.273 | 57 - 7.4.274 | 46 - 7.4.275 | 56 - 7.4.276 | 302 --- 7.4.277 | 80 - 7.4.278 | 183 -- 7.4.279 | 616 ----- 7.4.280 | 125 - 7.4.281 | 80 - 7.4.282 | 48 - 7.4.283 | 56 - 7.4.284 | 53 - 7.4.285 | 49 - 7.4.286 | 52 - 7.4.287 | 47 - 7.4.288 | 46 - 7.4.289 | 122 - 7.4.290 | 156 -- 7.4.291 | 56 - 7.4.292 | 139 - 7.4.293 | 301 --- 7.4.294 | 125 - 7.4.295 | 144 - 7.4.296 | 53 - 7.4.297 | 76 - 7.4.298 | 52 - 7.4.299 | 458 ---- 7.4.300 | 62 - 7.4.301 | 53 - 7.4.302 | 78 - 7.4.303 | 85 - 7.4.304 | 45 - 7.4.305 | 276 -- 7.4.306 | 84 - 7.4.307 | 147 - 7.4.308 | 47 - 7.4.309 | 88 - 7.4.310 | 373 --- 7.4.311 | 127 - 7.4.312 | 194 -- 7.4.313 | 320 --- 7.4.314 | 178 -- 7.4.315 | 229 -- 7.4.316 | 52 - 7.4.317 | 57 - 7.4.318 | 52 - 7.4.319 | 55 - 7.4.320 | 143 - 7.4.321 | 71 - 7.4.322 | 92 - 7.4.323 | 96 - 7.4.324 | 190 -- 7.4.325 | 62 - 7.4.326 | 51 - 7.4.327 | 163 -- 7.4.328 | 82 - 7.4.329 | 55 - 7.4.330 | 1131 -------- 7.4.331 | 47 - 7.4.332 | 118 - 7.4.333 | 72 - 7.4.334 | 112 - 7.4.335 | 108 - 7.4.336 | 100 - 7.4.337 | 51 - 7.4.338 | 1830 ------------- 7.4.339 | 79 - 7.4.340 | 97 - 7.4.341 | 178 -- 7.4.342 | 67 - 7.4.343 | 60 - 7.4.344 | 180 -- 7.4.345 | 73 - 7.4.346 | 61 - 7.4.347 | 74 - 7.4.348 | 58 - 7.4.349 | 111 - 7.4.350 | 139 - 7.4.351 | 160 -- 7.4.352 | 101 - 7.4.353 | 446 --- 7.4.354 | 56 - 7.4.355 | 929 ------- 7.4.356 | 38 - 7.4.357 | 52 - 7.4.358 | 290 -- 7.4.359 | 103 - 7.4.360 | 80 - 7.4.361 | 48 - 7.4.362 | 53 - 7.4.363 | 160 -- 7.4.364 | 70 - 7.4.365 | 159 -- 7.4.366 | 53 - 7.4.367 | 67 - 7.4.368 | 79 - 7.4.369 | 70 - 7.4.370 | 316 --- 7.4.371 | 59 - 7.4.372 | 188 -- 7.4.373 | 98 - 7.4.374 | 71 - 7.4.375 | 59 - 7.4.376 | 57 - 7.4.377 | 144 - 7.4.378 | 336 --- 7.4.379 | 45 - 7.4.380 | 115 - 7.4.381 | 45 - 7.4.382 | 52 - 7.4.383 | 52 - 7.4.384 | 47 - 7.4.385 | 76 - 7.4.386 | 186 -- 7.4.387 | 199 -- 7.4.388 | 98 - 7.4.389 | 490 ---- 7.4.390 | 51 - 7.4.391 | 118 - 7.4.392 | 86 - 7.4.393 | 1946 -------------- 7.4.394 | 56 - 7.4.395 | 99 - 7.4.396 | 291 -- 7.4.397 | 150 -- 7.4.398 | 52 - 7.4.399 | 5057 ---------------------------------- 7.4.400 | 69 - 7.4.401 | 357 --- 7.4.402 | 103 - 7.4.403 | 135 - 7.4.404 | 117 - 7.4.405 | 116 - 7.4.406 | 78 - 7.4.407 | 116 - 7.4.408 | 334 --- 7.4.409 | 129 - 7.4.410 | 70 - 7.4.411 | 111 - 7.4.412 | 83 - 7.4.413 | 96 - 7.4.414 | 161 -- 7.4.415 | 67 - 7.4.416 | 96 - 7.4.417 | 173 -- 7.4.418 | 58 - 7.4.419 | 124 - 7.4.420 | 57 - 7.4.421 | 132 - 7.4.422 | 103 - 7.4.423 | 109 - 7.4.424 | 55 - 7.4.425 | 71 - 7.4.426 | 45 - 7.4.427 | 112 - 7.4.428 | 105 - 7.4.429 | 47 - 7.4.430 | 52 - 7.4.431 | 52 - 7.4.432 | 107 - 7.4.433 | 71 - 7.4.434 | 139 - 7.4.435 | 63 - 7.4.436 | 48 - 7.4.437 | 116 - 7.4.438 | 48 - 7.4.439 | 56 - 7.4.440 | 73 - 7.4.441 | 64 - 7.4.442 | 72 - 7.4.443 | 54 - 7.4.444 | 46 - 7.4.445 | 92 - 7.4.446 | 265 -- 7.4.447 | 113 - 7.4.448 | 84 - 7.4.449 | 114 - 7.4.450 | 417 --- 7.4.451 | 68 - 7.4.452 | 69 - 7.4.453 | 55 - 7.4.454 | 87 - 7.4.455 | 167 -- 7.4.456 | 414 --- 7.4.457 | 48 - 7.4.458 | 55 - 7.4.459 | 123 - 7.4.460 | 48 - 7.4.461 | 77 - 7.4.462 | 80 - 7.4.463 | 58 - 7.4.464 | 52 - 7.4.465 | 56 - 7.4.466 | 53 - 7.4.467 | 144 - 7.4.468 | 64 - 7.4.469 | 62 - 7.4.470 | 120 - 7.4.471 | 73 - 7.4.472 | 46 - 7.4.473 | 47 - 7.4.474 | 45 - 7.4.475 | 228 -- 7.4.476 | 88 - 7.4.477 | 58 - 7.4.478 | 58 - 7.4.479 | 112 - 7.4.480 | 110 - 7.4.481 | 62 - 7.4.482 | 64 - 7.4.483 | 192 -- 7.4.484 | 52 - 7.4.485 | 114 - 7.4.486 | 271 -- 7.4.487 | 244 -- 7.4.488 | 45 - 7.4.489 | 49 - 7.4.490 | 208 -- 7.4.491 | 57 - 7.4.492 | 87 - 7.4.493 | 53 - 7.4.494 | 62 - 7.4.495 | 89 - 7.4.496 | 2774 ------------------- 7.4.497 | 854 ------ 7.4.498 | 57 - 7.4.499 | 76 - 7.4.500 | 78 - 7.4.501 | 52 - 7.4.502 | 191 -- 7.4.503 | 193 -- 7.4.504 | 83 - 7.4.505 | 68 - 7.4.506 | 51 - 7.4.507 | 68 - 7.4.508 | 57 - 7.4.509 | 115 - 7.4.510 | 65 - 7.4.511 | 57 - 7.4.512 | 99 - 7.4.513 | 46 - 7.4.514 | 46 - 7.4.515 | 208 -- 7.4.516 | 66 - 7.4.517 | 49 - 7.4.518 | 53 - 7.4.519 | 866 ------ 7.4.520 | 48 - 7.4.521 | 49 - 7.4.522 | 51 - 7.4.523 | 99 - 7.4.524 | 96 - 7.4.525 | 87 - 7.4.526 | 191 -- 7.4.527 | 120 - 7.4.528 | 62 - 7.4.529 | 224 -- 7.4.530 | 4727 -------------------------------- 7.4.531 | 165 -- 7.4.532 | 141 - 7.4.533 | 229 -- 7.4.534 | 94 - 7.4.535 | 469 ---- 7.4.536 | 55 - 7.4.537 | 120 - 7.4.538 | 162 -- 7.4.539 | 258 -- 7.4.540 | 58 - 7.4.541 | 86 - 7.4.542 | 992 ------- 7.4.543 | 132 - 7.4.544 | 57 - 7.4.545 | 64 - 7.4.546 | 149 - 7.4.547 | 55 - 7.4.548 | 53 - 7.4.549 | 221 -- 7.4.550 | 147 - 7.4.551 | 205 -- 7.4.552 | 83 - 7.4.553 | 315 --- 7.4.554 | 65 - 7.4.555 | 84 - 7.4.556 | 70 - 7.4.557 | 52 - 7.4.558 | 55 - 7.4.559 | 96 - 7.4.559.rhpatched | 20 - 7.4.560 | 205 -- 7.4.561 | 109 - 7.4.562 | 65 - 7.4.563 | 70 - 7.4.564 | 246 -- 7.4.565 | 411 --- 7.4.566 | 612 ----- 7.4.567 | 51 - 7.4.568 | 73 - 7.4.569 | 165 -- 7.4.570 | 139 - 7.4.571 | 64 - 7.4.572 | 257 -- 7.4.573 | 110 - 7.4.574 | 89 - 7.4.575 | 737 ----- 7.4.576 | 181 -- 7.4.577 | 92 - 7.4.578 | 54 - 7.4.579 | 169 -- 7.4.580 | 54 - 7.4.581 | 64 - 7.4.582 | 117 - 7.4.583 | 46 - 7.4.584 | 56 - 7.4.585 | 131 - 7.4.586 | 45 - 7.4.587 | 225 -- 7.4.588 | 183 -- 7.4.589 | 79 - 7.4.590 | 51 - 7.4.591 | 53 - 7.4.592 | 52 - 7.4.593 | 161 -- 7.4.594 | 105 - 7.4.595 | 45 - 7.4.596 | 52 - 7.4.597 | 58 - 7.4.598 | Bin 7175 -> 0 bytes 7.4.599 | 52 - 7.4.600 | 546 ---- 7.4.601 | 108 - 7.4.602 | 91 - 7.4.603 | 262 -- 7.4.604 | 53 - 7.4.605 | 267 -- 7.4.606 | 46 - 7.4.607 | 56 - 7.4.608 | Bin 5034 -> 0 bytes 7.4.609 | 782 ------ 7.4.610 | 89 - 7.4.611 | 48 - 7.4.612 | Bin 3589 -> 0 bytes 7.4.613 | 236 -- 7.4.614 | 70 - 7.4.615 | 164 -- 7.4.616 | Bin 4582 -> 0 bytes 7.4.617 | 101 - 7.4.618 | 45 - 7.4.619 | 69 - 7.4.620 | 52 - 7.4.621 | 69 - 7.4.622 | 53 - 7.4.623 | 78 - 7.4.624 | 204 -- 7.4.625 | 74 - 7.4.626 | 58 - 7.4.627 | 186 -- 7.4.628 | 52 - 7.4.629 | 58 - 7.4.630 | 86 - 7.4.631 | 53 - 7.4.632 | 53 - 7.4.633 | 89 - 7.4.634 | 183 -- 7.4.635 | 74 - 7.4.636 | 166 -- 7.4.637 | 82 - 7.4.638 | 52 - 7.4.639 | 208 -- 7.4.640 | 74 - 7.4.641 | 81 - 7.4.642 | 163 -- 7.4.643 | 324 --- 7.4.644 | 52 - 7.4.645 | 101 - 7.4.646 | 139 - 7.4.647 | 179 -- 7.4.648 | 45 - 7.4.649 | 59 - 7.4.650 | 175 -- 7.4.651 | 58 - 7.4.652 | 381 --- 7.4.653 | 343 --- 7.4.654 | 174 -- 7.4.655 | 164 -- 7.4.656 | 97 - 7.4.657 | 70 - 7.4.658 | 97 - 7.4.659 | 86 - 7.4.660 | 71 - 7.4.661 | 54 - 7.4.662 | 230 -- 7.4.663 | 62 - 7.4.664 | 75 - 7.4.665 | 84 - 7.4.666 | 90 - 7.4.667 | 71 - 7.4.668 | 127 - 7.4.669 | 145 - 7.4.670 | 578 ---- 7.4.671 | 76 - 7.4.672 | 443 --- 7.4.673 | 52 - 7.4.674 | 72 - 7.4.675 | 93 - 7.4.676 | 124 - 7.4.677 | 72 - 7.4.678 | 120 - 7.4.679 | 88 - 7.4.680 | 348 --- 7.4.681 | 76 - 7.4.682 | 78 - 7.4.683 | 58 - 7.4.684 | 395 --- 7.4.685 | 55 - 7.4.686 | 116 - 7.4.687 | 274 -- 7.4.688 | 50 - 7.4.689 | 157 -- 7.4.690 | 128 - 7.4.691 | 153 -- 7.4.692 | 52 - 7.4.693 | 67 - 7.4.694 | 51 - 7.4.695 | 71 - 7.4.696 | 63 - 7.4.697 | 54 - 7.4.698 | 601 ----- 7.4.699 | 47 - 7.4.700 | 125 - 7.4.701 | 54 - 7.4.702 | 50 - 7.4.703 | 62 - 7.4.704 | 500 ---- 7.4.705 | 66 - 7.4.706 | 68 - 7.4.707 | 54 - 7.4.708 | 675 ----- 7.4.709 | 378 --- 7.4.710 | 350 --- 7.4.711 | 47 - 7.4.712 | 49 - 7.4.713 | 55 - 7.4.714 | 52 - 7.4.715 | 53 - 7.4.716 | 74 - 7.4.717 | 268 -- 7.4.718 | 114 - 7.4.719 | 53 - 7.4.720 | 133 - 7.4.721 | 72 - 7.4.722 | 94 - 7.4.723 | 275 -- 7.4.724 | 381 --- 7.4.725 | 52 - 7.4.726 | 55 - 7.4.727 | 52 - 7.4.728 | 59 - 7.4.729 | 51 - 7.4.730 | 325 --- 7.4.731 | 131 - 7.4.732 | 47 - 7.4.733 | 45 - 7.4.734 | 389 --- 7.4.735 | 52 - 7.4.736 | 90 - 7.4.737 | 57 - 7.4.738 | 102 - 7.4.739 | 59 - 7.4.740 | 86 - 7.4.741 | 174 -- 7.4.742 | 120 - 7.4.743 | 167 -- 7.4.744 | 210 -- 7.4.745 | 157 -- 7.4.746 | 100 - 7.4.747 | 48 - 7.4.748 | 52 - 7.4.749 | 1183 -------- 7.4.750 | 79 - 7.4.751 | 112 - 7.4.752 | 247 -- 7.4.753 | 342 --- 7.4.754 | 1093 -------- 7.4.755 | 245 -- 7.4.756 | 176 -- 7.4.757 | 273 -- 7.4.758 | 50 - 7.4.759 | 139 - 7.4.760 | 52 - 7.4.761 | 141 - 7.4.762 | 60 - 7.4.763 | 146 - 7.4.764 | 56 - 7.4.765 | 759 ------ 7.4.766 | 101 - 7.4.767 | 70 - 7.4.768 | 234 -- 7.4.769 | 169 -- 7.4.770 | 282 -- 7.4.771 | 275 -- 7.4.772 | 110 - 7.4.773 | 97 - 7.4.774 | 236 -- 7.4.775 | 232 -- 7.4.776 | 92 - 7.4.777 | 162 -- 7.4.778 | 59 - 7.4.779 | 84 - 7.4.780 | 78 - 7.4.781 | 52 - 7.4.782 | 1080 -------- 7.4.783 | 365 --- 7.4.784 | 66 - 7.4.785 | 567 ---- 7.4.786 | 700 ----- 7.4.787 | 79 - 7.4.788 | 76 - 7.4.789 | 72 - 7.4.790 | 154 -- 7.4.791 | 187 -- 7.4.792 | 841 ------ 7.4.793 | 949 ------- 7.4.794 | 52 - 7.4.795 | 45 - 7.4.796 | 56 - 7.4.797 | 238 -- 7.4.798 | 115 - 7.4.799 | 52 - 7.4.800 | 57 - 7.4.801 | 82 - 7.4.802 | 62 - 7.4.803 | 1493 ----------- 7.4.804 | 50 - 7.4.805 | 48 - 7.4.806 | 182 -- 7.4.807 | 137 - 7.4.808 | 120 - 7.4.809 | 63 - 7.4.810 | 55 - 7.4.811 | 65 - 7.4.812 | 56 - 7.4.813 | 646 ----- 7.4.814 | 51 - 7.4.815 | 58 - 7.4.816 | 45 - 7.4.817 | 74 - 7.4.818 | 114 - 7.4.819 | 527 ---- 7.4.820 | 56 - 7.4.821 | 87 - 7.4.822 | 668 ----- 7.4.823 | 126 - 7.4.824 | 55 - 7.4.825 | 84 - 7.4.826 | 74 - 7.4.827 | 68 - 7.4.828 | 49 - 7.4.829 | 54 - 7.4.830 | 73 - 7.4.831 | 127 - 7.4.832 | 65 - 7.4.833 | 306 --- 7.4.834 | 90 - 7.4.835 | 158 -- 7.4.836 | 46 - 7.4.837 | 50 - 7.4.838 | 58 - 7.4.839 | 57 - 7.4.840 | 46 - 7.4.841 | 75 - 7.4.842 | 46 - 7.4.843 | 91 - 7.4.844 | 190 -- 7.4.845 | 55 - 7.4.846 | 92 - 7.4.847 | 51 - 7.4.848 | 124 - 7.4.849 | 391 --- 7.4.850 | 54 - 7.4.851 | 386 --- 7.4.852 | 594 ---- 7.4.853 | 76 - 7.4.854 | 59 - 7.4.855 | 57 - 7.4.856 | 78 - 7.4.857 | 56 - 7.4.858 | 1327 --------- 7.4.859 | 55 - 7.4.860 | 646 ----- 7.4.861 | 134 - 7.4.862 | 92 - 7.4.863 | 199 -- 7.4.864 | 161 -- 7.4.865 | 53 - 7.4.866 | 656 ----- 7.4.867 | 53 - 7.4.868 | 187 -- 7.4.869 | 143 - 7.4.870 | 71 - 7.4.871 | 191 -- 7.4.872 | 114 - 7.4.873 | 120 - 7.4.874 | 87 - 7.4.875 | 49 - 7.4.876 | 130 - 7.4.877 | 53 - 7.4.878 | 52 - 7.4.879 | 78 - 7.4.880 | 48 - 7.4.881 | 183 -- 7.4.882 | 52 - 7.4.883 | 79 - 7.4.884 | 48 - 7.4.885 | 80 - 7.4.886 | 95 - 7.4.887 | 53 - 7.4.888 | 169 -- 7.4.889 | 90 - 7.4.890 | 59 - 7.4.891 | 182 -- 7.4.892 | 88 - 7.4.893 | 145 - 7.4.894 | 50 - 7.4.895 | 69 - 7.4.896 | 83 - 7.4.897 | 58 - 7.4.898 | 45 - 899 files changed, 162774 deletions(-) delete mode 100644 7.4.001 delete mode 100644 7.4.002 delete mode 100644 7.4.003 delete mode 100644 7.4.004 delete mode 100644 7.4.005 delete mode 100644 7.4.006 delete mode 100644 7.4.007 delete mode 100644 7.4.008 delete mode 100644 7.4.009 delete mode 100644 7.4.010 delete mode 100644 7.4.011 delete mode 100644 7.4.012 delete mode 100644 7.4.013 delete mode 100644 7.4.014 delete mode 100644 7.4.015 delete mode 100644 7.4.016 delete mode 100644 7.4.017 delete mode 100644 7.4.018 delete mode 100644 7.4.019 delete mode 100644 7.4.020 delete mode 100644 7.4.021 delete mode 100644 7.4.022 delete mode 100644 7.4.023 delete mode 100644 7.4.024 delete mode 100644 7.4.025 delete mode 100644 7.4.026 delete mode 100644 7.4.027 delete mode 100644 7.4.028 delete mode 100644 7.4.029 delete mode 100644 7.4.030 delete mode 100644 7.4.031 delete mode 100644 7.4.032 delete mode 100644 7.4.033 delete mode 100644 7.4.034 delete mode 100644 7.4.035 delete mode 100644 7.4.036 delete mode 100644 7.4.037 delete mode 100644 7.4.038 delete mode 100644 7.4.039 delete mode 100644 7.4.040 delete mode 100644 7.4.041 delete mode 100644 7.4.042 delete mode 100644 7.4.043 delete mode 100644 7.4.044 delete mode 100644 7.4.045 delete mode 100644 7.4.046 delete mode 100644 7.4.047 delete mode 100644 7.4.048 delete mode 100644 7.4.049 delete mode 100644 7.4.050 delete mode 100644 7.4.051 delete mode 100644 7.4.052 delete mode 100644 7.4.053 delete mode 100644 7.4.054 delete mode 100644 7.4.055 delete mode 100644 7.4.056 delete mode 100644 7.4.057 delete mode 100644 7.4.058 delete mode 100644 7.4.059 delete mode 100644 7.4.060 delete mode 100644 7.4.061 delete mode 100644 7.4.062 delete mode 100644 7.4.063 delete mode 100644 7.4.064 delete mode 100644 7.4.065 delete mode 100644 7.4.066 delete mode 100644 7.4.067 delete mode 100644 7.4.068 delete mode 100644 7.4.069 delete mode 100644 7.4.070 delete mode 100644 7.4.071 delete mode 100644 7.4.072 delete mode 100644 7.4.073 delete mode 100644 7.4.074 delete mode 100644 7.4.075 delete mode 100644 7.4.076 delete mode 100644 7.4.077 delete mode 100644 7.4.078 delete mode 100644 7.4.079 delete mode 100644 7.4.080 delete mode 100644 7.4.081 delete mode 100644 7.4.082 delete mode 100644 7.4.083 delete mode 100644 7.4.084 delete mode 100644 7.4.085 delete mode 100644 7.4.086 delete mode 100644 7.4.087 delete mode 100644 7.4.088 delete mode 100644 7.4.089 delete mode 100644 7.4.090 delete mode 100644 7.4.091 delete mode 100644 7.4.092 delete mode 100644 7.4.093 delete mode 100644 7.4.094 delete mode 100644 7.4.095 delete mode 100644 7.4.096 delete mode 100644 7.4.097 delete mode 100644 7.4.098 delete mode 100644 7.4.099 delete mode 100644 7.4.100 delete mode 100644 7.4.101 delete mode 100644 7.4.102 delete mode 100644 7.4.103 delete mode 100644 7.4.104 delete mode 100644 7.4.105 delete mode 100644 7.4.106 delete mode 100644 7.4.107 delete mode 100644 7.4.108 delete mode 100644 7.4.109 delete mode 100644 7.4.110 delete mode 100644 7.4.111 delete mode 100644 7.4.112 delete mode 100644 7.4.113 delete mode 100644 7.4.114 delete mode 100644 7.4.115 delete mode 100644 7.4.116 delete mode 100644 7.4.117 delete mode 100644 7.4.118 delete mode 100644 7.4.119 delete mode 100644 7.4.120 delete mode 100644 7.4.121 delete mode 100644 7.4.122 delete mode 100644 7.4.123 delete mode 100644 7.4.124 delete mode 100644 7.4.125 delete mode 100644 7.4.126 delete mode 100644 7.4.127 delete mode 100644 7.4.128 delete mode 100644 7.4.129 delete mode 100644 7.4.130 delete mode 100644 7.4.131 delete mode 100644 7.4.132 delete mode 100644 7.4.133 delete mode 100644 7.4.134 delete mode 100644 7.4.135 delete mode 100644 7.4.136 delete mode 100644 7.4.137 delete mode 100644 7.4.138 delete mode 100644 7.4.139 delete mode 100644 7.4.140 delete mode 100644 7.4.141 delete mode 100644 7.4.142 delete mode 100644 7.4.143 delete mode 100644 7.4.144 delete mode 100644 7.4.145 delete mode 100644 7.4.146 delete mode 100644 7.4.147 delete mode 100644 7.4.148 delete mode 100644 7.4.149 delete mode 100644 7.4.150 delete mode 100644 7.4.151 delete mode 100644 7.4.152 delete mode 100644 7.4.153 delete mode 100644 7.4.154 delete mode 100644 7.4.155 delete mode 100644 7.4.156 delete mode 100644 7.4.157 delete mode 100644 7.4.158 delete mode 100644 7.4.159 delete mode 100644 7.4.160 delete mode 100644 7.4.161 delete mode 100644 7.4.162 delete mode 100644 7.4.163 delete mode 100644 7.4.164 delete mode 100644 7.4.165 delete mode 100644 7.4.166 delete mode 100644 7.4.167 delete mode 100644 7.4.168 delete mode 100644 7.4.169 delete mode 100644 7.4.170 delete mode 100644 7.4.171 delete mode 100644 7.4.172 delete mode 100644 7.4.173 delete mode 100644 7.4.174 delete mode 100644 7.4.175 delete mode 100644 7.4.176 delete mode 100644 7.4.177 delete mode 100644 7.4.178 delete mode 100644 7.4.179 delete mode 100644 7.4.180 delete mode 100644 7.4.181 delete mode 100644 7.4.182 delete mode 100644 7.4.183 delete mode 100644 7.4.184 delete mode 100644 7.4.185 delete mode 100644 7.4.186 delete mode 100644 7.4.187 delete mode 100644 7.4.188 delete mode 100644 7.4.189 delete mode 100644 7.4.190 delete mode 100644 7.4.191 delete mode 100644 7.4.192 delete mode 100644 7.4.193 delete mode 100644 7.4.194 delete mode 100644 7.4.195 delete mode 100644 7.4.196 delete mode 100644 7.4.197 delete mode 100644 7.4.198 delete mode 100644 7.4.199 delete mode 100644 7.4.200 delete mode 100644 7.4.201 delete mode 100644 7.4.202 delete mode 100644 7.4.203 delete mode 100644 7.4.204 delete mode 100644 7.4.205 delete mode 100644 7.4.206 delete mode 100644 7.4.207 delete mode 100644 7.4.208 delete mode 100644 7.4.209 delete mode 100644 7.4.210 delete mode 100644 7.4.211 delete mode 100644 7.4.212 delete mode 100644 7.4.213 delete mode 100644 7.4.214 delete mode 100644 7.4.215 delete mode 100644 7.4.216 delete mode 100644 7.4.217 delete mode 100644 7.4.218 delete mode 100644 7.4.219 delete mode 100644 7.4.220 delete mode 100644 7.4.221 delete mode 100644 7.4.222 delete mode 100644 7.4.223 delete mode 100644 7.4.224 delete mode 100644 7.4.225 delete mode 100644 7.4.226 delete mode 100644 7.4.227 delete mode 100644 7.4.228 delete mode 100644 7.4.229 delete mode 100644 7.4.230 delete mode 100644 7.4.231 delete mode 100644 7.4.232 delete mode 100644 7.4.233 delete mode 100644 7.4.234 delete mode 100644 7.4.235 delete mode 100644 7.4.236 delete mode 100644 7.4.237 delete mode 100644 7.4.238 delete mode 100644 7.4.239 delete mode 100644 7.4.240 delete mode 100644 7.4.241 delete mode 100644 7.4.242 delete mode 100644 7.4.243 delete mode 100644 7.4.244 delete mode 100644 7.4.245 delete mode 100644 7.4.246 delete mode 100644 7.4.247 delete mode 100644 7.4.248 delete mode 100644 7.4.249 delete mode 100644 7.4.250 delete mode 100644 7.4.251 delete mode 100644 7.4.252 delete mode 100644 7.4.253 delete mode 100644 7.4.254 delete mode 100644 7.4.255 delete mode 100644 7.4.256 delete mode 100644 7.4.257 delete mode 100644 7.4.258 delete mode 100644 7.4.259 delete mode 100644 7.4.260 delete mode 100644 7.4.261 delete mode 100644 7.4.262 delete mode 100644 7.4.263 delete mode 100644 7.4.264 delete mode 100644 7.4.265 delete mode 100644 7.4.266 delete mode 100644 7.4.267 delete mode 100644 7.4.268 delete mode 100644 7.4.269 delete mode 100644 7.4.270 delete mode 100644 7.4.271 delete mode 100644 7.4.272 delete mode 100644 7.4.273 delete mode 100644 7.4.274 delete mode 100644 7.4.275 delete mode 100644 7.4.276 delete mode 100644 7.4.277 delete mode 100644 7.4.278 delete mode 100644 7.4.279 delete mode 100644 7.4.280 delete mode 100644 7.4.281 delete mode 100644 7.4.282 delete mode 100644 7.4.283 delete mode 100644 7.4.284 delete mode 100644 7.4.285 delete mode 100644 7.4.286 delete mode 100644 7.4.287 delete mode 100644 7.4.288 delete mode 100644 7.4.289 delete mode 100644 7.4.290 delete mode 100644 7.4.291 delete mode 100644 7.4.292 delete mode 100644 7.4.293 delete mode 100644 7.4.294 delete mode 100644 7.4.295 delete mode 100644 7.4.296 delete mode 100644 7.4.297 delete mode 100644 7.4.298 delete mode 100644 7.4.299 delete mode 100644 7.4.300 delete mode 100644 7.4.301 delete mode 100644 7.4.302 delete mode 100644 7.4.303 delete mode 100644 7.4.304 delete mode 100644 7.4.305 delete mode 100644 7.4.306 delete mode 100644 7.4.307 delete mode 100644 7.4.308 delete mode 100644 7.4.309 delete mode 100644 7.4.310 delete mode 100644 7.4.311 delete mode 100644 7.4.312 delete mode 100644 7.4.313 delete mode 100644 7.4.314 delete mode 100644 7.4.315 delete mode 100644 7.4.316 delete mode 100644 7.4.317 delete mode 100644 7.4.318 delete mode 100644 7.4.319 delete mode 100644 7.4.320 delete mode 100644 7.4.321 delete mode 100644 7.4.322 delete mode 100644 7.4.323 delete mode 100644 7.4.324 delete mode 100644 7.4.325 delete mode 100644 7.4.326 delete mode 100644 7.4.327 delete mode 100644 7.4.328 delete mode 100644 7.4.329 delete mode 100644 7.4.330 delete mode 100644 7.4.331 delete mode 100644 7.4.332 delete mode 100644 7.4.333 delete mode 100644 7.4.334 delete mode 100644 7.4.335 delete mode 100644 7.4.336 delete mode 100644 7.4.337 delete mode 100644 7.4.338 delete mode 100644 7.4.339 delete mode 100644 7.4.340 delete mode 100644 7.4.341 delete mode 100644 7.4.342 delete mode 100644 7.4.343 delete mode 100644 7.4.344 delete mode 100644 7.4.345 delete mode 100644 7.4.346 delete mode 100644 7.4.347 delete mode 100644 7.4.348 delete mode 100644 7.4.349 delete mode 100644 7.4.350 delete mode 100644 7.4.351 delete mode 100644 7.4.352 delete mode 100644 7.4.353 delete mode 100644 7.4.354 delete mode 100644 7.4.355 delete mode 100644 7.4.356 delete mode 100644 7.4.357 delete mode 100644 7.4.358 delete mode 100644 7.4.359 delete mode 100644 7.4.360 delete mode 100644 7.4.361 delete mode 100644 7.4.362 delete mode 100644 7.4.363 delete mode 100644 7.4.364 delete mode 100644 7.4.365 delete mode 100644 7.4.366 delete mode 100644 7.4.367 delete mode 100644 7.4.368 delete mode 100644 7.4.369 delete mode 100644 7.4.370 delete mode 100644 7.4.371 delete mode 100644 7.4.372 delete mode 100644 7.4.373 delete mode 100644 7.4.374 delete mode 100644 7.4.375 delete mode 100644 7.4.376 delete mode 100644 7.4.377 delete mode 100644 7.4.378 delete mode 100644 7.4.379 delete mode 100644 7.4.380 delete mode 100644 7.4.381 delete mode 100644 7.4.382 delete mode 100644 7.4.383 delete mode 100644 7.4.384 delete mode 100644 7.4.385 delete mode 100644 7.4.386 delete mode 100644 7.4.387 delete mode 100644 7.4.388 delete mode 100644 7.4.389 delete mode 100644 7.4.390 delete mode 100644 7.4.391 delete mode 100644 7.4.392 delete mode 100644 7.4.393 delete mode 100644 7.4.394 delete mode 100644 7.4.395 delete mode 100644 7.4.396 delete mode 100644 7.4.397 delete mode 100644 7.4.398 delete mode 100644 7.4.399 delete mode 100644 7.4.400 delete mode 100644 7.4.401 delete mode 100644 7.4.402 delete mode 100644 7.4.403 delete mode 100644 7.4.404 delete mode 100644 7.4.405 delete mode 100644 7.4.406 delete mode 100644 7.4.407 delete mode 100644 7.4.408 delete mode 100644 7.4.409 delete mode 100644 7.4.410 delete mode 100644 7.4.411 delete mode 100644 7.4.412 delete mode 100644 7.4.413 delete mode 100644 7.4.414 delete mode 100644 7.4.415 delete mode 100644 7.4.416 delete mode 100644 7.4.417 delete mode 100644 7.4.418 delete mode 100644 7.4.419 delete mode 100644 7.4.420 delete mode 100644 7.4.421 delete mode 100644 7.4.422 delete mode 100644 7.4.423 delete mode 100644 7.4.424 delete mode 100644 7.4.425 delete mode 100644 7.4.426 delete mode 100644 7.4.427 delete mode 100644 7.4.428 delete mode 100644 7.4.429 delete mode 100644 7.4.430 delete mode 100644 7.4.431 delete mode 100644 7.4.432 delete mode 100644 7.4.433 delete mode 100644 7.4.434 delete mode 100644 7.4.435 delete mode 100644 7.4.436 delete mode 100644 7.4.437 delete mode 100644 7.4.438 delete mode 100644 7.4.439 delete mode 100644 7.4.440 delete mode 100644 7.4.441 delete mode 100644 7.4.442 delete mode 100644 7.4.443 delete mode 100644 7.4.444 delete mode 100644 7.4.445 delete mode 100644 7.4.446 delete mode 100644 7.4.447 delete mode 100644 7.4.448 delete mode 100644 7.4.449 delete mode 100644 7.4.450 delete mode 100644 7.4.451 delete mode 100644 7.4.452 delete mode 100644 7.4.453 delete mode 100644 7.4.454 delete mode 100644 7.4.455 delete mode 100644 7.4.456 delete mode 100644 7.4.457 delete mode 100644 7.4.458 delete mode 100644 7.4.459 delete mode 100644 7.4.460 delete mode 100644 7.4.461 delete mode 100644 7.4.462 delete mode 100644 7.4.463 delete mode 100644 7.4.464 delete mode 100644 7.4.465 delete mode 100644 7.4.466 delete mode 100644 7.4.467 delete mode 100644 7.4.468 delete mode 100644 7.4.469 delete mode 100644 7.4.470 delete mode 100644 7.4.471 delete mode 100644 7.4.472 delete mode 100644 7.4.473 delete mode 100644 7.4.474 delete mode 100644 7.4.475 delete mode 100644 7.4.476 delete mode 100644 7.4.477 delete mode 100644 7.4.478 delete mode 100644 7.4.479 delete mode 100644 7.4.480 delete mode 100644 7.4.481 delete mode 100644 7.4.482 delete mode 100644 7.4.483 delete mode 100644 7.4.484 delete mode 100644 7.4.485 delete mode 100644 7.4.486 delete mode 100644 7.4.487 delete mode 100644 7.4.488 delete mode 100644 7.4.489 delete mode 100644 7.4.490 delete mode 100644 7.4.491 delete mode 100644 7.4.492 delete mode 100644 7.4.493 delete mode 100644 7.4.494 delete mode 100644 7.4.495 delete mode 100644 7.4.496 delete mode 100644 7.4.497 delete mode 100644 7.4.498 delete mode 100644 7.4.499 delete mode 100644 7.4.500 delete mode 100644 7.4.501 delete mode 100644 7.4.502 delete mode 100644 7.4.503 delete mode 100644 7.4.504 delete mode 100644 7.4.505 delete mode 100644 7.4.506 delete mode 100644 7.4.507 delete mode 100644 7.4.508 delete mode 100644 7.4.509 delete mode 100644 7.4.510 delete mode 100644 7.4.511 delete mode 100644 7.4.512 delete mode 100644 7.4.513 delete mode 100644 7.4.514 delete mode 100644 7.4.515 delete mode 100644 7.4.516 delete mode 100644 7.4.517 delete mode 100644 7.4.518 delete mode 100644 7.4.519 delete mode 100644 7.4.520 delete mode 100644 7.4.521 delete mode 100644 7.4.522 delete mode 100644 7.4.523 delete mode 100644 7.4.524 delete mode 100644 7.4.525 delete mode 100644 7.4.526 delete mode 100644 7.4.527 delete mode 100644 7.4.528 delete mode 100644 7.4.529 delete mode 100644 7.4.530 delete mode 100644 7.4.531 delete mode 100644 7.4.532 delete mode 100644 7.4.533 delete mode 100644 7.4.534 delete mode 100644 7.4.535 delete mode 100644 7.4.536 delete mode 100644 7.4.537 delete mode 100644 7.4.538 delete mode 100644 7.4.539 delete mode 100644 7.4.540 delete mode 100644 7.4.541 delete mode 100644 7.4.542 delete mode 100644 7.4.543 delete mode 100644 7.4.544 delete mode 100644 7.4.545 delete mode 100644 7.4.546 delete mode 100644 7.4.547 delete mode 100644 7.4.548 delete mode 100644 7.4.549 delete mode 100644 7.4.550 delete mode 100644 7.4.551 delete mode 100644 7.4.552 delete mode 100644 7.4.553 delete mode 100644 7.4.554 delete mode 100644 7.4.555 delete mode 100644 7.4.556 delete mode 100644 7.4.557 delete mode 100644 7.4.558 delete mode 100644 7.4.559 delete mode 100644 7.4.559.rhpatched delete mode 100644 7.4.560 delete mode 100644 7.4.561 delete mode 100644 7.4.562 delete mode 100644 7.4.563 delete mode 100644 7.4.564 delete mode 100644 7.4.565 delete mode 100644 7.4.566 delete mode 100644 7.4.567 delete mode 100644 7.4.568 delete mode 100644 7.4.569 delete mode 100644 7.4.570 delete mode 100644 7.4.571 delete mode 100644 7.4.572 delete mode 100644 7.4.573 delete mode 100644 7.4.574 delete mode 100644 7.4.575 delete mode 100644 7.4.576 delete mode 100644 7.4.577 delete mode 100644 7.4.578 delete mode 100644 7.4.579 delete mode 100644 7.4.580 delete mode 100644 7.4.581 delete mode 100644 7.4.582 delete mode 100644 7.4.583 delete mode 100644 7.4.584 delete mode 100644 7.4.585 delete mode 100644 7.4.586 delete mode 100644 7.4.587 delete mode 100644 7.4.588 delete mode 100644 7.4.589 delete mode 100644 7.4.590 delete mode 100644 7.4.591 delete mode 100644 7.4.592 delete mode 100644 7.4.593 delete mode 100644 7.4.594 delete mode 100644 7.4.595 delete mode 100644 7.4.596 delete mode 100644 7.4.597 delete mode 100644 7.4.598 delete mode 100644 7.4.599 delete mode 100644 7.4.600 delete mode 100644 7.4.601 delete mode 100644 7.4.602 delete mode 100644 7.4.603 delete mode 100644 7.4.604 delete mode 100644 7.4.605 delete mode 100644 7.4.606 delete mode 100644 7.4.607 delete mode 100644 7.4.608 delete mode 100644 7.4.609 delete mode 100644 7.4.610 delete mode 100644 7.4.611 delete mode 100644 7.4.612 delete mode 100644 7.4.613 delete mode 100644 7.4.614 delete mode 100644 7.4.615 delete mode 100644 7.4.616 delete mode 100644 7.4.617 delete mode 100644 7.4.618 delete mode 100644 7.4.619 delete mode 100644 7.4.620 delete mode 100644 7.4.621 delete mode 100644 7.4.622 delete mode 100644 7.4.623 delete mode 100644 7.4.624 delete mode 100644 7.4.625 delete mode 100644 7.4.626 delete mode 100644 7.4.627 delete mode 100644 7.4.628 delete mode 100644 7.4.629 delete mode 100644 7.4.630 delete mode 100644 7.4.631 delete mode 100644 7.4.632 delete mode 100644 7.4.633 delete mode 100644 7.4.634 delete mode 100644 7.4.635 delete mode 100644 7.4.636 delete mode 100644 7.4.637 delete mode 100644 7.4.638 delete mode 100644 7.4.639 delete mode 100644 7.4.640 delete mode 100644 7.4.641 delete mode 100644 7.4.642 delete mode 100644 7.4.643 delete mode 100644 7.4.644 delete mode 100644 7.4.645 delete mode 100644 7.4.646 delete mode 100644 7.4.647 delete mode 100644 7.4.648 delete mode 100644 7.4.649 delete mode 100644 7.4.650 delete mode 100644 7.4.651 delete mode 100644 7.4.652 delete mode 100644 7.4.653 delete mode 100644 7.4.654 delete mode 100644 7.4.655 delete mode 100644 7.4.656 delete mode 100644 7.4.657 delete mode 100644 7.4.658 delete mode 100644 7.4.659 delete mode 100644 7.4.660 delete mode 100644 7.4.661 delete mode 100644 7.4.662 delete mode 100644 7.4.663 delete mode 100644 7.4.664 delete mode 100644 7.4.665 delete mode 100644 7.4.666 delete mode 100644 7.4.667 delete mode 100644 7.4.668 delete mode 100644 7.4.669 delete mode 100644 7.4.670 delete mode 100644 7.4.671 delete mode 100644 7.4.672 delete mode 100644 7.4.673 delete mode 100644 7.4.674 delete mode 100644 7.4.675 delete mode 100644 7.4.676 delete mode 100644 7.4.677 delete mode 100644 7.4.678 delete mode 100644 7.4.679 delete mode 100644 7.4.680 delete mode 100644 7.4.681 delete mode 100644 7.4.682 delete mode 100644 7.4.683 delete mode 100644 7.4.684 delete mode 100644 7.4.685 delete mode 100644 7.4.686 delete mode 100644 7.4.687 delete mode 100644 7.4.688 delete mode 100644 7.4.689 delete mode 100644 7.4.690 delete mode 100644 7.4.691 delete mode 100644 7.4.692 delete mode 100644 7.4.693 delete mode 100644 7.4.694 delete mode 100644 7.4.695 delete mode 100644 7.4.696 delete mode 100644 7.4.697 delete mode 100644 7.4.698 delete mode 100644 7.4.699 delete mode 100644 7.4.700 delete mode 100644 7.4.701 delete mode 100644 7.4.702 delete mode 100644 7.4.703 delete mode 100644 7.4.704 delete mode 100644 7.4.705 delete mode 100644 7.4.706 delete mode 100644 7.4.707 delete mode 100644 7.4.708 delete mode 100644 7.4.709 delete mode 100644 7.4.710 delete mode 100644 7.4.711 delete mode 100644 7.4.712 delete mode 100644 7.4.713 delete mode 100644 7.4.714 delete mode 100644 7.4.715 delete mode 100644 7.4.716 delete mode 100644 7.4.717 delete mode 100644 7.4.718 delete mode 100644 7.4.719 delete mode 100644 7.4.720 delete mode 100644 7.4.721 delete mode 100644 7.4.722 delete mode 100644 7.4.723 delete mode 100644 7.4.724 delete mode 100644 7.4.725 delete mode 100644 7.4.726 delete mode 100644 7.4.727 delete mode 100644 7.4.728 delete mode 100644 7.4.729 delete mode 100644 7.4.730 delete mode 100644 7.4.731 delete mode 100644 7.4.732 delete mode 100644 7.4.733 delete mode 100644 7.4.734 delete mode 100644 7.4.735 delete mode 100644 7.4.736 delete mode 100644 7.4.737 delete mode 100644 7.4.738 delete mode 100644 7.4.739 delete mode 100644 7.4.740 delete mode 100644 7.4.741 delete mode 100644 7.4.742 delete mode 100644 7.4.743 delete mode 100644 7.4.744 delete mode 100644 7.4.745 delete mode 100644 7.4.746 delete mode 100644 7.4.747 delete mode 100644 7.4.748 delete mode 100644 7.4.749 delete mode 100644 7.4.750 delete mode 100644 7.4.751 delete mode 100644 7.4.752 delete mode 100644 7.4.753 delete mode 100644 7.4.754 delete mode 100644 7.4.755 delete mode 100644 7.4.756 delete mode 100644 7.4.757 delete mode 100644 7.4.758 delete mode 100644 7.4.759 delete mode 100644 7.4.760 delete mode 100644 7.4.761 delete mode 100644 7.4.762 delete mode 100644 7.4.763 delete mode 100644 7.4.764 delete mode 100644 7.4.765 delete mode 100644 7.4.766 delete mode 100644 7.4.767 delete mode 100644 7.4.768 delete mode 100644 7.4.769 delete mode 100644 7.4.770 delete mode 100644 7.4.771 delete mode 100644 7.4.772 delete mode 100644 7.4.773 delete mode 100644 7.4.774 delete mode 100644 7.4.775 delete mode 100644 7.4.776 delete mode 100644 7.4.777 delete mode 100644 7.4.778 delete mode 100644 7.4.779 delete mode 100644 7.4.780 delete mode 100644 7.4.781 delete mode 100644 7.4.782 delete mode 100644 7.4.783 delete mode 100644 7.4.784 delete mode 100644 7.4.785 delete mode 100644 7.4.786 delete mode 100644 7.4.787 delete mode 100644 7.4.788 delete mode 100644 7.4.789 delete mode 100644 7.4.790 delete mode 100644 7.4.791 delete mode 100644 7.4.792 delete mode 100644 7.4.793 delete mode 100644 7.4.794 delete mode 100644 7.4.795 delete mode 100644 7.4.796 delete mode 100644 7.4.797 delete mode 100644 7.4.798 delete mode 100644 7.4.799 delete mode 100644 7.4.800 delete mode 100644 7.4.801 delete mode 100644 7.4.802 delete mode 100644 7.4.803 delete mode 100644 7.4.804 delete mode 100644 7.4.805 delete mode 100644 7.4.806 delete mode 100644 7.4.807 delete mode 100644 7.4.808 delete mode 100644 7.4.809 delete mode 100644 7.4.810 delete mode 100644 7.4.811 delete mode 100644 7.4.812 delete mode 100644 7.4.813 delete mode 100644 7.4.814 delete mode 100644 7.4.815 delete mode 100644 7.4.816 delete mode 100644 7.4.817 delete mode 100644 7.4.818 delete mode 100644 7.4.819 delete mode 100644 7.4.820 delete mode 100644 7.4.821 delete mode 100644 7.4.822 delete mode 100644 7.4.823 delete mode 100644 7.4.824 delete mode 100644 7.4.825 delete mode 100644 7.4.826 delete mode 100644 7.4.827 delete mode 100644 7.4.828 delete mode 100644 7.4.829 delete mode 100644 7.4.830 delete mode 100644 7.4.831 delete mode 100644 7.4.832 delete mode 100644 7.4.833 delete mode 100644 7.4.834 delete mode 100644 7.4.835 delete mode 100644 7.4.836 delete mode 100644 7.4.837 delete mode 100644 7.4.838 delete mode 100644 7.4.839 delete mode 100644 7.4.840 delete mode 100644 7.4.841 delete mode 100644 7.4.842 delete mode 100644 7.4.843 delete mode 100644 7.4.844 delete mode 100644 7.4.845 delete mode 100644 7.4.846 delete mode 100644 7.4.847 delete mode 100644 7.4.848 delete mode 100644 7.4.849 delete mode 100644 7.4.850 delete mode 100644 7.4.851 delete mode 100644 7.4.852 delete mode 100644 7.4.853 delete mode 100644 7.4.854 delete mode 100644 7.4.855 delete mode 100644 7.4.856 delete mode 100644 7.4.857 delete mode 100644 7.4.858 delete mode 100644 7.4.859 delete mode 100644 7.4.860 delete mode 100644 7.4.861 delete mode 100644 7.4.862 delete mode 100644 7.4.863 delete mode 100644 7.4.864 delete mode 100644 7.4.865 delete mode 100644 7.4.866 delete mode 100644 7.4.867 delete mode 100644 7.4.868 delete mode 100644 7.4.869 delete mode 100644 7.4.870 delete mode 100644 7.4.871 delete mode 100644 7.4.872 delete mode 100644 7.4.873 delete mode 100644 7.4.874 delete mode 100644 7.4.875 delete mode 100644 7.4.876 delete mode 100644 7.4.877 delete mode 100644 7.4.878 delete mode 100644 7.4.879 delete mode 100644 7.4.880 delete mode 100644 7.4.881 delete mode 100644 7.4.882 delete mode 100644 7.4.883 delete mode 100644 7.4.884 delete mode 100644 7.4.885 delete mode 100644 7.4.886 delete mode 100644 7.4.887 delete mode 100644 7.4.888 delete mode 100644 7.4.889 delete mode 100644 7.4.890 delete mode 100644 7.4.891 delete mode 100644 7.4.892 delete mode 100644 7.4.893 delete mode 100644 7.4.894 delete mode 100644 7.4.895 delete mode 100644 7.4.896 delete mode 100644 7.4.897 delete mode 100644 7.4.898 diff --git a/7.4.001 b/7.4.001 deleted file mode 100644 index 5788972a..00000000 --- a/7.4.001 +++ /dev/null @@ -1,489 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.001 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.001 -Problem: Character classes such as [a-z] to not react to 'ignorecase'. - Breaks man page highlighting. (Mario Grgic) -Solution: Add separate items for classes that react to 'ignorecase'. Clean - up logic handling character classes. Add more tests. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.000/src/regexp_nfa.c 2013-08-01 18:27:51.000000000 +0200 ---- src/regexp_nfa.c 2013-08-14 11:49:50.000000000 +0200 -*************** -*** 29,34 **** ---- 29,37 ---- - # define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log" - #endif - -+ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */ -+ #define NFA_ADD_NL 31 -+ - enum - { - NFA_SPLIT = -1024, -*************** -*** 183,188 **** ---- 186,198 ---- - NFA_NLOWER, /* Match non-lowercase char */ - NFA_UPPER, /* Match uppercase char */ - NFA_NUPPER, /* Match non-uppercase char */ -+ NFA_LOWER_IC, /* Match [a-z] */ -+ NFA_NLOWER_IC, /* Match [^a-z] */ -+ NFA_UPPER_IC, /* Match [A-Z] */ -+ NFA_NUPPER_IC, /* Match [^A-Z] */ -+ -+ NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL, -+ NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL, - - NFA_CURSOR, /* Match cursor pos */ - NFA_LNUM, /* Match line number */ -*************** -*** 199,207 **** - NFA_MARK_LT, /* Match < mark */ - NFA_VISUAL, /* Match Visual area */ - -- NFA_FIRST_NL = NFA_ANY + ADD_NL, -- NFA_LAST_NL = NFA_NUPPER + ADD_NL, -- - /* Character classes [:alnum:] etc */ - NFA_CLASS_ALNUM, - NFA_CLASS_ALPHA, ---- 209,214 ---- -*************** -*** 578,583 **** ---- 585,592 ---- - * On failure, return 0 (=FAIL) - * Start points to the first char of the range, while end should point - * to the closing brace. -+ * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may -+ * need to be interpreted as [a-zA-Z]. - */ - static int - nfa_recognize_char_class(start, end, extra_newl) -*************** -*** 681,687 **** - return FAIL; - - if (newl == TRUE) -! extra_newl = ADD_NL; - - switch (config) - { ---- 690,696 ---- - return FAIL; - - if (newl == TRUE) -! extra_newl = NFA_ADD_NL; - - switch (config) - { -*************** -*** 710,722 **** - case CLASS_not | CLASS_az | CLASS_AZ: - return extra_newl + NFA_NALPHA; - case CLASS_az: -! return extra_newl + NFA_LOWER; - case CLASS_not | CLASS_az: -! return extra_newl + NFA_NLOWER; - case CLASS_AZ: -! return extra_newl + NFA_UPPER; - case CLASS_not | CLASS_AZ: -! return extra_newl + NFA_NUPPER; - } - return FAIL; - } ---- 719,731 ---- - case CLASS_not | CLASS_az | CLASS_AZ: - return extra_newl + NFA_NALPHA; - case CLASS_az: -! return extra_newl + NFA_LOWER_IC; - case CLASS_not | CLASS_az: -! return extra_newl + NFA_NLOWER_IC; - case CLASS_AZ: -! return extra_newl + NFA_UPPER_IC; - case CLASS_not | CLASS_AZ: -! return extra_newl + NFA_NUPPER_IC; - } - return FAIL; - } -*************** -*** 914,920 **** - break; - } - -! extra = ADD_NL; - - /* "\_[" is collection plus newline */ - if (c == '[') ---- 923,929 ---- - break; - } - -! extra = NFA_ADD_NL; - - /* "\_[" is collection plus newline */ - if (c == '[') -*************** -*** 970,976 **** - } - #endif - EMIT(nfa_classcodes[p - classchars]); -! if (extra == ADD_NL) - { - EMIT(NFA_NEWL); - EMIT(NFA_OR); ---- 979,985 ---- - } - #endif - EMIT(nfa_classcodes[p - classchars]); -! if (extra == NFA_ADD_NL) - { - EMIT(NFA_NEWL); - EMIT(NFA_OR); -*************** -*** 1240,1260 **** - { - /* - * Try to reverse engineer character classes. For example, -! * recognize that [0-9] stands for \d and [A-Za-z_] with \h, - * and perform the necessary substitutions in the NFA. - */ - result = nfa_recognize_char_class(regparse, endp, -! extra == ADD_NL); - if (result != FAIL) - { -! if (result >= NFA_DIGIT && result <= NFA_NUPPER) -! EMIT(result); -! else /* must be char class + newline */ - { -! EMIT(result - ADD_NL); - EMIT(NFA_NEWL); - EMIT(NFA_OR); - } - regparse = endp; - mb_ptr_adv(regparse); - return OK; ---- 1249,1269 ---- - { - /* - * Try to reverse engineer character classes. For example, -! * recognize that [0-9] stands for \d and [A-Za-z_] for \h, - * and perform the necessary substitutions in the NFA. - */ - result = nfa_recognize_char_class(regparse, endp, -! extra == NFA_ADD_NL); - if (result != FAIL) - { -! if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL) - { -! EMIT(result - NFA_ADD_NL); - EMIT(NFA_NEWL); - EMIT(NFA_OR); - } -+ else -+ EMIT(result); - regparse = endp; - mb_ptr_adv(regparse); - return OK; -*************** -*** 1504,1510 **** - * collection, add an OR below. But not for negated - * range. */ - if (!negated) -! extra = ADD_NL; - } - else - { ---- 1513,1519 ---- - * collection, add an OR below. But not for negated - * range. */ - if (!negated) -! extra = NFA_ADD_NL; - } - else - { -*************** -*** 1537,1543 **** - EMIT(NFA_END_COLL); - - /* \_[] also matches \n but it's not negated */ -! if (extra == ADD_NL) - { - EMIT(reg_string ? NL : NFA_NEWL); - EMIT(NFA_OR); ---- 1546,1552 ---- - EMIT(NFA_END_COLL); - - /* \_[] also matches \n but it's not negated */ -! if (extra == NFA_ADD_NL) - { - EMIT(reg_string ? NL : NFA_NEWL); - EMIT(NFA_OR); -*************** -*** 2011,2017 **** - if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL) - { - addnl = TRUE; -! c -= ADD_NL; - } - - STRCPY(code, ""); ---- 2020,2026 ---- - if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL) - { - addnl = TRUE; -! c -= NFA_ADD_NL; - } - - STRCPY(code, ""); -*************** -*** 2217,2222 **** ---- 2226,2235 ---- - case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break; - case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break; - case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break; -+ case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break; -+ case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break; -+ case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break; -+ case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break; - - default: - STRCPY(code, "CHAR(x)"); -*************** -*** 2687,2692 **** ---- 2700,2709 ---- - case NFA_NLOWER: - case NFA_UPPER: - case NFA_NUPPER: -+ case NFA_LOWER_IC: -+ case NFA_NLOWER_IC: -+ case NFA_UPPER_IC: -+ case NFA_NUPPER_IC: - /* possibly non-ascii */ - #ifdef FEAT_MBYTE - if (has_mbyte) -*************** -*** 3841,3846 **** ---- 3858,3867 ---- - case NFA_NLOWER: - case NFA_UPPER: - case NFA_NUPPER: -+ case NFA_LOWER_IC: -+ case NFA_NLOWER_IC: -+ case NFA_UPPER_IC: -+ case NFA_NUPPER_IC: - case NFA_START_COLL: - case NFA_START_NEG_COLL: - case NFA_NEWL: -*************** -*** 5872,5877 **** ---- 5893,5920 ---- - ADD_STATE_IF_MATCH(t->state); - break; - -+ case NFA_LOWER_IC: /* [a-z] */ -+ result = ri_lower(curc) || (ireg_ic && ri_upper(curc)); -+ ADD_STATE_IF_MATCH(t->state); -+ break; -+ -+ case NFA_NLOWER_IC: /* [^a-z] */ -+ result = curc != NUL -+ && !(ri_lower(curc) || (ireg_ic && ri_upper(curc))); -+ ADD_STATE_IF_MATCH(t->state); -+ break; -+ -+ case NFA_UPPER_IC: /* [A-Z] */ -+ result = ri_upper(curc) || (ireg_ic && ri_lower(curc)); -+ ADD_STATE_IF_MATCH(t->state); -+ break; -+ -+ case NFA_NUPPER_IC: /* ^[A-Z] */ -+ result = curc != NUL -+ && !(ri_upper(curc) || (ireg_ic && ri_lower(curc))); -+ ADD_STATE_IF_MATCH(t->state); -+ break; -+ - case NFA_BACKREF1: - case NFA_BACKREF2: - case NFA_BACKREF3: -*** ../vim-7.4.000/src/testdir/test64.in 2013-08-01 17:45:33.000000000 +0200 ---- src/testdir/test64.in 2013-08-14 11:50:11.000000000 +0200 -*************** -*** 289,303 **** - :call add(tl, [2, '.a\%$', " a\n "]) - :call add(tl, [2, '.a\%$', " a\n_a", "_a"]) - :" -! :"""" Test recognition of some character classes -! :call add(tl, [2, '[0-9]', '8', '8']) -! :call add(tl, [2, '[^0-9]', '8']) -! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7']) -! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7']) -! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij']) -! :call add(tl, [2, '[a-z]', 'a', 'a']) -! :call add(tl, [2, '[a-zA-Z]', 'a', 'a']) -! :call add(tl, [2, '[A-Z]', 'a']) - :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa']) - :" - :"""" Tests for \z features ---- 289,317 ---- - :call add(tl, [2, '.a\%$', " a\n "]) - :call add(tl, [2, '.a\%$', " a\n_a", "_a"]) - :" -! :"""" Test recognition of character classes -! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567']) -! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89']) -! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789']) -! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% ']) -! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef']) -! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% ']) -! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij']) -! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% ']) -! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ']) -! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% ']) -! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz']) -! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz']) -! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% ']) -! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%']) -! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ']) -! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ ']) -! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ']) -! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%']) -! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ']) -! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ']) -! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ ']) -! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ ']) - :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa']) - :" - :"""" Tests for \z features -*** ../vim-7.4.000/src/testdir/test64.ok 2013-08-01 18:28:56.000000000 +0200 ---- src/testdir/test64.ok 2013-08-14 11:50:37.000000000 +0200 -*************** -*** 650,679 **** - OK 0 - .a\%$ - OK 1 - .a\%$ - OK 2 - .a\%$ -! OK 0 - [0-9] -! OK 1 - [0-9] -! OK 2 - [0-9] -! OK 0 - [^0-9] -! OK 1 - [^0-9] -! OK 2 - [^0-9] -! OK 0 - [0-9a-fA-F]* -! OK 1 - [0-9a-fA-F]* -! OK 2 - [0-9a-fA-F]* - OK 0 - [^0-9A-Fa-f]\+ - OK 1 - [^0-9A-Fa-f]\+ - OK 2 - [^0-9A-Fa-f]\+ - OK 0 - [a-z_A-Z0-9]\+ - OK 1 - [a-z_A-Z0-9]\+ - OK 2 - [a-z_A-Z0-9]\+ -! OK 0 - [a-z] -! OK 1 - [a-z] -! OK 2 - [a-z] -! OK 0 - [a-zA-Z] -! OK 1 - [a-zA-Z] -! OK 2 - [a-zA-Z] -! OK 0 - [A-Z] -! OK 1 - [A-Z] -! OK 2 - [A-Z] - OK 0 - \C[^A-Z]\+ - OK 1 - \C[^A-Z]\+ - OK 2 - \C[^A-Z]\+ ---- 650,721 ---- - OK 0 - .a\%$ - OK 1 - .a\%$ - OK 2 - .a\%$ -! OK 0 - [0-7]\+ -! OK 1 - [0-7]\+ -! OK 2 - [0-7]\+ -! OK 0 - [^0-7]\+ -! OK 1 - [^0-7]\+ -! OK 2 - [^0-7]\+ -! OK 0 - [0-9]\+ -! OK 1 - [0-9]\+ -! OK 2 - [0-9]\+ -! OK 0 - [^0-9]\+ -! OK 1 - [^0-9]\+ -! OK 2 - [^0-9]\+ -! OK 0 - [0-9a-fA-F]\+ -! OK 1 - [0-9a-fA-F]\+ -! OK 2 - [0-9a-fA-F]\+ - OK 0 - [^0-9A-Fa-f]\+ - OK 1 - [^0-9A-Fa-f]\+ - OK 2 - [^0-9A-Fa-f]\+ - OK 0 - [a-z_A-Z0-9]\+ - OK 1 - [a-z_A-Z0-9]\+ - OK 2 - [a-z_A-Z0-9]\+ -! OK 0 - [^a-z_A-Z0-9]\+ -! OK 1 - [^a-z_A-Z0-9]\+ -! OK 2 - [^a-z_A-Z0-9]\+ -! OK 0 - [a-z_A-Z]\+ -! OK 1 - [a-z_A-Z]\+ -! OK 2 - [a-z_A-Z]\+ -! OK 0 - [^a-z_A-Z]\+ -! OK 1 - [^a-z_A-Z]\+ -! OK 2 - [^a-z_A-Z]\+ -! OK 0 - [a-z]\+ -! OK 1 - [a-z]\+ -! OK 2 - [a-z]\+ -! OK 0 - [a-z]\+ -! OK 1 - [a-z]\+ -! OK 2 - [a-z]\+ -! OK 0 - [^a-z]\+ -! OK 1 - [^a-z]\+ -! OK 2 - [^a-z]\+ -! OK 0 - [^a-z]\+ -! OK 1 - [^a-z]\+ -! OK 2 - [^a-z]\+ -! OK 0 - [a-zA-Z]\+ -! OK 1 - [a-zA-Z]\+ -! OK 2 - [a-zA-Z]\+ -! OK 0 - [^a-zA-Z]\+ -! OK 1 - [^a-zA-Z]\+ -! OK 2 - [^a-zA-Z]\+ -! OK 0 - [A-Z]\+ -! OK 1 - [A-Z]\+ -! OK 2 - [A-Z]\+ -! OK 0 - [^A-Z]\+ -! OK 1 - [^A-Z]\+ -! OK 2 - [^A-Z]\+ -! OK 0 - [a-z]\+\c -! OK 1 - [a-z]\+\c -! OK 2 - [a-z]\+\c -! OK 0 - [A-Z]\+\c -! OK 1 - [A-Z]\+\c -! OK 2 - [A-Z]\+\c -! OK 0 - \c[^a-z]\+ -! OK 1 - \c[^a-z]\+ -! OK 2 - \c[^a-z]\+ -! OK 0 - \c[^A-Z]\+ -! OK 1 - \c[^A-Z]\+ -! OK 2 - \c[^A-Z]\+ - OK 0 - \C[^A-Z]\+ - OK 1 - \C[^A-Z]\+ - OK 2 - \C[^A-Z]\+ -*** ../vim-7.4.000/src/version.c 2013-08-10 13:29:20.000000000 +0200 ---- src/version.c 2013-08-14 11:54:57.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 1, - /**/ - --- -How many light bulbs does it take to change a person? - - /// 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 /// diff --git a/7.4.002 b/7.4.002 deleted file mode 100644 index d92f4de6..00000000 --- a/7.4.002 +++ /dev/null @@ -1,77 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.002 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4b.002 -Problem: Pattern with two alternative look-behind matches does not match. - (Amadeus Demarzi) -Solution: When comparing PIMs also compare their state ID to see if they are - different. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.001/src/regexp_nfa.c 2013-08-14 12:05:54.000000000 +0200 ---- src/regexp_nfa.c 2013-08-14 13:12:09.000000000 +0200 -*************** -*** 3782,3787 **** ---- 3782,3790 ---- - if (two_unused) - /* one is used and two is not: not equal */ - return FALSE; -+ /* compare the state id */ -+ if (one->state->id != two->state->id) -+ return FALSE; - /* compare the position */ - if (REG_MULTI) - return one->end.pos.lnum == two->end.pos.lnum -*** ../vim-7.4.001/src/testdir/test64.in 2013-08-14 12:05:54.000000000 +0200 ---- src/testdir/test64.in 2013-08-14 12:58:38.000000000 +0200 -*************** -*** 421,426 **** ---- 421,429 ---- - :call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo']) - :call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo']) - :" -+ :" complicated look-behind match -+ :call add(tl, [2, '\(r\@<=\|\w\@ - :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) - :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) -*** ../vim-7.4.001/src/testdir/test64.ok 2013-08-14 12:05:54.000000000 +0200 ---- src/testdir/test64.ok 2013-08-14 13:14:09.000000000 +0200 -*************** -*** 974,979 **** ---- 974,982 ---- - OK 0 - \(foo\)\@<=.* - OK 1 - \(foo\)\@<=.* - OK 2 - \(foo\)\@<=.* -+ OK 0 - \(r\@<=\|\w\@a - OK 1 - \(a*\)\@>a - OK 2 - \(a*\)\@>a -*** ../vim-7.4.001/src/version.c 2013-08-14 12:05:54.000000000 +0200 ---- src/version.c 2013-08-14 13:13:45.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 2, - /**/ - --- -From "know your smileys": - :-)-O Smiling doctor with stethoscope - - /// 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 /// diff --git a/7.4.003 b/7.4.003 deleted file mode 100644 index 9aad3c8c..00000000 --- a/7.4.003 +++ /dev/null @@ -1,100 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.003 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.003 -Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow) -Solution: Refresh stale pointer. (James McCoy) -Files: src/regexp_nfa.c - - -*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200 ---- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200 -*************** -*** 4120,4126 **** - sub = &subs->norm; - } - #ifdef FEAT_SYN_HL -! else if (state->c >= NFA_ZOPEN) - { - subidx = state->c - NFA_ZOPEN; - sub = &subs->synt; ---- 4120,4126 ---- - sub = &subs->norm; - } - #ifdef FEAT_SYN_HL -! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9) - { - subidx = state->c - NFA_ZOPEN; - sub = &subs->synt; -*************** -*** 4189,4194 **** ---- 4189,4201 ---- - } - - subs = addstate(l, state->out, subs, pim, off); -+ /* "subs" may have changed, need to set "sub" again */ -+ #ifdef FEAT_SYN_HL -+ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9) -+ sub = &subs->synt; -+ else -+ #endif -+ sub = &subs->norm; - - if (save_in_use == -1) - { -*************** -*** 4237,4243 **** - sub = &subs->norm; - } - #ifdef FEAT_SYN_HL -! else if (state->c >= NFA_ZCLOSE) - { - subidx = state->c - NFA_ZCLOSE; - sub = &subs->synt; ---- 4244,4250 ---- - sub = &subs->norm; - } - #ifdef FEAT_SYN_HL -! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9) - { - subidx = state->c - NFA_ZCLOSE; - sub = &subs->synt; -*************** -*** 4281,4286 **** ---- 4288,4300 ---- - } - - subs = addstate(l, state->out, subs, pim, off); -+ /* "subs" may have changed, need to set "sub" again */ -+ #ifdef FEAT_SYN_HL -+ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9) -+ sub = &subs->synt; -+ else -+ #endif -+ sub = &subs->norm; - - if (REG_MULTI) - sub->list.multi[subidx].end = save_lpos; -*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200 ---- src/version.c 2013-08-14 14:03:51.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 3, - /**/ - --- -Where do you want to crash today? - - /// 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 /// diff --git a/7.4.004 b/7.4.004 deleted file mode 100644 index f629d673..00000000 --- a/7.4.004 +++ /dev/null @@ -1,232 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.004 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.004 -Problem: When closing a window fails ":bwipe" may hang. -Solution: Let win_close() return FAIL and break out of the loop. -Files: src/window.c, src/proto/window.pro, src/buffer.c - - -*** ../vim-7.4.003/src/window.c 2013-07-24 17:38:29.000000000 +0200 ---- src/window.c 2013-08-14 16:52:44.000000000 +0200 -*************** -*** 2172,2179 **** - * If "free_buf" is TRUE related buffer may be unloaded. - * - * Called by :quit, :close, :xit, :wq and findtag(). - */ -! void - win_close(win, free_buf) - win_T *win; - int free_buf; ---- 2172,2180 ---- - * If "free_buf" is TRUE related buffer may be unloaded. - * - * Called by :quit, :close, :xit, :wq and findtag(). -+ * Returns FAIL when the window was not closed. - */ -! int - win_close(win, free_buf) - win_T *win; - int free_buf; -*************** -*** 2190,2210 **** - if (last_window()) - { - EMSG(_("E444: Cannot close last window")); -! return; - } - - #ifdef FEAT_AUTOCMD - if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing)) -! return; /* window is already being closed */ - if (win == aucmd_win) - { - EMSG(_("E813: Cannot close autocmd window")); -! return; - } - if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window()) - { - EMSG(_("E814: Cannot close window, only autocmd window would remain")); -! return; - } - #endif - ---- 2191,2211 ---- - if (last_window()) - { - EMSG(_("E444: Cannot close last window")); -! return FAIL; - } - - #ifdef FEAT_AUTOCMD - if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing)) -! return FAIL; /* window is already being closed */ - if (win == aucmd_win) - { - EMSG(_("E813: Cannot close autocmd window")); -! return FAIL; - } - if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window()) - { - EMSG(_("E814: Cannot close window, only autocmd window would remain")); -! return FAIL; - } - #endif - -*************** -*** 2212,2218 **** - * and then close the window and the tab page to avoid that curwin and - * curtab are invalid while we are freeing memory. */ - if (close_last_window_tabpage(win, free_buf, prev_curtab)) -! return; - - /* When closing the help window, try restoring a snapshot after closing - * the window. Otherwise clear the snapshot, it's now invalid. */ ---- 2213,2219 ---- - * and then close the window and the tab page to avoid that curwin and - * curtab are invalid while we are freeing memory. */ - if (close_last_window_tabpage(win, free_buf, prev_curtab)) -! return FAIL; - - /* When closing the help window, try restoring a snapshot after closing - * the window. Otherwise clear the snapshot, it's now invalid. */ -*************** -*** 2240,2261 **** - win->w_closing = TRUE; - apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); - if (!win_valid(win)) -! return; - win->w_closing = FALSE; - if (last_window()) -! return; - } - win->w_closing = TRUE; - apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf); - if (!win_valid(win)) -! return; - win->w_closing = FALSE; - if (last_window()) -! return; - # ifdef FEAT_EVAL - /* autocmds may abort script processing */ - if (aborting()) -! return; - # endif - } - #endif ---- 2241,2262 ---- - win->w_closing = TRUE; - apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); - if (!win_valid(win)) -! return FAIL; - win->w_closing = FALSE; - if (last_window()) -! return FAIL; - } - win->w_closing = TRUE; - apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf); - if (!win_valid(win)) -! return FAIL; - win->w_closing = FALSE; - if (last_window()) -! return FAIL; - # ifdef FEAT_EVAL - /* autocmds may abort script processing */ - if (aborting()) -! return FAIL; - # endif - } - #endif -*************** -*** 2303,2309 **** - * other window or moved to another tab page. */ - else if (!win_valid(win) || last_window() || curtab != prev_curtab - || close_last_window_tabpage(win, free_buf, prev_curtab)) -! return; - - /* Free the memory used for the window and get the window that received - * the screen space. */ ---- 2304,2310 ---- - * other window or moved to another tab page. */ - else if (!win_valid(win) || last_window() || curtab != prev_curtab - || close_last_window_tabpage(win, free_buf, prev_curtab)) -! return FAIL; - - /* Free the memory used for the window and get the window that received - * the screen space. */ -*************** -*** 2383,2388 **** ---- 2384,2390 ---- - #endif - - redraw_all_later(NOT_VALID); -+ return OK; - } - - /* -*** ../vim-7.4.003/src/proto/window.pro 2013-08-10 13:37:30.000000000 +0200 ---- src/proto/window.pro 2013-08-14 16:52:50.000000000 +0200 -*************** -*** 9,15 **** - void win_equal __ARGS((win_T *next_curwin, int current, int dir)); - void close_windows __ARGS((buf_T *buf, int keep_curwin)); - int one_window __ARGS((void)); -! void win_close __ARGS((win_T *win, int free_buf)); - void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp)); - void win_free_all __ARGS((void)); - win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); ---- 9,15 ---- - void win_equal __ARGS((win_T *next_curwin, int current, int dir)); - void close_windows __ARGS((buf_T *buf, int keep_curwin)); - int one_window __ARGS((void)); -! int win_close __ARGS((win_T *win, int free_buf)); - void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp)); - void win_free_all __ARGS((void)); - win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); -*** ../vim-7.4.003/src/buffer.c 2013-07-17 16:39:00.000000000 +0200 ---- src/buffer.c 2013-08-14 16:54:34.000000000 +0200 -*************** -*** 1186,1192 **** - && !(curwin->w_closing || curwin->w_buffer->b_closing) - # endif - && (firstwin != lastwin || first_tabpage->tp_next != NULL)) -! win_close(curwin, FALSE); - #endif - - /* ---- 1186,1195 ---- - && !(curwin->w_closing || curwin->w_buffer->b_closing) - # endif - && (firstwin != lastwin || first_tabpage->tp_next != NULL)) -! { -! if (win_close(curwin, FALSE) == FAIL) -! break; -! } - #endif - - /* -*** ../vim-7.4.003/src/version.c 2013-08-14 14:18:37.000000000 +0200 ---- src/version.c 2013-08-14 17:10:23.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 4, - /**/ - --- -From "know your smileys": - *<|:-) Santa Claus (Ho Ho Ho) - - /// 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 /// diff --git a/7.4.005 b/7.4.005 deleted file mode 100644 index f85d1f0e..00000000 --- a/7.4.005 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.005 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.005 -Problem: Using "vaB" while 'virtualedit' is set selects the wrong area. - (Dimitar Dimitrov) -Solution: Reset coladd when finding a match. -Files: src/search.c - - -*** ../vim-7.4.004/src/search.c 2013-07-17 19:20:47.000000000 +0200 ---- src/search.c 2013-08-14 17:32:38.000000000 +0200 -*************** -*** 1760,1765 **** ---- 1760,1768 ---- - #endif - - pos = curwin->w_cursor; -+ #ifdef FEAT_VIRTUALEDIT -+ pos.coladd = 0; -+ #endif - linep = ml_get(pos.lnum); - - cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL); -*** ../vim-7.4.004/src/version.c 2013-08-14 17:11:14.000000000 +0200 ---- src/version.c 2013-08-14 17:38:05.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 5, - /**/ - --- -You can't have everything. Where would you put it? - -- Steven Wright - - /// 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 /// diff --git a/7.4.006 b/7.4.006 deleted file mode 100644 index 55d3802c..00000000 --- a/7.4.006 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.006 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.006 -Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett) -Solution: Remove the trailing slash. (lcd) -Files: src/eval.c - - -*** ../vim-7.4.005/src/eval.c 2013-07-05 18:23:42.000000000 +0200 ---- src/eval.c 2013-08-22 12:00:28.000000000 +0200 -*************** -*** 14292,14297 **** ---- 14292,14301 ---- - return; - - dir = get_tv_string_buf(&argvars[0], buf); -+ if (*gettail(dir) == NUL) -+ /* remove trailing slashes */ -+ *gettail_sep(dir) = NUL; -+ - if (argvars[1].v_type != VAR_UNKNOWN) - { - if (argvars[2].v_type != VAR_UNKNOWN) -*************** -*** 14299,14305 **** - if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) - mkdir_recurse(dir, prot); - } -! rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0; - } - #endif - ---- 14303,14309 ---- - if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) - mkdir_recurse(dir, prot); - } -! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot); - } - #endif - -*** ../vim-7.4.005/src/version.c 2013-08-14 17:45:25.000000000 +0200 ---- src/version.c 2013-08-22 12:02:46.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 6, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -97. Your mother tells you to remember something, and you look for - a File/Save command. - - /// 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 /// diff --git a/7.4.007 b/7.4.007 deleted file mode 100644 index 5495ffbf..00000000 --- a/7.4.007 +++ /dev/null @@ -1,95 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.007 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.007 -Problem: Creating a preview window on startup leaves the screen layout in a - messed up state. (Marius Gedminas) -Solution: Don't change firstwin. (Christian Brabandt) -Files: src/main.c - - -*** ../vim-7.4.006/src/main.c 2013-07-03 12:36:49.000000000 +0200 ---- src/main.c 2013-08-22 14:02:39.000000000 +0200 -*************** -*** 2727,2732 **** ---- 2727,2733 ---- - int arg_idx; /* index in argument list */ - int i; - int advance = TRUE; -+ win_T *win; - - # ifdef FEAT_AUTOCMD - /* -*************** -*** 2816,2839 **** - # ifdef FEAT_AUTOCMD - --autocmd_no_enter; - # endif - #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) -! /* -! * Avoid making a preview window the current window. -! */ -! if (firstwin->w_p_pvw) - { -! win_T *win; -! -! for (win = firstwin; win != NULL; win = win->w_next) -! if (!win->w_p_pvw) -! { -! firstwin = win; -! break; -! } - } - #endif -! /* make the first window the current window */ -! win_enter(firstwin, FALSE); - - # ifdef FEAT_AUTOCMD - --autocmd_no_leave; ---- 2817,2838 ---- - # ifdef FEAT_AUTOCMD - --autocmd_no_enter; - # endif -+ -+ /* make the first window the current window */ -+ win = firstwin; - #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) -! /* Avoid making a preview window the current window. */ -! while (win->w_p_pvw) - { -! win = win->w_next; -! if (win == NULL) -! { -! win = firstwin; -! break; -! } - } - #endif -! win_enter(win, FALSE); - - # ifdef FEAT_AUTOCMD - --autocmd_no_leave; -*** ../vim-7.4.006/src/version.c 2013-08-22 12:06:50.000000000 +0200 ---- src/version.c 2013-08-22 14:04:11.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 7, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -105. When someone asks you for your address, you tell them your URL. - - /// 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 /// diff --git a/7.4.008 b/7.4.008 deleted file mode 100644 index 6abd493f..00000000 --- a/7.4.008 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.008 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.008 -Problem: New regexp engine can't be interrupted. -Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto) -Files: src/regexp_nfa.c, src/regexp.c - - -*** ../vim-7.4.007/src/regexp_nfa.c 2013-08-14 14:18:37.000000000 +0200 ---- src/regexp_nfa.c 2013-08-25 16:55:56.000000000 +0200 -*************** -*** 5089,5094 **** ---- 5089,5100 ---- - return FALSE; - } - #endif -+ /* Some patterns may take a long time to match, especially when using -+ * recursive_regmatch(). Allow interrupting them with CTRL-C. */ -+ fast_breakcheck(); -+ if (got_int) -+ return FALSE; -+ - nfa_match = FALSE; - - /* Allocate memory for the lists of nodes. */ -*** ../vim-7.4.007/src/regexp.c 2013-08-01 18:31:30.000000000 +0200 ---- src/regexp.c 2013-08-25 16:57:35.000000000 +0200 -*************** -*** 4311,4318 **** - */ - for (;;) - { -! /* Some patterns may cause a long time to match, even though they are not -! * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */ - fast_breakcheck(); - - #ifdef DEBUG ---- 4311,4318 ---- - */ - for (;;) - { -! /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q". -! * Allow interrupting them with CTRL-C. */ - fast_breakcheck(); - - #ifdef DEBUG -*** ../vim-7.4.007/src/version.c 2013-08-22 14:14:23.000000000 +0200 ---- src/version.c 2013-08-25 16:57:51.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 8, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -124. You begin conversations with, "Who is your internet service provider?" - - /// 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 /// diff --git a/7.4.009 b/7.4.009 deleted file mode 100644 index f5e5fa60..00000000 --- a/7.4.009 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.009 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.009 -Problem: When a file was not decrypted (yet), writing it may destroy the - contents. -Solution: Mark the file as readonly until decryption was done. (Christian - Brabandt) -Files: src/fileio.c - - -*** ../vim-7.4.008/src/fileio.c 2013-08-05 21:58:03.000000000 +0200 ---- src/fileio.c 2013-08-25 17:45:27.000000000 +0200 -*************** -*** 2926,2934 **** ---- 2926,2939 ---- - int *did_ask; /* flag: whether already asked for key */ - { - int method = crypt_method_from_magic((char *)ptr, *sizep); -+ int b_p_ro = curbuf->b_p_ro; - - if (method >= 0) - { -+ /* Mark the buffer as read-only until the decryption has taken place. -+ * Avoids accidentally overwriting the file with garbage. */ -+ curbuf->b_p_ro = TRUE; -+ - set_crypt_method(curbuf, method); - if (method > 0) - (void)blowfish_self_test(); -*************** -*** 2977,2982 **** ---- 2982,2989 ---- - *sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len; - mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len, - (size_t)*sizep); -+ /* Restore the read-only flag. */ -+ curbuf->b_p_ro = b_p_ro; - } - } - /* When starting to edit a new file which does not have encryption, clear -*** ../vim-7.4.008/src/version.c 2013-08-25 17:01:36.000000000 +0200 ---- src/version.c 2013-08-25 17:44:30.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 9, - /**/ - --- -I have a watch cat! Just break in and she'll watch. - - /// 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 /// diff --git a/7.4.010 b/7.4.010 deleted file mode 100644 index fee6ba5b..00000000 --- a/7.4.010 +++ /dev/null @@ -1,79 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.010 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.010 (after 7.4.006) -Problem: Crash with invalid argument to mkdir(). -Solution: Check for empty string. (lcd47) -Files: src/eval.c - - -*** ../vim-7.4.009/src/eval.c 2013-08-22 12:06:50.000000000 +0200 ---- src/eval.c 2013-08-30 15:47:47.000000000 +0200 -*************** -*** 14292,14309 **** - return; - - dir = get_tv_string_buf(&argvars[0], buf); -! if (*gettail(dir) == NUL) -! /* remove trailing slashes */ -! *gettail_sep(dir) = NUL; -! -! if (argvars[1].v_type != VAR_UNKNOWN) - { -! if (argvars[2].v_type != VAR_UNKNOWN) -! prot = get_tv_number_chk(&argvars[2], NULL); -! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) -! mkdir_recurse(dir, prot); - } -- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot); - } - #endif - ---- 14292,14314 ---- - return; - - dir = get_tv_string_buf(&argvars[0], buf); -! if (*dir == NUL) -! rettv->vval.v_number = FAIL; -! else - { -! if (*gettail(dir) == NUL) -! /* remove trailing slashes */ -! *gettail_sep(dir) = NUL; -! -! if (argvars[1].v_type != VAR_UNKNOWN) -! { -! if (argvars[2].v_type != VAR_UNKNOWN) -! prot = get_tv_number_chk(&argvars[2], NULL); -! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) -! mkdir_recurse(dir, prot); -! } -! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot); - } - } - #endif - -*** ../vim-7.4.009/src/version.c 2013-08-25 17:46:05.000000000 +0200 ---- src/version.c 2013-08-30 15:48:37.000000000 +0200 -*************** -*** 729,730 **** ---- 729,732 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 10, - /**/ - --- -I wish there was a knob on the TV to turn up the intelligence. -There's a knob called "brightness", but it doesn't seem to work. - - /// 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 /// diff --git a/7.4.011 b/7.4.011 deleted file mode 100644 index efff82c5..00000000 --- a/7.4.011 +++ /dev/null @@ -1,100 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.011 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.011 -Problem: Cannot find out if "acl" and "xpm" features are supported. -Solution: Add "acl" and "xpm" to the list of features. (Ken Takata) -Files: src/eval.c, src/version.c - - -*** ../vim-7.4.010/src/eval.c 2013-08-30 16:00:04.000000000 +0200 ---- src/eval.c 2013-08-30 16:34:12.000000000 +0200 -*************** -*** 12135,12140 **** ---- 12135,12143 ---- - #ifndef CASE_INSENSITIVE_FILENAME - "fname_case", - #endif -+ #ifdef HAVE_ACL -+ "acl", -+ #endif - #ifdef FEAT_ARABIC - "arabic", - #endif -*************** -*** 12538,12544 **** - "xfontset", - #endif - #ifdef FEAT_XPM_W32 -! "xpm_w32", - #endif - #ifdef USE_XSMP - "xsmp", ---- 12541,12552 ---- - "xfontset", - #endif - #ifdef FEAT_XPM_W32 -! "xpm", -! "xpm_w32", /* for backward compatibility */ -! #else -! # if defined(HAVE_XPM) -! "xpm", -! # endif - #endif - #ifdef USE_XSMP - "xsmp", -*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200 ---- src/version.c 2013-08-30 16:34:37.000000000 +0200 -*************** -*** 60,65 **** ---- 60,70 ---- - - static char *(features[]) = - { -+ #ifdef HAVE_ACL -+ "+acl", -+ #else -+ "-acl", -+ #endif - #ifdef AMIGA /* only for Amiga systems */ - # ifdef FEAT_ARP - "+ARP", -*************** -*** 721,726 **** ---- 726,737 ---- - # else - "-xpm_w32", - # endif -+ #else -+ # ifdef HAVE_XPM -+ "+xpm", -+ # else -+ "-xpm", -+ # endif - #endif - NULL - }; -*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200 ---- src/version.c 2013-08-30 16:34:37.000000000 +0200 -*************** -*** 729,730 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 11, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -141. You'd rather go to http://www.weather.com/ than look out your window. - - /// 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 /// diff --git a/7.4.012 b/7.4.012 deleted file mode 100644 index f831442e..00000000 --- a/7.4.012 +++ /dev/null @@ -1,202 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.012 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.012 -Problem: MS-Windows: resolving shortcut does not work properly with - multi-byte characters. -Solution: Use wide system functions. (Ken Takata) -Files: src/os_mswin.c - - -*** ../vim-7.4.011/src/os_mswin.c 2013-06-16 16:41:11.000000000 +0200 ---- src/os_mswin.c 2013-08-30 16:43:23.000000000 +0200 -*************** -*** 1761,1769 **** - IPersistFile *ppf = NULL; - OLECHAR wsz[MAX_PATH]; - WIN32_FIND_DATA ffd; // we get those free of charge -! TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'... - char_u *rfname = NULL; - int len; - - /* Check if the file name ends in ".lnk". Avoid calling - * CoCreateInstance(), it's quite slow. */ ---- 1761,1773 ---- - IPersistFile *ppf = NULL; - OLECHAR wsz[MAX_PATH]; - WIN32_FIND_DATA ffd; // we get those free of charge -! CHAR buf[MAX_PATH]; // could have simply reused 'wsz'... - char_u *rfname = NULL; - int len; -+ # ifdef FEAT_MBYTE -+ IShellLinkW *pslw = NULL; -+ WIN32_FIND_DATAW ffdw; // we get those free of charge -+ # endif - - /* Check if the file name ends in ".lnk". Avoid calling - * CoCreateInstance(), it's quite slow. */ -*************** -*** 1775,1792 **** - - CoInitialize(NULL); - - // create a link manager object and request its interface - hr = CoCreateInstance( - &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, - &IID_IShellLink, (void**)&psl); - if (hr != S_OK) -! goto shortcut_error; - - // Get a pointer to the IPersistFile interface. - hr = psl->lpVtbl->QueryInterface( - psl, &IID_IPersistFile, (void**)&ppf); - if (hr != S_OK) -! goto shortcut_error; - - // full path string must be in Unicode. - MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH); ---- 1779,1840 ---- - - CoInitialize(NULL); - -+ # ifdef FEAT_MBYTE -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ // create a link manager object and request its interface -+ hr = CoCreateInstance( -+ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, -+ &IID_IShellLinkW, (void**)&pslw); -+ if (hr == S_OK) -+ { -+ WCHAR *p = enc_to_utf16(fname, NULL); -+ -+ if (p != NULL) -+ { -+ // Get a pointer to the IPersistFile interface. -+ hr = pslw->lpVtbl->QueryInterface( -+ pslw, &IID_IPersistFile, (void**)&ppf); -+ if (hr != S_OK) -+ goto shortcut_errorw; -+ -+ // "load" the name and resolve the link -+ hr = ppf->lpVtbl->Load(ppf, p, STGM_READ); -+ if (hr != S_OK) -+ goto shortcut_errorw; -+ # if 0 // This makes Vim wait a long time if the target does not exist. -+ hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI); -+ if (hr != S_OK) -+ goto shortcut_errorw; -+ # endif -+ -+ // Get the path to the link target. -+ ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR)); -+ hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0); -+ if (hr == S_OK && wsz[0] != NUL) -+ rfname = utf16_to_enc(wsz, NULL); -+ -+ shortcut_errorw: -+ vim_free(p); -+ if (hr == S_OK) -+ goto shortcut_end; -+ } -+ } -+ /* Retry with non-wide function (for Windows 98). */ -+ } -+ # endif - // create a link manager object and request its interface - hr = CoCreateInstance( - &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, - &IID_IShellLink, (void**)&psl); - if (hr != S_OK) -! goto shortcut_end; - - // Get a pointer to the IPersistFile interface. - hr = psl->lpVtbl->QueryInterface( - psl, &IID_IPersistFile, (void**)&ppf); - if (hr != S_OK) -! goto shortcut_end; - - // full path string must be in Unicode. - MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH); -*************** -*** 1794,1805 **** - // "load" the name and resolve the link - hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ); - if (hr != S_OK) -! goto shortcut_error; -! #if 0 // This makes Vim wait a long time if the target doesn't exist. - hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI); - if (hr != S_OK) -! goto shortcut_error; -! #endif - - // Get the path to the link target. - ZeroMemory(buf, MAX_PATH); ---- 1842,1853 ---- - // "load" the name and resolve the link - hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ); - if (hr != S_OK) -! goto shortcut_end; -! # if 0 // This makes Vim wait a long time if the target doesn't exist. - hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI); - if (hr != S_OK) -! goto shortcut_end; -! # endif - - // Get the path to the link target. - ZeroMemory(buf, MAX_PATH); -*************** -*** 1807,1818 **** - if (hr == S_OK && buf[0] != NUL) - rfname = vim_strsave(buf); - -! shortcut_error: - // Release all interface pointers (both belong to the same object) - if (ppf != NULL) - ppf->lpVtbl->Release(ppf); - if (psl != NULL) - psl->lpVtbl->Release(psl); - - CoUninitialize(); - return rfname; ---- 1855,1870 ---- - if (hr == S_OK && buf[0] != NUL) - rfname = vim_strsave(buf); - -! shortcut_end: - // Release all interface pointers (both belong to the same object) - if (ppf != NULL) - ppf->lpVtbl->Release(ppf); - if (psl != NULL) - psl->lpVtbl->Release(psl); -+ # ifdef FEAT_MBYTE -+ if (pslw != NULL) -+ pslw->lpVtbl->Release(pslw); -+ # endif - - CoUninitialize(); - return rfname; -*** ../vim-7.4.011/src/version.c 2013-08-30 16:35:41.000000000 +0200 ---- src/version.c 2013-08-30 16:39:40.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 12, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -142. You dream about creating the world's greatest web site. - - /// 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 /// diff --git a/7.4.013 b/7.4.013 deleted file mode 100644 index dcbe0fb3..00000000 --- a/7.4.013 +++ /dev/null @@ -1,99 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.013 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.013 -Problem: File name buffer too small for utf-8. -Solution: Use character count instead of byte count. (Ken Takata) -Files: src/os_mswin.c - - -*** ../vim-7.4.012/src/os_mswin.c 2013-08-30 16:44:15.000000000 +0200 ---- src/os_mswin.c 2013-08-30 16:47:54.000000000 +0200 -*************** -*** 456,462 **** ---- 456,469 ---- - int - mch_isFullName(char_u *fname) - { -+ #ifdef FEAT_MBYTE -+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which -+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is -+ * UTF-8. */ -+ char szName[_MAX_PATH * 3 + 1]; -+ #else - char szName[_MAX_PATH + 1]; -+ #endif - - /* A name like "d:/foo" and "//server/share" is absolute */ - if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\')) -*************** -*** 464,470 **** - return TRUE; - - /* A name that can't be made absolute probably isn't absolute. */ -! if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL) - return FALSE; - - return pathcmp(fname, szName, -1) == 0; ---- 471,477 ---- - return TRUE; - - /* A name that can't be made absolute probably isn't absolute. */ -! if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL) - return FALSE; - - return pathcmp(fname, szName, -1) == 0; -*************** -*** 498,507 **** - int - vim_stat(const char *name, struct stat *stp) - { - char buf[_MAX_PATH + 1]; - char *p; - -! vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH); - p = buf + strlen(buf); - if (p > buf) - mb_ptr_back(buf, p); ---- 505,521 ---- - int - vim_stat(const char *name, struct stat *stp) - { -+ #ifdef FEAT_MBYTE -+ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which -+ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is -+ * UTF-8. */ -+ char buf[_MAX_PATH * 3 + 1]; -+ #else - char buf[_MAX_PATH + 1]; -+ #endif - char *p; - -! vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1); - p = buf + strlen(buf); - if (p > buf) - mb_ptr_back(buf, p); -*** ../vim-7.4.012/src/version.c 2013-08-30 16:44:15.000000000 +0200 ---- src/version.c 2013-08-30 16:47:36.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 13, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -143. You dream in pallettes of 216 websafe colors. - - /// 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 /// diff --git a/7.4.014 b/7.4.014 deleted file mode 100644 index f6554337..00000000 --- a/7.4.014 +++ /dev/null @@ -1,102 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.014 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.014 -Problem: MS-Windows: check for writing to device does not work. -Solution: Fix #ifdefs. (Ken Takata) -Files: src/fileio.c - - -*** ../vim-7.4.013/src/fileio.c 2013-08-25 17:46:05.000000000 +0200 ---- src/fileio.c 2013-08-30 16:56:46.000000000 +0200 -*************** -*** 428,440 **** - } - } - -- #ifdef UNIX -- /* -- * On Unix it is possible to read a directory, so we have to -- * check for it before the mch_open(). -- */ - if (!read_stdin && !read_buffer) - { - perm = mch_getperm(fname); - if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */ - # ifdef S_ISFIFO ---- 428,440 ---- - } - } - - if (!read_stdin && !read_buffer) - { -+ #ifdef UNIX -+ /* -+ * On Unix it is possible to read a directory, so we have to -+ * check for it before the mch_open(). -+ */ - perm = mch_getperm(fname); - if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */ - # ifdef S_ISFIFO -*************** -*** 457,464 **** - msg_scroll = msg_save; - return FAIL; - } -! -! # if defined(MSDOS) || defined(MSWIN) || defined(OS2) - /* - * MS-Windows allows opening a device, but we will probably get stuck - * trying to read it. ---- 457,464 ---- - msg_scroll = msg_save; - return FAIL; - } -! #endif -! #if defined(MSDOS) || defined(MSWIN) || defined(OS2) - /* - * MS-Windows allows opening a device, but we will probably get stuck - * trying to read it. -*************** -*** 470,478 **** - msg_scroll = msg_save; - return FAIL; - } -- # endif -- } - #endif - - /* Set default or forced 'fileformat' and 'binary'. */ - set_file_options(set_options, eap); ---- 470,477 ---- - msg_scroll = msg_save; - return FAIL; - } - #endif -+ } - - /* Set default or forced 'fileformat' and 'binary'. */ - set_file_options(set_options, eap); -*** ../vim-7.4.013/src/version.c 2013-08-30 16:51:15.000000000 +0200 ---- src/version.c 2013-08-30 16:54:33.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 14, - /**/ - --- -Drink wet cement and get really stoned. - - /// 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 /// diff --git a/7.4.015 b/7.4.015 deleted file mode 100644 index e8b284d1..00000000 --- a/7.4.015 +++ /dev/null @@ -1,106 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.015 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.015 -Problem: MS-Windows: Detecting node type does not work for multi-byte - characters. -Solution: Use wide character function when needed. (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.014/src/os_win32.c 2013-08-10 12:39:12.000000000 +0200 ---- src/os_win32.c 2013-08-30 17:09:47.000000000 +0200 -*************** -*** 3107,3112 **** ---- 3107,3115 ---- - { - HANDLE hFile; - int type; -+ #ifdef FEAT_MBYTE -+ WCHAR *wn = NULL; -+ #endif - - /* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to - * read from it later will cause Vim to hang. Thus return NODE_WRITABLE -*************** -*** 3114,3127 **** - if (STRNCMP(name, "\\\\.\\", 4) == 0) - return NODE_WRITABLE; - -! hFile = CreateFile(name, /* file name */ -! GENERIC_WRITE, /* access mode */ -! 0, /* share mode */ -! NULL, /* security descriptor */ -! OPEN_EXISTING, /* creation disposition */ -! 0, /* file attributes */ -! NULL); /* handle to template file */ - - if (hFile == INVALID_HANDLE_VALUE) - return NODE_NORMAL; - ---- 3117,3157 ---- - if (STRNCMP(name, "\\\\.\\", 4) == 0) - return NODE_WRITABLE; - -! #ifdef FEAT_MBYTE -! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -! { -! wn = enc_to_utf16(name, NULL); -! if (wn != NULL) -! { -! hFile = CreateFileW(wn, /* file name */ -! GENERIC_WRITE, /* access mode */ -! 0, /* share mode */ -! NULL, /* security descriptor */ -! OPEN_EXISTING, /* creation disposition */ -! 0, /* file attributes */ -! NULL); /* handle to template file */ -! if (hFile == INVALID_HANDLE_VALUE -! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) -! { -! /* Retry with non-wide function (for Windows 98). */ -! vim_free(wn); -! wn = NULL; -! } -! } -! } -! if (wn == NULL) -! #endif -! hFile = CreateFile(name, /* file name */ -! GENERIC_WRITE, /* access mode */ -! 0, /* share mode */ -! NULL, /* security descriptor */ -! OPEN_EXISTING, /* creation disposition */ -! 0, /* file attributes */ -! NULL); /* handle to template file */ - -+ #ifdef FEAT_MBYTE -+ vim_free(wn); -+ #endif - if (hFile == INVALID_HANDLE_VALUE) - return NODE_NORMAL; - -*** ../vim-7.4.014/src/version.c 2013-08-30 17:06:56.000000000 +0200 ---- src/version.c 2013-08-30 17:09:35.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 15, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -144. You eagerly await the update of the "Cool Site of the Day." - - /// 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 /// diff --git a/7.4.016 b/7.4.016 deleted file mode 100644 index c58c605f..00000000 --- a/7.4.016 +++ /dev/null @@ -1,221 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.016 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.016 -Problem: MS-Windows: File name completion doesn't work properly with - Chinese characters. (Yue Wu) -Solution: Add fname_casew(). (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.015/src/os_win32.c 2013-08-30 17:11:29.000000000 +0200 ---- src/os_win32.c 2013-08-30 17:28:30.000000000 +0200 -*************** -*** 2500,2508 **** ---- 2500,2624 ---- - } - - -+ #ifdef FEAT_MBYTE -+ /* -+ * fname_casew(): Wide version of fname_case(). Set the case of the file name, -+ * if it already exists. When "len" is > 0, also expand short to long -+ * filenames. -+ * Return FAIL if wide functions are not available, OK otherwise. -+ * NOTE: much of this is identical to fname_case(), keep in sync! -+ */ -+ static int -+ fname_casew( -+ WCHAR *name, -+ int len) -+ { -+ WCHAR szTrueName[_MAX_PATH + 2]; -+ WCHAR szTrueNameTemp[_MAX_PATH + 2]; -+ WCHAR *ptrue, *ptruePrev; -+ WCHAR *porig, *porigPrev; -+ int flen; -+ WIN32_FIND_DATAW fb; -+ HANDLE hFind; -+ int c; -+ int slen; -+ -+ flen = (int)wcslen(name); -+ if (flen > _MAX_PATH) -+ return OK; -+ -+ /* slash_adjust(name) not needed, already adjusted by fname_case(). */ -+ -+ /* Build the new name in szTrueName[] one component at a time. */ -+ porig = name; -+ ptrue = szTrueName; -+ -+ if (iswalpha(porig[0]) && porig[1] == L':') -+ { -+ /* copy leading drive letter */ -+ *ptrue++ = *porig++; -+ *ptrue++ = *porig++; -+ *ptrue = NUL; /* in case nothing follows */ -+ } -+ -+ while (*porig != NUL) -+ { -+ /* copy \ characters */ -+ while (*porig == psepc) -+ *ptrue++ = *porig++; -+ -+ ptruePrev = ptrue; -+ porigPrev = porig; -+ while (*porig != NUL && *porig != psepc) -+ { -+ *ptrue++ = *porig++; -+ } -+ *ptrue = NUL; -+ -+ /* To avoid a slow failure append "\*" when searching a directory, -+ * server or network share. */ -+ wcscpy(szTrueNameTemp, szTrueName); -+ slen = (int)wcslen(szTrueNameTemp); -+ if (*porig == psepc && slen + 2 < _MAX_PATH) -+ wcscpy(szTrueNameTemp + slen, L"\\*"); -+ -+ /* Skip "", "." and "..". */ -+ if (ptrue > ptruePrev -+ && (ptruePrev[0] != L'.' -+ || (ptruePrev[1] != NUL -+ && (ptruePrev[1] != L'.' || ptruePrev[2] != NUL))) -+ && (hFind = FindFirstFileW(szTrueNameTemp, &fb)) -+ != INVALID_HANDLE_VALUE) -+ { -+ c = *porig; -+ *porig = NUL; -+ -+ /* Only use the match when it's the same name (ignoring case) or -+ * expansion is allowed and there is a match with the short name -+ * and there is enough room. */ -+ if (_wcsicoll(porigPrev, fb.cFileName) == 0 -+ || (len > 0 -+ && (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0 -+ && (int)(ptruePrev - szTrueName) -+ + (int)wcslen(fb.cFileName) < len))) -+ { -+ wcscpy(ptruePrev, fb.cFileName); -+ -+ /* Look for exact match and prefer it if found. Must be a -+ * long name, otherwise there would be only one match. */ -+ while (FindNextFileW(hFind, &fb)) -+ { -+ if (*fb.cAlternateFileName != NUL -+ && (wcscoll(porigPrev, fb.cFileName) == 0 -+ || (len > 0 -+ && (_wcsicoll(porigPrev, -+ fb.cAlternateFileName) == 0 -+ && (int)(ptruePrev - szTrueName) -+ + (int)wcslen(fb.cFileName) < len)))) -+ { -+ wcscpy(ptruePrev, fb.cFileName); -+ break; -+ } -+ } -+ } -+ FindClose(hFind); -+ *porig = c; -+ ptrue = ptruePrev + wcslen(ptruePrev); -+ } -+ else if (hFind == INVALID_HANDLE_VALUE -+ && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) -+ return FAIL; -+ } -+ -+ wcscpy(name, szTrueName); -+ return OK; -+ } -+ #endif -+ - /* - * fname_case(): Set the case of the file name, if it already exists. - * When "len" is > 0, also expand short to long filenames. -+ * NOTE: much of this is identical to fname_casew(), keep in sync! - */ - void - fname_case( -*************** -*** 2520,2530 **** - int slen; - - flen = (int)STRLEN(name); -! if (flen == 0 || flen > _MAX_PATH) - return; - - slash_adjust(name); - - /* Build the new name in szTrueName[] one component at a time. */ - porig = name; - ptrue = szTrueName; ---- 2636,2679 ---- - int slen; - - flen = (int)STRLEN(name); -! if (flen == 0) - return; - - slash_adjust(name); - -+ #ifdef FEAT_MBYTE -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ WCHAR *p = enc_to_utf16(name, NULL); -+ -+ if (p != NULL) -+ { -+ char_u *q; -+ WCHAR buf[_MAX_PATH + 2]; -+ -+ wcscpy(buf, p); -+ vim_free(p); -+ -+ if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK) -+ { -+ q = utf16_to_enc(buf, NULL); -+ if (q != NULL) -+ { -+ vim_strncpy(name, q, (len > 0) ? len - 1 : flen); -+ vim_free(q); -+ return; -+ } -+ } -+ } -+ /* Retry with non-wide function (for Windows 98). */ -+ } -+ #endif -+ -+ /* If 'enc' is utf-8, flen can be larger than _MAX_PATH. -+ * So we should check this after calling wide function. */ -+ if (flen > _MAX_PATH) -+ return; -+ - /* Build the new name in szTrueName[] one component at a time. */ - porig = name; - ptrue = szTrueName; -*** ../vim-7.4.015/src/version.c 2013-08-30 17:11:29.000000000 +0200 ---- src/version.c 2013-08-30 17:15:06.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 16, - /**/ - --- -Fingers not found - Pound head on keyboard to continue. - - /// 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 /// diff --git a/7.4.017 b/7.4.017 deleted file mode 100644 index 7d7fad83..00000000 --- a/7.4.017 +++ /dev/null @@ -1,78 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.017 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.017 -Problem: ":help !!" does not find the "!!" tag in the help file. (Ben - Fritz) -Solution: When reading the start of the tags file do parse lines that are - not header lines. -Files: src/tag.c - - -*** ../vim-7.4.016/src/tag.c 2013-06-15 22:26:26.000000000 +0200 ---- src/tag.c 2013-09-05 12:03:38.000000000 +0200 -*************** -*** 1797,1809 **** - */ - if (state == TS_START) - { -! /* The header ends when the line sorts below "!_TAG_". -! * There may be non-header items before the header though, -! * e.g. "!" itself. When case is folded lower case letters -! * sort before "_". */ - if (STRNCMP(lbuf, "!_TAG_", 6) <= 0 - || (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1]))) - { - /* - * Read header line. - */ ---- 1797,1812 ---- - */ - if (state == TS_START) - { -! /* The header ends when the line sorts below "!_TAG_". When -! * case is folded lower case letters sort before "_". */ - if (STRNCMP(lbuf, "!_TAG_", 6) <= 0 - || (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1]))) - { -+ if (STRNCMP(lbuf, "!_TAG_", 6) != 0) -+ /* Non-header item before the header, e.g. "!" itself. -+ */ -+ goto parse_line; -+ - /* - * Read header line. - */ -*************** -*** 1898,1903 **** ---- 1901,1907 ---- - #endif - } - -+ parse_line: - /* - * Figure out where the different strings are in this line. - * For "normal" tags: Do a quick check if the tag matches. -*** ../vim-7.4.016/src/version.c 2013-08-30 17:29:10.000000000 +0200 ---- src/version.c 2013-09-05 12:02:01.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 17, - /**/ - --- -An error has occurred. Hit any user to continue. - - /// 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 /// diff --git a/7.4.018 b/7.4.018 deleted file mode 100644 index 2214c30b..00000000 --- a/7.4.018 +++ /dev/null @@ -1,45 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.018 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.018 -Problem: When completing item becomes unselected. (Shougo Matsu) -Solution: Revert patch 7.3.1269. -Files: src/edit.c - - -*** ../vim-7.4.017/src/edit.c 2013-07-04 20:22:25.000000000 +0200 ---- src/edit.c 2013-09-05 12:39:53.000000000 +0200 -*************** -*** 3467,3473 **** - } - - compl_enter_selects = !compl_used_match; -- compl_shown_match = compl_curr_match = compl_first_match; - - /* Show the popup menu with a different set of matches. */ - ins_compl_show_pum(); ---- 3467,3472 ---- -*** ../vim-7.4.017/src/version.c 2013-09-05 12:06:26.000000000 +0200 ---- src/version.c 2013-09-05 12:40:34.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 18, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -169. You hire a housekeeper for your home page. - - /// 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 /// diff --git a/7.4.019 b/7.4.019 deleted file mode 100644 index b1532c19..00000000 --- a/7.4.019 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.019 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.019 -Problem: MS-Windows: File name completion doesn't work properly with - Chinese characters. (Yue Wu) -Solution: Take care of multi-byte characters when looking for the start of - the file name. (Ken Takata) -Files: src/edit.c - - -*** ../vim-7.4.018/src/edit.c 2013-09-05 12:49:48.000000000 +0200 ---- src/edit.c 2013-09-05 13:45:27.000000000 +0200 -*************** -*** 5183,5190 **** - } - else if (ctrl_x_mode == CTRL_X_FILES) - { -! while (--startcol >= 0 && vim_isfilec(line[startcol])) -! ; - compl_col += ++startcol; - compl_length = (int)curs_col - startcol; - compl_pattern = addstar(line + compl_col, compl_length, ---- 5183,5196 ---- - } - else if (ctrl_x_mode == CTRL_X_FILES) - { -! char_u *p = line + startcol; -! -! /* Go back to just before the first filename character. */ -! mb_ptr_back(line, p); -! while (vim_isfilec(PTR2CHAR(p)) && p >= line) -! mb_ptr_back(line, p); -! startcol = p - line; -! - compl_col += ++startcol; - compl_length = (int)curs_col - startcol; - compl_pattern = addstar(line + compl_col, compl_length, -*** ../vim-7.4.018/src/version.c 2013-09-05 12:49:48.000000000 +0200 ---- src/version.c 2013-09-05 13:41:47.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 19, - /**/ - --- - Very funny, Scotty. Now beam down my clothes. - - /// 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 /// diff --git a/7.4.020 b/7.4.020 deleted file mode 100644 index 942d82fe..00000000 --- a/7.4.020 +++ /dev/null @@ -1,82 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.020 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.020 -Problem: NFA engine matches too much with \@>. (John McGowan) -Solution: When a whole pattern match is found stop searching. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.019/src/regexp_nfa.c 2013-08-25 17:01:36.000000000 +0200 ---- src/regexp_nfa.c 2013-09-05 15:59:44.000000000 +0200 -*************** -*** 5322,5328 **** - log_subsexpr(m); - #endif - nfa_match = TRUE; -! break; - - case NFA_START_INVISIBLE: - case NFA_START_INVISIBLE_FIRST: ---- 5322,5331 ---- - log_subsexpr(m); - #endif - nfa_match = TRUE; -! /* See comment above at "goto nextchar". */ -! if (nextlist->n == 0) -! clen = 0; -! goto nextchar; - - case NFA_START_INVISIBLE: - case NFA_START_INVISIBLE_FIRST: -*** ../vim-7.4.019/src/testdir/test64.in 2013-08-14 13:31:03.000000000 +0200 ---- src/testdir/test64.in 2013-09-05 15:35:44.000000000 +0200 -*************** -*** 427,432 **** ---- 427,433 ---- - :""""" \@> - :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) - :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) -+ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab']) - :" TODO: BT engine does not restore submatch after failure - :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa']) - :" -*** ../vim-7.4.019/src/testdir/test64.ok 2013-08-14 13:31:03.000000000 +0200 ---- src/testdir/test64.ok 2013-09-05 16:03:34.000000000 +0200 -*************** -*** 983,988 **** ---- 983,991 ---- - OK 0 - \(a*\)\@>b - OK 1 - \(a*\)\@>b - OK 2 - \(a*\)\@>b -+ OK 0 - ^\(.\{-}b\)\@>. -+ OK 1 - ^\(.\{-}b\)\@>. -+ OK 2 - ^\(.\{-}b\)\@>. - OK 0 - \(a*\)\@>a\|a\+ - OK 2 - \(a*\)\@>a\|a\+ - OK 0 - \_[^8-9]\+ -*** ../vim-7.4.019/src/version.c 2013-09-05 13:50:49.000000000 +0200 ---- src/version.c 2013-09-05 16:04:32.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 20, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -173. You keep tracking down the email addresses of all your friends - (even childhood friends). - - /// 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 /// diff --git a/7.4.021 b/7.4.021 deleted file mode 100644 index 0936d9a1..00000000 --- a/7.4.021 +++ /dev/null @@ -1,86 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.021 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.021 -Problem: NFA regexp: Using \ze in one branch which doesn't match may cause - end of another branch to be wrong. (William Fugh) -Solution: Set end position if it wasn't set yet. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.020/src/regexp_nfa.c 2013-09-05 16:05:32.000000000 +0200 ---- src/regexp_nfa.c 2013-09-05 20:56:25.000000000 +0200 -*************** -*** 4209,4218 **** - break; - - case NFA_MCLOSE: -! if (nfa_has_zend) - { -! /* Do not overwrite the position set by \ze. If no \ze -! * encountered end will be set in nfa_regtry(). */ - subs = addstate(l, state->out, subs, pim, off); - break; - } ---- 4209,4219 ---- - break; - - case NFA_MCLOSE: -! if (nfa_has_zend && (REG_MULTI -! ? subs->norm.list.multi[0].end.lnum >= 0 -! : subs->norm.list.line[0].end != NULL)) - { -! /* Do not overwrite the position set by \ze. */ - subs = addstate(l, state->out, subs, pim, off); - break; - } -*** ../vim-7.4.020/src/testdir/test64.in 2013-09-05 16:05:32.000000000 +0200 ---- src/testdir/test64.in 2013-09-05 20:55:18.000000000 +0200 -*************** -*** 328,333 **** ---- 328,334 ---- - :call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match']) - :call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last']) - :call add(tl, [2, '\>\zs.', 'aword. ', '.']) -+ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' ']) - :" - :"""" Tests for \@= and \& features - :call add(tl, [2, 'abc\@=', 'abc', 'ab']) -*** ../vim-7.4.020/src/testdir/test64.ok 2013-09-05 16:05:32.000000000 +0200 ---- src/testdir/test64.ok 2013-09-05 21:09:56.000000000 +0200 -*************** -*** 752,757 **** ---- 752,760 ---- - OK 0 - \>\zs. - OK 1 - \>\zs. - OK 2 - \>\zs. -+ OK 0 - \s\+\ze\[/\|\s\zs\s\+ -+ OK 1 - \s\+\ze\[/\|\s\zs\s\+ -+ OK 2 - \s\+\ze\[/\|\s\zs\s\+ - OK 0 - abc\@= - OK 1 - abc\@= - OK 2 - abc\@= -*** ../vim-7.4.020/src/version.c 2013-09-05 16:05:32.000000000 +0200 ---- src/version.c 2013-09-05 21:11:38.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 21, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -174. You know what a listserv is. - - /// 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 /// diff --git a/7.4.022 b/7.4.022 deleted file mode 100644 index 81a0901f..00000000 --- a/7.4.022 +++ /dev/null @@ -1,148 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.022 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.022 -Problem: Deadlock while exiting, because of allocating memory. -Solution: Do not use gettext() in deathtrap(). (James McCoy) -Files: src/os_unix.c, src/misc1.c - - -*** ../vim-7.4.021/src/os_unix.c 2013-07-03 16:32:32.000000000 +0200 ---- src/os_unix.c 2013-09-05 21:40:06.000000000 +0200 -*************** -*** 957,964 **** - - /* - * This function handles deadly signals. -! * It tries to preserve any swap file and exit properly. - * (partly from Elvis). - */ - static RETSIGTYPE - deathtrap SIGDEFARG(sigarg) ---- 957,966 ---- - - /* - * This function handles deadly signals. -! * It tries to preserve any swap files and exit properly. - * (partly from Elvis). -+ * NOTE: Avoid unsafe functions, such as allocating memory, they can result in -+ * a deadlock. - */ - static RETSIGTYPE - deathtrap SIGDEFARG(sigarg) -*************** -*** 1090,1107 **** - } - if (entered == 2) - { -! OUT_STR(_("Vim: Double signal, exiting\n")); - out_flush(); - getout(1); - } - - #ifdef SIGHASARG -! sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"), - signal_info[i].name); - #else -! sprintf((char *)IObuff, _("Vim: Caught deadly signal\n")); - #endif -! preserve_exit(); /* preserve files and exit */ - - #ifdef NBDEBUG - reset_signals(); ---- 1092,1114 ---- - } - if (entered == 2) - { -! /* No translation, it may call malloc(). */ -! OUT_STR("Vim: Double signal, exiting\n"); - out_flush(); - getout(1); - } - -+ /* No translation, it may call malloc(). */ - #ifdef SIGHASARG -! sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n", - signal_info[i].name); - #else -! sprintf((char *)IObuff, "Vim: Caught deadly signal\n"); - #endif -! -! /* Preserve files and exit. This sets the really_exiting flag to prevent -! * calling free(). */ -! preserve_exit(); - - #ifdef NBDEBUG - reset_signals(); -*** ../vim-7.4.021/src/misc1.c 2013-08-03 17:29:33.000000000 +0200 ---- src/misc1.c 2013-09-05 21:34:04.000000000 +0200 -*************** -*** 9174,9179 **** ---- 9174,9181 ---- - /* - * Preserve files and exit. - * When called IObuff must contain a message. -+ * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe -+ * functions, such as allocating memory. - */ - void - preserve_exit() -*************** -*** 9196,9202 **** - { - if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL) - { -! OUT_STR(_("Vim: preserving files...\n")); - screen_start(); /* don't know where cursor is now */ - out_flush(); - ml_sync_all(FALSE, FALSE); /* preserve all swap files */ ---- 9198,9204 ---- - { - if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL) - { -! OUT_STR("Vim: preserving files...\n"); - screen_start(); /* don't know where cursor is now */ - out_flush(); - ml_sync_all(FALSE, FALSE); /* preserve all swap files */ -*************** -*** 9206,9212 **** - - ml_close_all(FALSE); /* close all memfiles, without deleting */ - -! OUT_STR(_("Vim: Finished.\n")); - - getout(1); - } ---- 9208,9214 ---- - - ml_close_all(FALSE); /* close all memfiles, without deleting */ - -! OUT_STR("Vim: Finished.\n"); - - getout(1); - } -*** ../vim-7.4.021/src/version.c 2013-09-05 21:15:38.000000000 +0200 ---- src/version.c 2013-09-05 21:30:18.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 22, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -175. You send yourself e-mail before you go to bed to remind you - what to do when you wake up. - - /// 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 /// diff --git a/7.4.023 b/7.4.023 deleted file mode 100644 index 03005213..00000000 --- a/7.4.023 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.023 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.023 -Problem: Compiler warning on 64 bit windows. -Solution: Add type cast. (Mike Williams) -Files: src/edit.c - - -*** ../vim-7.4.022/src/edit.c 2013-09-05 13:50:49.000000000 +0200 ---- src/edit.c 2013-09-06 17:32:55.000000000 +0200 -*************** -*** 5189,5195 **** - mb_ptr_back(line, p); - while (vim_isfilec(PTR2CHAR(p)) && p >= line) - mb_ptr_back(line, p); -! startcol = p - line; - - compl_col += ++startcol; - compl_length = (int)curs_col - startcol; ---- 5189,5195 ---- - mb_ptr_back(line, p); - while (vim_isfilec(PTR2CHAR(p)) && p >= line) - mb_ptr_back(line, p); -! startcol = (int)(p - line); - - compl_col += ++startcol; - compl_length = (int)curs_col - startcol; -*** ../vim-7.4.022/src/version.c 2013-09-05 21:41:35.000000000 +0200 ---- src/version.c 2013-09-06 17:33:41.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 23, - /**/ - --- -Wizards had always known that the act of observation changed the thing that -was observed, and sometimes forgot that it also changed the observer too. - Terry Pratchett - Interesting times - - /// 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 /// diff --git a/7.4.024 b/7.4.024 deleted file mode 100644 index da0df9c6..00000000 --- a/7.4.024 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.024 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.024 -Problem: When root edits a file the undo file is owned by root while the - edited file may be owned by another user, which is not allowed. - (cac2s) -Solution: Accept an undo file owned by the current user. -Files: src/undo.c - - -*** ../vim-7.4.023/src/undo.c 2013-06-10 20:13:37.000000000 +0200 ---- src/undo.c 2013-09-07 15:45:56.000000000 +0200 -*************** -*** 1604,1613 **** - - #ifdef UNIX - /* For safety we only read an undo file if the owner is equal to the -! * owner of the text file. */ - if (mch_stat((char *)orig_name, &st_orig) >= 0 - && mch_stat((char *)file_name, &st_undo) >= 0 -! && st_orig.st_uid != st_undo.st_uid) - { - if (p_verbose > 0) - { ---- 1604,1614 ---- - - #ifdef UNIX - /* For safety we only read an undo file if the owner is equal to the -! * owner of the text file or equal to the current user. */ - if (mch_stat((char *)orig_name, &st_orig) >= 0 - && mch_stat((char *)file_name, &st_undo) >= 0 -! && st_orig.st_uid != st_undo.st_uid -! && st_undo.st_uid != getuid()) - { - if (p_verbose > 0) - { -*** ../vim-7.4.023/src/version.c 2013-09-07 16:35:38.000000000 +0200 ---- src/version.c 2013-09-08 15:38:52.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 24, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -186. You overstay in the office so you can have more time surfing the net. - - /// 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 /// diff --git a/7.4.025 b/7.4.025 deleted file mode 100644 index 9ead176e..00000000 --- a/7.4.025 +++ /dev/null @@ -1,62 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.025 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.025 (after 7.4.019 -Problem: Reading before start of a string. -Solution: Do not call mb_ptr_back() at start of a string. (Dominique Pelle) -Files: src/edit.c - - -*** ../vim-7.4.024/src/edit.c 2013-09-07 16:35:38.000000000 +0200 ---- src/edit.c 2013-09-08 15:57:20.000000000 +0200 -*************** -*** 5187,5197 **** - - /* Go back to just before the first filename character. */ - mb_ptr_back(line, p); -! while (vim_isfilec(PTR2CHAR(p)) && p >= line) - mb_ptr_back(line, p); -! startcol = (int)(p - line); - -! compl_col += ++startcol; - compl_length = (int)curs_col - startcol; - compl_pattern = addstar(line + compl_col, compl_length, - EXPAND_FILES); ---- 5187,5199 ---- - - /* Go back to just before the first filename character. */ - mb_ptr_back(line, p); -! while (p > line && vim_isfilec(PTR2CHAR(p))) - mb_ptr_back(line, p); -! startcol = (int)(p - line) + 1; -! if (p == line && vim_isfilec(PTR2CHAR(p))) -! startcol = 0; - -! compl_col += startcol; - compl_length = (int)curs_col - startcol; - compl_pattern = addstar(line + compl_col, compl_length, - EXPAND_FILES); -*** ../vim-7.4.024/src/version.c 2013-09-08 15:40:45.000000000 +0200 ---- src/version.c 2013-09-08 15:52:39.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 25, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -188. You purchase a laptop so you can surf while sitting on the can. - - /// 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 /// diff --git a/7.4.026 b/7.4.026 deleted file mode 100644 index 8add91f7..00000000 --- a/7.4.026 +++ /dev/null @@ -1,65 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.026 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.026 -Problem: Clang warning for int shift overflow. -Solution: Use unsigned and cast back to int. (Dominique Pelle) -Files: src/misc2.c - - -*** ../vim-7.4.025/src/misc2.c 2013-07-07 16:03:35.000000000 +0200 ---- src/misc2.c 2013-09-08 16:04:54.000000000 +0200 -*************** -*** 6496,6508 **** - get4c(fd) - FILE *fd; - { -! int n; - -! n = getc(fd); -! n = (n << 8) + getc(fd); -! n = (n << 8) + getc(fd); -! n = (n << 8) + getc(fd); -! return n; - } - - /* ---- 6496,6510 ---- - get4c(fd) - FILE *fd; - { -! /* Use unsigned rather than int otherwise result is undefined -! * when left-shift sets the MSB. */ -! unsigned n; - -! n = (unsigned)getc(fd); -! n = (n << 8) + (unsigned)getc(fd); -! n = (n << 8) + (unsigned)getc(fd); -! n = (n << 8) + (unsigned)getc(fd); -! return (int)n; - } - - /* -*** ../vim-7.4.025/src/version.c 2013-09-08 16:03:40.000000000 +0200 ---- src/version.c 2013-09-08 16:05:40.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 26, - /**/ - --- -A computer program does what you tell it to do, not what you want it to do. - - /// 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 /// diff --git a/7.4.027 b/7.4.027 deleted file mode 100644 index ab43d59a..00000000 --- a/7.4.027 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.027 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.027 (after 7.4.025) -Problem: Another valgrind error when using CTRL-X CTRL-F at the start of - the line. (Dominique Pelle) -Solution: Don't call mb_ptr_back() at the start of the line. Add a test. -Files: src/edit.c, src/testdir/test32.in - - -*** ../vim-7.4.026/src/edit.c 2013-09-08 16:03:40.000000000 +0200 ---- src/edit.c 2013-09-08 18:18:32.000000000 +0200 -*************** -*** 5183,5197 **** - } - else if (ctrl_x_mode == CTRL_X_FILES) - { -- char_u *p = line + startcol; -- - /* Go back to just before the first filename character. */ -! mb_ptr_back(line, p); -! while (p > line && vim_isfilec(PTR2CHAR(p))) - mb_ptr_back(line, p); -! startcol = (int)(p - line) + 1; -! if (p == line && vim_isfilec(PTR2CHAR(p))) -! startcol = 0; - - compl_col += startcol; - compl_length = (int)curs_col - startcol; ---- 5183,5201 ---- - } - else if (ctrl_x_mode == CTRL_X_FILES) - { - /* Go back to just before the first filename character. */ -! if (startcol > 0) -! { -! char_u *p = line + startcol; -! - mb_ptr_back(line, p); -! while (p > line && vim_isfilec(PTR2CHAR(p))) -! mb_ptr_back(line, p); -! if (p == line && vim_isfilec(PTR2CHAR(p))) -! startcol = 0; -! else -! startcol = (int)(p - line) + 1; -! } - - compl_col += startcol; - compl_length = (int)curs_col - startcol; -*** ../vim-7.4.026/src/testdir/test32.in 2010-05-15 13:04:10.000000000 +0200 ---- src/testdir/test32.in 2013-09-08 18:08:07.000000000 +0200 -*************** -*** 36,41 **** ---- 36,44 ---- - :w Xtest11.one - :w Xtest11.two - OIXA -+ :" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use -+ :" CTRL-X CTRL-F again to verify this doesn't cause trouble. -+ OXddk - :se cpt=w - OST - :se cpt=u nohid -*** ../vim-7.4.026/src/version.c 2013-09-08 16:07:03.000000000 +0200 ---- src/version.c 2013-09-08 18:14:17.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 27, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -190. You quickly hand over your wallet, leather jacket, and car keys - during a mugging, then proceed to beat the crap out of your - assailant when he asks for your laptop. - - /// 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 /// diff --git a/7.4.028 b/7.4.028 deleted file mode 100644 index 4a0e3cf9..00000000 --- a/7.4.028 +++ /dev/null @@ -1,753 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.028 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.028 -Problem: Equivalence classes are not working for multi-byte characters. -Solution: Copy the rules from the old to the new regexp engine. Add a test - to check both engines. -Files: src/regexp_nfa.c, src/testdir/test44.in, src/testdir/test99.in, - src/testdir/test99.ok, src/testdir/Make_amiga.mak, - src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, - src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, - src/testdir/Makefile - - -*** ../vim-7.4.027/src/regexp_nfa.c 2013-09-05 21:15:38.000000000 +0200 ---- src/regexp_nfa.c 2013-09-19 16:40:08.000000000 +0200 -*************** -*** 742,748 **** - nfa_emit_equi_class(c) - int c; - { -! #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); - - #ifdef FEAT_MBYTE - if (enc_utf8 || STRCMP(p_enc, "latin1") == 0 ---- 742,753 ---- - nfa_emit_equi_class(c) - int c; - { -! #define EMIT2(c) EMIT(c); EMIT(NFA_CONCAT); -! #ifdef FEAT_MBYTE -! # define EMITMBC(c) EMIT(c); EMIT(NFA_CONCAT); -! #else -! # define EMITMBC(c) -! #endif - - #ifdef FEAT_MBYTE - if (enc_utf8 || STRCMP(p_enc, "latin1") == 0 -*************** -*** 753,844 **** - { - case 'A': case 0300: case 0301: case 0302: - case 0303: case 0304: case 0305: -! EMIT2('A'); EMIT2(0300); EMIT2(0301); -! EMIT2(0302); EMIT2(0303); EMIT2(0304); -! EMIT2(0305); - return OK; - - case 'C': case 0307: -! EMIT2('C'); EMIT2(0307); - return OK; - - case 'E': case 0310: case 0311: case 0312: case 0313: -! EMIT2('E'); EMIT2(0310); EMIT2(0311); -! EMIT2(0312); EMIT2(0313); - return OK; - - case 'I': case 0314: case 0315: case 0316: case 0317: -! EMIT2('I'); EMIT2(0314); EMIT2(0315); -! EMIT2(0316); EMIT2(0317); - return OK; - - case 'N': case 0321: -! EMIT2('N'); EMIT2(0321); - return OK; - - case 'O': case 0322: case 0323: case 0324: case 0325: -! case 0326: -! EMIT2('O'); EMIT2(0322); EMIT2(0323); -! EMIT2(0324); EMIT2(0325); EMIT2(0326); - return OK; - - case 'U': case 0331: case 0332: case 0333: case 0334: -! EMIT2('U'); EMIT2(0331); EMIT2(0332); -! EMIT2(0333); EMIT2(0334); - return OK; - - case 'Y': case 0335: -! EMIT2('Y'); EMIT2(0335); - return OK; - - case 'a': case 0340: case 0341: case 0342: - case 0343: case 0344: case 0345: -! EMIT2('a'); EMIT2(0340); EMIT2(0341); -! EMIT2(0342); EMIT2(0343); EMIT2(0344); -! EMIT2(0345); - return OK; - - case 'c': case 0347: -! EMIT2('c'); EMIT2(0347); - return OK; - - case 'e': case 0350: case 0351: case 0352: case 0353: -! EMIT2('e'); EMIT2(0350); EMIT2(0351); -! EMIT2(0352); EMIT2(0353); - return OK; - - case 'i': case 0354: case 0355: case 0356: case 0357: -! EMIT2('i'); EMIT2(0354); EMIT2(0355); -! EMIT2(0356); EMIT2(0357); - return OK; - - case 'n': case 0361: -! EMIT2('n'); EMIT2(0361); - return OK; - - case 'o': case 0362: case 0363: case 0364: case 0365: -! case 0366: -! EMIT2('o'); EMIT2(0362); EMIT2(0363); -! EMIT2(0364); EMIT2(0365); EMIT2(0366); - return OK; - - case 'u': case 0371: case 0372: case 0373: case 0374: -! EMIT2('u'); EMIT2(0371); EMIT2(0372); -! EMIT2(0373); EMIT2(0374); - return OK; - - case 'y': case 0375: case 0377: -! EMIT2('y'); EMIT2(0375); EMIT2(0377); - return OK; - -! default: -! return FAIL; - } - } - -! EMIT(c); - return OK; - #undef EMIT2 - } - - /* ---- 758,1095 ---- - { - case 'A': case 0300: case 0301: case 0302: - case 0303: case 0304: case 0305: -! CASEMBC(0x100) CASEMBC(0x102) CASEMBC(0x104) CASEMBC(0x1cd) -! CASEMBC(0x1de) CASEMBC(0x1e0) CASEMBC(0x1ea2) -! EMIT2('A'); EMIT2(0300); EMIT2(0301); EMIT2(0302); -! EMIT2(0303); EMIT2(0304); EMIT2(0305); -! EMITMBC(0x100) EMITMBC(0x102) EMITMBC(0x104) -! EMITMBC(0x1cd) EMITMBC(0x1de) EMITMBC(0x1e0) -! EMITMBC(0x1ea2) -! return OK; -! -! case 'B': CASEMBC(0x1e02) CASEMBC(0x1e06) -! EMIT2('B'); EMITMBC(0x1e02) EMITMBC(0x1e06) - return OK; - - case 'C': case 0307: -! CASEMBC(0x106) CASEMBC(0x108) CASEMBC(0x10a) CASEMBC(0x10c) -! EMIT2('C'); EMIT2(0307); EMITMBC(0x106) EMITMBC(0x108) -! EMITMBC(0x10a) EMITMBC(0x10c) -! return OK; -! -! case 'D': CASEMBC(0x10e) CASEMBC(0x110) CASEMBC(0x1e0a) -! CASEMBC(0x1e0e) CASEMBC(0x1e10) -! EMIT2('D'); EMITMBC(0x10e) EMITMBC(0x110) EMITMBC(0x1e0a) -! EMITMBC(0x1e0e) EMITMBC(0x1e10) - return OK; - - case 'E': case 0310: case 0311: case 0312: case 0313: -! CASEMBC(0x112) CASEMBC(0x114) CASEMBC(0x116) CASEMBC(0x118) -! CASEMBC(0x11a) CASEMBC(0x1eba) CASEMBC(0x1ebc) -! EMIT2('E'); EMIT2(0310); EMIT2(0311); EMIT2(0312); -! EMIT2(0313); -! EMITMBC(0x112) EMITMBC(0x114) EMITMBC(0x116) -! EMITMBC(0x118) EMITMBC(0x11a) EMITMBC(0x1eba) -! EMITMBC(0x1ebc) -! return OK; -! -! case 'F': CASEMBC(0x1e1e) -! EMIT2('F'); EMITMBC(0x1e1e) -! return OK; -! -! case 'G': CASEMBC(0x11c) CASEMBC(0x11e) CASEMBC(0x120) -! CASEMBC(0x122) CASEMBC(0x1e4) CASEMBC(0x1e6) CASEMBC(0x1f4) -! CASEMBC(0x1e20) -! EMIT2('G'); EMITMBC(0x11c) EMITMBC(0x11e) EMITMBC(0x120) -! EMITMBC(0x122) EMITMBC(0x1e4) EMITMBC(0x1e6) -! EMITMBC(0x1f4) EMITMBC(0x1e20) -! return OK; -! -! case 'H': CASEMBC(0x124) CASEMBC(0x126) CASEMBC(0x1e22) -! CASEMBC(0x1e26) CASEMBC(0x1e28) -! EMIT2('H'); EMITMBC(0x124) EMITMBC(0x126) EMITMBC(0x1e22) -! EMITMBC(0x1e26) EMITMBC(0x1e28) - return OK; - - case 'I': case 0314: case 0315: case 0316: case 0317: -! CASEMBC(0x128) CASEMBC(0x12a) CASEMBC(0x12c) CASEMBC(0x12e) -! CASEMBC(0x130) CASEMBC(0x1cf) CASEMBC(0x1ec8) -! EMIT2('I'); EMIT2(0314); EMIT2(0315); EMIT2(0316); -! EMIT2(0317); EMITMBC(0x128) EMITMBC(0x12a) -! EMITMBC(0x12c) EMITMBC(0x12e) EMITMBC(0x130) -! EMITMBC(0x1cf) EMITMBC(0x1ec8) -! return OK; -! -! case 'J': CASEMBC(0x134) -! EMIT2('J'); EMITMBC(0x134) -! return OK; -! -! case 'K': CASEMBC(0x136) CASEMBC(0x1e8) CASEMBC(0x1e30) -! CASEMBC(0x1e34) -! EMIT2('K'); EMITMBC(0x136) EMITMBC(0x1e8) EMITMBC(0x1e30) -! EMITMBC(0x1e34) -! return OK; -! -! case 'L': CASEMBC(0x139) CASEMBC(0x13b) CASEMBC(0x13d) -! CASEMBC(0x13f) CASEMBC(0x141) CASEMBC(0x1e3a) -! EMIT2('L'); EMITMBC(0x139) EMITMBC(0x13b) EMITMBC(0x13d) -! EMITMBC(0x13f) EMITMBC(0x141) EMITMBC(0x1e3a) -! return OK; -! -! case 'M': CASEMBC(0x1e3e) CASEMBC(0x1e40) -! EMIT2('M'); EMITMBC(0x1e3e) EMITMBC(0x1e40) - return OK; - - case 'N': case 0321: -! CASEMBC(0x143) CASEMBC(0x145) CASEMBC(0x147) CASEMBC(0x1e44) -! CASEMBC(0x1e48) -! EMIT2('N'); EMIT2(0321); EMITMBC(0x143) EMITMBC(0x145) -! EMITMBC(0x147) EMITMBC(0x1e44) EMITMBC(0x1e48) - return OK; - - case 'O': case 0322: case 0323: case 0324: case 0325: -! case 0326: case 0330: -! CASEMBC(0x14c) CASEMBC(0x14e) CASEMBC(0x150) CASEMBC(0x1a0) -! CASEMBC(0x1d1) CASEMBC(0x1ea) CASEMBC(0x1ec) CASEMBC(0x1ece) -! EMIT2('O'); EMIT2(0322); EMIT2(0323); EMIT2(0324); -! EMIT2(0325); EMIT2(0326); EMIT2(0330); -! EMITMBC(0x14c) EMITMBC(0x14e) EMITMBC(0x150) -! EMITMBC(0x1a0) EMITMBC(0x1d1) EMITMBC(0x1ea) -! EMITMBC(0x1ec) EMITMBC(0x1ece) -! return OK; -! -! case 'P': case 0x1e54: case 0x1e56: -! EMIT2('P'); EMITMBC(0x1e54) EMITMBC(0x1e56) -! return OK; -! -! case 'R': CASEMBC(0x154) CASEMBC(0x156) CASEMBC(0x158) -! CASEMBC(0x1e58) CASEMBC(0x1e5e) -! EMIT2('R'); EMITMBC(0x154) EMITMBC(0x156) EMITMBC(0x158) -! EMITMBC(0x1e58) EMITMBC(0x1e5e) -! return OK; -! -! case 'S': CASEMBC(0x15a) CASEMBC(0x15c) CASEMBC(0x15e) -! CASEMBC(0x160) CASEMBC(0x1e60) -! EMIT2('S'); EMITMBC(0x15a) EMITMBC(0x15c) EMITMBC(0x15e) -! EMITMBC(0x160) EMITMBC(0x1e60) -! return OK; -! -! case 'T': CASEMBC(0x162) CASEMBC(0x164) CASEMBC(0x166) -! CASEMBC(0x1e6a) CASEMBC(0x1e6e) -! EMIT2('T'); EMITMBC(0x162) EMITMBC(0x164) EMITMBC(0x166) -! EMITMBC(0x1e6a) EMITMBC(0x1e6e) - return OK; - - case 'U': case 0331: case 0332: case 0333: case 0334: -! CASEMBC(0x168) CASEMBC(0x16a) CASEMBC(0x16c) CASEMBC(0x16e) -! CASEMBC(0x170) CASEMBC(0x172) CASEMBC(0x1af) CASEMBC(0x1d3) -! CASEMBC(0x1ee6) -! EMIT2('U'); EMIT2(0331); EMIT2(0332); EMIT2(0333); -! EMIT2(0334); EMITMBC(0x168) EMITMBC(0x16a) -! EMITMBC(0x16c) EMITMBC(0x16e) EMITMBC(0x170) -! EMITMBC(0x172) EMITMBC(0x1af) EMITMBC(0x1d3) -! EMITMBC(0x1ee6) -! return OK; -! -! case 'V': CASEMBC(0x1e7c) -! EMIT2('V'); EMITMBC(0x1e7c) -! return OK; -! -! case 'W': CASEMBC(0x174) CASEMBC(0x1e80) CASEMBC(0x1e82) -! CASEMBC(0x1e84) CASEMBC(0x1e86) -! EMIT2('W'); EMITMBC(0x174) EMITMBC(0x1e80) EMITMBC(0x1e82) -! EMITMBC(0x1e84) EMITMBC(0x1e86) -! return OK; -! -! case 'X': CASEMBC(0x1e8a) CASEMBC(0x1e8c) -! EMIT2('X'); EMITMBC(0x1e8a) EMITMBC(0x1e8c) - return OK; - - case 'Y': case 0335: -! CASEMBC(0x176) CASEMBC(0x178) CASEMBC(0x1e8e) CASEMBC(0x1ef2) -! CASEMBC(0x1ef6) CASEMBC(0x1ef8) -! EMIT2('Y'); EMIT2(0335); EMITMBC(0x176) EMITMBC(0x178) -! EMITMBC(0x1e8e) EMITMBC(0x1ef2) EMITMBC(0x1ef6) -! EMITMBC(0x1ef8) -! return OK; -! -! case 'Z': CASEMBC(0x179) CASEMBC(0x17b) CASEMBC(0x17d) -! CASEMBC(0x1b5) CASEMBC(0x1e90) CASEMBC(0x1e94) -! EMIT2('Z'); EMITMBC(0x179) EMITMBC(0x17b) EMITMBC(0x17d) -! EMITMBC(0x1b5) EMITMBC(0x1e90) EMITMBC(0x1e94) - return OK; - - case 'a': case 0340: case 0341: case 0342: - case 0343: case 0344: case 0345: -! CASEMBC(0x101) CASEMBC(0x103) CASEMBC(0x105) CASEMBC(0x1ce) -! CASEMBC(0x1df) CASEMBC(0x1e1) CASEMBC(0x1ea3) -! EMIT2('a'); EMIT2(0340); EMIT2(0341); EMIT2(0342); -! EMIT2(0343); EMIT2(0344); EMIT2(0345); -! EMITMBC(0x101) EMITMBC(0x103) EMITMBC(0x105) -! EMITMBC(0x1ce) EMITMBC(0x1df) EMITMBC(0x1e1) -! EMITMBC(0x1ea3) -! return OK; -! -! case 'b': CASEMBC(0x1e03) CASEMBC(0x1e07) -! EMIT2('b'); EMITMBC(0x1e03) EMITMBC(0x1e07) - return OK; - - case 'c': case 0347: -! CASEMBC(0x107) CASEMBC(0x109) CASEMBC(0x10b) CASEMBC(0x10d) -! EMIT2('c'); EMIT2(0347); EMITMBC(0x107) EMITMBC(0x109) -! EMITMBC(0x10b) EMITMBC(0x10d) -! return OK; -! -! case 'd': CASEMBC(0x10f) CASEMBC(0x111) CASEMBC(0x1d0b) -! CASEMBC(0x1e11) -! EMIT2('d'); EMITMBC(0x10f) EMITMBC(0x111) EMITMBC(0x1e0b) -! EMITMBC(0x01e0f) EMITMBC(0x1e11) - return OK; - - case 'e': case 0350: case 0351: case 0352: case 0353: -! CASEMBC(0x113) CASEMBC(0x115) CASEMBC(0x117) CASEMBC(0x119) -! CASEMBC(0x11b) CASEMBC(0x1ebb) CASEMBC(0x1ebd) -! EMIT2('e'); EMIT2(0350); EMIT2(0351); EMIT2(0352); -! EMIT2(0353); EMITMBC(0x113) EMITMBC(0x115) -! EMITMBC(0x117) EMITMBC(0x119) EMITMBC(0x11b) -! EMITMBC(0x1ebb) EMITMBC(0x1ebd) -! return OK; -! -! case 'f': CASEMBC(0x1e1f) -! EMIT2('f'); EMITMBC(0x1e1f) -! return OK; -! -! case 'g': CASEMBC(0x11d) CASEMBC(0x11f) CASEMBC(0x121) -! CASEMBC(0x123) CASEMBC(0x1e5) CASEMBC(0x1e7) CASEMBC(0x1f5) -! CASEMBC(0x1e21) -! EMIT2('g'); EMITMBC(0x11d) EMITMBC(0x11f) EMITMBC(0x121) -! EMITMBC(0x123) EMITMBC(0x1e5) EMITMBC(0x1e7) -! EMITMBC(0x1f5) EMITMBC(0x1e21) -! return OK; -! -! case 'h': CASEMBC(0x125) CASEMBC(0x127) CASEMBC(0x1e23) -! CASEMBC(0x1e27) CASEMBC(0x1e29) CASEMBC(0x1e96) -! EMIT2('h'); EMITMBC(0x125) EMITMBC(0x127) EMITMBC(0x1e23) -! EMITMBC(0x1e27) EMITMBC(0x1e29) EMITMBC(0x1e96) - return OK; - - case 'i': case 0354: case 0355: case 0356: case 0357: -! CASEMBC(0x129) CASEMBC(0x12b) CASEMBC(0x12d) CASEMBC(0x12f) -! CASEMBC(0x1d0) CASEMBC(0x1ec9) -! EMIT2('i'); EMIT2(0354); EMIT2(0355); EMIT2(0356); -! EMIT2(0357); EMITMBC(0x129) EMITMBC(0x12b) -! EMITMBC(0x12d) EMITMBC(0x12f) EMITMBC(0x1d0) -! EMITMBC(0x1ec9) -! return OK; -! -! case 'j': CASEMBC(0x135) CASEMBC(0x1f0) -! EMIT2('j'); EMITMBC(0x135) EMITMBC(0x1f0) -! return OK; -! -! case 'k': CASEMBC(0x137) CASEMBC(0x1e9) CASEMBC(0x1e31) -! CASEMBC(0x1e35) -! EMIT2('k'); EMITMBC(0x137) EMITMBC(0x1e9) EMITMBC(0x1e31) -! EMITMBC(0x1e35) -! return OK; -! -! case 'l': CASEMBC(0x13a) CASEMBC(0x13c) CASEMBC(0x13e) -! CASEMBC(0x140) CASEMBC(0x142) CASEMBC(0x1e3b) -! EMIT2('l'); EMITMBC(0x13a) EMITMBC(0x13c) EMITMBC(0x13e) -! EMITMBC(0x140) EMITMBC(0x142) EMITMBC(0x1e3b) -! return OK; -! -! case 'm': CASEMBC(0x1e3f) CASEMBC(0x1e41) -! EMIT2('m'); EMITMBC(0x1e3f) EMITMBC(0x1e41) - return OK; - - case 'n': case 0361: -! CASEMBC(0x144) CASEMBC(0x146) CASEMBC(0x148) CASEMBC(0x149) -! CASEMBC(0x1e45) CASEMBC(0x1e49) -! EMIT2('n'); EMIT2(0361); EMITMBC(0x144) EMITMBC(0x146) -! EMITMBC(0x148) EMITMBC(0x149) EMITMBC(0x1e45) -! EMITMBC(0x1e49) - return OK; - - case 'o': case 0362: case 0363: case 0364: case 0365: -! case 0366: case 0370: -! CASEMBC(0x14d) CASEMBC(0x14f) CASEMBC(0x151) CASEMBC(0x1a1) -! CASEMBC(0x1d2) CASEMBC(0x1eb) CASEMBC(0x1ed) CASEMBC(0x1ecf) -! EMIT2('o'); EMIT2(0362); EMIT2(0363); EMIT2(0364); -! EMIT2(0365); EMIT2(0366); EMIT2(0370); -! EMITMBC(0x14d) EMITMBC(0x14f) EMITMBC(0x151) -! EMITMBC(0x1a1) EMITMBC(0x1d2) EMITMBC(0x1eb) -! EMITMBC(0x1ed) EMITMBC(0x1ecf) -! return OK; -! -! case 'p': CASEMBC(0x1e55) CASEMBC(0x1e57) -! EMIT2('p'); EMITMBC(0x1e55) EMITMBC(0x1e57) -! return OK; -! -! case 'r': CASEMBC(0x155) CASEMBC(0x157) CASEMBC(0x159) -! CASEMBC(0x1e59) CASEMBC(0x1e5f) -! EMIT2('r'); EMITMBC(0x155) EMITMBC(0x157) EMITMBC(0x159) -! EMITMBC(0x1e59) EMITMBC(0x1e5f) -! return OK; -! -! case 's': CASEMBC(0x15b) CASEMBC(0x15d) CASEMBC(0x15f) -! CASEMBC(0x161) CASEMBC(0x1e61) -! EMIT2('s'); EMITMBC(0x15b) EMITMBC(0x15d) EMITMBC(0x15f) -! EMITMBC(0x161) EMITMBC(0x1e61) -! return OK; -! -! case 't': CASEMBC(0x163) CASEMBC(0x165) CASEMBC(0x167) -! CASEMBC(0x1e6b) CASEMBC(0x1e6f) CASEMBC(0x1e97) -! EMIT2('t'); EMITMBC(0x163) EMITMBC(0x165) EMITMBC(0x167) -! EMITMBC(0x1e6b) EMITMBC(0x1e6f) EMITMBC(0x1e97) - return OK; - - case 'u': case 0371: case 0372: case 0373: case 0374: -! CASEMBC(0x169) CASEMBC(0x16b) CASEMBC(0x16d) CASEMBC(0x16f) -! CASEMBC(0x171) CASEMBC(0x173) CASEMBC(0x1b0) CASEMBC(0x1d4) -! CASEMBC(0x1ee7) -! EMIT2('u'); EMIT2(0371); EMIT2(0372); EMIT2(0373); -! EMIT2(0374); EMITMBC(0x169) EMITMBC(0x16b) -! EMITMBC(0x16d) EMITMBC(0x16f) EMITMBC(0x171) -! EMITMBC(0x173) EMITMBC(0x1b0) EMITMBC(0x1d4) -! EMITMBC(0x1ee7) -! return OK; -! -! case 'v': CASEMBC(0x1e7d) -! EMIT2('v'); EMITMBC(0x1e7d) -! return OK; -! -! case 'w': CASEMBC(0x175) CASEMBC(0x1e81) CASEMBC(0x1e83) -! CASEMBC(0x1e85) CASEMBC(0x1e87) CASEMBC(0x1e98) -! EMIT2('w'); EMITMBC(0x175) EMITMBC(0x1e81) EMITMBC(0x1e83) -! EMITMBC(0x1e85) EMITMBC(0x1e87) EMITMBC(0x1e98) -! return OK; -! -! case 'x': CASEMBC(0x1e8b) CASEMBC(0x1e8d) -! EMIT2('x'); EMITMBC(0x1e8b) EMITMBC(0x1e8d) - return OK; - - case 'y': case 0375: case 0377: -! CASEMBC(0x177) CASEMBC(0x1e8f) CASEMBC(0x1e99) -! CASEMBC(0x1ef3) CASEMBC(0x1ef7) CASEMBC(0x1ef9) -! EMIT2('y'); EMIT2(0375); EMIT2(0377); EMITMBC(0x177) -! EMITMBC(0x1e8f) EMITMBC(0x1e99) EMITMBC(0x1ef3) -! EMITMBC(0x1ef7) EMITMBC(0x1ef9) -! return OK; -! -! case 'z': CASEMBC(0x17a) CASEMBC(0x17c) CASEMBC(0x17e) -! CASEMBC(0x1b6) CASEMBC(0x1e91) CASEMBC(0x1e95) -! EMIT2('z'); EMITMBC(0x17a) EMITMBC(0x17c) EMITMBC(0x17e) -! EMITMBC(0x1b6) EMITMBC(0x1e91) EMITMBC(0x1e95) - return OK; - -! /* default: character itself */ - } - } - -! EMIT2(c); - return OK; - #undef EMIT2 -+ #undef EMITMBC - } - - /* -*** ../vim-7.4.027/src/testdir/test44.in 2013-05-26 14:16:31.000000000 +0200 ---- src/testdir/test44.in 2013-09-19 16:49:14.000000000 +0200 -*************** -*** 1,9 **** ---- 1,11 ---- - Tests for regexp with multi-byte encoding and various magic settings. - Test matchstr() with a count and multi-byte chars. -+ See test99 for exactly the same test with re=2. - - STARTTEST - :so mbyte.vim - :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo -+ :set re=1 - /^1 - /a*b\{2}c\+/e - x/\Md\*e\{2}f\+/e -*** ../vim-7.4.027/src/testdir/test99.in 2013-09-19 16:59:30.000000000 +0200 ---- src/testdir/test99.in 2013-09-19 16:50:00.000000000 +0200 -*************** -*** 0 **** ---- 1,68 ---- -+ Tests for regexp with multi-byte encoding and various magic settings. -+ Test matchstr() with a count and multi-byte chars. -+ See test44 for exactly the same test with re=1. -+ -+ STARTTEST -+ :so mbyte.vim -+ :set nocompatible encoding=utf-8 termencoding=latin1 viminfo+=nviminfo -+ :set re=2 -+ /^1 -+ /a*b\{2}c\+/e -+ x/\Md\*e\{2}f\+/e -+ x:set nomagic -+ /g\*h\{2}i\+/e -+ x/\mj*k\{2}l\+/e -+ x/\vm*n{2}o+/e -+ x/\V^aa$ -+ x:set magic -+ /\v(a)(b)\2\1\1/e -+ x/\V[ab]\(\[xy]\)\1 -+ x:" Now search for multi-byte without composing char -+ /ม -+ x:" Now search for multi-byte with composing char -+ /ม่ -+ x:" find word by change of word class -+ /ã¡\<カヨ\>㯠-+ x:" Test \%u, [\u] and friends -+ /\%u20ac -+ x/[\u4f7f\u5929]\+ -+ x/\%U12345678 -+ x/[\U1234abcd\u1234\uabcd] -+ x/\%d21879b -+ x/ [[=A=]]* [[=B=]]* [[=C=]]* [[=D=]]* [[=E=]]* [[=F=]]* [[=G=]]* [[=H=]]* [[=I=]]* [[=J=]]* [[=K=]]* [[=L=]]* [[=M=]]* [[=N=]]* [[=O=]]* [[=P=]]* [[=Q=]]* [[=R=]]* [[=S=]]* [[=T=]]* [[=U=]]* [[=V=]]* [[=W=]]* [[=X=]]* [[=Y=]]* [[=Z=]]*/e -+ x/ [[=a=]]* [[=b=]]* [[=c=]]* [[=d=]]* [[=e=]]* [[=f=]]* [[=g=]]* [[=h=]]* [[=i=]]* [[=j=]]* [[=k=]]* [[=l=]]* [[=m=]]* [[=n=]]* [[=o=]]* [[=p=]]* [[=q=]]* [[=r=]]* [[=s=]]* [[=t=]]* [[=u=]]* [[=v=]]* [[=w=]]* [[=x=]]* [[=y=]]* [[=z=]]*/e -+ x:" Test backwards search from a multi-byte char -+ /x -+ x?. -+ x:let @w=':%s#comb[i]nations#œ̄ṣÌm̥̄ᾱ̆Ì#g' -+ :@w -+ :?^1?,$w! test.out -+ :e! test.out -+ G:put =matchstr(\"×בגד\", \".\", 0, 2) " ב -+ :put =matchstr(\"×בגד\", \"..\", 0, 2) " בג -+ :put =matchstr(\"×בגד\", \".\", 0, 0) " × -+ :put =matchstr(\"×בגד\", \".\", 4, -1) " ×’ -+ :w! -+ :qa! -+ ENDTEST -+ -+ 1 a aa abb abbccc -+ 2 d dd dee deefff -+ 3 g gg ghh ghhiii -+ 4 j jj jkk jkklll -+ 5 m mm mnn mnnooo -+ 6 x ^aa$ x -+ 7 (a)(b) abbaa -+ 8 axx [ab]xx -+ 9 หม่x อมx -+ a อมx หม่x -+ b ã¡ã‚«ãƒ¨ã¯ -+ c x ¬€x -+ d 天使x -+ e ü’…™¸y -+ f ü’Нz -+ g aå•·bb -+ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÃ’Ã“Ã”Ã•Ã–Ã˜ÅŒÅŽÅÆ Ç‘ǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵáºáº” -+ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅőơǒǫǭỠpṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑẕ -+ j 0123â¤x -+ k combinations -*** ../vim-7.4.027/src/testdir/test99.ok 2013-09-19 16:59:30.000000000 +0200 ---- src/testdir/test99.ok 2013-09-19 16:50:16.000000000 +0200 -*************** -*** 0 **** ---- 1,24 ---- -+ 1 a aa abb abbcc -+ 2 d dd dee deeff -+ 3 g gg ghh ghhii -+ 4 j jj jkk jkkll -+ 5 m mm mnn mnnoo -+ 6 x aa$ x -+ 7 (a)(b) abba -+ 8 axx ab]xx -+ 9 หม่x อx -+ a อมx หx -+ b カヨ㯠-+ c x ¬x -+ d 使x -+ e y -+ f z -+ g abb -+ h AÀÃÂÃÄÅĀĂĄÇǞǠẢ BḂḆ CÇĆĈĊČ DÄŽÄḊḎḠEÈÉÊËĒĔĖĘĚẺẼ FḞ GĜĞĠĢǤǦǴḠ HĤĦḢḦḨ IÃŒÃÃŽÃĨĪĬĮİÇỈ JÄ´ KĶǨḰḴ LĹĻĽĿÅḺ MḾṀ NÑŃŅŇṄṈ OÃ’Ã“Ã”Ã•Ã–Ã˜ÅŒÅŽÅÆ Ç‘ǪǬỎ PṔṖ Q RŔŖŘṘṞ SŚŜŞŠṠ TŢŤŦṪṮ UÙÚÛÜŨŪŬŮŰŲƯǓỦ Vá¹¼ WŴẀẂẄẆ XẊẌ YÃŶŸẎỲỶỸ ZŹŻŽƵẠ-+ i aàáâãäåÄăąǎǟǡả bḃḇ cÃ§Ä‡Ä‰Ä‹Ä dÄđḋá¸á¸‘ eèéêëēĕėęěẻẽ fḟ gÄğġģǥǧǵḡ hĥħḣḧḩẖ iìíîïĩīĭįÇỉ jĵǰ kķǩḱḵ lĺļľŀłḻ mḿṠnñńņňʼnṅṉ oòóôõöøÅÅőơǒǫǭỠpṕṗ q rŕŗřṙṟ sÅ›Åşšṡ tţťŧṫṯẗ uùúûüũūŭůűųưǔủ vá¹½ wŵáºáºƒáº…ẇẘ xẋẠyýÿŷáºáº™á»³á»·á»¹ zźżžƶẑ -+ j 012⤠-+ k œ̄ṣÌmÌ¥Ì„Î±Ì„Ì†Ì -+ ב -+ בג -+ × -+ ×’ -*** ../vim-7.4.027/src/testdir/Make_amiga.mak 2013-07-09 13:40:02.000000000 +0200 ---- src/testdir/Make_amiga.mak 2013-09-19 16:51:48.000000000 +0200 -*************** -*** 33,39 **** - 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 test97.out test98.out - - .SUFFIXES: .in .out - ---- 33,40 ---- - 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 test97.out test98.out \ -! test99.out - - .SUFFIXES: .in .out - -*************** -*** 148,150 **** ---- 149,152 ---- - test96.out: test96.in - test97.out: test97.in - test98.out: test98.in -+ test99.out: test99.in -*** ../vim-7.4.027/src/testdir/Make_dos.mak 2013-07-09 13:40:30.000000000 +0200 ---- src/testdir/Make_dos.mak 2013-09-19 16:51:56.000000000 +0200 -*************** -*** 32,38 **** - 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 - - SCRIPTS32 = test50.out test70.out - ---- 32,38 ---- - 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 - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.027/src/testdir/Make_ming.mak 2013-07-09 13:40:38.000000000 +0200 ---- src/testdir/Make_ming.mak 2013-09-19 16:52:01.000000000 +0200 -*************** -*** 52,58 **** - 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 - - SCRIPTS32 = test50.out test70.out - ---- 52,58 ---- - 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 - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.027/src/testdir/Make_os2.mak 2013-07-09 13:40:43.000000000 +0200 ---- src/testdir/Make_os2.mak 2013-09-19 16:52:07.000000000 +0200 -*************** -*** 34,40 **** - 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 - - .SUFFIXES: .in .out - ---- 34,40 ---- - 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 - - .SUFFIXES: .in .out - -*** ../vim-7.4.027/src/testdir/Make_vms.mms 2013-07-09 13:40:47.000000000 +0200 ---- src/testdir/Make_vms.mms 2013-09-19 16:52:13.000000000 +0200 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Jul 09 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Sep 19 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 78,84 **** - 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 - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 78,84 ---- - 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 - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.027/src/testdir/Makefile 2013-08-10 14:20:20.000000000 +0200 ---- src/testdir/Makefile 2013-09-19 16:52:22.000000000 +0200 -*************** -*** 29,35 **** - 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 test97.out test98.out - - SCRIPTS_GUI = test16.out - ---- 29,36 ---- - 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 test97.out test98.out \ -! test99.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.027/src/version.c 2013-09-08 20:00:45.000000000 +0200 ---- src/version.c 2013-09-19 13:54:35.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 28, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -232. You start conversations with, "Have you gotten an ISDN line?" - - /// 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 /// diff --git a/7.4.029 b/7.4.029 deleted file mode 100644 index b87e3a35..00000000 --- a/7.4.029 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.029 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.029 -Problem: An error in a pattern is reported twice. -Solution: Remove the retry with the backtracking engine, it won't work. -Files: src/regexp.c - - -*** ../vim-7.4.028/src/regexp.c 2013-08-25 17:01:36.000000000 +0200 ---- src/regexp.c 2013-09-19 17:03:31.000000000 +0200 -*************** -*** 8016,8027 **** - } - #endif - /* -! * If NFA engine failed, then revert to the backtracking engine. -! * Except when there was a syntax error, which was properly handled by -! * NFA engine. -! */ - if (regexp_engine == AUTOMATIC_ENGINE) - prog = bt_regengine.regcomp(expr, re_flags); - } - - return prog; ---- 8016,8026 ---- - } - #endif - /* -! * If the NFA engine failed, the backtracking engine won't work either. -! * - if (regexp_engine == AUTOMATIC_ENGINE) - prog = bt_regengine.regcomp(expr, re_flags); -+ */ - } - - return prog; -*** ../vim-7.4.028/src/version.c 2013-09-19 17:00:14.000000000 +0200 ---- src/version.c 2013-09-19 17:01:13.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 29, - /**/ - --- -The term "free software" is defined by Richard M. Stallman as -being software that isn't necessarily for free. Confusing? -Let's call it "Stallman software" then! - -- Bram Moolenaar - - /// 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 /// diff --git a/7.4.030 b/7.4.030 deleted file mode 100644 index d685df67..00000000 --- a/7.4.030 +++ /dev/null @@ -1,109 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.030 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.030 -Problem: The -mno-cygwin argument is no longer supported by Cygwin. -Solution: Remove the arguments. (Steve Hall) -Files: src/GvimExt/Make_cyg.mak, src/Make_cyg.mak, src/xxd/Make_cyg.mak - - -*** ../vim-7.4.029/src/GvimExt/Make_cyg.mak 2011-09-30 16:45:49.000000000 +0200 ---- src/GvimExt/Make_cyg.mak 2013-09-19 20:46:46.000000000 +0200 -*************** -*** 31,42 **** - ifeq ($(CROSS),yes) - DEL = rm - ifeq ($(MINGWOLD),yes) -! CXXFLAGS := -O2 -mno-cygwin -fvtable-thunks - else -! CXXFLAGS := -O2 -mno-cygwin - endif - else -! CXXFLAGS := -O2 -mno-cygwin - ifneq (sh.exe, $(SHELL)) - DEL = rm - else ---- 31,42 ---- - ifeq ($(CROSS),yes) - DEL = rm - ifeq ($(MINGWOLD),yes) -! CXXFLAGS := -O2 -fvtable-thunks - else -! CXXFLAGS := -O2 - endif - else -! CXXFLAGS := -O2 - ifneq (sh.exe, $(SHELL)) - DEL = rm - else -*** ../vim-7.4.029/src/Make_cyg.mak 2013-07-06 13:32:11.000000000 +0200 ---- src/Make_cyg.mak 2013-09-19 20:46:55.000000000 +0200 -*************** -*** 1,6 **** - # - # Makefile for VIM on Win32, using Cygnus gcc -! # Last updated by Dan Sharp. Last Change: 2013 Apr 22 - # - # Also read INSTALLpc.txt! - # ---- 1,6 ---- - # - # Makefile for VIM on Win32, using Cygnus gcc -! # Last updated by Dan Sharp. Last Change: 2013 Sep 19 - # - # Also read INSTALLpc.txt! - # -*************** -*** 439,446 **** - ############################## - ifeq (yes, $(USEDLL)) - DEFINES += -D_MAX_PATH=256 -D__CYGWIN__ -- else -- INCLUDES += -mno-cygwin - endif - - ############################## ---- 439,444 ---- -*** ../vim-7.4.029/src/xxd/Make_cyg.mak 2010-05-15 13:04:06.000000000 +0200 ---- src/xxd/Make_cyg.mak 2013-09-19 20:47:05.000000000 +0200 -*************** -*** 8,14 **** - DEFINES = - LIBS = -lc - else -! DEFINES = -mno-cygwin - LIBS = - endif - ---- 8,14 ---- - DEFINES = - LIBS = -lc - else -! DEFINES = - LIBS = - endif - -*** ../vim-7.4.029/src/version.c 2013-09-19 17:03:57.000000000 +0200 ---- src/version.c 2013-09-19 20:46:32.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 30, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -237. You tattoo your email address on your forehead. - - /// 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 /// diff --git a/7.4.031 b/7.4.031 deleted file mode 100644 index f4e49d86..00000000 --- a/7.4.031 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.031 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.031 -Problem: ":diffoff!" resets options even when 'diff' is not set. (Charles - Cooper) -Solution: Only resets related options in a window where 'diff' is set. -Files: src/diff.c - - -*** ../vim-7.4.030/src/diff.c 2013-07-17 13:43:15.000000000 +0200 ---- src/diff.c 2013-09-20 19:58:47.000000000 +0200 -*************** -*** 1203,1209 **** - - for (wp = firstwin; wp != NULL; wp = wp->w_next) - { -! if (wp == curwin || (eap->forceit && wp->w_p_diff)) - { - /* Set 'diff', 'scrollbind' off and 'wrap' on. If option values - * were saved in diff_win_options() restore them. */ ---- 1203,1209 ---- - - for (wp = firstwin; wp != NULL; wp = wp->w_next) - { -! if (eap->forceit ? wp->w_p_diff : wp == curwin) - { - /* Set 'diff', 'scrollbind' off and 'wrap' on. If option values - * were saved in diff_win_options() restore them. */ -*** ../vim-7.4.030/src/version.c 2013-09-19 20:48:59.000000000 +0200 ---- src/version.c 2013-09-20 19:59:45.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 31, - /**/ - --- -"Marriage is a wonderful institution... -but who wants to live in an institution?" - - Groucho Marx - - /// 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 /// diff --git a/7.4.032 b/7.4.032 deleted file mode 100644 index 9e25dc4e..00000000 --- a/7.4.032 +++ /dev/null @@ -1,82 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.032 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.032 -Problem: NFA engine does not match the NUL character. (Jonathon Merz) -Solution: Ues 0x0a instead of NUL. (Christian Brabandt) -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.031/src/regexp_nfa.c 2013-09-19 17:00:14.000000000 +0200 ---- src/regexp_nfa.c 2013-09-22 13:53:46.000000000 +0200 -*************** -*** 1383,1390 **** - EMSG2_RET_FAIL( - _("E678: Invalid character after %s%%[dxouU]"), - reg_magic == MAGIC_ALL); - /* TODO: what if a composing character follows? */ -! EMIT(nr); - } - break; - ---- 1383,1391 ---- - EMSG2_RET_FAIL( - _("E678: Invalid character after %s%%[dxouU]"), - reg_magic == MAGIC_ALL); -+ /* A NUL is stored in the text as NL */ - /* TODO: what if a composing character follows? */ -! EMIT(nr == 0 ? 0x0a : nr); - } - break; - -*** ../vim-7.4.031/src/testdir/test64.in 2013-09-05 21:15:38.000000000 +0200 ---- src/testdir/test64.in 2013-09-22 13:51:53.000000000 +0200 -*************** -*** 373,378 **** ---- 373,379 ---- - :call add(tl, [2, '\%x20', 'yes no', ' ']) - :call add(tl, [2, '\%u0020', 'yes no', ' ']) - :call add(tl, [2, '\%U00000020', 'yes no', ' ']) -+ :call add(tl, [2, '\%d0', "yes\x0ano", "\x0a"]) - :" - :""""" \%[abc] - :call add(tl, [2, 'foo\%[bar]', 'fobar']) -*** ../vim-7.4.031/src/testdir/test64.ok 2013-09-05 21:15:38.000000000 +0200 ---- src/testdir/test64.ok 2013-09-22 13:52:41.000000000 +0200 -*************** -*** 863,868 **** ---- 863,871 ---- - OK 0 - \%U00000020 - OK 1 - \%U00000020 - OK 2 - \%U00000020 -+ OK 0 - \%d0 -+ OK 1 - \%d0 -+ OK 2 - \%d0 - OK 0 - foo\%[bar] - OK 1 - foo\%[bar] - OK 2 - foo\%[bar] -*** ../vim-7.4.031/src/version.c 2013-09-20 20:13:48.000000000 +0200 ---- src/version.c 2013-09-22 13:56:45.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 32, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -247. You use www.switchboard.com instead of dialing 411 and 555-12-12 - for directory assistance. - - /// 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 /// diff --git a/7.4.033 b/7.4.033 deleted file mode 100644 index 7eba8a0a..00000000 --- a/7.4.033 +++ /dev/null @@ -1,116 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.033 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.033 -Problem: When the terminal has only 20 lines test 92 and 93 overwrite the - input file. -Solution: Explicitly write test.out. Check that the terminal is large enough - to run the tests. (Hirohito Higashi) -Files: src/testdir/test92.in, src/testdir/test93.in, - src/testdir/test1.in, src/testdir/Makefile - - -*** ../vim-7.4.032/src/testdir/test92.in 2013-04-18 23:33:45.000000000 +0200 ---- src/testdir/test92.in 2013-09-22 14:45:06.000000000 +0200 -*************** -*** 33,39 **** - :mksession! test.out - :new test.out - :v/\(^ *normal! 0\|^ *exe 'normal!\)/d -! :w - :qa! - ENDTEST - ---- 33,39 ---- - :mksession! test.out - :new test.out - :v/\(^ *normal! 0\|^ *exe 'normal!\)/d -! :w! test.out - :qa! - ENDTEST - -*** ../vim-7.4.032/src/testdir/test93.in 2013-02-26 17:13:01.000000000 +0100 ---- src/testdir/test93.in 2013-09-22 14:45:17.000000000 +0200 -*************** -*** 33,39 **** - :mksession! test.out - :new test.out - :v/\(^ *normal! 0\|^ *exe 'normal!\)/d -! :w - :qa! - ENDTEST - ---- 33,39 ---- - :mksession! test.out - :new test.out - :v/\(^ *normal! 0\|^ *exe 'normal!\)/d -! :w! test.out - :qa! - ENDTEST - -*** ../vim-7.4.032/src/testdir/test1.in 2012-04-05 16:37:37.000000000 +0200 ---- src/testdir/test1.in 2013-09-22 14:52:43.000000000 +0200 -*************** -*** 18,23 **** ---- 18,27 ---- - Similar logic is applied to the +lua feature, using lua.vim. - - STARTTEST -+ :" If columns or lines are too small, create wrongtermsize. -+ :" (Some tests will fail. When columns and/or lines are small) -+ :if &lines < 24 || &columns < 80 | sp another | w! wrongtermsize | qa! | endif -+ :" - :" Write a single line to test.out to check if testing works at all. - :%d - athis is a test:w! test.out -*** ../vim-7.4.032/src/testdir/Makefile 2013-09-19 17:00:14.000000000 +0200 ---- src/testdir/Makefile 2013-09-22 14:54:39.000000000 +0200 -*************** -*** 58,66 **** - -rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.* - - test1.out: test1.in -! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) - $(RUN_VIM) $*.in -! @/bin/sh -c "if diff test.out $*.ok; \ - then mv -f test.out $*.out; \ - else echo; \ - echo test1 FAILED - Something basic is wrong; \ ---- 58,70 ---- - -rm -rf *.out *.failed *.rej *.orig test.log $(RM_ON_RUN) $(RM_ON_START) valgrind.* - - test1.out: test1.in -! -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize - $(RUN_VIM) $*.in -! @/bin/sh -c "if test -e wrongtermsize; \ -! then echo; \ -! echo test1 FAILED - terminal size must be 80x24 or larger; \ -! echo; exit 1; \ -! elif diff test.out $*.ok; \ - then mv -f test.out $*.out; \ - else echo; \ - echo test1 FAILED - Something basic is wrong; \ -*** ../vim-7.4.032/src/version.c 2013-09-22 13:57:19.000000000 +0200 ---- src/version.c 2013-09-22 15:02:04.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 33, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -248. You sign your letters with your e-mail address instead of your name. - - /// 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 /// diff --git a/7.4.034 b/7.4.034 deleted file mode 100644 index f111e116..00000000 --- a/7.4.034 +++ /dev/null @@ -1,180 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.034 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.034 -Problem: Using "p" in Visual block mode only changes the first line. -Solution: Repeat the put in all text in the block. (Christian Brabandt) -Files: runtime/doc/change.txt, src/ops.c, src/normal.c, - src/testdir/test20.in, src/testdir/test20.ok - - -*** ../vim-7.4.033/runtime/doc/change.txt 2013-08-10 13:24:52.000000000 +0200 ---- runtime/doc/change.txt 2013-09-22 15:12:20.000000000 +0200 -*************** -*** 1069,1074 **** ---- 1069,1079 ---- - replace and use "0p . You can repeat this as many times as you like, the - unnamed register will be changed each time. - -+ When you use a blockwise Visual mode command and yank only a single line into -+ a register, a paste on a visual selected area will paste that single line on -+ each of the selected lines (thus replacing the blockwise selected region by a -+ block of the pasted line). -+ - *blockwise-register* - If you use a blockwise Visual mode command to get the text into the register, - the block of text will be inserted before ("P") or after ("p") the cursor -*** ../vim-7.4.033/src/ops.c 2013-08-09 19:34:32.000000000 +0200 ---- src/ops.c 2013-09-22 15:18:03.000000000 +0200 -*************** -*** 3776,3800 **** - */ - if (y_type == MCHAR && y_size == 1) - { -! totlen = count * yanklen; -! if (totlen) -! { -! oldp = ml_get(lnum); -! newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1)); -! if (newp == NULL) -! goto end; /* alloc() will give error message */ -! mch_memmove(newp, oldp, (size_t)col); -! ptr = newp + col; -! for (i = 0; i < count; ++i) - { -! mch_memmove(ptr, y_array[0], (size_t)yanklen); -! ptr += yanklen; - } -! STRMOVE(ptr, oldp + col); -! ml_replace(lnum, newp, FALSE); -! /* Put cursor on last putted char. */ -! curwin->w_cursor.col += (colnr_T)(totlen - 1); -! } - curbuf->b_op_end = curwin->w_cursor; - /* For "CTRL-O p" in Insert mode, put cursor after last char */ - if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND))) ---- 3776,3817 ---- - */ - if (y_type == MCHAR && y_size == 1) - { -! do { -! totlen = count * yanklen; -! if (totlen > 0) - { -! oldp = ml_get(lnum); -! newp = alloc_check((unsigned)(STRLEN(oldp) + totlen + 1)); -! if (newp == NULL) -! goto end; /* alloc() gave an error message */ -! mch_memmove(newp, oldp, (size_t)col); -! ptr = newp + col; -! for (i = 0; i < count; ++i) -! { -! mch_memmove(ptr, y_array[0], (size_t)yanklen); -! ptr += yanklen; -! } -! STRMOVE(ptr, oldp + col); -! ml_replace(lnum, newp, FALSE); -! /* Place cursor on last putted char. */ -! if (lnum == curwin->w_cursor.lnum) -! curwin->w_cursor.col += (colnr_T)(totlen - 1); - } -! #ifdef FEAT_VISUAL -! if (VIsual_active) -! lnum++; -! #endif -! } while ( -! #ifdef FEAT_VISUAL -! VIsual_active && lnum <= curbuf->b_visual.vi_end.lnum -! #else -! FALSE /* stop after 1 paste */ -! #endif -! ); -! #ifdef FEAT_VISUAL -! VIsual_active = FALSE; -! #endif -! - curbuf->b_op_end = curwin->w_cursor; - /* For "CTRL-O p" in Insert mode, put cursor after last char */ - if (totlen && (restart_edit != 0 || (flags & PUT_CURSEND))) -*** ../vim-7.4.033/src/normal.c 2013-07-14 13:24:37.000000000 +0200 ---- src/normal.c 2013-09-22 15:15:18.000000000 +0200 -*************** -*** 9518,9523 **** ---- 9518,9525 ---- - /* cursor is at the end of the line or end of file, put - * forward. */ - dir = FORWARD; -+ /* May have been reset in do_put(). */ -+ VIsual_active = TRUE; - } - #endif - do_put(cap->oap->regname, dir, cap->count1, flags); -*** ../vim-7.4.033/src/testdir/test20.in 2010-05-15 13:04:10.000000000 +0200 ---- src/testdir/test20.in 2013-09-22 15:11:37.000000000 +0200 -*************** -*** 9,19 **** - @auY:quit! - GP - /start here$ -! jjlld -! :/here$/,$-1w! test.out - :qa! - ENDTEST - - test text test tex start here - some text - test text ---- 9,25 ---- - @auY:quit! - GP - /start here$ -! "by$jjlld -! /456$ -! jj"bP -! :/56$/,$-1w! test.out - :qa! - ENDTEST - -+ 123456 -+ 234567 -+ 345678 -+ - test text test tex start here - some text - test text -*** ../vim-7.4.033/src/testdir/test20.ok 2010-05-15 13:04:10.000000000 +0200 ---- src/testdir/test20.ok 2013-09-22 15:11:37.000000000 +0200 -*************** -*** 1,3 **** ---- 1,7 ---- -+ 123start here56 -+ 234start here67 -+ 345start here78 -+ - test text test tex rt here - somext - tesext -*** ../vim-7.4.033/src/version.c 2013-09-22 15:03:34.000000000 +0200 ---- src/version.c 2013-09-22 15:14:04.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 34, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -249. You've forgotten what the outside looks like. - - /// 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 /// diff --git a/7.4.035 b/7.4.035 deleted file mode 100644 index 9c4664a6..00000000 --- a/7.4.035 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.035 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.035 -Problem: MS-Windows: The mouse pointer flickers when going from command - line mode to Normal mode. -Solution: Check for WM_NCMOUSEMOVE. (Ken Takata) -Files: src/gui_w48.c - - -*** ../vim-7.4.034/src/gui_w48.c 2013-08-10 13:36:45.000000000 +0200 ---- src/gui_w48.c 2013-09-22 15:41:56.000000000 +0200 -*************** -*** 1008,1014 **** - static LPARAM last_lParam = 0L; - - /* We sometimes get a mousemove when the mouse didn't move... */ -! if (uMsg == WM_MOUSEMOVE) - { - if (lParam == last_lParam) - return; ---- 1008,1014 ---- - static LPARAM last_lParam = 0L; - - /* We sometimes get a mousemove when the mouse didn't move... */ -! if (uMsg == WM_MOUSEMOVE || uMsg == WM_NCMOUSEMOVE) - { - if (lParam == last_lParam) - return; -*** ../vim-7.4.034/src/version.c 2013-09-22 15:23:38.000000000 +0200 ---- src/version.c 2013-09-22 15:41:29.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 35, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -251. You've never seen your closest friends who usually live WAY too far away. - - /// 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 /// diff --git a/7.4.036 b/7.4.036 deleted file mode 100644 index 49afc269..00000000 --- a/7.4.036 +++ /dev/null @@ -1,273 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.036 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.036 -Problem: NFA engine does not capture group correctly when using \@>. (ZyX) -Solution: Copy submatches before doing the recursive match. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.035/src/regexp_nfa.c 2013-09-22 13:57:19.000000000 +0200 ---- src/regexp_nfa.c 2013-09-25 16:35:54.000000000 +0200 -*************** -*** 36,42 **** - { - NFA_SPLIT = -1024, - NFA_MATCH, -! NFA_SKIP_CHAR, /* matches a 0-length char */ - - NFA_START_COLL, /* [abc] start */ - NFA_END_COLL, /* [abc] end */ ---- 36,42 ---- - { - NFA_SPLIT = -1024, - NFA_MATCH, -! NFA_EMPTY, /* matches 0-length */ - - NFA_START_COLL, /* [abc] start */ - NFA_END_COLL, /* [abc] end */ -*************** -*** 2005,2012 **** - { - /* Ignore result of previous call to nfa_regatom() */ - post_ptr = post_start + my_post_start; -! /* NFA_SKIP_CHAR has 0-length and works everywhere */ -! EMIT(NFA_SKIP_CHAR); - return OK; - } - ---- 2005,2012 ---- - { - /* Ignore result of previous call to nfa_regatom() */ - post_ptr = post_start + my_post_start; -! /* NFA_EMPTY is 0-length and works everywhere */ -! EMIT(NFA_EMPTY); - return OK; - } - -*************** -*** 2170,2185 **** - old_post_pos = (int)(post_ptr - post_start); - if (nfa_regconcat() == FAIL) - return FAIL; -! /* if concat is empty, skip a input char. But do emit a node */ - if (old_post_pos == (int)(post_ptr - post_start)) -! EMIT(NFA_SKIP_CHAR); - EMIT(NFA_CONCAT); - ch = peekchr(); - } - -! /* Even if a branch is empty, emit one node for it */ - if (old_post_pos == (int)(post_ptr - post_start)) -! EMIT(NFA_SKIP_CHAR); - - return OK; - } ---- 2170,2185 ---- - old_post_pos = (int)(post_ptr - post_start); - if (nfa_regconcat() == FAIL) - return FAIL; -! /* if concat is empty do emit a node */ - if (old_post_pos == (int)(post_ptr - post_start)) -! EMIT(NFA_EMPTY); - EMIT(NFA_CONCAT); - ch = peekchr(); - } - -! /* if a branch is empty, emit one node for it */ - if (old_post_pos == (int)(post_ptr - post_start)) -! EMIT(NFA_EMPTY); - - return OK; - } -*************** -*** 2423,2429 **** - case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break; - case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break; - case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break; -! case NFA_SKIP_CHAR: STRCPY(code, "NFA_SKIP_CHAR"); break; - case NFA_OR: STRCPY(code, "NFA_OR"); break; - - case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break; ---- 2423,2429 ---- - case NFA_STAR_NONGREEDY: STRCPY(code, "NFA_STAR_NONGREEDY "); break; - case NFA_QUEST: STRCPY(code, "NFA_QUEST"); break; - case NFA_QUEST_NONGREEDY: STRCPY(code, "NFA_QUEST_NON_GREEDY"); break; -! case NFA_EMPTY: STRCPY(code, "NFA_EMPTY"); break; - case NFA_OR: STRCPY(code, "NFA_OR"); break; - - case NFA_START_COLL: STRCPY(code, "NFA_START_COLL"); break; -*************** -*** 3067,3073 **** - case NFA_ZSTART: - case NFA_ZEND: - case NFA_OPT_CHARS: -! case NFA_SKIP_CHAR: - case NFA_START_PATTERN: - case NFA_END_PATTERN: - case NFA_COMPOSING: ---- 3067,3073 ---- - case NFA_ZSTART: - case NFA_ZEND: - case NFA_OPT_CHARS: -! case NFA_EMPTY: - case NFA_START_PATTERN: - case NFA_END_PATTERN: - case NFA_COMPOSING: -*************** -*** 3265,3279 **** - PUSH(frag(e1.start, e2.out)); - break; - -! case NFA_SKIP_CHAR: -! /* Symbol of 0-length, Used in a repetition -! * with max/min count of 0 */ - if (nfa_calc_size == TRUE) - { - nstate++; - break; - } -! s = alloc_state(NFA_SKIP_CHAR, NULL, NULL); - if (s == NULL) - goto theend; - PUSH(frag(s, list1(&s->out))); ---- 3265,3278 ---- - PUSH(frag(e1.start, e2.out)); - break; - -! case NFA_EMPTY: -! /* 0-length, used in a repetition with max/min count of 0 */ - if (nfa_calc_size == TRUE) - { - nstate++; - break; - } -! s = alloc_state(NFA_EMPTY, NULL, NULL); - if (s == NULL) - goto theend; - PUSH(frag(s, list1(&s->out))); -*************** -*** 4209,4215 **** - case NFA_MOPEN: - case NFA_ZEND: - case NFA_SPLIT: -! case NFA_SKIP_CHAR: - /* These nodes are not added themselves but their "out" and/or - * "out1" may be added below. */ - break; ---- 4208,4214 ---- - case NFA_MOPEN: - case NFA_ZEND: - case NFA_SPLIT: -! case NFA_EMPTY: - /* These nodes are not added themselves but their "out" and/or - * "out1" may be added below. */ - break; -*************** -*** 4337,4343 **** - subs = addstate(l, state->out1, subs, pim, off); - break; - -! case NFA_SKIP_CHAR: - case NFA_NOPEN: - case NFA_NCLOSE: - subs = addstate(l, state->out, subs, pim, off); ---- 4336,4342 ---- - subs = addstate(l, state->out1, subs, pim, off); - break; - -! case NFA_EMPTY: - case NFA_NOPEN: - case NFA_NCLOSE: - subs = addstate(l, state->out, subs, pim, off); -*************** -*** 5604,5612 **** - { - int in_use = m->norm.in_use; - -! /* Copy submatch info for the recursive call, so that -! * \1 can be matched. */ - copy_sub_off(&m->norm, &t->subs.norm); - - /* - * First try matching the invisible match, then what ---- 5603,5615 ---- - { - int in_use = m->norm.in_use; - -! /* Copy submatch info for the recursive call, opposite -! * of what happens on success below. */ - copy_sub_off(&m->norm, &t->subs.norm); -+ #ifdef FEAT_SYN_HL -+ if (nfa_has_zsubexpr) -+ copy_sub_off(&m->synt, &t->subs.synt); -+ #endif - - /* - * First try matching the invisible match, then what -*************** -*** 5713,5718 **** ---- 5716,5728 ---- - #endif - break; - } -+ /* Copy submatch info to the recursive call, opposite of what -+ * happens afterwards. */ -+ copy_sub_off(&m->norm, &t->subs.norm); -+ #ifdef FEAT_SYN_HL -+ if (nfa_has_zsubexpr) -+ copy_sub_off(&m->synt, &t->subs.synt); -+ #endif - - /* First try matching the pattern. */ - result = recursive_regmatch(t->state, NULL, prog, -*** ../vim-7.4.035/src/testdir/test64.in 2013-09-22 13:57:19.000000000 +0200 ---- src/testdir/test64.in 2013-09-25 15:51:12.000000000 +0200 -*************** -*** 430,435 **** ---- 430,436 ---- - :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) - :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) - :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab']) -+ :call add(tl, [2, '\(.\{-}\)\(\)\@>$', 'abc', 'abc', 'abc', '']) - :" TODO: BT engine does not restore submatch after failure - :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa']) - :" -*** ../vim-7.4.035/src/testdir/test64.ok 2013-09-22 13:57:19.000000000 +0200 ---- src/testdir/test64.ok 2013-09-25 16:39:31.000000000 +0200 -*************** -*** 992,997 **** ---- 992,1000 ---- - OK 0 - ^\(.\{-}b\)\@>. - OK 1 - ^\(.\{-}b\)\@>. - OK 2 - ^\(.\{-}b\)\@>. -+ OK 0 - \(.\{-}\)\(\)\@>$ -+ OK 1 - \(.\{-}\)\(\)\@>$ -+ OK 2 - \(.\{-}\)\(\)\@>$ - OK 0 - \(a*\)\@>a\|a\+ - OK 2 - \(a*\)\@>a\|a\+ - OK 0 - \_[^8-9]\+ -*** ../vim-7.4.035/src/version.c 2013-09-22 15:43:34.000000000 +0200 ---- src/version.c 2013-09-25 16:40:01.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 36, - /**/ - --- -There is a fine line between courage and foolishness. -Unfortunately, it's not a fence. - - /// 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 /// diff --git a/7.4.037 b/7.4.037 deleted file mode 100644 index 3c6369b7..00000000 --- a/7.4.037 +++ /dev/null @@ -1,130 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.037 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.037 -Problem: Using "\ze" in a sub-pattern does not result in the end of the - match to be set. (Axel Bender) -Solution: Copy the end of match position when a recursive match was - successful. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.036/src/regexp_nfa.c 2013-09-25 16:41:50.000000000 +0200 ---- src/regexp_nfa.c 2013-09-25 18:09:59.000000000 +0200 -*************** -*** 3822,3827 **** ---- 3822,3828 ---- - static void clear_sub __ARGS((regsub_T *sub)); - static void copy_sub __ARGS((regsub_T *to, regsub_T *from)); - static void copy_sub_off __ARGS((regsub_T *to, regsub_T *from)); -+ static void copy_ze_off __ARGS((regsub_T *to, regsub_T *from)); - static int sub_equal __ARGS((regsub_T *sub1, regsub_T *sub2)); - static int match_backref __ARGS((regsub_T *sub, int subidx, int *bytelen)); - static int has_state_with_pos __ARGS((nfa_list_T *l, nfa_state_T *state, regsubs_T *subs, nfa_pim_T *pim)); -*************** -*** 3909,3914 **** ---- 3910,3938 ---- - } - - /* -+ * Like copy_sub() but only do the end of the main match if \ze is present. -+ */ -+ static void -+ copy_ze_off(to, from) -+ regsub_T *to; -+ regsub_T *from; -+ { -+ if (nfa_has_zend) -+ { -+ if (REG_MULTI) -+ { -+ if (from->list.multi[0].end.lnum >= 0) -+ to->list.multi[0].end = from->list.multi[0].end; -+ } -+ else -+ { -+ if (from->list.line[0].end != NULL) -+ to->list.line[0].end = from->list.line[0].end; -+ } -+ } -+ } -+ -+ /* - * Return TRUE if "sub1" and "sub2" have the same start positions. - */ - static int -*************** -*** 5308,5313 **** ---- 5332,5338 ---- - * When "nfa_endp" is not NULL it is a required end-of-match position. - * - * Return TRUE if there is a match, FALSE otherwise. -+ * When there is a match "submatch" contains the positions. - * Note: Caller must ensure that: start != NULL. - */ - static int -*************** -*** 5633,5638 **** ---- 5658,5666 ---- - if (nfa_has_zsubexpr) - copy_sub_off(&t->subs.synt, &m->synt); - #endif -+ /* If the pattern has \ze and it matched in the -+ * sub pattern, use it. */ -+ copy_ze_off(&t->subs.norm, &m->norm); - - /* t->state->out1 is the corresponding - * END_INVISIBLE node; Add its out to the current -*** ../vim-7.4.036/src/testdir/test64.in 2013-09-25 16:41:50.000000000 +0200 ---- src/testdir/test64.in 2013-09-25 18:09:16.000000000 +0200 -*************** -*** 425,430 **** ---- 425,431 ---- - :" - :" complicated look-behind match - :call add(tl, [2, '\(r\@<=\|\w\@ - :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) -*** ../vim-7.4.036/src/testdir/test64.ok 2013-09-25 16:41:50.000000000 +0200 ---- src/testdir/test64.ok 2013-09-25 18:10:05.000000000 +0200 -*************** -*** 983,988 **** ---- 983,991 ---- - OK 0 - \(r\@<=\|\w\@a - OK 1 - \(a*\)\@>a - OK 2 - \(a*\)\@>a -*** ../vim-7.4.036/src/version.c 2013-09-25 16:41:50.000000000 +0200 ---- src/version.c 2013-09-25 18:14:36.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 37, - /**/ - --- -MAN: You don't frighten us, English pig-dog! Go and boil your bottoms, - son of a silly person. I blow my nose on you, so-called Arthur-king, - you and your silly English K...kaniggets. - He puts hands to his ears and blows a raspberry. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.038 b/7.4.038 deleted file mode 100644 index 0aae370e..00000000 --- a/7.4.038 +++ /dev/null @@ -1,116 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.038 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.038 -Problem: Using "zw" and "zg" when 'spell' is off give a confusing error - message. (Gary Johnson) -Solution: Ignore the error when locating the word. Explicitly mention what - word was added. (Christian Brabandt) -Files: src/normal.c, src/spell.c - - -*** ../vim-7.4.037/src/normal.c 2013-09-22 15:23:38.000000000 +0200 ---- src/normal.c 2013-09-25 18:54:08.000000000 +0200 -*************** -*** 5246,5253 **** - { - pos_T pos = curwin->w_cursor; - -! /* Find bad word under the cursor. */ - len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL); - if (len != 0 && curwin->w_cursor.col <= pos.col) - ptr = ml_get_pos(&curwin->w_cursor); - curwin->w_cursor = pos; ---- 5246,5257 ---- - { - pos_T pos = curwin->w_cursor; - -! /* Find bad word under the cursor. When 'spell' is -! * off this fails and find_ident_under_cursor() is -! * used below. */ -! emsg_off++; - len = spell_move_to(curwin, FORWARD, TRUE, TRUE, NULL); -+ emsg_off--; - if (len != 0 && curwin->w_cursor.col <= pos.col) - ptr = ml_get_pos(&curwin->w_cursor); - curwin->w_cursor = pos; -*** ../vim-7.4.037/src/spell.c 2013-07-17 17:28:28.000000000 +0200 ---- src/spell.c 2013-09-25 18:48:55.000000000 +0200 -*************** -*** 9479,9485 **** - if (undo) - { - home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE); -! smsg((char_u *)_("Word removed from %s"), NameBuff); - } - } - fseek(fd, fpos_next, SEEK_SET); ---- 9479,9486 ---- - if (undo) - { - home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE); -! smsg((char_u *)_("Word '%.*s' removed from %s"), -! len, word, NameBuff); - } - } - fseek(fd, fpos_next, SEEK_SET); -*************** -*** 9525,9531 **** - fclose(fd); - - home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE); -! smsg((char_u *)_("Word added to %s"), NameBuff); - } - } - ---- 9526,9532 ---- - fclose(fd); - - home_replace(NULL, fname, NameBuff, MAXPATHL, TRUE); -! smsg((char_u *)_("Word '%.*s' added to %s"), len, word, NameBuff); - } - } - -*************** -*** 10135,10141 **** - } - - /* -! * "z?": Find badly spelled word under or after the cursor. - * Give suggestions for the properly spelled word. - * In Visual mode use the highlighted word as the bad word. - * When "count" is non-zero use that suggestion. ---- 10136,10142 ---- - } - - /* -! * "z=": Find badly spelled word under or after the cursor. - * Give suggestions for the properly spelled word. - * In Visual mode use the highlighted word as the bad word. - * When "count" is non-zero use that suggestion. -*** ../vim-7.4.037/src/version.c 2013-09-25 18:16:34.000000000 +0200 ---- src/version.c 2013-09-25 18:52:47.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 38, - /**/ - --- -MAN: Fetchez la vache! -GUARD: Quoi? -MAN: Fetchez la vache! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.039 b/7.4.039 deleted file mode 100644 index 5d653e35..00000000 --- a/7.4.039 +++ /dev/null @@ -1,217 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.039 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.039 -Problem: MS-Windows: MSCV10 and earlier can't handle symlinks to a - directory properly. -Solution: Add stat_symlink_aware() and wstat_symlink_aware(). (Ken Takata) -Files: src/os_mswin.c, src/os_win32.c, src/os_win32.h - - -*** ../vim-7.4.038/src/os_mswin.c 2013-08-30 16:51:15.000000000 +0200 ---- src/os_mswin.c 2013-09-25 19:09:53.000000000 +0200 -*************** -*** 498,503 **** ---- 498,595 ---- - } - } - -+ static int -+ stat_symlink_aware(const char *name, struct stat *stp) -+ { -+ #if defined(_MSC_VER) && _MSC_VER < 1700 -+ /* Work around for VC10 or earlier. stat() can't handle symlinks properly. -+ * VC9 or earlier: stat() doesn't support a symlink at all. It retrieves -+ * status of a symlink itself. -+ * VC10: stat() supports a symlink to a normal file, but it doesn't support -+ * a symlink to a directory (always returns an error). */ -+ WIN32_FIND_DATA findData; -+ HANDLE hFind, h; -+ DWORD attr = 0; -+ BOOL is_symlink = FALSE; -+ -+ hFind = FindFirstFile(name, &findData); -+ if (hFind != INVALID_HANDLE_VALUE) -+ { -+ attr = findData.dwFileAttributes; -+ if ((attr & FILE_ATTRIBUTE_REPARSE_POINT) -+ && (findData.dwReserved0 == IO_REPARSE_TAG_SYMLINK)) -+ is_symlink = TRUE; -+ FindClose(hFind); -+ } -+ if (is_symlink) -+ { -+ h = CreateFile(name, FILE_READ_ATTRIBUTES, -+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, -+ OPEN_EXISTING, -+ (attr & FILE_ATTRIBUTE_DIRECTORY) -+ ? FILE_FLAG_BACKUP_SEMANTICS : 0, -+ NULL); -+ if (h != INVALID_HANDLE_VALUE) -+ { -+ int fd, n; -+ -+ fd = _open_osfhandle((intptr_t)h, _O_RDONLY); -+ n = _fstat(fd, (struct _stat*)stp); -+ _close(fd); -+ return n; -+ } -+ } -+ #endif -+ return stat(name, stp); -+ } -+ -+ #ifdef FEAT_MBYTE -+ static int -+ wstat_symlink_aware(const WCHAR *name, struct _stat *stp) -+ { -+ # if defined(_MSC_VER) && _MSC_VER < 1700 -+ /* Work around for VC10 or earlier. _wstat() can't handle symlinks properly. -+ * VC9 or earlier: _wstat() doesn't support a symlink at all. It retrieves -+ * status of a symlink itself. -+ * VC10: _wstat() supports a symlink to a normal file, but it doesn't -+ * support a symlink to a directory (always returns an error). */ -+ int n; -+ BOOL is_symlink = FALSE; -+ HANDLE hFind, h; -+ DWORD attr = 0; -+ WIN32_FIND_DATAW findDataW; -+ -+ hFind = FindFirstFileW(name, &findDataW); -+ if (hFind != INVALID_HANDLE_VALUE) -+ { -+ attr = findDataW.dwFileAttributes; -+ if ((attr & FILE_ATTRIBUTE_REPARSE_POINT) -+ && (findDataW.dwReserved0 == IO_REPARSE_TAG_SYMLINK)) -+ is_symlink = TRUE; -+ FindClose(hFind); -+ } -+ if (is_symlink) -+ { -+ h = CreateFileW(name, FILE_READ_ATTRIBUTES, -+ FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, -+ OPEN_EXISTING, -+ (attr & FILE_ATTRIBUTE_DIRECTORY) -+ ? FILE_FLAG_BACKUP_SEMANTICS : 0, -+ NULL); -+ if (h != INVALID_HANDLE_VALUE) -+ { -+ int fd; -+ -+ fd = _open_osfhandle((intptr_t)h, _O_RDONLY); -+ n = _fstat(fd, stp); -+ _close(fd); -+ return n; -+ } -+ } -+ # endif -+ return _wstat(name, stp); -+ } -+ #endif - - /* - * stat() can't handle a trailing '/' or '\', remove it first. -*************** -*** 534,540 **** - - if (wp != NULL) - { -! n = _wstat(wp, (struct _stat *)stp); - vim_free(wp); - if (n >= 0) - return n; ---- 626,632 ---- - - if (wp != NULL) - { -! n = wstat_symlink_aware(wp, (struct _stat *)stp); - vim_free(wp); - if (n >= 0) - return n; -*************** -*** 544,550 **** - } - } - #endif -! return stat(buf, stp); - } - - #if defined(FEAT_GUI_MSWIN) || defined(PROTO) ---- 636,642 ---- - } - } - #endif -! return stat_symlink_aware(buf, stp); - } - - #if defined(FEAT_GUI_MSWIN) || defined(PROTO) -*** ../vim-7.4.038/src/os_win32.c 2013-08-30 17:29:10.000000000 +0200 ---- src/os_win32.c 2013-09-25 19:09:53.000000000 +0200 -*************** -*** 78,93 **** - # endif - #endif - -- /* -- * Reparse Point -- */ -- #ifndef FILE_ATTRIBUTE_REPARSE_POINT -- # define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 -- #endif -- #ifndef IO_REPARSE_TAG_SYMLINK -- # define IO_REPARSE_TAG_SYMLINK 0xA000000C -- #endif -- - /* Record all output and all keyboard & mouse input */ - /* #define MCH_WRITE_DUMP */ - ---- 78,83 ---- -*** ../vim-7.4.038/src/os_win32.h 2013-07-21 17:53:13.000000000 +0200 ---- src/os_win32.h 2013-09-25 19:09:53.000000000 +0200 -*************** -*** 130,135 **** ---- 130,148 ---- - # define DFLT_MAXMEMTOT (5*1024) /* use up to 5 Mbyte for Vim */ - #endif - -+ /* -+ * Reparse Point -+ */ -+ #ifndef FILE_ATTRIBUTE_REPARSE_POINT -+ # define FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 -+ #endif -+ #ifndef IO_REPARSE_TAG_MOUNT_POINT -+ # define IO_REPARSE_TAG_MOUNT_POINT 0xA0000003 -+ #endif -+ #ifndef IO_REPARSE_TAG_SYMLINK -+ # define IO_REPARSE_TAG_SYMLINK 0xA000000C -+ #endif -+ - #if defined(_MSC_VER) || defined(__BORLANDC__) - /* Support for __try / __except. All versions of MSVC and Borland C are - * expected to have this. Any other compilers that support it? */ -*** ../vim-7.4.038/src/version.c 2013-09-25 18:54:20.000000000 +0200 ---- src/version.c 2013-09-25 19:08:55.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 39, - /**/ - --- - A cow comes flying over the battlements, lowing aggressively. The cow - lands on GALAHAD'S PAGE, squashing him completely. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.040 b/7.4.040 deleted file mode 100644 index a6002236..00000000 --- a/7.4.040 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.040 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.040 -Problem: Valgrind error on exit when a script-local variable holds a - reference to the scope of another script. -Solution: First clear all variables, then free the scopes. (ZyX) -Files: src/eval.c - - -*** ../vim-7.4.039/src/eval.c 2013-08-30 16:35:41.000000000 +0200 ---- src/eval.c 2013-09-25 20:28:15.000000000 +0200 -*************** -*** 915,926 **** - /* autoloaded script names */ - ga_clear_strings(&ga_loaded); - -! /* script-local variables */ - for (i = 1; i <= ga_scripts.ga_len; ++i) -- { - vars_clear(&SCRIPT_VARS(i)); - vim_free(SCRIPT_SV(i)); -- } - ga_clear(&ga_scripts); - - /* unreferenced lists and dicts */ ---- 915,927 ---- - /* autoloaded script names */ - ga_clear_strings(&ga_loaded); - -! /* Script-local variables. First clear all the variables and in a second -! * loop free the scriptvar_T, because a variable in one script might hold -! * a reference to the whole scope of another script. */ - for (i = 1; i <= ga_scripts.ga_len; ++i) - vars_clear(&SCRIPT_VARS(i)); -+ for (i = 1; i <= ga_scripts.ga_len; ++i) - vim_free(SCRIPT_SV(i)); - ga_clear(&ga_scripts); - - /* unreferenced lists and dicts */ -*** ../vim-7.4.039/src/version.c 2013-09-25 19:13:32.000000000 +0200 ---- src/version.c 2013-09-25 20:30:06.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 40, - /**/ - --- - A KNIGHT rides into shot and hacks him to the ground. He rides off. - We stay for a moment on the glade. A MIDDLE-AGED LADY in a C. & A. - twin-set emerges from the trees and looks in horror at the body of her - HUSBAND. -MRS HISTORIAN: FRANK! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.041 b/7.4.041 deleted file mode 100644 index 190604e9..00000000 --- a/7.4.041 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.041 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.041 (after 7.4.034) -Problem: Visual selection does not remain after being copied over. (Axel - Bender) -Solution: Move when VIsual_active is reset. (Christian Brabandt) -Files: src/ops.c - - -*** ../vim-7.4.040/src/ops.c 2013-09-22 15:23:38.000000000 +0200 ---- src/ops.c 2013-09-25 23:20:37.000000000 +0200 -*************** -*** 3808,3816 **** - FALSE /* stop after 1 paste */ - #endif - ); -- #ifdef FEAT_VISUAL -- VIsual_active = FALSE; -- #endif - - curbuf->b_op_end = curwin->w_cursor; - /* For "CTRL-O p" in Insert mode, put cursor after last char */ ---- 3808,3813 ---- -*************** -*** 3972,3977 **** ---- 3969,3978 ---- - if (regname == '=') - vim_free(y_array); - -+ #ifdef FEAT_VISUAL -+ VIsual_active = FALSE; -+ #endif -+ - /* If the cursor is past the end of the line put it at the end. */ - adjust_cursor_eol(); - } -*** ../vim-7.4.040/src/version.c 2013-09-25 21:00:24.000000000 +0200 ---- src/version.c 2013-09-25 23:20:46.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 41, - /**/ - - --- -press CTRL-ALT-DEL for more information - - /// 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 /// diff --git a/7.4.042 b/7.4.042 deleted file mode 100644 index 648a1bfe..00000000 --- a/7.4.042 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.042 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.042 -Problem: When using ":setlocal" for 'spell' and 'spellang' then :spelldump - doesn't work. (Dimitar Dimitrov) -Solution: Copy the option variables to the new window used to show the dump. - (Christian Brabandt) -Files: src/spell.c - - -*** ../vim-7.4.041/src/spell.c 2013-09-25 18:54:20.000000000 +0200 ---- src/spell.c 2013-09-29 13:15:51.000000000 +0200 -*************** -*** 15569,15579 **** - ex_spelldump(eap) - exarg_T *eap; - { - if (no_spell_checking(curwin)) - return; - -! /* Create a new empty buffer by splitting the window. */ - do_cmdline_cmd((char_u *)"new"); - if (!bufempty() || !buf_valid(curbuf)) - return; - ---- 15569,15589 ---- - ex_spelldump(eap) - exarg_T *eap; - { -+ char_u *spl; -+ long dummy; -+ - if (no_spell_checking(curwin)) - return; -+ get_option_value((char_u*)"spl", &dummy, &spl, OPT_LOCAL); - -! /* Create a new empty buffer in a new window. */ - do_cmdline_cmd((char_u *)"new"); -+ -+ /* enable spelling locally in the new window */ -+ set_option_value((char_u*)"spell", TRUE, (char_u*)"", OPT_LOCAL); -+ set_option_value((char_u*)"spl", dummy, spl, OPT_LOCAL); -+ vim_free(spl); -+ - if (!bufempty() || !buf_valid(curbuf)) - return; - -*** ../vim-7.4.041/src/version.c 2013-09-25 23:24:54.000000000 +0200 ---- src/version.c 2013-09-29 13:15:17.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 42, - /**/ - --- -Experience is what you get when you don't get what you want. - - /// 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 /// diff --git a/7.4.043 b/7.4.043 deleted file mode 100644 index 0c3d852c..00000000 --- a/7.4.043 +++ /dev/null @@ -1,89 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.043 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.043 -Problem: VMS can't handle long function names. -Solution: Shorten may_req_ambiguous_character_width. (Samuel Ferencik) -Files: src/main.c, src/term.c, src/proto/term.pro - - -*** ../vim-7.4.042/src/main.c 2013-08-22 14:14:23.000000000 +0200 ---- src/main.c 2013-09-29 16:23:49.000000000 +0200 -*************** -*** 812,818 **** - starttermcap(); /* start termcap if not done by wait_return() */ - TIME_MSG("start termcap"); - #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE) -! may_req_ambiguous_character_width(); - #endif - - #ifdef FEAT_MOUSE ---- 812,818 ---- - starttermcap(); /* start termcap if not done by wait_return() */ - TIME_MSG("start termcap"); - #if defined(FEAT_TERMRESPONSE) && defined(FEAT_MBYTE) -! may_req_ambiguous_char_width(); - #endif - - #ifdef FEAT_MOUSE -*** ../vim-7.4.042/src/term.c 2013-07-04 22:29:28.000000000 +0200 ---- src/term.c 2013-09-29 16:27:12.000000000 +0200 -*************** -*** 3356,3362 **** - * it must be called immediately after entering termcap mode. - */ - void -! may_req_ambiguous_character_width() - { - if (u7_status == U7_GET - && cur_tmode == TMODE_RAW ---- 3356,3362 ---- - * it must be called immediately after entering termcap mode. - */ - void -! may_req_ambiguous_char_width() - { - if (u7_status == U7_GET - && cur_tmode == TMODE_RAW -*** ../vim-7.4.042/src/proto/term.pro 2013-08-10 13:37:28.000000000 +0200 ---- src/proto/term.pro 2013-09-29 16:25:02.000000000 +0200 -*************** -*** 35,41 **** - void starttermcap __ARGS((void)); - void stoptermcap __ARGS((void)); - void may_req_termresponse __ARGS((void)); -! void may_req_ambiguous_character_width __ARGS((void)); - int swapping_screen __ARGS((void)); - void setmouse __ARGS((void)); - int mouse_has __ARGS((int c)); ---- 35,41 ---- - void starttermcap __ARGS((void)); - void stoptermcap __ARGS((void)); - void may_req_termresponse __ARGS((void)); -! void may_req_ambiguous_char_width __ARGS((void)); - int swapping_screen __ARGS((void)); - void setmouse __ARGS((void)); - int mouse_has __ARGS((int c)); -*** ../vim-7.4.042/src/version.c 2013-09-29 13:38:25.000000000 +0200 ---- src/version.c 2013-09-29 16:25:16.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 43, - /**/ - --- -Back up my hard drive? I can't find the reverse switch! - - /// 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 /// diff --git a/7.4.044 b/7.4.044 deleted file mode 100644 index 3d8832df..00000000 --- a/7.4.044 +++ /dev/null @@ -1,83 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.044 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.044 (after 7.4.039) -Problem: Can't build with old MSVC. (Wang Shoulin) -Solution: Define OPEN_OH_ARGTYPE instead of using intptr_t directly. -Files: src/os_mswin.c - - -*** ../vim-7.4.043/src/os_mswin.c 2013-09-25 19:13:32.000000000 +0200 ---- src/os_mswin.c 2013-09-26 20:37:38.000000000 +0200 -*************** -*** 498,503 **** ---- 498,509 ---- - } - } - -+ #if (_MSC_VER >= 1300) -+ # define OPEN_OH_ARGTYPE intptr_t -+ #else -+ # define OPEN_OH_ARGTYPE long -+ #endif -+ - static int - stat_symlink_aware(const char *name, struct stat *stp) - { -*************** -*** 533,539 **** - { - int fd, n; - -! fd = _open_osfhandle((intptr_t)h, _O_RDONLY); - n = _fstat(fd, (struct _stat*)stp); - _close(fd); - return n; ---- 539,545 ---- - { - int fd, n; - -! fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY); - n = _fstat(fd, (struct _stat*)stp); - _close(fd); - return n; -*************** -*** 580,586 **** - { - int fd; - -! fd = _open_osfhandle((intptr_t)h, _O_RDONLY); - n = _fstat(fd, stp); - _close(fd); - return n; ---- 586,592 ---- - { - int fd; - -! fd = _open_osfhandle((OPEN_OH_ARGTYPE)h, _O_RDONLY); - n = _fstat(fd, stp); - _close(fd); - return n; -*** ../vim-7.4.043/src/version.c 2013-09-29 16:27:42.000000000 +0200 ---- src/version.c 2013-09-29 18:27:58.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 44, - /**/ - --- -I'd like to meet the man who invented sex and see what he's working on now. - - /// 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 /// diff --git a/7.4.045 b/7.4.045 deleted file mode 100644 index 0e82735a..00000000 --- a/7.4.045 +++ /dev/null @@ -1,111 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.045 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.045 -Problem: substitute() does not work properly when the pattern starts with - "\ze". -Solution: Detect an empty match. (Christian Brabandt) -Files: src/eval.c, src/testdir/test80.in, src/testdir/test80.ok - - -*** ../vim-7.4.044/src/eval.c 2013-09-25 21:00:24.000000000 +0200 ---- src/eval.c 2013-09-29 21:03:22.000000000 +0200 -*************** -*** 24301,24306 **** ---- 24301,24307 ---- - garray_T ga; - char_u *ret; - char_u *save_cpo; -+ int zero_width; - - /* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */ - save_cpo = p_cpo; -*************** -*** 24339,24358 **** - (void)vim_regsub(®match, sub, (char_u *)ga.ga_data - + ga.ga_len + i, TRUE, TRUE, FALSE); - ga.ga_len += i + sublen - 1; -! /* avoid getting stuck on a match with an empty string */ -! if (tail == regmatch.endp[0]) - { -! if (*tail == NUL) -! break; - *((char_u *)ga.ga_data + ga.ga_len) = *tail++; - ++ga.ga_len; - } -- else -- { -- tail = regmatch.endp[0]; -- if (*tail == NUL) -- break; -- } - if (!do_all) - break; - } ---- 24340,24356 ---- - (void)vim_regsub(®match, sub, (char_u *)ga.ga_data - + ga.ga_len + i, TRUE, TRUE, FALSE); - ga.ga_len += i + sublen - 1; -! zero_width = (tail == regmatch.endp[0] -! || regmatch.startp[0] == regmatch.endp[0]); -! tail = regmatch.endp[0]; -! if (*tail == NUL) -! break; -! if (zero_width) - { -! /* avoid getting stuck on a match with an empty string */ - *((char_u *)ga.ga_data + ga.ga_len) = *tail++; - ++ga.ga_len; - } - if (!do_all) - break; - } -*** ../vim-7.4.044/src/testdir/test80.in 2013-03-19 17:30:51.000000000 +0100 ---- src/testdir/test80.in 2013-09-29 20:59:00.000000000 +0200 -*************** -*** 142,147 **** ---- 142,149 ---- - :$put =\"\n\nTEST_7:\" - :$put =substitute('A A', 'A.', '\=submatch(0)', '') - :$put =substitute(\"B\nB\", 'B.', '\=submatch(0)', '') -+ :$put =substitute('-bb', '\zeb', 'a', 'g') -+ :$put =substitute('-bb', '\ze', 'c', 'g') - /^TEST_8 - ENDTEST - -*** ../vim-7.4.044/src/testdir/test80.ok 2013-03-19 17:31:45.000000000 +0100 ---- src/testdir/test80.ok 2013-09-29 20:59:35.000000000 +0200 -*************** -*** 103,108 **** ---- 103,110 ---- - A A - B - B -+ -abab -+ c-cbcbc - - - TEST_8: -*** ../vim-7.4.044/src/version.c 2013-09-29 19:05:17.000000000 +0200 ---- src/version.c 2013-09-29 21:04:50.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 45, - /**/ - --- -Just think of all the things we haven't thought of yet. - - /// 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 /// diff --git a/7.4.046 b/7.4.046 deleted file mode 100644 index 5bb42658..00000000 --- a/7.4.046 +++ /dev/null @@ -1,80 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.046 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.046 -Problem: Can't use Tcl 8.6. -Solution: Change how Tcl_FindExecutable is called. (Jan Nijtmans) -Files: src/if_tcl.c - - -*** ../vim-7.4.045/src/if_tcl.c 2013-08-02 19:31:15.000000000 +0200 ---- src/if_tcl.c 2013-10-02 13:44:48.000000000 +0200 -*************** -*** 165,170 **** ---- 165,171 ---- - */ - static HANDLE hTclLib = NULL; - Tcl_Interp* (*dll_Tcl_CreateInterp)(); -+ void (*dll_Tcl_FindExecutable)(const void *); - - /* - * Table of name to function pointer of tcl. -*************** -*** 175,180 **** ---- 176,182 ---- - TCL_PROC* ptr; - } tcl_funcname_table[] = { - {"Tcl_CreateInterp", (TCL_PROC*)&dll_Tcl_CreateInterp}, -+ {"Tcl_FindExecutable", (TCL_PROC*)&dll_Tcl_FindExecutable}, - {NULL, NULL}, - }; - -*************** -*** 248,258 **** - { - Tcl_Interp *interp; - - if (interp = dll_Tcl_CreateInterp()) - { - if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0)) - { -- Tcl_FindExecutable(find_executable_arg); - Tcl_DeleteInterp(interp); - stubs_initialized = TRUE; - } ---- 250,261 ---- - { - Tcl_Interp *interp; - -+ dll_Tcl_FindExecutable(find_executable_arg); -+ - if (interp = dll_Tcl_CreateInterp()) - { - if (Tcl_InitStubs(interp, DYNAMIC_TCL_VER, 0)) - { - Tcl_DeleteInterp(interp); - stubs_initialized = TRUE; - } -*** ../vim-7.4.045/src/version.c 2013-09-29 21:11:00.000000000 +0200 ---- src/version.c 2013-10-02 13:46:47.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 46, - /**/ - --- -Not too long ago, a program was something you watched on TV... - - /// 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 /// diff --git a/7.4.047 b/7.4.047 deleted file mode 100644 index 2871340b..00000000 --- a/7.4.047 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.047 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.047 -Problem: When using input() in a function invoked by a mapping it doesn't - work. -Solution: Temporarily reset ex_normal_busy. (Yasuhiro Matsumoto) -Files: src/eval.c - - -*** ../vim-7.4.046/src/eval.c 2013-09-29 21:11:00.000000000 +0200 ---- src/eval.c 2013-10-02 16:40:52.000000000 +0200 -*************** -*** 13054,13062 **** ---- 13054,13071 ---- - } - - if (defstr != NULL) -+ { -+ # ifdef FEAT_EX_EXTRA -+ int save_ex_normal_busy = ex_normal_busy; -+ ex_normal_busy = 0; -+ # endif - rettv->vval.v_string = - getcmdline_prompt(inputsecret_flag ? NUL : '@', p, echo_attr, - xp_type, xp_arg); -+ # ifdef FEAT_EX_EXTRA -+ ex_normal_busy = save_ex_normal_busy; -+ # endif -+ } - if (inputdialog && rettv->vval.v_string == NULL - && argvars[1].v_type != VAR_UNKNOWN - && argvars[2].v_type != VAR_UNKNOWN) -*** ../vim-7.4.046/src/version.c 2013-10-02 14:25:39.000000000 +0200 ---- src/version.c 2013-10-02 16:45:45.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 47, - /**/ - --- -Not too long ago, a keyboard was something to make music with... - - /// 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 /// diff --git a/7.4.048 b/7.4.048 deleted file mode 100644 index 6e911a0b..00000000 --- a/7.4.048 +++ /dev/null @@ -1,96 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.048 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.048 -Problem: Recent clang version complains about -fno-strength-reduce. -Solution: Add a configure check for the clang version. (Kazunobu Kuriyama) -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.4.047/src/configure.in 2013-08-04 20:00:50.000000000 +0200 ---- src/configure.in 2013-10-02 17:56:25.000000000 +0200 -*************** -*** 62,67 **** ---- 62,90 ---- - fi - fi - -+ dnl clang-500.2.75 or around has abandoned -f[no-]strength-reduce and issues a -+ dnl warning when that flag is passed to. Accordingly, adjust CFLAGS based on -+ dnl the version number of the clang in use. -+ dnl Note that this does not work to get the version of clang 3.1 or 3.2. -+ AC_MSG_CHECKING(for recent clang version) -+ CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\).*$/\1/p'` -+ if test x"$CLANG_VERSION_STRING" != x"" ; then -+ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*/\1/p'` -+ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)\.[[0-9]][[0-9]]*/\1/p'` -+ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[[0-9]][[0-9]]*\.[[0-9]][[0-9]]*\.\([[0-9]][[0-9]]*\)/\1/p'` -+ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION` -+ AC_MSG_RESULT($CLANG_VERSION) -+ dnl If you find the same issue with versions earlier than 500.2.75, -+ dnl change the constant 500002075 below appropriately. To get the -+ dnl integer corresponding to a version number, refer to the -+ dnl definition of CLANG_VERSION above. -+ if test "$CLANG_VERSION" -ge 500002075 ; then -+ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'` -+ fi -+ else -+ AC_MSG_RESULT(no) -+ fi -+ - dnl If configure thinks we are cross compiling, there might be something - dnl wrong with the CC or CFLAGS settings, give a useful warning message - if test "$cross_compiling" = yes; then -*** ../vim-7.4.047/src/auto/configure 2013-08-04 20:01:06.000000000 +0200 ---- src/auto/configure 2013-10-02 17:56:52.000000000 +0200 -*************** -*** 3989,3994 **** ---- 3989,4012 ---- - fi - fi - -+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for recent clang version" >&5 -+ $as_echo_n "checking for recent clang version... " >&6; } -+ CLANG_VERSION_STRING=`"$CC" --version 2>/dev/null | sed -n -e 's/^.*clang.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*$/\1/p'` -+ if test x"$CLANG_VERSION_STRING" != x"" ; then -+ CLANG_MAJOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*/\1/p'` -+ CLANG_MINOR=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*/\1/p'` -+ CLANG_REVISION=`echo "$CLANG_VERSION_STRING" | sed -n -e 's/[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\)/\1/p'` -+ CLANG_VERSION=`expr $CLANG_MAJOR '*' 1000000 '+' $CLANG_MINOR '*' 1000 '+' $CLANG_REVISION` -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CLANG_VERSION" >&5 -+ $as_echo "$CLANG_VERSION" >&6; } -+ if test "$CLANG_VERSION" -ge 500002075 ; then -+ CFLAGS=`echo "$CFLAGS" | sed -n -e 's/-fno-strength-reduce/ /p'` -+ fi -+ else -+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -+ $as_echo "no" >&6; } -+ fi -+ - if test "$cross_compiling" = yes; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&5 - $as_echo "cannot compile a simple program; if not cross compiling check CC and CFLAGS" >&6; } -*** ../vim-7.4.047/src/version.c 2013-10-02 16:46:23.000000000 +0200 ---- src/version.c 2013-10-02 17:19:31.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 48, - /**/ - --- -I have to exercise early in the morning before my brain -figures out what I'm doing. - - /// 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 /// diff --git a/7.4.049 b/7.4.049 deleted file mode 100644 index c1a23b98..00000000 --- a/7.4.049 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.049 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.049 -Problem: In Ex mode, when line numbers are enabled the substitute prompt is - wrong. -Solution: Adjust for the line number size. (Benoit Pierre) -Files: src/ex_cmds.c - - -*** ../vim-7.4.048/src/ex_cmds.c 2013-08-07 15:15:51.000000000 +0200 ---- src/ex_cmds.c 2013-10-02 18:31:24.000000000 +0200 -*************** -*** 4740,4750 **** - char_u *resp; - colnr_T sc, ec; - -! print_line_no_prefix(lnum, FALSE, FALSE); - - getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL); - curwin->w_cursor.col = regmatch.endpos[0].col - 1; - getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec); - msg_start(); - for (i = 0; i < (long)sc; ++i) - msg_putchar(' '); ---- 4740,4756 ---- - char_u *resp; - colnr_T sc, ec; - -! print_line_no_prefix(lnum, do_number, do_list); - - getvcol(curwin, &curwin->w_cursor, &sc, NULL, NULL); - curwin->w_cursor.col = regmatch.endpos[0].col - 1; - getvcol(curwin, &curwin->w_cursor, NULL, NULL, &ec); -+ if (do_number || curwin->w_p_nu) -+ { -+ int numw = number_width(curwin) + 1; -+ sc += numw; -+ ec += numw; -+ } - msg_start(); - for (i = 0; i < (long)sc; ++i) - msg_putchar(' '); -*** ../vim-7.4.048/src/version.c 2013-10-02 18:22:58.000000000 +0200 ---- src/version.c 2013-10-02 18:33:22.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 49, - /**/ - --- -What the word 'politics' means: 'Poli' in Latin meaning 'many' and 'tics' -meaning 'bloodsucking creatures'. - - /// 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 /// diff --git a/7.4.050 b/7.4.050 deleted file mode 100644 index afe2b044..00000000 --- a/7.4.050 +++ /dev/null @@ -1,90 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.050 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.050 -Problem: "gn" selects too much for the pattern "\d" when there are two - lines with a single digit. (Ryan Carney) -Solution: Adjust the logic of is_one_char(). (Christian Brabandt) -Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok - - -*** ../vim-7.4.049/src/search.c 2013-08-14 17:45:25.000000000 +0200 ---- src/search.c 2013-10-02 21:49:40.000000000 +0200 -*************** -*** 4680,4687 **** - && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum - && regmatch.startpos[0].col == regmatch.endpos[0].col); - -! if (!result && incl(&pos) == 0 && pos.col == regmatch.endpos[0].col) -! result = TRUE; - } - - called_emsg |= save_called_emsg; ---- 4680,4687 ---- - && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum - && regmatch.startpos[0].col == regmatch.endpos[0].col); - -! if (!result && inc(&pos) >= 0 && pos.col == regmatch.endpos[0].col) -! result = TRUE; - } - - called_emsg |= save_called_emsg; -*** ../vim-7.4.049/src/testdir/test53.in 2013-06-30 14:31:56.000000000 +0200 ---- src/testdir/test53.in 2013-10-02 21:47:10.000000000 +0200 -*************** -*** 46,51 **** ---- 46,54 ---- - :set selection=exclusive - $cgNmongoose/i - cgnj -+ :" Make sure there is no other match y uppercase. -+ /x59 -+ gggnd - :/^start:/,/^end:/wq! test.out - ENDTEST - -*************** -*** 75,78 **** ---- 78,84 ---- - uniquepattern uniquepattern - my very excellent mother just served us nachos - for (i=0; i<=10; i++) -+ Y -+ text -+ Y - end: -*** ../vim-7.4.049/src/testdir/test53.ok 2013-06-30 14:31:56.000000000 +0200 ---- src/testdir/test53.ok 2013-10-02 21:47:34.000000000 +0200 -*************** -*** 27,30 **** ---- 27,33 ---- - uniquepattern - my very excellent mongoose just served us nachos - for (j=0; i<=10; i++) -+ -+ text -+ Y - end: -*** ../vim-7.4.049/src/version.c 2013-10-02 18:43:00.000000000 +0200 ---- src/version.c 2013-10-02 21:51:34.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 50, - /**/ - --- -Why doesn't Tarzan have a beard? - - /// 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 /// diff --git a/7.4.051 b/7.4.051 deleted file mode 100644 index ca5c3a04..00000000 --- a/7.4.051 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.051 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.051 -Problem: Syntax highlighting a Yaml file causes a crash. (Blake Preston) -Solution: Copy the pim structure before calling addstate() to avoid it - becoming invalide when the state list is reallocated. -Files: src/regexp_nfa.c - - -*** ../vim-7.4.050/src/regexp_nfa.c 2013-09-25 18:16:34.000000000 +0200 ---- src/regexp_nfa.c 2013-10-06 15:44:31.000000000 +0200 -*************** -*** 6458,6463 **** ---- 6458,6464 ---- - if (add_state != NULL) - { - nfa_pim_T *pim; -+ nfa_pim_T pim_copy; - - if (t->pim.result == NFA_PIM_UNUSED) - pim = NULL; -*************** -*** 6531,6536 **** ---- 6532,6546 ---- - pim = NULL; - } - -+ /* If "pim" points into l->t it will become invalid when -+ * adding the state causes the list to be reallocated. Make a -+ * local copy to avoid that. */ -+ if (pim == &t->pim) -+ { -+ copy_pim(&pim_copy, pim); -+ pim = &pim_copy; -+ } -+ - if (add_here) - addstate_here(thislist, add_state, &t->subs, pim, &listidx); - else -*** ../vim-7.4.050/src/version.c 2013-10-02 21:54:57.000000000 +0200 ---- src/version.c 2013-10-06 15:21:16.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 51, - /**/ - --- -GUARD #2: It could be carried by an African swallow! -GUARD #1: Oh, yeah, an African swallow maybe, but not a European swallow, - that's my point. -GUARD #2: Oh, yeah, I agree with that... - The Quest for the Holy Grail (Monty Python) - - /// 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 /// diff --git a/7.4.052 b/7.4.052 deleted file mode 100644 index 502d07b5..00000000 --- a/7.4.052 +++ /dev/null @@ -1,197 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.052 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.052 -Problem: With 'fo' set to "a2" inserting a space in the first column may - cause the cursor to jump to the previous line. -Solution: Handle the case when there is no comment leader properly. (Tor - Perkins) Also fix that cursor is in the wrong place when spaces - get replaced with a Tab. -Files: src/misc1.c, src/ops.c, src/testdir/test68.in, - src/testdir/test68.ok - - -*** ../vim-7.4.051/src/misc1.c 2013-09-05 21:41:35.000000000 +0200 ---- src/misc1.c 2013-10-06 17:46:18.000000000 +0200 -*************** -*** 303,312 **** - ml_replace(curwin->w_cursor.lnum, newline, FALSE); - if (flags & SIN_CHANGED) - changed_bytes(curwin->w_cursor.lnum, 0); -! /* Correct saved cursor position if it's after the indent. */ -! if (saved_cursor.lnum == curwin->w_cursor.lnum -! && saved_cursor.col >= (colnr_T)(p - oldline)) -! saved_cursor.col += ind_len - (colnr_T)(p - oldline); - retval = TRUE; - } - else ---- 303,320 ---- - ml_replace(curwin->w_cursor.lnum, newline, FALSE); - if (flags & SIN_CHANGED) - changed_bytes(curwin->w_cursor.lnum, 0); -! /* Correct saved cursor position if it is in this line. */ -! if (saved_cursor.lnum == curwin->w_cursor.lnum) -! { -! if (saved_cursor.col >= (colnr_T)(p - oldline)) -! /* cursor was after the indent, adjust for the number of -! * bytes added/removed */ -! saved_cursor.col += ind_len - (colnr_T)(p - oldline); -! else if (saved_cursor.col >= (colnr_T)(s - newline)) -! /* cursor was in the indent, and is now after it, put it back -! * at the start of the indent (replacing spaces with TAB) */ -! saved_cursor.col = (colnr_T)(s - newline); -! } - retval = TRUE; - } - else -*************** -*** 1581,1589 **** - - #if defined(FEAT_COMMENTS) || defined(PROTO) - /* -! * get_leader_len() returns the length of the prefix of the given string -! * which introduces a comment. If this string is not a comment then 0 is -! * returned. - * When "flags" is not NULL, it is set to point to the flags of the recognized - * comment leader. - * "backward" must be true for the "O" command. ---- 1589,1597 ---- - - #if defined(FEAT_COMMENTS) || defined(PROTO) - /* -! * get_leader_len() returns the length in bytes of the prefix of the given -! * string which introduces a comment. If this string is not a comment then -! * 0 is returned. - * When "flags" is not NULL, it is set to point to the flags of the recognized - * comment leader. - * "backward" must be true for the "O" command. -*** ../vim-7.4.051/src/ops.c 2013-09-25 23:24:54.000000000 +0200 ---- src/ops.c 2013-10-06 17:11:51.000000000 +0200 -*************** -*** 4989,4995 **** - - /* - * When still in same paragraph, join the lines together. But -! * first delete the comment leader from the second line. - */ - if (!is_end_par) - { ---- 4989,4995 ---- - - /* - * When still in same paragraph, join the lines together. But -! * first delete the leader from the second line. - */ - if (!is_end_par) - { -*************** -*** 4999,5009 **** - if (line_count < 0 && u_save_cursor() == FAIL) - break; - #ifdef FEAT_COMMENTS -- (void)del_bytes((long)next_leader_len, FALSE, FALSE); - if (next_leader_len > 0) - mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L, - (long)-next_leader_len); - #endif - curwin->w_cursor.lnum--; - if (do_join(2, TRUE, FALSE, FALSE) == FAIL) - { ---- 4999,5023 ---- - if (line_count < 0 && u_save_cursor() == FAIL) - break; - #ifdef FEAT_COMMENTS - if (next_leader_len > 0) -+ { -+ (void)del_bytes((long)next_leader_len, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, (colnr_T)0, 0L, - (long)-next_leader_len); -+ } else - #endif -+ if (second_indent > 0) /* the "leader" for FO_Q_SECOND */ -+ { -+ char_u *p = ml_get_curline(); -+ int indent = skipwhite(p) - p; -+ -+ if (indent > 0) -+ { -+ (void)del_bytes(indent, FALSE, FALSE); -+ mark_col_adjust(curwin->w_cursor.lnum, -+ (colnr_T)0, 0L, (long)-indent); -+ } -+ } - curwin->w_cursor.lnum--; - if (do_join(2, TRUE, FALSE, FALSE) == FAIL) - { -*** ../vim-7.4.051/src/testdir/test68.in 2012-07-25 15:57:06.000000000 +0200 ---- src/testdir/test68.in 2013-10-06 16:20:33.000000000 +0200 -*************** -*** 62,67 **** ---- 62,81 ---- - } - - STARTTEST -+ /^{/+3 -+ :set tw=5 fo=t2a si -+ i A_ -+ ENDTEST -+ -+ { -+ -+ x a -+ b -+ c -+ -+ } -+ -+ STARTTEST - /^{/+1 - :set tw=5 fo=qn comments=:# - gwap -*** ../vim-7.4.051/src/testdir/test68.ok 2012-07-25 16:03:05.000000000 +0200 ---- src/testdir/test68.ok 2013-10-06 16:20:33.000000000 +0200 -*************** -*** 43,48 **** ---- 43,57 ---- - - - { -+ -+ x a -+ b_ -+ c -+ -+ } -+ -+ -+ { - # 1 a - # b - } -*** ../vim-7.4.051/src/version.c 2013-10-06 15:46:06.000000000 +0200 ---- src/version.c 2013-10-06 17:25:27.000000000 +0200 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 52, - /**/ - --- -ARTHUR: Will you ask your master if he wants to join my court at Camelot?! -GUARD #1: But then of course African swallows are not migratory. -GUARD #2: Oh, yeah... -GUARD #1: So they couldn't bring a coconut back anyway... - The Quest for the Holy Grail (Monty Python) - - /// 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 /// diff --git a/7.4.053 b/7.4.053 deleted file mode 100644 index 22724fc7..00000000 --- a/7.4.053 +++ /dev/null @@ -1,45 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.053 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.053 -Problem: Test75 has a wrong header. (ZyX) -Solution: Fix the text and remove leading ". -Files: src/testdir/test75.in - - -*** ../vim-7.4.052/src/testdir/test75.in 2013-06-29 13:48:42.000000000 +0200 ---- src/testdir/test75.in 2013-10-19 20:28:53.000000000 +0200 -*************** -*** 1,4 **** -! " Tests for functions. - - STARTTEST - :so small.vim ---- 1,4 ---- -! Tests for maparg(). - - STARTTEST - :so small.vim -*** ../vim-7.4.052/src/version.c 2013-10-06 17:46:48.000000000 +0200 ---- src/version.c 2013-11-02 04:18:07.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 53, - /**/ - --- -Every exit is an entrance into something else. - - /// 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 /// diff --git a/7.4.054 b/7.4.054 deleted file mode 100644 index 0fcffac2..00000000 --- a/7.4.054 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.054 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.054 -Problem: Reading past end of the 'stl' string. -Solution: Don't increment pointer when already at the NUL. (Christian - Brabandt) -Files: src/buffer.c - - -*** ../vim-7.4.053/src/buffer.c 2013-08-14 17:11:14.000000000 +0200 ---- src/buffer.c 2013-11-02 04:34:26.000000000 +0100 -*************** -*** 4062,4068 **** - item[curitem].minwid = -syn_namen2id(t, (int)(s - t)); - curitem++; - } -! ++s; - continue; - } - ---- 4062,4069 ---- - item[curitem].minwid = -syn_namen2id(t, (int)(s - t)); - curitem++; - } -! if (*s != NUL) -! ++s; - continue; - } - -*** ../vim-7.4.053/src/version.c 2013-11-02 04:19:10.000000000 +0100 ---- src/version.c 2013-11-02 04:31:50.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 54, - /**/ - --- -Every person is responsible for the choices he makes. - - /// 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 /// diff --git a/7.4.055 b/7.4.055 deleted file mode 100644 index b6adc044..00000000 --- a/7.4.055 +++ /dev/null @@ -1,138 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.055 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.055 -Problem: Mac: Where availability macros are defined depends on the system. -Solution: Add a configure check. (Felix Bünemann) -Files: src/config.h.in, src/configure.in, src/auto/configure, - src/os_mac.h - -*** ../vim-7.4.054/src/config.h.in 2013-02-26 14:18:19.000000000 +0100 ---- src/config.h.in 2013-11-02 20:52:08.000000000 +0100 -*************** -*** 442,444 **** ---- 442,447 ---- - - /* Define if you want Cygwin to use the WIN32 clipboard, not compatible with X11*/ - #undef FEAT_CYGWIN_WIN32_CLIPBOARD -+ -+ /* Define if we have AvailabilityMacros.h on Mac OS X */ -+ #undef HAVE_AVAILABILITYMACROS_H -*** ../vim-7.4.054/src/configure.in 2013-10-02 18:22:58.000000000 +0200 ---- src/configure.in 2013-11-02 20:58:58.000000000 +0100 -*************** -*** 206,211 **** ---- 206,215 ---- - dnl TODO: use -arch i386 on Intel machines - CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - -+ dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon -+ dnl so we need to include it to have access to version macros. -+ AC_CHECK_HEADER(AvailabilityMacros.h, [AC_DEFINE(HAVE_AVAILABILITYMACROS_H, 1, [ Define if we have AvailabilityMacros.h on Mac OS X ])]) -+ - dnl If Carbon is found, assume we don't want X11 - dnl unless it was specifically asked for (--with-x) - dnl or Motif, Athena or GTK GUI is used. -*** ../vim-7.4.054/src/auto/configure 2013-10-02 18:22:58.000000000 +0200 ---- src/auto/configure 2013-11-02 21:00:40.000000000 +0100 -*************** -*** 4223,4229 **** - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" - CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - -! # On IRIX 5.3, sys/types and inttypes.h are conflicting. - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h - do : ---- 4223,4229 ---- - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" - CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - -! # On IRIX 5.3, sys/types and inttypes.h are conflicting. - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h - do : -*************** -*** 4241,4247 **** - done - - -! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default" - if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then : - CARBON=yes - fi ---- 4241,4256 ---- - done - - -! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default" -! if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then : -! -! $as_echo "#define HAVE_AVAILABILITYMACROS_H 1" >>confdefs.h -! -! fi -! -! -! -! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default" - if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then : - CARBON=yes - fi -*** ../vim-7.4.054/src/os_mac.h 2013-05-06 04:06:04.000000000 +0200 ---- src/os_mac.h 2013-11-02 20:59:46.000000000 +0100 -*************** -*** 16,21 **** ---- 16,26 ---- - # define OPAQUE_TOOLBOX_STRUCTS 0 - #endif - -+ /* Include MAC_OS_X_VERSION_* macros */ -+ #ifdef HAVE_AVAILABILITYMACROS_H -+ # include -+ #endif -+ - /* - * Macintosh machine-dependent things. - * -*************** -*** 263,269 **** - #endif - - /* Some "prep work" definition to be able to compile the MacOS X -! * version with os_unix.x instead of os_mac.c. Based on the result - * of ./configure for console MacOS X. - */ - ---- 268,274 ---- - #endif - - /* Some "prep work" definition to be able to compile the MacOS X -! * version with os_unix.c instead of os_mac.c. Based on the result - * of ./configure for console MacOS X. - */ - -*** ../vim-7.4.054/src/version.c 2013-11-02 04:39:34.000000000 +0100 ---- src/version.c 2013-11-02 21:01:10.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 55, - /**/ - --- -You can be stopped by the police for biking over 65 miles per hour. -You are not allowed to walk across a street on your hands. - [real standing laws in Connecticut, United States of America] - - /// 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 /// diff --git a/7.4.056 b/7.4.056 deleted file mode 100644 index e8c1a346..00000000 --- a/7.4.056 +++ /dev/null @@ -1,51 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.056 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.056 -Problem: Mac: Compilation problem with OS X 10.9 Mavericks. -Solution: Include AvailabilityMacros.h when available. (Kazunobu Kuriyama) -Files: src/os_unix.c - - -*** ../vim-7.4.055/src/os_unix.c 2013-09-05 21:41:35.000000000 +0200 ---- src/os_unix.c 2013-11-02 21:46:05.000000000 +0100 -*************** -*** 804,809 **** ---- 804,815 ---- - * completely full. - */ - -+ #if defined(HAVE_AVAILABILITYMACROS_H) \ -+ && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \ -+ && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090) -+ # include -+ #endif -+ - #ifndef SIGSTKSZ - # define SIGSTKSZ 8000 /* just a guess of how much stack is needed... */ - #endif -*** ../vim-7.4.055/src/version.c 2013-11-02 21:04:32.000000000 +0100 ---- src/version.c 2013-11-02 21:44:10.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 56, - /**/ - --- -If an elephant is left tied to a parking meter, the parking fee has to be paid -just as it would for a vehicle. - [real standing law in Florida, United States of America] - - /// 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 /// diff --git a/7.4.057 b/7.4.057 deleted file mode 100644 index aee16b6a..00000000 --- a/7.4.057 +++ /dev/null @@ -1,252 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.057 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.057 -Problem: byteidx() does not work for composing characters. -Solution: Add byteidxcomp(). -Files: src/eval.c, src/testdir/test69.in, src/testdir/test69.ok, - runtime/doc/eval.txt - - -*** ../vim-7.4.056/src/eval.c 2013-10-02 16:46:23.000000000 +0200 ---- src/eval.c 2013-11-02 22:30:08.000000000 +0100 -*************** -*** 474,480 **** ---- 474,482 ---- - static void f_bufnr __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_bufwinnr __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_byte2line __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void byteidx __ARGS((typval_T *argvars, typval_T *rettv, int comp)); - static void f_byteidx __ARGS((typval_T *argvars, typval_T *rettv)); -+ static void f_byteidxcomp __ARGS((typval_T *argvars, typval_T *rettv)); - static void f_call __ARGS((typval_T *argvars, typval_T *rettv)); - #ifdef FEAT_FLOAT - static void f_ceil __ARGS((typval_T *argvars, typval_T *rettv)); -*************** -*** 7861,7866 **** ---- 7863,7869 ---- - {"bufwinnr", 1, 1, f_bufwinnr}, - {"byte2line", 1, 1, f_byte2line}, - {"byteidx", 2, 2, f_byteidx}, -+ {"byteidxcomp", 2, 2, f_byteidxcomp}, - {"call", 2, 3, f_call}, - #ifdef FEAT_FLOAT - {"ceil", 1, 1, f_ceil}, -*************** -*** 9177,9189 **** - #endif - } - -- /* -- * "byteidx()" function -- */ - static void -! f_byteidx(argvars, rettv) - typval_T *argvars; - typval_T *rettv; - { - #ifdef FEAT_MBYTE - char_u *t; ---- 9180,9190 ---- - #endif - } - - static void -! byteidx(argvars, rettv, comp) - typval_T *argvars; - typval_T *rettv; -+ int comp; - { - #ifdef FEAT_MBYTE - char_u *t; -*************** -*** 9203,9209 **** - { - if (*t == NUL) /* EOL reached */ - return; -! t += (*mb_ptr2len)(t); - } - rettv->vval.v_number = (varnumber_T)(t - str); - #else ---- 9204,9213 ---- - { - if (*t == NUL) /* EOL reached */ - return; -! if (enc_utf8 && comp) -! t += utf_ptr2len(t); -! else -! t += (*mb_ptr2len)(t); - } - rettv->vval.v_number = (varnumber_T)(t - str); - #else -*************** -*** 9212,9217 **** ---- 9216,9243 ---- - #endif - } - -+ /* -+ * "byteidx()" function -+ */ -+ static void -+ f_byteidx(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ byteidx(argvars, rettv, FALSE); -+ } -+ -+ /* -+ * "byteidxcomp()" function -+ */ -+ static void -+ f_byteidxcomp(argvars, rettv) -+ typval_T *argvars; -+ typval_T *rettv; -+ { -+ byteidx(argvars, rettv, TRUE); -+ } -+ - int - func_call(name, args, selfdict, rettv) - char_u *name; -*** ../vim-7.4.056/src/testdir/test69.in 2013-03-07 18:30:50.000000000 +0100 ---- src/testdir/test69.in 2013-11-02 22:46:02.000000000 +0100 -*************** -*** 1,6 **** ---- 1,7 ---- - Test for multi-byte text formatting. - Also test, that 'mps' with multibyte chars works. - And test "ra" on multi-byte characters. -+ Also test byteidx() and byteidxcomp() - - STARTTEST - :so mbyte.vim -*************** -*** 154,159 **** ---- 155,175 ---- - ï½ï½b - - STARTTEST -+ :let a = '.é.' " one char of two bytes -+ :let b = '.eÌ.' " normal e with composing char -+ /^byteidx -+ :put =string([byteidx(a, 0), byteidx(a, 1), byteidx(a, 2), byteidx(a, 3), byteidx(a, 4)]) -+ :put =string([byteidx(b, 0), byteidx(b, 1), byteidx(b, 2), byteidx(b, 3), byteidx(b, 4)]) -+ /^byteidxcomp -+ :put =string([byteidxcomp(a, 0), byteidxcomp(a, 1), byteidxcomp(a, 2), byteidxcomp(a, 3), byteidxcomp(a, 4)]) -+ :let b = '.eÌ.' -+ :put =string([byteidxcomp(b, 0), byteidxcomp(b, 1), byteidxcomp(b, 2), byteidxcomp(b, 3), byteidxcomp(b, 4), byteidxcomp(b, 5)]) -+ ENDTEST -+ -+ byteidx -+ byteidxcomp -+ -+ STARTTEST - :g/^STARTTEST/.,/^ENDTEST/d - :1;/^Results/,$wq! test.out - ENDTEST -*** ../vim-7.4.056/src/testdir/test69.ok 2013-03-07 18:31:32.000000000 +0100 ---- src/testdir/test69.ok 2013-11-02 22:43:25.000000000 +0100 -*************** -*** 149,151 **** ---- 149,159 ---- - aaaa - aaa - -+ -+ byteidx -+ [0, 1, 3, 4, -1] -+ [0, 1, 4, 5, -1] -+ byteidxcomp -+ [0, 1, 3, 4, -1] -+ [0, 1, 2, 4, 5, -1] -+ -*** ../vim-7.4.056/runtime/doc/eval.txt 2013-08-10 13:24:53.000000000 +0200 ---- runtime/doc/eval.txt 2013-11-02 23:27:24.000000000 +0100 -*************** -*** 1712,1717 **** ---- 1713,1719 ---- - bufwinnr( {expr}) Number window number of buffer {expr} - byte2line( {byte}) Number line number at byte count {byte} - byteidx( {expr}, {nr}) Number byte index of {nr}'th char in {expr} -+ byteidxcomp( {expr}, {nr}) Number byte index of {nr}'th char in {expr} - call( {func}, {arglist} [, {dict}]) - any call {func} with arguments {arglist} - ceil( {expr}) Float round {expr} up -*************** -*** 2260,2266 **** - {expr}. Use zero for the first character, it returns zero. - This function is only useful when there are multibyte - characters, otherwise the returned value is equal to {nr}. -! Composing characters are counted as a separate character. - Example : > - echo matchstr(str, ".", byteidx(str, 3)) - < will display the fourth character. Another way to do the ---- 2262,2271 ---- - {expr}. Use zero for the first character, it returns zero. - This function is only useful when there are multibyte - characters, otherwise the returned value is equal to {nr}. -! Composing characters are not counted separately, their byte -! length is added to the preceding base character. See -! |byteidxcomp()| below for counting composing characters -! separately. - Example : > - echo matchstr(str, ".", byteidx(str, 3)) - < will display the fourth character. Another way to do the -*************** -*** 2269,2275 **** - echo strpart(s, 0, byteidx(s, 1)) - < If there are less than {nr} characters -1 is returned. - If there are exactly {nr} characters the length of the string -! is returned. - - call({func}, {arglist} [, {dict}]) *call()* *E699* - Call function {func} with the items in |List| {arglist} as ---- 2274,2293 ---- - echo strpart(s, 0, byteidx(s, 1)) - < If there are less than {nr} characters -1 is returned. - If there are exactly {nr} characters the length of the string -! in bytes is returned. -! -! byteidxcomp({expr}, {nr}) *byteidxcomp()* -! Like byteidx(), except that a composing character is counted -! as a separate character. Example: > -! let s = 'e' . nr2char(0x301) -! echo byteidx(s, 1) -! echo byteidxcomp(s, 1) -! echo byteidxcomp(s, 2) -! < The first and third echo result in 3 ('e' plus composing -! character is 3 bytes), the second echo results in 1 ('e' is -! one byte). -! Only works different from byteidx() when 'encoding' is set to -! a Unicode encoding. - - call({func}, {arglist} [, {dict}]) *call()* *E699* - Call function {func} with the items in |List| {arglist} as -*** ../vim-7.4.056/src/version.c 2013-11-02 21:49:28.000000000 +0100 ---- src/version.c 2013-11-02 22:45:13.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 57, - /**/ - --- -Any sufficiently advanced technology is indistinguishable from magic. - Arthur C. Clarke -Any sufficiently advanced bug is indistinguishable from a feature. - Rich Kulawiec - - /// 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 /// diff --git a/7.4.058 b/7.4.058 deleted file mode 100644 index 0715c848..00000000 --- a/7.4.058 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.058 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.058 -Problem: Warnings on 64 bit Windows. -Solution: Add type casts. (Mike Williams) -Files: src/ops.c - - -*** ../vim-7.4.057/src/ops.c 2013-10-06 17:46:48.000000000 +0200 ---- src/ops.c 2013-11-02 23:56:15.000000000 +0100 -*************** -*** 5009,5022 **** - if (second_indent > 0) /* the "leader" for FO_Q_SECOND */ - { - char_u *p = ml_get_curline(); -! int indent = skipwhite(p) - p; - - if (indent > 0) - { - (void)del_bytes(indent, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, - (colnr_T)0, 0L, (long)-indent); -! } - } - curwin->w_cursor.lnum--; - if (do_join(2, TRUE, FALSE, FALSE) == FAIL) ---- 5009,5022 ---- - if (second_indent > 0) /* the "leader" for FO_Q_SECOND */ - { - char_u *p = ml_get_curline(); -! int indent = (int)(skipwhite(p) - p); - - if (indent > 0) - { - (void)del_bytes(indent, FALSE, FALSE); - mark_col_adjust(curwin->w_cursor.lnum, - (colnr_T)0, 0L, (long)-indent); -! } - } - curwin->w_cursor.lnum--; - if (do_join(2, TRUE, FALSE, FALSE) == FAIL) -*** ../vim-7.4.057/src/version.c 2013-11-02 23:29:17.000000000 +0100 ---- src/version.c 2013-11-02 23:55:01.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 58, - /**/ - --- -Citizens are not allowed to attend a movie house or theater nor ride in a -public streetcar within at least four hours after eating garlic. - [real standing law in Indiana, United States of America] - - /// 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 /// diff --git a/7.4.059 b/7.4.059 deleted file mode 100644 index b00cbfe0..00000000 --- a/7.4.059 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.059 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.059 -Problem: set_last_cursor() may encounter w_buffer being NULL. (Matt - Mkaniaris) -Solution: Check for NULL. -Files: src/mark.c - - -*** ../vim-7.4.058/src/mark.c 2013-08-02 17:22:10.000000000 +0200 ---- src/mark.c 2013-11-03 00:18:35.000000000 +0100 -*************** -*** 1374,1380 **** - set_last_cursor(win) - win_T *win; - { -! win->w_buffer->b_last_cursor = win->w_cursor; - } - - #if defined(EXITFREE) || defined(PROTO) ---- 1374,1381 ---- - set_last_cursor(win) - win_T *win; - { -! if (win->w_buffer != NULL) -! win->w_buffer->b_last_cursor = win->w_cursor; - } - - #if defined(EXITFREE) || defined(PROTO) -*** ../vim-7.4.058/src/version.c 2013-11-02 23:59:30.000000000 +0100 ---- src/version.c 2013-11-03 00:17:55.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 59, - /**/ - --- -How do you know when you have run out of invisible ink? - - /// 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 /// diff --git a/7.4.060 b/7.4.060 deleted file mode 100644 index d6a76727..00000000 --- a/7.4.060 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.060 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.060 -Problem: Declaration has wrong return type for PyObject_SetAttrString(). -Solution: Use int instead of PyObject. (Andreas Schwab) -Files: src/if_python.c, src/if_python3.c - - -*** ../vim-7.4.059/src/if_python.c 2013-07-09 21:40:11.000000000 +0200 ---- src/if_python.c 2013-11-03 00:24:57.000000000 +0100 -*************** -*** 359,365 **** - static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *); - static PyObject* (*dll_PyObject_GetAttrString)(PyObject *, const char *); - static int (*dll_PyObject_HasAttrString)(PyObject *, const char *); -! static PyObject* (*dll_PyObject_SetAttrString)(PyObject *, const char *, PyObject *); - static PyObject* (*dll_PyObject_CallFunctionObjArgs)(PyObject *, ...); - static PyObject* (*dll_PyObject_CallFunction)(PyObject *, char *, ...); - static PyObject* (*dll_PyObject_Call)(PyObject *, PyObject *, PyObject *); ---- 359,365 ---- - static PyObject *(*dll_PyRun_String)(char *, int, PyObject *, PyObject *); - static PyObject* (*dll_PyObject_GetAttrString)(PyObject *, const char *); - static int (*dll_PyObject_HasAttrString)(PyObject *, const char *); -! static int (*dll_PyObject_SetAttrString)(PyObject *, const char *, PyObject *); - static PyObject* (*dll_PyObject_CallFunctionObjArgs)(PyObject *, ...); - static PyObject* (*dll_PyObject_CallFunction)(PyObject *, char *, ...); - static PyObject* (*dll_PyObject_Call)(PyObject *, PyObject *, PyObject *); -*** ../vim-7.4.059/src/if_python3.c 2013-07-09 21:53:21.000000000 +0200 ---- src/if_python3.c 2013-11-03 00:24:57.000000000 +0100 -*************** -*** 302,308 **** - static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *); - static PyObject* (*py3_PyObject_GetAttrString)(PyObject *, const char *); - static int (*py3_PyObject_HasAttrString)(PyObject *, const char *); -! static PyObject* (*py3_PyObject_SetAttrString)(PyObject *, const char *, PyObject *); - static PyObject* (*py3_PyObject_CallFunctionObjArgs)(PyObject *, ...); - static PyObject* (*py3__PyObject_CallFunction_SizeT)(PyObject *, char *, ...); - static PyObject* (*py3_PyObject_Call)(PyObject *, PyObject *, PyObject *); ---- 302,308 ---- - static PyObject* (*py3_PyRun_String)(char *, int, PyObject *, PyObject *); - static PyObject* (*py3_PyObject_GetAttrString)(PyObject *, const char *); - static int (*py3_PyObject_HasAttrString)(PyObject *, const char *); -! static int (*py3_PyObject_SetAttrString)(PyObject *, const char *, PyObject *); - static PyObject* (*py3_PyObject_CallFunctionObjArgs)(PyObject *, ...); - static PyObject* (*py3__PyObject_CallFunction_SizeT)(PyObject *, char *, ...); - static PyObject* (*py3_PyObject_Call)(PyObject *, PyObject *, PyObject *); -*** ../vim-7.4.059/src/version.c 2013-11-03 00:20:46.000000000 +0100 ---- src/version.c 2013-11-03 00:26:19.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 60, - /**/ - --- -Kisses may last for as much as, but no more than, five minutes. - [real standing law in Iowa, United States of America] - - /// 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 /// diff --git a/7.4.061 b/7.4.061 deleted file mode 100644 index ebd5b2d7..00000000 --- a/7.4.061 +++ /dev/null @@ -1,144 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.061 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.061 (after 7.4.055 and 7.4.056) -Problem: Availability macros configure check in wrong place. -Solution: Also check when not using Darwin. Remove version check. -Files: src/configure.in, src/auto/configure, src/os_unix.c - - -*** ../vim-7.4.060/src/configure.in 2013-11-02 21:04:32.000000000 +0100 ---- src/configure.in 2013-11-03 00:34:07.000000000 +0100 -*************** -*** 206,215 **** - dnl TODO: use -arch i386 on Intel machines - CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - -- dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon -- dnl so we need to include it to have access to version macros. -- AC_CHECK_HEADER(AvailabilityMacros.h, [AC_DEFINE(HAVE_AVAILABILITYMACROS_H, 1, [ Define if we have AvailabilityMacros.h on Mac OS X ])]) -- - dnl If Carbon is found, assume we don't want X11 - dnl unless it was specifically asked for (--with-x) - dnl or Motif, Athena or GTK GUI is used. ---- 206,211 ---- -*************** -*** 232,237 **** ---- 228,237 ---- - AC_MSG_RESULT(no) - fi - -+ dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon -+ dnl so we need to include it to have access to version macros. -+ AC_CHECK_HEADER(AvailabilityMacros.h, HAVE_AVAILABILITYMACROS_H=1) -+ - AC_SUBST(OS_EXTRA_SRC) - AC_SUBST(OS_EXTRA_OBJ) - -*** ../vim-7.4.060/src/auto/configure 2013-11-02 21:04:32.000000000 +0100 ---- src/auto/configure 2013-11-03 00:36:20.000000000 +0100 -*************** -*** 4223,4229 **** - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" - CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - -! # On IRIX 5.3, sys/types and inttypes.h are conflicting. - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h - do : ---- 4223,4229 ---- - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" - CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - -! # On IRIX 5.3, sys/types and inttypes.h are conflicting. - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h - do : -*************** -*** 4241,4256 **** - done - - -! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default" -! if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then : -! -! $as_echo "#define HAVE_AVAILABILITYMACROS_H 1" >>confdefs.h -! -! fi -! -! -! -! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default" - if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then : - CARBON=yes - fi ---- 4241,4247 ---- - done - - -! ac_fn_c_check_header_mongrel "$LINENO" "Carbon/Carbon.h" "ac_cv_header_Carbon_Carbon_h" "$ac_includes_default" - if test "x$ac_cv_header_Carbon_Carbon_h" = x""yes; then : - CARBON=yes - fi -*************** -*** 4272,4277 **** ---- 4263,4275 ---- - $as_echo "no" >&6; } - fi - -+ ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default" -+ if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then : -+ HAVE_AVAILABILITYMACROS_H=1 -+ fi -+ -+ -+ - - - -*** ../vim-7.4.060/src/os_unix.c 2013-11-02 21:49:28.000000000 +0100 ---- src/os_unix.c 2013-11-03 00:34:29.000000000 +0100 -*************** -*** 804,812 **** - * completely full. - */ - -! #if defined(HAVE_AVAILABILITYMACROS_H) \ -! && defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) \ -! && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1090) - # include - #endif - ---- 804,810 ---- - * completely full. - */ - -! #if defined(HAVE_AVAILABILITYMACROS_H) - # include - #endif - -*** ../vim-7.4.060/src/version.c 2013-11-03 00:28:20.000000000 +0100 ---- src/version.c 2013-11-03 00:37:02.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 61, - /**/ - --- -It is illegal to rob a bank and then shoot at the bank teller with a water -pistol. - [real standing law in Louisana, United States of America] - - /// 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 /// diff --git a/7.4.062 b/7.4.062 deleted file mode 100644 index dad0a420..00000000 --- a/7.4.062 +++ /dev/null @@ -1,87 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.062 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.062 (after 7.4.061) -Problem: Configure check for AvailabilityMacros.h is wrong. -Solution: Use AC_CHECK_HEADERS(). -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.4.061/src/configure.in 2013-11-03 00:40:54.000000000 +0100 ---- src/configure.in 2013-11-03 20:19:42.000000000 +0100 -*************** -*** 230,236 **** - - dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon - dnl so we need to include it to have access to version macros. -! AC_CHECK_HEADER(AvailabilityMacros.h, HAVE_AVAILABILITYMACROS_H=1) - - AC_SUBST(OS_EXTRA_SRC) - AC_SUBST(OS_EXTRA_OBJ) ---- 230,236 ---- - - dnl Mac OS X 10.9+ no longer include AvailabilityMacros.h in Carbon - dnl so we need to include it to have access to version macros. -! AC_CHECK_HEADERS(AvailabilityMacros.h) - - AC_SUBST(OS_EXTRA_SRC) - AC_SUBST(OS_EXTRA_OBJ) -*** ../vim-7.4.061/src/auto/configure 2013-11-03 00:40:54.000000000 +0100 ---- src/auto/configure 2013-11-03 20:22:56.000000000 +0100 -*************** -*** 4263,4273 **** - $as_echo "no" >&6; } - fi - -! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default" - if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then : -! HAVE_AVAILABILITYMACROS_H=1 - fi - - - - ---- 4263,4279 ---- - $as_echo "no" >&6; } - fi - -! for ac_header in AvailabilityMacros.h -! do : -! ac_fn_c_check_header_mongrel "$LINENO" "AvailabilityMacros.h" "ac_cv_header_AvailabilityMacros_h" "$ac_includes_default" - if test "x$ac_cv_header_AvailabilityMacros_h" = x""yes; then : -! cat >>confdefs.h <<_ACEOF -! #define HAVE_AVAILABILITYMACROS_H 1 -! _ACEOF -! - fi - -+ done - - - -*** ../vim-7.4.061/src/version.c 2013-11-03 00:40:54.000000000 +0100 ---- src/version.c 2013-11-03 20:25:31.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 62, - /**/ - --- -Yesterday, all my deadlines seemed so far away -now it looks as though it's freeze in four days -oh I believe in cvs.. - [ CVS log "Beatles style" for FreeBSD ports/INDEX, Satoshi Asami ] - - /// 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 /// diff --git a/7.4.063 b/7.4.063 deleted file mode 100644 index b72b0b76..00000000 --- a/7.4.063 +++ /dev/null @@ -1,105 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.063 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.063 -Problem: Crash when using invalid key in Python dictionary. -Solution: Check for object to be NULL. Add tests. (ZyX) -Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, - src/testdir/test87.in, src/testdir/test87.ok - - -*** ../vim-7.4.062/src/if_py_both.h 2013-07-24 17:09:19.000000000 +0200 ---- src/if_py_both.h 2013-11-04 00:27:40.000000000 +0100 -*************** -*** 1624,1629 **** ---- 1624,1632 ---- - PyObject *rObj = _DictionaryItem(self, keyObject, DICT_FLAG_RETURN_BOOL); - int ret; - -+ if (rObj == NULL) -+ return -1; -+ - ret = (rObj == Py_True); - - Py_DECREF(rObj); -*** ../vim-7.4.062/src/testdir/test86.in 2013-07-13 14:00:31.000000000 +0200 ---- src/testdir/test86.in 2013-11-04 00:27:11.000000000 +0100 -*************** -*** 1088,1093 **** ---- 1088,1096 ---- - stringtochars_test('d.get(%s)') - ee('d.pop("a")') - ee('dl.pop("a")') -+ cb.append(">> DictionaryContains") -+ ee('"" in d') -+ ee('0 in d') - cb.append(">> DictionaryIterNext") - ee('for i in ned: ned["a"] = 1') - del i -*** ../vim-7.4.062/src/testdir/test86.ok 2013-06-23 16:38:39.000000000 +0200 ---- src/testdir/test86.ok 2013-11-04 00:27:11.000000000 +0100 -*************** -*** 516,521 **** ---- 516,524 ---- - <<< Finished - d.pop("a"):KeyError:('a',) - dl.pop("a"):error:('dictionary is locked',) -+ >> DictionaryContains -+ "" in d:ValueError:('empty keys are not allowed',) -+ 0 in d:TypeError:('expected str() or unicode() instance, but got int',) - >> DictionaryIterNext - for i in ned: ned["a"] = 1:RuntimeError:('hashtab changed during iteration',) - >> DictionaryAssItem -*** ../vim-7.4.062/src/testdir/test87.in 2013-07-06 13:41:30.000000000 +0200 ---- src/testdir/test87.in 2013-11-04 00:27:11.000000000 +0100 -*************** -*** 1039,1044 **** ---- 1039,1047 ---- - stringtochars_test('d.get(%s)') - ee('d.pop("a")') - ee('dl.pop("a")') -+ cb.append(">> DictionaryContains") -+ ee('"" in d') -+ ee('0 in d') - cb.append(">> DictionaryIterNext") - ee('for i in ned: ned["a"] = 1') - del i -*** ../vim-7.4.062/src/testdir/test87.ok 2013-06-23 16:38:39.000000000 +0200 ---- src/testdir/test87.ok 2013-11-04 00:27:11.000000000 +0100 -*************** -*** 505,510 **** ---- 505,513 ---- - <<< Finished - d.pop("a"):(, KeyError('a',)) - dl.pop("a"):(, error('dictionary is locked',)) -+ >> DictionaryContains -+ "" in d:(, ValueError('empty keys are not allowed',)) -+ 0 in d:(, TypeError('expected bytes() or str() instance, but got int',)) - >> DictionaryIterNext - for i in ned: ned["a"] = 1:(, RuntimeError('hashtab changed during iteration',)) - >> DictionaryAssItem -*** ../vim-7.4.062/src/version.c 2013-11-03 20:26:27.000000000 +0100 ---- src/version.c 2013-11-04 00:26:39.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 63, - /**/ - --- -A parent can be arrested if his child cannot hold back a burp during a church -service. - [real standing law in Nebraska, United States of America] - - /// 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 /// diff --git a/7.4.064 b/7.4.064 deleted file mode 100644 index 771320851e8ea5711686c2547f692cb895e92550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5346 zcmd5=-E-Tx5$~%wbFcT3m-SsI(FaNKL$+kOc2B3siFR ziAvAe(B#R3!2hZReMn67@93o%dVT#6#g?MS4?xClSe zNcG_ZQPBdrcE@&(I>vbv^+6OW6rYT9DbhatC`k%eLL`(EBH>Ti{~@jVHmB;$xMC@_ zZm7(e;C*my#~2E(C|B0xE~9-=^pk3531R#Mq6LvTRj1R*xz*dQlZ59pDyC#11*shYQJa#R%Wq`$tJa!eiAi&RIfptr|csqc#^ZC5auGx+f6D@~@(~ zikZ}3|JY{S+~bI}50;3fVHnM36KuP^VyRVP@3(iisd?xY zmg6}Ng0m-EN#weg(*eiryPf`_zenUc4sN{Lv>;u_KQg;c#|50ye5;`zpa*PJ`fLEy z*bM4(p#sKL1N(@Zq&Zc=%>}|-Z=4vda@m5!L8N37tQt7<8Gmp&vWQ4#opJO=I6Z|| zxAK)#!;)LF-m@8RCs*J%Prn6cYqlvKHGb1xaWst!syqjKLR@02DTCKLlGKeIc zLOnvuPbV7pb`z7q0#k(&5DRFw4Sg)~UF9H*ZI%c5Ldb3I zDmB|$G84Jl0SeWA0;Q*S4P%?~_#P#sZ8tT@`UJ{|RG@=QccTU2a~hY!8kAaXJh{Gl ze=~YoIgIirtkiB+@NdsK9VJ@vGzm7&f$_Lz+&WtaQ6Y07?SvO;34jUbgUj)#2rHca&CsenC$4b2 zFZx$Qc~C_Zj^hr$KdLI7_Cso4tsTF398>q(?q|Pe#}(55&e%ed=fqcOtxW>o&qbTT z`o!oN(s*)&l0ATKDriE*PoS()wV}1NfHqS(Skx|cG>Ef`4m$R9qv=X&k zi(aBZud-kD)uHp1y8S_k&-kW*_bsQ31-$R{{obPru&NoqLVaJ!`$v8MdG(|3nSOU$ zJNlm4xzE+HSU_B;7dOl4M+2b$9Za)~%82B&Jc7gw)LLji%?*G!&NAlv{)?rOQQvEeBpY2=kTc8JAUCUox|i?@1y+Y zjW3RS-J?Ss^7PQR-+Xm-Iq`5kD$xF?TF|!n$2FXt0ou?Og~Ew{kplx@^zQX!G@d*Y zGO>IB85ZsCb0Mp!w~%%FuJ?%gsk+g1O?Ri^+jsIDpT z`VxsWvuVtfkhuvLAd7rKV-PDUaT=GNPd?xi1_dRIxg;SlWdn=_T)-XSOCY+4#FdK3 zkR*u-37anze1eGZIH9?TyGsh6PH~yBVkvCw2WgQgmL-hF5SArr8Xx9GszV>&PDCLi z3Nc%;c)R9mFa$9((mQx}F@$<=;GYk=J@@c%&>Og~{m#+QA9e-}6S6{q;1DJxT7ncI z$`Z3wORI&d}V8Xg# zDID6)KMVuf?e@dxHp|i@KiogS;e#8FE|kjp?e==Tw)f`%Zf|c5WVLB|CU`C+Ze+qr zD5?w486~QaG=ISBhNZTU^Y(_Qt(o24-U1K~^i#xiHK9FJin%0diaI2O&kHiA519Rp xrD1{WDpA_)wt*b0KDGr-GDvCp9bCK~!-_?UrMr?{42S2|TahG$#}z;1^&i|AuweiI diff --git a/7.4.065 b/7.4.065 deleted file mode 100644 index fd17fa06..00000000 --- a/7.4.065 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.065 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.065 -Problem: When recording, the character typed at the hit-enter prompt is - recorded twice. (Urtica Dioica) -Solution: Avoid recording the character twice. (Christian Brabandt) -Files: src/message.c - - -*** ../vim-7.4.064/src/message.c 2013-08-09 20:30:45.000000000 +0200 ---- src/message.c 2013-11-04 01:56:09.000000000 +0100 -*************** -*** 887,892 **** ---- 887,894 ---- - int oldState; - int tmpState; - int had_got_int; -+ int save_Recording; -+ FILE *save_scriptout; - - if (redraw == TRUE) - must_redraw = CLEAR; -*************** -*** 957,967 **** ---- 959,979 ---- - * typeahead buffer. */ - ++no_mapping; - ++allow_keys; -+ -+ /* Temporarily disable Recording. If Recording is active, the -+ * character will be recorded later, since it will be added to the -+ * typebuf after the loop */ -+ save_Recording = Recording; -+ save_scriptout = scriptout; -+ Recording = FALSE; -+ scriptout = NULL; - c = safe_vgetc(); - if (had_got_int && !global_busy) - got_int = FALSE; - --no_mapping; - --allow_keys; -+ Recording = save_Recording; -+ scriptout = save_scriptout; - - #ifdef FEAT_CLIPBOARD - /* Strange way to allow copying (yanking) a modeless selection at -*** ../vim-7.4.064/src/version.c 2013-11-04 01:41:11.000000000 +0100 ---- src/version.c 2013-11-04 01:53:19.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 65, - /**/ - --- -Zen Microsystems: we're the om in .commmmmmmmm - - /// 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 /// diff --git a/7.4.066 b/7.4.066 deleted file mode 100644 index edab0926..00000000 --- a/7.4.066 +++ /dev/null @@ -1,354 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.066 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.066 -Problem: MS-Windows: When there is a colon in the file name (sub-stream - feature) the swap file name is wrong. -Solution: Change the colon to "%". (Yasuhiro Matsumoto) -Files: src/fileio.c, src/memline.c, src/misc1.c, src/proto/misc1.pro - - -*** ../vim-7.4.065/src/memline.c 2013-05-06 04:01:02.000000000 +0200 ---- src/memline.c 2013-11-04 02:52:44.000000000 +0100 -*************** -*** 4014,4019 **** ---- 4014,4026 ---- - else - retval = concat_fnames(dname, tail, TRUE); - -+ #ifdef WIN3264 -+ if (retval != NULL) -+ for (t = gettail(retval); *t != NUL; mb_ptr_adv(t)) -+ if (*t == ':') -+ *t = '%'; -+ #endif -+ - return retval; - } - -*************** -*** 4137,4148 **** - #ifndef SHORT_FNAME - int r; - #endif - - #if !defined(SHORT_FNAME) \ -! && ((!defined(UNIX) && !defined(OS2)) || defined(ARCHIE)) - # define CREATE_DUMMY_FILE - FILE *dummyfd = NULL; - - /* - * If we start editing a new file, e.g. "test.doc", which resides on an - * MSDOS compatible filesystem, it is possible that the file ---- 4144,4172 ---- - #ifndef SHORT_FNAME - int r; - #endif -+ char_u *buf_fname = buf->b_fname; - - #if !defined(SHORT_FNAME) \ -! && ((!defined(UNIX) && !defined(OS2)) || defined(ARCHIE)) - # define CREATE_DUMMY_FILE - FILE *dummyfd = NULL; - -+ # ifdef WIN3264 -+ if (buf_fname != NULL && !mch_isFullName(buf_fname) -+ && vim_strchr(gettail(buf_fname), ':')) -+ { -+ char_u *t; -+ -+ buf_fname = vim_strsave(buf_fname); -+ if (buf_fname == NULL) -+ buf_fname = buf->b_fname; -+ else -+ for (t = gettail(buf_fname); *t != NUL; mb_ptr_adv(t)) -+ if (*t == ':') -+ *t = '%'; -+ } -+ # endif -+ - /* - * If we start editing a new file, e.g. "test.doc", which resides on an - * MSDOS compatible filesystem, it is possible that the file -*************** -*** 4150,4158 **** - * this problem we temporarily create "test.doc". Don't do this when the - * check below for a 8.3 file name is used. - */ -! if (!(buf->b_p_sn || buf->b_shortname) && buf->b_fname != NULL -! && mch_getperm(buf->b_fname) < 0) -! dummyfd = mch_fopen((char *)buf->b_fname, "w"); - #endif - - /* ---- 4174,4182 ---- - * this problem we temporarily create "test.doc". Don't do this when the - * check below for a 8.3 file name is used. - */ -! if (!(buf->b_p_sn || buf->b_shortname) && buf_fname != NULL -! && mch_getperm(buf_fname) < 0) -! dummyfd = mch_fopen((char *)buf_fname, "w"); - #endif - - /* -*************** -*** 4171,4177 **** - if (dir_name == NULL) /* out of memory */ - fname = NULL; - else -! fname = makeswapname(buf->b_fname, buf->b_ffname, buf, dir_name); - - for (;;) - { ---- 4195,4201 ---- - if (dir_name == NULL) /* out of memory */ - fname = NULL; - else -! fname = makeswapname(buf_fname, buf->b_ffname, buf, dir_name); - - for (;;) - { -*************** -*** 4204,4210 **** - * It either contains two dots, is longer than 8 chars, or starts - * with a dot. - */ -! tail = gettail(buf->b_fname); - if ( vim_strchr(tail, '.') != NULL - || STRLEN(tail) > (size_t)8 - || *gettail(fname) == '.') ---- 4228,4234 ---- - * It either contains two dots, is longer than 8 chars, or starts - * with a dot. - */ -! tail = gettail(buf_fname); - if ( vim_strchr(tail, '.') != NULL - || STRLEN(tail) > (size_t)8 - || *gettail(fname) == '.') -*************** -*** 4273,4279 **** - { - buf->b_shortname = TRUE; - vim_free(fname); -! fname = makeswapname(buf->b_fname, buf->b_ffname, - buf, dir_name); - continue; /* try again with b_shortname set */ - } ---- 4297,4303 ---- - { - buf->b_shortname = TRUE; - vim_free(fname); -! fname = makeswapname(buf_fname, buf->b_ffname, - buf, dir_name); - continue; /* try again with b_shortname set */ - } -*************** -*** 4344,4350 **** - { - buf->b_shortname = TRUE; - vim_free(fname); -! fname = makeswapname(buf->b_fname, buf->b_ffname, - buf, dir_name); - continue; /* try again with '.' replaced with '_' */ - } ---- 4368,4374 ---- - { - buf->b_shortname = TRUE; - vim_free(fname); -! fname = makeswapname(buf_fname, buf->b_ffname, - buf, dir_name); - continue; /* try again with '.' replaced with '_' */ - } -*************** -*** 4356,4362 **** - * viewing a help file or when the path of the file is different - * (happens when all .swp files are in one directory). - */ -! if (!recoverymode && buf->b_fname != NULL - && !buf->b_help && !(buf->b_flags & BF_DUMMY)) - { - int fd; ---- 4380,4386 ---- - * viewing a help file or when the path of the file is different - * (happens when all .swp files are in one directory). - */ -! if (!recoverymode && buf_fname != NULL - && !buf->b_help && !(buf->b_flags & BF_DUMMY)) - { - int fd; -*************** -*** 4433,4439 **** - { - fclose(dummyfd); - dummyfd = NULL; -! mch_remove(buf->b_fname); - did_use_dummy = TRUE; - } - #endif ---- 4457,4463 ---- - { - fclose(dummyfd); - dummyfd = NULL; -! mch_remove(buf_fname); - did_use_dummy = TRUE; - } - #endif -*************** -*** 4448,4454 **** - * user anyway. - */ - if (swap_exists_action != SEA_NONE -! && has_autocmd(EVENT_SWAPEXISTS, buf->b_fname, buf)) - choice = do_swapexists(buf, fname); - - if (choice == 0) ---- 4472,4478 ---- - * user anyway. - */ - if (swap_exists_action != SEA_NONE -! && has_autocmd(EVENT_SWAPEXISTS, buf_fname, buf)) - choice = do_swapexists(buf, fname); - - if (choice == 0) -*************** -*** 4549,4555 **** - #ifdef CREATE_DUMMY_FILE - /* Going to try another name, need the dummy file again. */ - if (did_use_dummy) -! dummyfd = mch_fopen((char *)buf->b_fname, "w"); - #endif - } - } ---- 4573,4579 ---- - #ifdef CREATE_DUMMY_FILE - /* Going to try another name, need the dummy file again. */ - if (did_use_dummy) -! dummyfd = mch_fopen((char *)buf_fname, "w"); - #endif - } - } -*************** -*** 4581,4589 **** - if (dummyfd != NULL) /* file has been created temporarily */ - { - fclose(dummyfd); -! mch_remove(buf->b_fname); - } - #endif - return fname; - } - ---- 4605,4617 ---- - if (dummyfd != NULL) /* file has been created temporarily */ - { - fclose(dummyfd); -! mch_remove(buf_fname); - } - #endif -+ #ifdef WIN3264 -+ if (buf_fname != buf->b_fname) -+ vim_free(buf_fname); -+ #endif - return fname; - } - -*** ../vim-7.4.065/src/misc1.c 2013-10-06 17:46:48.000000000 +0200 ---- src/misc1.c 2013-11-04 02:44:28.000000000 +0100 -*************** -*** 4808,4816 **** - - if (fname == NULL) - return (char_u *)""; -! for (p1 = p2 = fname; *p2; ) /* find last part of path */ - { -! if (vim_ispathsep(*p2)) - p1 = p2 + 1; - mb_ptr_adv(p2); - } ---- 4808,4816 ---- - - if (fname == NULL) - return (char_u *)""; -! for (p1 = p2 = get_past_head(fname); *p2; ) /* find last part of path */ - { -! if (vim_ispathsep_nocolon(*p2)) - p1 = p2 + 1; - mb_ptr_adv(p2); - } -*************** -*** 4929,4935 **** - } - - /* -! * return TRUE if 'c' is a path separator. - */ - int - vim_ispathsep(c) ---- 4929,4936 ---- - } - - /* -! * Return TRUE if 'c' is a path separator. -! * Note that for MS-Windows this includes the colon. - */ - int - vim_ispathsep(c) -*************** -*** 4952,4957 **** ---- 4953,4972 ---- - #endif - } - -+ /* -+ * Like vim_ispathsep(c), but exclude the colon for MS-Windows. -+ */ -+ int -+ vim_ispathsep_nocolon(c) -+ int c; -+ { -+ return vim_ispathsep(c) -+ #ifdef BACKSLASH_IN_FILENAME -+ && c != ':' -+ #endif -+ ; -+ } -+ - #if defined(FEAT_SEARCHPATH) || defined(PROTO) - /* - * return TRUE if 'c' is a path list separator. -*** ../vim-7.4.065/src/proto/misc1.pro 2013-08-10 13:37:20.000000000 +0200 ---- src/proto/misc1.pro 2013-11-04 02:44:30.000000000 +0100 -*************** -*** 69,74 **** ---- 69,75 ---- - char_u *getnextcomp __ARGS((char_u *fname)); - char_u *get_past_head __ARGS((char_u *path)); - int vim_ispathsep __ARGS((int c)); -+ int vim_ispathsep_nocolon __ARGS((int c)); - int vim_ispathlistsep __ARGS((int c)); - void shorten_dir __ARGS((char_u *str)); - int dir_of_file_exists __ARGS((char_u *fname)); -*** ../vim-7.4.065/src/version.c 2013-11-04 02:00:55.000000000 +0100 ---- src/version.c 2013-11-04 02:50:35.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 66, - /**/ - --- -Females are strictly forbidden to appear unshaven in public. - [real standing law in New Mexico, United States of America] - - /// 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 /// diff --git a/7.4.067 b/7.4.067 deleted file mode 100644 index 75a89c2a..00000000 --- a/7.4.067 +++ /dev/null @@ -1,126 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.067 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.067 -Problem: After inserting comment leader, CTRL-\ CTRL-O does move the - cursor. (Wiktor Ruben) -Solution: Avoid moving the cursor. (Christian Brabandt) -Files: src/edit.c - - -*** ../vim-7.4.066/src/edit.c 2013-09-08 20:00:45.000000000 +0200 ---- src/edit.c 2013-11-04 03:57:43.000000000 +0100 -*************** -*** 199,205 **** - static void spell_back_to_badword __ARGS((void)); - static int spell_bad_len = 0; /* length of located bad word */ - #endif -! static void stop_insert __ARGS((pos_T *end_insert_pos, int esc)); - static int echeck_abbr __ARGS((int)); - static int replace_pop __ARGS((void)); - static void replace_join __ARGS((int off)); ---- 199,205 ---- - static void spell_back_to_badword __ARGS((void)); - static int spell_bad_len = 0; /* length of located bad word */ - #endif -! static void stop_insert __ARGS((pos_T *end_insert_pos, int esc, int nomove)); - static int echeck_abbr __ARGS((int)); - static int replace_pop __ARGS((void)); - static void replace_join __ARGS((int off)); -*************** -*** 6698,6704 **** - if (!arrow_used) /* something has been inserted */ - { - AppendToRedobuff(ESC_STR); -! stop_insert(end_insert_pos, FALSE); - arrow_used = TRUE; /* this means we stopped the current insert */ - } - #ifdef FEAT_SPELL ---- 6698,6704 ---- - if (!arrow_used) /* something has been inserted */ - { - AppendToRedobuff(ESC_STR); -! stop_insert(end_insert_pos, FALSE, FALSE); - arrow_used = TRUE; /* this means we stopped the current insert */ - } - #ifdef FEAT_SPELL -*************** -*** 6787,6795 **** - * to another window/buffer. - */ - static void -! stop_insert(end_insert_pos, esc) - pos_T *end_insert_pos; - int esc; /* called by ins_esc() */ - { - int cc; - char_u *ptr; ---- 6787,6796 ---- - * to another window/buffer. - */ - static void -! stop_insert(end_insert_pos, esc, nomove) - pos_T *end_insert_pos; - int esc; /* called by ins_esc() */ -+ int nomove; /* , don't move cursor */ - { - int cc; - char_u *ptr; -*************** -*** 6860,6866 **** - * Do this when ESC was used or moving the cursor up/down. - * Check for the old position still being valid, just in case the text - * got changed unexpectedly. */ -! if (did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL - && curwin->w_cursor.lnum != end_insert_pos->lnum)) - && end_insert_pos->lnum <= curbuf->b_ml.ml_line_count) - { ---- 6861,6867 ---- - * Do this when ESC was used or moving the cursor up/down. - * Check for the old position still being valid, just in case the text - * got changed unexpectedly. */ -! if (!nomove && did_ai && (esc || (vim_strchr(p_cpo, CPO_INDENT) == NULL - && curwin->w_cursor.lnum != end_insert_pos->lnum)) - && end_insert_pos->lnum <= curbuf->b_ml.ml_line_count) - { -*************** -*** 8377,8383 **** - disabled_redraw = TRUE; - return FALSE; /* repeat the insert */ - } -! stop_insert(&curwin->w_cursor, TRUE); - undisplay_dollar(); - } - ---- 8378,8384 ---- - disabled_redraw = TRUE; - return FALSE; /* repeat the insert */ - } -! stop_insert(&curwin->w_cursor, TRUE, nomove); - undisplay_dollar(); - } - -*** ../vim-7.4.066/src/version.c 2013-11-04 02:53:46.000000000 +0100 ---- src/version.c 2013-11-04 03:57:29.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 67, - /**/ - --- -Beer & pretzels can't be served at the same time in any bar or restaurant. - [real standing law in North Dakota, United States of America] - - /// 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 /// diff --git a/7.4.068 b/7.4.068 deleted file mode 100644 index a9093385..00000000 --- a/7.4.068 +++ /dev/null @@ -1,131 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.068 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.068 -Problem: Cannot build Vim on Mac with non-Apple compilers. -Solution: Remove the -no-cpp-precomp flag. (Misty De Meo) -Files: src/configure.in, src/auto/configure, src/osdef.sh - - -*** ../vim-7.4.067/src/configure.in 2013-11-03 20:26:26.000000000 +0100 ---- src/configure.in 2013-11-04 04:53:51.000000000 +0100 -*************** -*** 204,210 **** - OS_EXTRA_SRC="os_macosx.m os_mac_conv.c"; - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" - dnl TODO: use -arch i386 on Intel machines -! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - - dnl If Carbon is found, assume we don't want X11 - dnl unless it was specifically asked for (--with-x) ---- 204,211 ---- - OS_EXTRA_SRC="os_macosx.m os_mac_conv.c"; - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" - dnl TODO: use -arch i386 on Intel machines -! dnl Removed -no-cpp-precomp, only for very old compilers. -! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX" - - dnl If Carbon is found, assume we don't want X11 - dnl unless it was specifically asked for (--with-x) -*************** -*** 262,269 **** - ]) - if test "$GCC" = yes -a "$local_dir" != no; then - echo 'void f(){}' > conftest.c -! dnl -no-cpp-precomp is needed for OS X 10.2 (Ben Fowler) -! have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"` - have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"` - rm -f conftest.c conftest.o - fi ---- 263,270 ---- - ]) - if test "$GCC" = yes -a "$local_dir" != no; then - echo 'void f(){}' > conftest.c -! dnl Removed -no-cpp-precomp, only needed for OS X 10.2 (Ben Fowler) -! have_local_include=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/include"` - have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"` - rm -f conftest.c conftest.o - fi -*** ../vim-7.4.067/src/auto/configure 2013-11-03 20:26:27.000000000 +0100 ---- src/auto/configure 2013-11-04 04:54:16.000000000 +0100 -*************** -*** 4221,4227 **** - MACOSX=yes - OS_EXTRA_SRC="os_macosx.m os_mac_conv.c"; - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" -! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX -no-cpp-precomp" - - # On IRIX 5.3, sys/types and inttypes.h are conflicting. - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ---- 4221,4227 ---- - MACOSX=yes - OS_EXTRA_SRC="os_macosx.m os_mac_conv.c"; - OS_EXTRA_OBJ="objects/os_macosx.o objects/os_mac_conv.o" -! CPPFLAGS="$CPPFLAGS -DMACOS_X_UNIX" - - # On IRIX 5.3, sys/types and inttypes.h are conflicting. - for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ -*************** -*** 4311,4317 **** - - if test "$GCC" = yes -a "$local_dir" != no; then - echo 'void f(){}' > conftest.c -! have_local_include=`${CC-cc} -no-cpp-precomp -c -v conftest.c 2>&1 | grep "${local_dir}/include"` - have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"` - rm -f conftest.c conftest.o - fi ---- 4311,4317 ---- - - if test "$GCC" = yes -a "$local_dir" != no; then - echo 'void f(){}' > conftest.c -! have_local_include=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/include"` - have_local_lib=`${CC-cc} -c -v conftest.c 2>&1 | grep "${local_dir}/lib"` - rm -f conftest.c conftest.o - fi -*** ../vim-7.4.067/src/osdef.sh 2010-05-15 13:04:08.000000000 +0200 ---- src/osdef.sh 2013-11-04 04:51:36.000000000 +0100 -*************** -*** 47,57 **** - #endif - EOF - -! # Mac uses precompiled headers, but we need real headers here. -! case `uname` in -! Darwin) $CC -I. -I$srcdir -E -no-cpp-precomp osdef0.c >osdef0.cc;; -! *) $CC -I. -I$srcdir -E osdef0.c >osdef0.cc;; -! esac - - # insert a space in front of each line, so that a function name at the - # start of the line is matched with "[)*, ]\1[ (]" ---- 47,53 ---- - #endif - EOF - -! $CC -I. -I$srcdir -E osdef0.c >osdef0.cc - - # insert a space in front of each line, so that a function name at the - # start of the line is matched with "[)*, ]\1[ (]" -*** ../vim-7.4.067/src/version.c 2013-11-04 04:20:28.000000000 +0100 ---- src/version.c 2013-11-04 04:51:51.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 68, - /**/ - --- -Violators can be fined, arrested or jailed for making ugly faces at a dog. - [real standing law in Oklahoma, United States of America] - - /// 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 /// diff --git a/7.4.069 b/7.4.069 deleted file mode 100644 index ac52affc..00000000 --- a/7.4.069 +++ /dev/null @@ -1,2559 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.069 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.069 -Problem: Cannot right shift lines starting with #. -Solution: Allow the right shift when 'cino' contains #N with N > 0. - (Christian Brabandt) - Refactor parsing 'cino', store the values in the buffer. -Files: runtime/doc/indent.txt, src/buffer.c, src/edit.c, src/eval.c, - src/ex_getln.c, src/fold.c, src/misc1.c, src/ops.c, - src/proto/misc1.pro, src/proto/option.pro, src/structs.h, - src/option.c - - -*** ../vim-7.4.068/runtime/doc/indent.txt 2013-08-10 13:24:56.000000000 +0200 ---- runtime/doc/indent.txt 2013-11-05 07:10:56.000000000 +0100 -*************** -*** 545,554 **** - (default 70 lines). - - *cino-#* -! #N When N is non-zero recognize shell/Perl comments, starting with -! '#'. Default N is zero: don't recognize '#' comments. Note -! that lines starting with # will still be seen as preprocessor -! lines. - - - The defaults, spelled out in full, are: ---- 545,556 ---- - (default 70 lines). - - *cino-#* -! #N When N is non-zero recognize shell/Perl comments starting with -! '#', do not recognize preprocessor lines; allow right-shifting -! lines that start with "#". -! When N is zero (default): don't recognize '#' comments, do -! recognize preprocessor lines; right-shifting lines that start -! with "#" does not work. - - - The defaults, spelled out in full, are: -*************** -*** 556,562 **** - c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0 - - Vim puts a line in column 1 if: -! - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#'. - - It starts with a label (a keyword followed by ':', other than "case" and - "default") and 'cinoptions' does not contain an 'L' entry with a positive - value. ---- 558,564 ---- - c3,C0,/0,(2s,us,U0,w0,W0,k0,m0,j0,J0,)20,*70,#0 - - Vim puts a line in column 1 if: -! - It starts with '#' (preprocessor directives), if 'cinkeys' contains '#0'. - - It starts with a label (a keyword followed by ':', other than "case" and - "default") and 'cinoptions' does not contain an 'L' entry with a positive - value. -*************** -*** 581,588 **** - - Clojure indentation differs somewhat from traditional Lisps, due in part to - the use of square and curly brackets, and otherwise by community convention. -! These conventions are not always universally followed, so the Clojure indent -! script offers a few configurable options, listed below. - - If the current vim does not include searchpairpos(), the indent script falls - back to normal 'lisp' indenting, and the following options are ignored. ---- 583,590 ---- - - Clojure indentation differs somewhat from traditional Lisps, due in part to - the use of square and curly brackets, and otherwise by community convention. -! These conventions are not universally followed, so the Clojure indent script -! offers a few configurable options, listed below. - - If the current vim does not include searchpairpos(), the indent script falls - back to normal 'lisp' indenting, and the following options are ignored. -*** ../vim-7.4.068/src/buffer.c 2013-11-02 04:39:34.000000000 +0100 ---- src/buffer.c 2013-11-05 06:18:54.000000000 +0100 -*************** -*** 211,217 **** ---- 211,220 ---- - - /* if first time loading this buffer, init b_chartab[] */ - if (curbuf->b_flags & BF_NEVERLOADED) -+ { - (void)buf_init_chartab(curbuf, FALSE); -+ parse_cino(curbuf); -+ } - - /* - * Set/reset the Changed flag first, autocmds may change the buffer. -*** ../vim-7.4.068/src/edit.c 2013-11-04 04:20:28.000000000 +0100 ---- src/edit.c 2013-11-05 06:12:45.000000000 +0100 -*************** -*** 8958,8964 **** - - *inserted_space_p = FALSE; - if (p_sta && in_indent) -! ts = (int)get_sw_value(); - else - ts = (int)get_sts_value(); - /* Compute the virtual column where we want to be. Since ---- 8958,8964 ---- - - *inserted_space_p = FALSE; - if (p_sta && in_indent) -! ts = (int)get_sw_value(curbuf); - else - ts = (int)get_sts_value(); - /* Compute the virtual column where we want to be. Since -*************** -*** 9647,9653 **** - * When nothing special, insert TAB like a normal character - */ - if (!curbuf->b_p_et -! && !(p_sta && ind && curbuf->b_p_ts != get_sw_value()) - && get_sts_value() == 0) - return TRUE; - ---- 9647,9653 ---- - * When nothing special, insert TAB like a normal character - */ - if (!curbuf->b_p_et -! && !(p_sta && ind && curbuf->b_p_ts != get_sw_value(curbuf)) - && get_sts_value() == 0) - return TRUE; - -*************** -*** 9663,9669 **** - AppendToRedobuff((char_u *)"\t"); - - if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */ -! temp = (int)get_sw_value(); - else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */ - temp = (int)get_sts_value(); - else /* otherwise use 'tabstop' */ ---- 9663,9669 ---- - AppendToRedobuff((char_u *)"\t"); - - if (p_sta && ind) /* insert tab in indent, use 'shiftwidth' */ -! temp = (int)get_sw_value(curbuf); - else if (curbuf->b_p_sts != 0) /* use 'softtabstop' when set */ - temp = (int)get_sts_value(); - else /* otherwise use 'tabstop' */ -*** ../vim-7.4.068/src/eval.c 2013-11-02 23:29:17.000000000 +0100 ---- src/eval.c 2013-11-05 06:12:49.000000000 +0100 -*************** -*** 16934,16940 **** - typval_T *argvars UNUSED; - typval_T *rettv; - { -! rettv->vval.v_number = get_sw_value(); - } - - /* ---- 16934,16940 ---- - typval_T *argvars UNUSED; - typval_T *rettv; - { -! rettv->vval.v_number = get_sw_value(curbuf); - } - - /* -*** ../vim-7.4.068/src/ex_getln.c 2013-07-05 19:44:21.000000000 +0200 ---- src/ex_getln.c 2013-11-05 06:12:57.000000000 +0100 -*************** -*** 2280,2286 **** - - if (c1 == Ctrl_T) - { -! long sw = get_sw_value(); - - p = (char_u *)line_ga.ga_data; - p[line_ga.ga_len] = NUL; ---- 2280,2286 ---- - - if (c1 == Ctrl_T) - { -! long sw = get_sw_value(curbuf); - - p = (char_u *)line_ga.ga_data; - p[line_ga.ga_len] = NUL; -*************** -*** 2337,2343 **** - p[line_ga.ga_len] = NUL; - indent = get_indent_str(p, 8); - --indent; -! indent -= indent % get_sw_value(); - } - while (get_indent_str(p, 8) > indent) - { ---- 2337,2343 ---- - p[line_ga.ga_len] = NUL; - indent = get_indent_str(p, 8); - --indent; -! indent -= indent % get_sw_value(curbuf); - } - while (get_indent_str(p, 8) > indent) - { -*************** -*** 4178,4184 **** - /* - * Prepare a string for expansion. - * When expanding file names: The string will be used with expand_wildcards(). -! * Copy the file name into allocated memory and add a '*' at the end. - * When expanding other names: The string will be used with regcomp(). Copy - * the name into allocated memory and prepend "^". - */ ---- 4178,4184 ---- - /* - * Prepare a string for expansion. - * When expanding file names: The string will be used with expand_wildcards(). -! * Copy "fname[len]" into allocated memory and add a '*' at the end. - * When expanding other names: The string will be used with regcomp(). Copy - * the name into allocated memory and prepend "^". - */ -*** ../vim-7.4.068/src/fold.c 2013-06-15 16:57:24.000000000 +0200 ---- src/fold.c 2013-11-05 06:13:03.000000000 +0100 -*************** -*** 3052,3058 **** - flp->lvl = -1; - } - else -! flp->lvl = get_indent_buf(buf, lnum) / get_sw_value(); - if (flp->lvl > flp->wp->w_p_fdn) - { - flp->lvl = flp->wp->w_p_fdn; ---- 3052,3058 ---- - flp->lvl = -1; - } - else -! flp->lvl = get_indent_buf(buf, lnum) / get_sw_value(curbuf); - if (flp->lvl > flp->wp->w_p_fdn) - { - flp->lvl = flp->wp->w_p_fdn; -*** ../vim-7.4.068/src/misc1.c 2013-11-04 02:53:46.000000000 +0100 ---- src/misc1.c 2013-11-05 06:45:15.000000000 +0100 -*************** -*** 1405,1411 **** - #ifdef FEAT_SMARTINDENT - if (did_si) - { -! int sw = (int)get_sw_value(); - - if (p_sr) - newindent -= newindent % sw; ---- 1405,1411 ---- - #ifdef FEAT_SMARTINDENT - if (did_si) - { -! int sw = (int)get_sw_value(curbuf); - - if (p_sr) - newindent -= newindent % sw; -*************** -*** 5342,5349 **** - static int find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment)); - static int cin_is_cpp_namespace __ARGS((char_u *)); - -- static int ind_hash_comment = 0; /* # starts a comment */ -- - /* - * Skip over white space and C comments within the line. - * Also skip over Perl/shell comments if desired. ---- 5342,5347 ---- -*************** -*** 5360,5366 **** - - /* Perl/shell # comment comment continues until eol. Require a space - * before # to avoid recognizing $#array. */ -! if (ind_hash_comment != 0 && s != prev_s && *s == '#') - { - s += STRLEN(s); - break; ---- 5358,5364 ---- - - /* Perl/shell # comment comment continues until eol. Require a space - * before # to avoid recognizing $#array. */ -! if (curbuf->b_ind_hash_comment != 0 && s != prev_s && *s == '#') - { - s += STRLEN(s); - break; -*************** -*** 6639,6839 **** - return retval; - } - -! int -! get_c_indent() - { -! int sw = (int)get_sw_value(); - - /* -! * spaces from a block's opening brace the prevailing indent for that -! * block should be - */ - -! int ind_level = sw; - -! /* -! * spaces from the edge of the line an open brace that's at the end of a -! * line is imagined to be. -! */ -! int ind_open_imag = 0; - -! /* -! * spaces from the prevailing indent for a line that is not preceded by -! * an opening brace. -! */ -! int ind_no_brace = 0; -! -! /* -! * column where the first { of a function should be located } -! */ -! int ind_first_open = 0; - -! /* -! * spaces from the prevailing indent a leftmost open brace should be -! * located -! */ -! int ind_open_extra = 0; - -! /* -! * spaces from the matching open brace (real location for one at the left - * edge; imaginary location from one that ends a line) the matching close -! * brace should be located -! */ -! int ind_close_extra = 0; - -! /* -! * spaces from the edge of the line an open brace sitting in the leftmost -! * column is imagined to be -! */ -! int ind_open_left_imag = 0; - -! /* -! * Spaces jump labels should be shifted to the left if N is non-negative, -! * otherwise the jump label will be put to column 1. -! */ -! int ind_jump_label = -1; - -! /* -! * spaces from the switch() indent a "case xx" label should be located -! */ -! int ind_case = sw; - -! /* -! * spaces from the "case xx:" code after a switch() should be located -! */ -! int ind_case_code = sw; - -! /* -! * lineup break at end of case in switch() with case label -! */ -! int ind_case_break = 0; - -! /* -! * spaces from the class declaration indent a scope declaration label -! * should be located -! */ -! int ind_scopedecl = sw; - -! /* -! * spaces from the scope declaration label code should be located -! */ -! int ind_scopedecl_code = sw; - -! /* -! * amount K&R-style parameters should be indented -! */ -! int ind_param = sw; - -! /* -! * amount a function type spec should be indented -! */ -! int ind_func_type = sw; - -! /* -! * amount a cpp base class declaration or constructor initialization -! * should be indented -! */ -! int ind_cpp_baseclass = sw; - -! /* -! * additional spaces beyond the prevailing indent a continuation line -! * should be located -! */ -! int ind_continuation = sw; - -! /* -! * spaces from the indent of the line with an unclosed parentheses -! */ -! int ind_unclosed = sw * 2; - -! /* -! * spaces from the indent of the line with an unclosed parentheses, which -! * itself is also unclosed -! */ -! int ind_unclosed2 = sw; - -! /* -! * suppress ignoring spaces from the indent of a line starting with an -! * unclosed parentheses. -! */ -! int ind_unclosed_noignore = 0; - -! /* -! * If the opening paren is the last nonwhite character on the line, and -! * ind_unclosed_wrapped is nonzero, use this indent relative to the outer -! * context (for very long lines). -! */ -! int ind_unclosed_wrapped = 0; - -! /* -! * suppress ignoring white space when lining up with the character after -! * an unclosed parentheses. -! */ -! int ind_unclosed_whiteok = 0; - -! /* -! * indent a closing parentheses under the line start of the matching -! * opening parentheses. -! */ -! int ind_matching_paren = 0; - -! /* -! * indent a closing parentheses under the previous line. -! */ -! int ind_paren_prev = 0; - -! /* -! * Extra indent for comments. -! */ -! int ind_comment = 0; - -! /* -! * spaces from the comment opener when there is nothing after it. -! */ -! int ind_in_comment = 3; - -! /* -! * boolean: if non-zero, use ind_in_comment even if there is something -! * after the comment opener. -! */ -! int ind_in_comment2 = 0; - -! /* -! * max lines to search for an open paren -! */ -! int ind_maxparen = 20; - -! /* -! * max lines to search for an open comment -! */ -! int ind_maxcomment = 70; - -! /* -! * handle braces for java code -! */ -! int ind_java = 0; - -! /* -! * not to confuse JS object properties with labels -! */ -! int ind_js = 0; - -! /* -! * handle blocked cases correctly -! */ -! int ind_keep_case_label = 0; - -! /* -! * handle C++ namespace -! */ -! int ind_cpp_namespace = 0; - -! /* -! * handle continuation lines containing conditions of if(), for() and -! * while() -! */ -! int ind_if_for_while = 0; - - pos_T cur_curpos; - int amount; - int scope_amount; ---- 6637,6865 ---- - return retval; - } - -! /* -! * Parse 'cinoptions' and set the values in "curbuf". -! * Must be called when 'cinoptions', 'shiftwidth' and/or 'tabstop' changes. -! */ -! void -! parse_cino(buf) -! buf_T *buf; - { -! char_u *p; -! char_u *l; -! char_u *digits; -! int n; -! int divider; -! int fraction = 0; -! int sw = (int)get_sw_value(buf); - - /* -! * Set the default values. - */ -+ /* Spaces from a block's opening brace the prevailing indent for that -+ * block should be. */ -+ buf->b_ind_level = sw; - -! /* Spaces from the edge of the line an open brace that's at the end of a -! * line is imagined to be. */ -! buf->b_ind_open_imag = 0; - -! /* Spaces from the prevailing indent for a line that is not preceded by -! * an opening brace. */ -! buf->b_ind_no_brace = 0; - -! /* Column where the first { of a function should be located }. */ -! buf->b_ind_first_open = 0; - -! /* Spaces from the prevailing indent a leftmost open brace should be -! * located. */ -! buf->b_ind_open_extra = 0; - -! /* Spaces from the matching open brace (real location for one at the left - * edge; imaginary location from one that ends a line) the matching close -! * brace should be located. */ -! buf->b_ind_close_extra = 0; - -! /* Spaces from the edge of the line an open brace sitting in the leftmost -! * column is imagined to be. */ -! buf->b_ind_open_left_imag = 0; - -! /* Spaces jump labels should be shifted to the left if N is non-negative, -! * otherwise the jump label will be put to column 1. */ -! buf->b_ind_jump_label = -1; - -! /* Spaces from the switch() indent a "case xx" label should be located. */ -! buf->b_ind_case = sw; - -! /* Spaces from the "case xx:" code after a switch() should be located. */ -! buf->b_ind_case_code = sw; - -! /* Lineup break at end of case in switch() with case label. */ -! buf->b_ind_case_break = 0; - -! /* Spaces from the class declaration indent a scope declaration label -! * should be located. */ -! buf->b_ind_scopedecl = sw; - -! /* Spaces from the scope declaration label code should be located. */ -! buf->b_ind_scopedecl_code = sw; - -! /* Amount K&R-style parameters should be indented. */ -! buf->b_ind_param = sw; - -! /* Amount a function type spec should be indented. */ -! buf->b_ind_func_type = sw; - -! /* Amount a cpp base class declaration or constructor initialization -! * should be indented. */ -! buf->b_ind_cpp_baseclass = sw; - -! /* additional spaces beyond the prevailing indent a continuation line -! * should be located. */ -! buf->b_ind_continuation = sw; - -! /* Spaces from the indent of the line with an unclosed parentheses. */ -! buf->b_ind_unclosed = sw * 2; - -! /* Spaces from the indent of the line with an unclosed parentheses, which -! * itself is also unclosed. */ -! buf->b_ind_unclosed2 = sw; - -! /* Suppress ignoring spaces from the indent of a line starting with an -! * unclosed parentheses. */ -! buf->b_ind_unclosed_noignore = 0; - -! /* If the opening paren is the last nonwhite character on the line, and -! * b_ind_unclosed_wrapped is nonzero, use this indent relative to the outer -! * context (for very long lines). */ -! buf->b_ind_unclosed_wrapped = 0; - -! /* Suppress ignoring white space when lining up with the character after -! * an unclosed parentheses. */ -! buf->b_ind_unclosed_whiteok = 0; - -! /* Indent a closing parentheses under the line start of the matching -! * opening parentheses. */ -! buf->b_ind_matching_paren = 0; - -! /* Indent a closing parentheses under the previous line. */ -! buf->b_ind_paren_prev = 0; - -! /* Extra indent for comments. */ -! buf->b_ind_comment = 0; - -! /* Spaces from the comment opener when there is nothing after it. */ -! buf->b_ind_in_comment = 3; - -! /* Boolean: if non-zero, use b_ind_in_comment even if there is something -! * after the comment opener. */ -! buf->b_ind_in_comment2 = 0; - -! /* Max lines to search for an open paren. */ -! buf->b_ind_maxparen = 20; - -! /* Max lines to search for an open comment. */ -! buf->b_ind_maxcomment = 70; - -! /* Handle braces for java code. */ -! buf->b_ind_java = 0; - -! /* Not to confuse JS object properties with labels. */ -! buf->b_ind_js = 0; - -! /* Handle blocked cases correctly. */ -! buf->b_ind_keep_case_label = 0; - -! /* Handle C++ namespace. */ -! buf->b_ind_cpp_namespace = 0; - -! /* Handle continuation lines containing conditions of if(), for() and -! * while(). */ -! buf->b_ind_if_for_while = 0; -! -! for (p = buf->b_p_cino; *p; ) -! { -! l = p++; -! if (*p == '-') -! ++p; -! digits = p; /* remember where the digits start */ -! n = getdigits(&p); -! divider = 0; -! if (*p == '.') /* ".5s" means a fraction */ -! { -! fraction = atol((char *)++p); -! while (VIM_ISDIGIT(*p)) -! { -! ++p; -! if (divider) -! divider *= 10; -! else -! divider = 10; -! } -! } -! if (*p == 's') /* "2s" means two times 'shiftwidth' */ -! { -! if (p == digits) -! n = sw; /* just "s" is one 'shiftwidth' */ -! else -! { -! n *= sw; -! if (divider) -! n += (sw * fraction + divider / 2) / divider; -! } -! ++p; -! } -! if (l[1] == '-') -! n = -n; - -+ /* When adding an entry here, also update the default 'cinoptions' in -+ * doc/indent.txt, and add explanation for it! */ -+ switch (*l) -+ { -+ case '>': buf->b_ind_level = n; break; -+ case 'e': buf->b_ind_open_imag = n; break; -+ case 'n': buf->b_ind_no_brace = n; break; -+ case 'f': buf->b_ind_first_open = n; break; -+ case '{': buf->b_ind_open_extra = n; break; -+ case '}': buf->b_ind_close_extra = n; break; -+ case '^': buf->b_ind_open_left_imag = n; break; -+ case 'L': buf->b_ind_jump_label = n; break; -+ case ':': buf->b_ind_case = n; break; -+ case '=': buf->b_ind_case_code = n; break; -+ case 'b': buf->b_ind_case_break = n; break; -+ case 'p': buf->b_ind_param = n; break; -+ case 't': buf->b_ind_func_type = n; break; -+ case '/': buf->b_ind_comment = n; break; -+ case 'c': buf->b_ind_in_comment = n; break; -+ case 'C': buf->b_ind_in_comment2 = n; break; -+ case 'i': buf->b_ind_cpp_baseclass = n; break; -+ case '+': buf->b_ind_continuation = n; break; -+ case '(': buf->b_ind_unclosed = n; break; -+ case 'u': buf->b_ind_unclosed2 = n; break; -+ case 'U': buf->b_ind_unclosed_noignore = n; break; -+ case 'W': buf->b_ind_unclosed_wrapped = n; break; -+ case 'w': buf->b_ind_unclosed_whiteok = n; break; -+ case 'm': buf->b_ind_matching_paren = n; break; -+ case 'M': buf->b_ind_paren_prev = n; break; -+ case ')': buf->b_ind_maxparen = n; break; -+ case '*': buf->b_ind_maxcomment = n; break; -+ case 'g': buf->b_ind_scopedecl = n; break; -+ case 'h': buf->b_ind_scopedecl_code = n; break; -+ case 'j': buf->b_ind_java = n; break; -+ case 'J': buf->b_ind_js = n; break; -+ case 'l': buf->b_ind_keep_case_label = n; break; -+ case '#': buf->b_ind_hash_comment = n; break; -+ case 'N': buf->b_ind_cpp_namespace = n; break; -+ case 'k': buf->b_ind_if_for_while = n; break; -+ } -+ if (*p == ',') -+ ++p; -+ } -+ } -+ -+ int -+ get_c_indent() -+ { - pos_T cur_curpos; - int amount; - int scope_amount; -*************** -*** 6868,6877 **** - - int whilelevel; - linenr_T lnum; -- char_u *options; -- char_u *digits; -- int fraction = 0; /* init for GCC */ -- int divider; - int n; - int iscase; - int lookfor_break; ---- 6894,6899 ---- -*************** -*** 6880,6962 **** - int original_line_islabel; - int added_to_amount = 0; - -! for (options = curbuf->b_p_cino; *options; ) -! { -! l = options++; -! if (*options == '-') -! ++options; -! digits = options; /* remember where the digits start */ -! n = getdigits(&options); -! divider = 0; -! if (*options == '.') /* ".5s" means a fraction */ -! { -! fraction = atol((char *)++options); -! while (VIM_ISDIGIT(*options)) -! { -! ++options; -! if (divider) -! divider *= 10; -! else -! divider = 10; -! } -! } -! if (*options == 's') /* "2s" means two times 'shiftwidth' */ -! { -! if (options == digits) -! n = sw; /* just "s" is one 'shiftwidth' */ -! else -! { -! n *= sw; -! if (divider) -! n += (sw * fraction + divider / 2) / divider; -! } -! ++options; -! } -! if (l[1] == '-') -! n = -n; -! /* When adding an entry here, also update the default 'cinoptions' in -! * doc/indent.txt, and add explanation for it! */ -! switch (*l) -! { -! case '>': ind_level = n; break; -! case 'e': ind_open_imag = n; break; -! case 'n': ind_no_brace = n; break; -! case 'f': ind_first_open = n; break; -! case '{': ind_open_extra = n; break; -! case '}': ind_close_extra = n; break; -! case '^': ind_open_left_imag = n; break; -! case 'L': ind_jump_label = n; break; -! case ':': ind_case = n; break; -! case '=': ind_case_code = n; break; -! case 'b': ind_case_break = n; break; -! case 'p': ind_param = n; break; -! case 't': ind_func_type = n; break; -! case '/': ind_comment = n; break; -! case 'c': ind_in_comment = n; break; -! case 'C': ind_in_comment2 = n; break; -! case 'i': ind_cpp_baseclass = n; break; -! case '+': ind_continuation = n; break; -! case '(': ind_unclosed = n; break; -! case 'u': ind_unclosed2 = n; break; -! case 'U': ind_unclosed_noignore = n; break; -! case 'W': ind_unclosed_wrapped = n; break; -! case 'w': ind_unclosed_whiteok = n; break; -! case 'm': ind_matching_paren = n; break; -! case 'M': ind_paren_prev = n; break; -! case ')': ind_maxparen = n; break; -! case '*': ind_maxcomment = n; break; -! case 'g': ind_scopedecl = n; break; -! case 'h': ind_scopedecl_code = n; break; -! case 'j': ind_java = n; break; -! case 'J': ind_js = n; break; -! case 'l': ind_keep_case_label = n; break; -! case '#': ind_hash_comment = n; break; -! case 'N': ind_cpp_namespace = n; break; -! case 'k': ind_if_for_while = n; break; -! } -! if (*options == ',') -! ++options; -! } - - /* remember where the cursor was when we started */ - cur_curpos = curwin->w_cursor; ---- 6902,6909 ---- - int original_line_islabel; - int added_to_amount = 0; - -! /* make a copy, value is changed below */ -! int ind_continuation = curbuf->b_ind_continuation; - - /* remember where the cursor was when we started */ - cur_curpos = curwin->w_cursor; -*************** -*** 6990,7011 **** - - curwin->w_cursor.col = 0; - -! original_line_islabel = cin_islabel(ind_maxcomment); /* XXX */ - - /* - * #defines and so on always go at the left when included in 'cinkeys'. - */ - if (*theline == '#' && (*linecopy == '#' || in_cinkeys('#', ' ', TRUE))) -! { -! amount = 0; -! } - - /* - * Is it a non-case label? Then that goes at the left margin too unless: - * - JS flag is set. - * - 'L' item has a positive value. - */ -! else if (original_line_islabel && !ind_js && ind_jump_label < 0) - { - amount = 0; - } ---- 6937,6957 ---- - - curwin->w_cursor.col = 0; - -! original_line_islabel = cin_islabel(curbuf->b_ind_maxcomment); /* XXX */ - - /* - * #defines and so on always go at the left when included in 'cinkeys'. - */ - if (*theline == '#' && (*linecopy == '#' || in_cinkeys('#', ' ', TRUE))) -! amount = curbuf->b_ind_hash_comment; - - /* - * Is it a non-case label? Then that goes at the left margin too unless: - * - JS flag is set. - * - 'L' item has a positive value. - */ -! else if (original_line_islabel && !curbuf->b_ind_js -! && curbuf->b_ind_jump_label < 0) - { - amount = 0; - } -*************** -*** 7027,7033 **** - * comment, try using the 'comments' option. - */ - else if (!cin_iscomment(theline) -! && (trypos = find_start_comment(ind_maxcomment)) != NULL) /* XXX */ - { - int lead_start_len = 2; - int lead_middle_len = 1; ---- 6973,6980 ---- - * comment, try using the 'comments' option. - */ - else if (!cin_iscomment(theline) -! && (trypos = find_start_comment(curbuf->b_ind_maxcomment)) != NULL) -! /* XXX */ - { - int lead_start_len = 2; - int lead_middle_len = 1; -*************** -*** 7161,7167 **** - } - if (amount == -1) /* use the comment opener */ - { -! if (!ind_in_comment2) - { - start = ml_get(trypos->lnum); - look = start + trypos->col + 2; /* skip / and * */ ---- 7108,7114 ---- - } - if (amount == -1) /* use the comment opener */ - { -! if (!curbuf->b_ind_in_comment2) - { - start = ml_get(trypos->lnum); - look = start + trypos->col + 2; /* skip / and * */ -*************** -*** 7170,7177 **** - } - getvcol(curwin, trypos, &col, NULL, NULL); - amount = col; -! if (ind_in_comment2 || *look == NUL) -! amount += ind_in_comment; - } - } - } ---- 7117,7124 ---- - } - getvcol(curwin, trypos, &col, NULL, NULL); - amount = col; -! if (curbuf->b_ind_in_comment2 || *look == NUL) -! amount += curbuf->b_ind_in_comment; - } - } - } -*************** -*** 7179,7187 **** - /* - * Are we inside parentheses or braces? - */ /* XXX */ -! else if (((trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL -! && ind_java == 0) -! || (tryposBrace = find_start_brace(ind_maxcomment)) != NULL - || trypos != NULL) - { - if (trypos != NULL && tryposBrace != NULL) ---- 7126,7136 ---- - /* - * Are we inside parentheses or braces? - */ /* XXX */ -! else if (((trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL -! && curbuf->b_ind_java == 0) -! || (tryposBrace = -! find_start_brace(curbuf->b_ind_maxcomment)) != NULL - || trypos != NULL) - { - if (trypos != NULL && tryposBrace != NULL) -*************** -*** 7202,7208 **** - * If the matching paren is more than one line away, use the indent of - * a previous non-empty line that matches the same paren. - */ -! if (theline[0] == ')' && ind_paren_prev) - { - /* Line up with the start of the matching paren line. */ - amount = get_indent_lnum(curwin->w_cursor.lnum - 1); /* XXX */ ---- 7151,7157 ---- - * If the matching paren is more than one line away, use the indent of - * a previous non-empty line that matches the same paren. - */ -! if (theline[0] == ')' && curbuf->b_ind_paren_prev) - { - /* Line up with the start of the matching paren line. */ - amount = get_indent_lnum(curwin->w_cursor.lnum - 1); /* XXX */ -*************** -*** 7221,7227 **** - curwin->w_cursor.lnum = lnum; - - /* Skip a comment. XXX */ -! if ((trypos = find_start_comment(ind_maxcomment)) != NULL) - { - lnum = trypos->lnum + 1; - continue; ---- 7170,7177 ---- - curwin->w_cursor.lnum = lnum; - - /* Skip a comment. XXX */ -! if ((trypos = find_start_comment(curbuf->b_ind_maxcomment)) -! != NULL) - { - lnum = trypos->lnum + 1; - continue; -*************** -*** 7229,7236 **** - - /* XXX */ - if ((trypos = find_match_paren( -! corr_ind_maxparen(ind_maxparen, &cur_curpos), -! ind_maxcomment)) != NULL - && trypos->lnum == our_paren_pos.lnum - && trypos->col == our_paren_pos.col) - { ---- 7179,7186 ---- - - /* XXX */ - if ((trypos = find_match_paren( -! corr_ind_maxparen(curbuf->b_ind_maxparen, &cur_curpos), -! curbuf->b_ind_maxcomment)) != NULL - && trypos->lnum == our_paren_pos.lnum - && trypos->col == our_paren_pos.col) - { -*************** -*** 7258,7264 **** - int ignore_paren_col = 0; - int is_if_for_while = 0; - -! if (ind_if_for_while) - { - /* Look for the outermost opening parenthesis on this line - * and check whether it belongs to an "if", "for" or "while". */ ---- 7208,7214 ---- - int ignore_paren_col = 0; - int is_if_for_while = 0; - -! if (curbuf->b_ind_if_for_while) - { - /* Look for the outermost opening parenthesis on this line - * and check whether it belongs to an "if", "for" or "while". */ -*************** -*** 7273,7279 **** - curwin->w_cursor.lnum = outermost.lnum; - curwin->w_cursor.col = outermost.col; - -! trypos = find_match_paren(ind_maxparen, ind_maxcomment); - } while (trypos && trypos->lnum == outermost.lnum); - - curwin->w_cursor = cursor_save; ---- 7223,7230 ---- - curwin->w_cursor.lnum = outermost.lnum; - curwin->w_cursor.col = outermost.col; - -! trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment); - } while (trypos && trypos->lnum == outermost.lnum); - - curwin->w_cursor = cursor_save; -*************** -*** 7284,7290 **** - cin_is_if_for_while_before_offset(line, &outermost.col); - } - -! amount = skip_label(our_paren_pos.lnum, &look, ind_maxcomment); - look = skipwhite(look); - if (*look == '(') - { ---- 7235,7242 ---- - cin_is_if_for_while_before_offset(line, &outermost.col); - } - -! amount = skip_label(our_paren_pos.lnum, &look, -! curbuf->b_ind_maxcomment); - look = skipwhite(look); - if (*look == '(') - { -*************** -*** 7298,7304 **** - line = ml_get_curline(); - look_col = (int)(look - line); - curwin->w_cursor.col = look_col + 1; -! if ((trypos = findmatchlimit(NULL, ')', 0, ind_maxparen)) - != NULL - && trypos->lnum == our_paren_pos.lnum - && trypos->col < our_paren_pos.col) ---- 7250,7257 ---- - line = ml_get_curline(); - look_col = (int)(look - line); - curwin->w_cursor.col = look_col + 1; -! if ((trypos = findmatchlimit(NULL, ')', 0, -! curbuf->b_ind_maxparen)) - != NULL - && trypos->lnum == our_paren_pos.lnum - && trypos->col < our_paren_pos.col) -*************** -*** 7307,7330 **** - curwin->w_cursor.lnum = save_lnum; - look = ml_get(our_paren_pos.lnum) + look_col; - } -! if (theline[0] == ')' || (ind_unclosed == 0 && is_if_for_while == 0) -! || (!ind_unclosed_noignore && *look == '(' - && ignore_paren_col == 0)) - { - /* - * If we're looking at a close paren, line up right there; - * otherwise, line up with the next (non-white) character. -! * When ind_unclosed_wrapped is set and the matching paren is - * the last nonwhite character of the line, use either the - * indent of the current line or the indentation of the next -! * outer paren and add ind_unclosed_wrapped (for very long - * lines). - */ - if (theline[0] != ')') - { - cur_amount = MAXCOL; - l = ml_get(our_paren_pos.lnum); -! if (ind_unclosed_wrapped - && cin_ends_in(l, (char_u *)"(", NULL)) - { - /* look for opening unmatched paren, indent one level ---- 7260,7284 ---- - curwin->w_cursor.lnum = save_lnum; - look = ml_get(our_paren_pos.lnum) + look_col; - } -! if (theline[0] == ')' || (curbuf->b_ind_unclosed == 0 -! && is_if_for_while == 0) -! || (!curbuf->b_ind_unclosed_noignore && *look == '(' - && ignore_paren_col == 0)) - { - /* - * If we're looking at a close paren, line up right there; - * otherwise, line up with the next (non-white) character. -! * When b_ind_unclosed_wrapped is set and the matching paren is - * the last nonwhite character of the line, use either the - * indent of the current line or the indentation of the next -! * outer paren and add b_ind_unclosed_wrapped (for very long - * lines). - */ - if (theline[0] != ')') - { - cur_amount = MAXCOL; - l = ml_get(our_paren_pos.lnum); -! if (curbuf->b_ind_unclosed_wrapped - && cin_ends_in(l, (char_u *)"(", NULL)) - { - /* look for opening unmatched paren, indent one level -*************** -*** 7346,7354 **** - } - - our_paren_pos.col = 0; -! amount += n * ind_unclosed_wrapped; - } -! else if (ind_unclosed_whiteok) - our_paren_pos.col++; - else - { ---- 7300,7308 ---- - } - - our_paren_pos.col = 0; -! amount += n * curbuf->b_ind_unclosed_wrapped; - } -! else if (curbuf->b_ind_unclosed_whiteok) - our_paren_pos.col++; - else - { -*************** -*** 7374,7385 **** - } - } - -! if (theline[0] == ')' && ind_matching_paren) - { - /* Line up with the start of the matching paren line. */ - } -! else if ((ind_unclosed == 0 && is_if_for_while == 0) -! || (!ind_unclosed_noignore - && *look == '(' && ignore_paren_col == 0)) - { - if (cur_amount != MAXCOL) ---- 7328,7339 ---- - } - } - -! if (theline[0] == ')' && curbuf->b_ind_matching_paren) - { - /* Line up with the start of the matching paren line. */ - } -! else if ((curbuf->b_ind_unclosed == 0 && is_if_for_while == 0) -! || (!curbuf->b_ind_unclosed_noignore - && *look == '(' && ignore_paren_col == 0)) - { - if (cur_amount != MAXCOL) -*************** -*** 7387,7425 **** - } - else - { -! /* Add ind_unclosed2 for each '(' before our matching one, but -! * ignore (void) before the line (ignore_paren_col). */ - col = our_paren_pos.col; - while ((int)our_paren_pos.col > ignore_paren_col) - { - --our_paren_pos.col; - switch (*ml_get_pos(&our_paren_pos)) - { -! case '(': amount += ind_unclosed2; - col = our_paren_pos.col; - break; -! case ')': amount -= ind_unclosed2; - col = MAXCOL; - break; - } - } - -! /* Use ind_unclosed once, when the first '(' is not inside - * braces */ - if (col == MAXCOL) -! amount += ind_unclosed; - else - { - curwin->w_cursor.lnum = our_paren_pos.lnum; - curwin->w_cursor.col = col; -! if (find_match_paren(ind_maxparen, ind_maxcomment) != NULL) -! amount += ind_unclosed2; - else - { - if (is_if_for_while) -! amount += ind_if_for_while; - else -! amount += ind_unclosed; - } - } - /* ---- 7341,7380 ---- - } - else - { -! /* Add b_ind_unclosed2 for each '(' before our matching one, -! * but ignore (void) before the line (ignore_paren_col). */ - col = our_paren_pos.col; - while ((int)our_paren_pos.col > ignore_paren_col) - { - --our_paren_pos.col; - switch (*ml_get_pos(&our_paren_pos)) - { -! case '(': amount += curbuf->b_ind_unclosed2; - col = our_paren_pos.col; - break; -! case ')': amount -= curbuf->b_ind_unclosed2; - col = MAXCOL; - break; - } - } - -! /* Use b_ind_unclosed once, when the first '(' is not inside - * braces */ - if (col == MAXCOL) -! amount += curbuf->b_ind_unclosed; - else - { - curwin->w_cursor.lnum = our_paren_pos.lnum; - curwin->w_cursor.col = col; -! if (find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) != NULL) -! amount += curbuf->b_ind_unclosed2; - else - { - if (is_if_for_while) -! amount += curbuf->b_ind_if_for_while; - else -! amount += curbuf->b_ind_unclosed; - } - } - /* -*************** -*** 7437,7443 **** - - /* add extra indent for a comment */ - if (cin_iscomment(theline)) -! amount += ind_comment; - } - - /* ---- 7392,7398 ---- - - /* add extra indent for a comment */ - if (cin_iscomment(theline)) -! amount += curbuf->b_ind_comment; - } - - /* -*************** -*** 7480,7487 **** - */ - lnum = ourscope; - if (find_last_paren(start, '(', ')') -! && (trypos = find_match_paren(ind_maxparen, -! ind_maxcomment)) != NULL) - lnum = trypos->lnum; - - /* ---- 7435,7442 ---- - */ - lnum = ourscope; - if (find_last_paren(start, '(', ')') -! && (trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - lnum = trypos->lnum; - - /* -*************** -*** 7490,7500 **** - * ldfd) { - * } - */ -! if (ind_js || (ind_keep_case_label - && cin_iscase(skipwhite(ml_get_curline()), FALSE))) - amount = get_indent(); - else -! amount = skip_label(lnum, &l, ind_maxcomment); - - start_brace = BRACE_AT_END; - } ---- 7445,7455 ---- - * ldfd) { - * } - */ -! if (curbuf->b_ind_js || (curbuf->b_ind_keep_case_label - && cin_iscase(skipwhite(ml_get_curline()), FALSE))) - amount = get_indent(); - else -! amount = skip_label(lnum, &l, curbuf->b_ind_maxcomment); - - start_brace = BRACE_AT_END; - } -*************** -*** 7510,7516 **** - * they may want closing braces to line up with something - * other than the open brace. indulge them, if so. - */ -! amount += ind_close_extra; - } - else - { ---- 7465,7471 ---- - * they may want closing braces to line up with something - * other than the open brace. indulge them, if so. - */ -! amount += curbuf->b_ind_close_extra; - } - else - { -*************** -*** 7523,7536 **** - lookfor = LOOKFOR_INITIAL; - if (cin_iselse(theline)) - lookfor = LOOKFOR_IF; -! else if (cin_iswhileofdo(theline, cur_curpos.lnum, ind_maxparen)) -! /* XXX */ - lookfor = LOOKFOR_DO; - if (lookfor != LOOKFOR_INITIAL) - { - curwin->w_cursor.lnum = cur_curpos.lnum; -! if (find_match(lookfor, ourscope, ind_maxparen, -! ind_maxcomment) == OK) - { - amount = get_indent(); /* XXX */ - goto theend; ---- 7478,7491 ---- - lookfor = LOOKFOR_INITIAL; - if (cin_iselse(theline)) - lookfor = LOOKFOR_IF; -! else if (cin_iswhileofdo(theline, cur_curpos.lnum, -! curbuf->b_ind_maxparen)) /* XXX */ - lookfor = LOOKFOR_DO; - if (lookfor != LOOKFOR_INITIAL) - { - curwin->w_cursor.lnum = cur_curpos.lnum; -! if (find_match(lookfor, ourscope, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) == OK) - { - amount = get_indent(); /* XXX */ - goto theend; -*************** -*** 7547,7558 **** - /* - * if the '{' is _really_ at the left margin, use the imaginary - * location of a left-margin brace. Otherwise, correct the -! * location for ind_open_extra. - */ - - if (start_brace == BRACE_IN_COL0) /* '{' is in column 0 */ - { -! amount = ind_open_left_imag; - lookfor_cpp_namespace = TRUE; - } - else if (start_brace == BRACE_AT_START && ---- 7502,7513 ---- - /* - * if the '{' is _really_ at the left margin, use the imaginary - * location of a left-margin brace. Otherwise, correct the -! * location for b_ind_open_extra. - */ - - if (start_brace == BRACE_IN_COL0) /* '{' is in column 0 */ - { -! amount = curbuf->b_ind_open_left_imag; - lookfor_cpp_namespace = TRUE; - } - else if (start_brace == BRACE_AT_START && -*************** -*** 7565,7580 **** - { - if (start_brace == BRACE_AT_END) /* '{' is at end of line */ - { -! amount += ind_open_imag; - - l = skipwhite(ml_get_curline()); - if (cin_is_cpp_namespace(l)) -! amount += ind_cpp_namespace; - } - else - { -! /* Compensate for adding ind_open_extra later. */ -! amount -= ind_open_extra; - if (amount < 0) - amount = 0; - } ---- 7520,7535 ---- - { - if (start_brace == BRACE_AT_END) /* '{' is at end of line */ - { -! amount += curbuf->b_ind_open_imag; - - l = skipwhite(ml_get_curline()); - if (cin_is_cpp_namespace(l)) -! amount += curbuf->b_ind_cpp_namespace; - } - else - { -! /* Compensate for adding b_ind_open_extra later. */ -! amount -= curbuf->b_ind_open_extra; - if (amount < 0) - amount = 0; - } -*************** -*** 7585,7604 **** - if (cin_iscase(theline, FALSE)) /* it's a switch() label */ - { - lookfor = LOOKFOR_CASE; /* find a previous switch() label */ -! amount += ind_case; - } - else if (cin_isscopedecl(theline)) /* private:, ... */ - { - lookfor = LOOKFOR_SCOPEDECL; /* class decl is this block */ -! amount += ind_scopedecl; - } - else - { -! if (ind_case_break && cin_isbreak(theline)) /* break; ... */ - lookfor_break = TRUE; - - lookfor = LOOKFOR_INITIAL; -! amount += ind_level; /* ind_level from start of block */ - } - scope_amount = amount; - whilelevel = 0; ---- 7540,7561 ---- - if (cin_iscase(theline, FALSE)) /* it's a switch() label */ - { - lookfor = LOOKFOR_CASE; /* find a previous switch() label */ -! amount += curbuf->b_ind_case; - } - else if (cin_isscopedecl(theline)) /* private:, ... */ - { - lookfor = LOOKFOR_SCOPEDECL; /* class decl is this block */ -! amount += curbuf->b_ind_scopedecl; - } - else - { -! if (curbuf->b_ind_case_break && cin_isbreak(theline)) -! /* break; ... */ - lookfor_break = TRUE; - - lookfor = LOOKFOR_INITIAL; -! /* b_ind_level from start of block */ -! amount += curbuf->b_ind_level; - } - scope_amount = amount; - whilelevel = 0; -*************** -*** 7636,7649 **** - { - if (curwin->w_cursor.lnum == 0 - || curwin->w_cursor.lnum -! < ourscope - ind_maxparen) - { -! /* nothing found (abuse ind_maxparen as limit) -! * assume terminated line (i.e. a variable - * initialization) */ - if (cont_amount > 0) - amount = cont_amount; -! else if (!ind_js) - amount += ind_continuation; - break; - } ---- 7593,7606 ---- - { - if (curwin->w_cursor.lnum == 0 - || curwin->w_cursor.lnum -! < ourscope - curbuf->b_ind_maxparen) - { -! /* nothing found (abuse curbuf->b_ind_maxparen as -! * limit) assume terminated line (i.e. a variable - * initialization) */ - if (cont_amount > 0) - amount = cont_amount; -! else if (!curbuf->b_ind_js) - amount += ind_continuation; - break; - } -*************** -*** 7654,7660 **** - * If we're in a comment now, skip to the start of the - * comment. - */ -! trypos = find_start_comment(ind_maxcomment); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; ---- 7611,7617 ---- - * If we're in a comment now, skip to the start of the - * comment. - */ -! trypos = find_start_comment(curbuf->b_ind_maxcomment); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; -*************** -*** 7680,7686 **** - */ - if (start_brace != BRACE_IN_COL0 - || !cin_isfuncdecl(&l, curwin->w_cursor.lnum, -! 0, ind_maxparen, ind_maxcomment)) - { - /* if the line is terminated with another ',' - * it is a continued variable initialization. ---- 7637,7644 ---- - */ - if (start_brace != BRACE_IN_COL0 - || !cin_isfuncdecl(&l, curwin->w_cursor.lnum, -! 0, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) - { - /* if the line is terminated with another ',' - * it is a continued variable initialization. -*************** -*** 7711,7721 **** - */ /* XXX */ - trypos = NULL; - if (find_last_paren(l, '(', ')')) -! trypos = find_match_paren(ind_maxparen, -! ind_maxcomment); - - if (trypos == NULL && find_last_paren(l, '{', '}')) -! trypos = find_start_brace(ind_maxcomment); - - if (trypos != NULL) - { ---- 7669,7681 ---- - */ /* XXX */ - trypos = NULL; - if (find_last_paren(l, '(', ')')) -! trypos = find_match_paren( -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment); - - if (trypos == NULL && find_last_paren(l, '{', '}')) -! trypos = find_start_brace( -! curbuf->b_ind_maxcomment); - - if (trypos != NULL) - { -*************** -*** 7750,7757 **** - amount = scope_amount; - if (theline[0] == '{') - { -! amount += ind_open_extra; -! added_to_amount = ind_open_extra; - } - } - ---- 7710,7717 ---- - amount = scope_amount; - if (theline[0] == '{') - { -! amount += curbuf->b_ind_open_extra; -! added_to_amount = curbuf->b_ind_open_extra; - } - } - -*************** -*** 7773,7779 **** - - /* If we're in a comment now, skip to the start of - * the comment. */ -! trypos = find_start_comment(ind_maxcomment); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; ---- 7733,7740 ---- - - /* If we're in a comment now, skip to the start of - * the comment. */ -! trypos = find_start_comment( -! curbuf->b_ind_maxcomment); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; -*************** -*** 7788,7794 **** - /* Finally the actual check for "namespace". */ - if (cin_is_cpp_namespace(l)) - { -! amount += ind_cpp_namespace - added_to_amount; - break; - } - ---- 7749,7756 ---- - /* Finally the actual check for "namespace". */ - if (cin_is_cpp_namespace(l)) - { -! amount += curbuf->b_ind_cpp_namespace -! - added_to_amount; - break; - } - -*************** -*** 7802,7808 **** - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = find_start_comment(ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; ---- 7764,7771 ---- - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = find_start_comment(curbuf->b_ind_maxcomment)) -! != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; -*************** -*** 7856,7863 **** - * Check that this case label is not for another - * switch() - */ /* XXX */ -! if ((trypos = find_start_brace(ind_maxcomment)) == -! NULL || trypos->lnum == ourscope) - { - amount = get_indent(); /* XXX */ - break; ---- 7819,7827 ---- - * Check that this case label is not for another - * switch() - */ /* XXX */ -! if ((trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) == NULL -! || trypos->lnum == ourscope) - { - amount = get_indent(); /* XXX */ - break; -*************** -*** 7900,7908 **** - if (l != NULL && cin_is_cinword(l)) - { - if (theline[0] == '{') -! amount += ind_open_extra; - else -! amount += ind_level + ind_no_brace; - } - break; - } ---- 7864,7873 ---- - if (l != NULL && cin_is_cinword(l)) - { - if (theline[0] == '{') -! amount += curbuf->b_ind_open_extra; - else -! amount += curbuf->b_ind_level -! + curbuf->b_ind_no_brace; - } - break; - } -*************** -*** 7916,7923 **** - * -> y = 1; - */ - scope_amount = get_indent() + (iscase /* XXX */ -! ? ind_case_code : ind_scopedecl_code); -! lookfor = ind_case_break ? LOOKFOR_NOBREAK : LOOKFOR_ANY; - continue; - } - ---- 7881,7890 ---- - * -> y = 1; - */ - scope_amount = get_indent() + (iscase /* XXX */ -! ? curbuf->b_ind_case_code -! : curbuf->b_ind_scopedecl_code); -! lookfor = curbuf->b_ind_case_break -! ? LOOKFOR_NOBREAK : LOOKFOR_ANY; - continue; - } - -*************** -*** 7928,7934 **** - if (lookfor == LOOKFOR_CASE || lookfor == LOOKFOR_SCOPEDECL) - { - if (find_last_paren(l, '{', '}') && (trypos = -! find_start_brace(ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; ---- 7895,7901 ---- - if (lookfor == LOOKFOR_CASE || lookfor == LOOKFOR_SCOPEDECL) - { - if (find_last_paren(l, '{', '}') && (trypos = -! find_start_brace(curbuf->b_ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; -*************** -*** 7939,7945 **** - /* - * Ignore jump labels with nothing after them. - */ -! if (!ind_js && cin_islabel(ind_maxcomment)) - { - l = after_label(ml_get_curline()); - if (l == NULL || cin_nocode(l)) ---- 7906,7912 ---- - /* - * Ignore jump labels with nothing after them. - */ -! if (!curbuf->b_ind_js && cin_islabel(curbuf->b_ind_maxcomment)) - { - l = after_label(ml_get_curline()); - if (l == NULL || cin_nocode(l)) -*************** -*** 7962,7968 **** - * constructor initialization? - */ /* XXX */ - n = FALSE; -! if (lookfor != LOOKFOR_TERM && ind_cpp_baseclass > 0) - { - n = cin_is_cpp_baseclass(&col); - l = ml_get_curline(); ---- 7929,7935 ---- - * constructor initialization? - */ /* XXX */ - n = FALSE; -! if (lookfor != LOOKFOR_TERM && curbuf->b_ind_cpp_baseclass > 0) - { - n = cin_is_cpp_baseclass(&col); - l = ml_get_curline(); -*************** -*** 7985,7992 **** - } - else - /* XXX */ -! amount = get_baseclass_amount(col, ind_maxparen, -! ind_maxcomment, ind_cpp_baseclass); - break; - } - else if (lookfor == LOOKFOR_CPP_BASECLASS) ---- 7952,7961 ---- - } - else - /* XXX */ -! amount = get_baseclass_amount(col, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment, -! curbuf->b_ind_cpp_baseclass); - break; - } - else if (lookfor == LOOKFOR_CPP_BASECLASS) -*************** -*** 8029,8036 **** - */ - (void)find_last_paren(l, '(', ')'); - trypos = find_match_paren( -! corr_ind_maxparen(ind_maxparen, &cur_curpos), -! ind_maxcomment); - - /* - * If we are looking for ',', we also look for matching ---- 7998,8005 ---- - */ - (void)find_last_paren(l, '(', ')'); - trypos = find_match_paren( -! corr_ind_maxparen(curbuf->b_ind_maxparen, -! &cur_curpos), curbuf->b_ind_maxcomment); - - /* - * If we are looking for ',', we also look for matching -*************** -*** 8038,8044 **** - */ - if (trypos == NULL && terminated == ',' - && find_last_paren(l, '{', '}')) -! trypos = find_start_brace(ind_maxcomment); - - if (trypos != NULL) - { ---- 8007,8013 ---- - */ - if (trypos == NULL && terminated == ',' - && find_last_paren(l, '{', '}')) -! trypos = find_start_brace(curbuf->b_ind_maxcomment); - - if (trypos != NULL) - { -*************** -*** 8081,8089 **** - * Get indent and pointer to text for current line, - * ignoring any jump label. XXX - */ -! if (!ind_js) - cur_amount = skip_label(curwin->w_cursor.lnum, -! &l, ind_maxcomment); - else - cur_amount = get_indent(); - /* ---- 8050,8058 ---- - * Get indent and pointer to text for current line, - * ignoring any jump label. XXX - */ -! if (!curbuf->b_ind_js) - cur_amount = skip_label(curwin->w_cursor.lnum, -! &l, curbuf->b_ind_maxcomment); - else - cur_amount = get_indent(); - /* -*************** -*** 8098,8113 **** - { - amount = cur_amount; - /* -! * Only add ind_open_extra when the current line - * doesn't start with a '{', which must have a match - * in the same line (scope is the same). Probably: - * { 1, 2 }, - * -> { 3, 4 } - */ - if (*skipwhite(l) != '{') -! amount += ind_open_extra; - -! if (ind_cpp_baseclass) - { - /* have to look back, whether it is a cpp base - * class declaration or initialization */ ---- 8067,8082 ---- - { - amount = cur_amount; - /* -! * Only add b_ind_open_extra when the current line - * doesn't start with a '{', which must have a match - * in the same line (scope is the same). Probably: - * { 1, 2 }, - * -> { 3, 4 } - */ - if (*skipwhite(l) != '{') -! amount += curbuf->b_ind_open_extra; - -! if (curbuf->b_ind_cpp_baseclass) - { - /* have to look back, whether it is a cpp base - * class declaration or initialization */ -*************** -*** 8155,8164 **** - */ - amount = cur_amount; - if (theline[0] == '{') -! amount += ind_open_extra; - if (lookfor != LOOKFOR_TERM) - { -! amount += ind_level + ind_no_brace; - break; - } - ---- 8124,8134 ---- - */ - amount = cur_amount; - if (theline[0] == '{') -! amount += curbuf->b_ind_open_extra; - if (lookfor != LOOKFOR_TERM) - { -! amount += curbuf->b_ind_level -! + curbuf->b_ind_no_brace; - break; - } - -*************** -*** 8192,8201 **** - curwin->w_cursor.col = - (colnr_T)(l - ml_get_curline()) + 1; - -! if ((trypos = find_start_brace(ind_maxcomment)) -! == NULL - || find_match(LOOKFOR_IF, trypos->lnum, -! ind_maxparen, ind_maxcomment) == FAIL) - break; - } - } ---- 8162,8172 ---- - curwin->w_cursor.col = - (colnr_T)(l - ml_get_curline()) + 1; - -! if ((trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) == NULL - || find_match(LOOKFOR_IF, trypos->lnum, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) == FAIL) - break; - } - } -*************** -*** 8232,8238 **** - * enumerations/initializations. */ - if (terminated == ',') - { -! if (ind_cpp_baseclass == 0) - break; - - lookfor = LOOKFOR_CPP_BASECLASS; ---- 8203,8209 ---- - * enumerations/initializations. */ - if (terminated == ',') - { -! if (curbuf->b_ind_cpp_baseclass == 0) - break; - - lookfor = LOOKFOR_CPP_BASECLASS; -*************** -*** 8290,8297 **** - * If so: Ignore until the matching "do". - */ - /* XXX */ -! else if (cin_iswhileofdo_end(terminated, ind_maxparen, -! ind_maxcomment)) - { - /* - * Found an unterminated line after a while ();, line up ---- 8261,8268 ---- - * If so: Ignore until the matching "do". - */ - /* XXX */ -! else if (cin_iswhileofdo_end(terminated, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) - { - /* - * Found an unterminated line after a while ();, line up -*************** -*** 8315,8321 **** - lookfor = LOOKFOR_TERM; - amount = get_indent(); /* XXX */ - if (theline[0] == '{') -! amount += ind_open_extra; - } - ++whilelevel; - } ---- 8286,8292 ---- - lookfor = LOOKFOR_TERM; - amount = get_indent(); /* XXX */ - if (theline[0] == '{') -! amount += curbuf->b_ind_open_extra; - } - ++whilelevel; - } -*************** -*** 8408,8415 **** - term_again: - l = ml_get_curline(); - if (find_last_paren(l, '(', ')') -! && (trypos = find_match_paren(ind_maxparen, -! ind_maxcomment)) != NULL) - { - /* - * Check if we are on a case label now. This is ---- 8379,8387 ---- - term_again: - l = ml_get_curline(); - if (find_last_paren(l, '(', ')') -! && (trypos = find_match_paren( -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - { - /* - * Check if we are on a case label now. This is -*************** -*** 8436,8456 **** - * stat; - * } - */ -! iscase = (ind_keep_case_label && cin_iscase(l, FALSE)); - - /* - * Get indent and pointer to text for current line, - * ignoring any jump label. - */ - amount = skip_label(curwin->w_cursor.lnum, -! &l, ind_maxcomment); - - if (theline[0] == '{') -! amount += ind_open_extra; -! /* See remark above: "Only add ind_open_extra.." */ - l = skipwhite(l); - if (*l == '{') -! amount -= ind_open_extra; - lookfor = iscase ? LOOKFOR_ANY : LOOKFOR_TERM; - - /* ---- 8408,8429 ---- - * stat; - * } - */ -! iscase = (curbuf->b_ind_keep_case_label -! && cin_iscase(l, FALSE)); - - /* - * Get indent and pointer to text for current line, - * ignoring any jump label. - */ - amount = skip_label(curwin->w_cursor.lnum, -! &l, curbuf->b_ind_maxcomment); - - if (theline[0] == '{') -! amount += curbuf->b_ind_open_extra; -! /* See remark above: "Only add b_ind_open_extra.." */ - l = skipwhite(l); - if (*l == '{') -! amount -= curbuf->b_ind_open_extra; - lookfor = iscase ? LOOKFOR_ANY : LOOKFOR_TERM; - - /* -*************** -*** 8466,8475 **** - && cin_iselse(l) - && whilelevel == 0) - { -! if ((trypos = find_start_brace(ind_maxcomment)) -! == NULL - || find_match(LOOKFOR_IF, trypos->lnum, -! ind_maxparen, ind_maxcomment) == FAIL) - break; - continue; - } ---- 8439,8449 ---- - && cin_iselse(l) - && whilelevel == 0) - { -! if ((trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) == NULL - || find_match(LOOKFOR_IF, trypos->lnum, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) == FAIL) - break; - continue; - } -*************** -*** 8480,8487 **** - */ - l = ml_get_curline(); - if (find_last_paren(l, '{', '}') -! && (trypos = find_start_brace(ind_maxcomment)) -! != NULL) /* XXX */ - { - curwin->w_cursor = *trypos; - /* if not "else {" check for terminated again */ ---- 8454,8461 ---- - */ - l = ml_get_curline(); - if (find_last_paren(l, '{', '}') -! && (trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) != NULL) /* XXX */ - { - curwin->w_cursor = *trypos; - /* if not "else {" check for terminated again */ -*************** -*** 8500,8510 **** - - /* add extra indent for a comment */ - if (cin_iscomment(theline)) -! amount += ind_comment; - - /* subtract extra left-shift for jump labels */ -! if (ind_jump_label > 0 && original_line_islabel) -! amount -= ind_jump_label; - } - - /* ---- 8474,8484 ---- - - /* add extra indent for a comment */ - if (cin_iscomment(theline)) -! amount += curbuf->b_ind_comment; - - /* subtract extra left-shift for jump labels */ -! if (curbuf->b_ind_jump_label > 0 && original_line_islabel) -! amount -= curbuf->b_ind_jump_label; - } - - /* -*************** -*** 8525,8531 **** - - if (theline[0] == '{') - { -! amount = ind_first_open; - } - - /* ---- 8499,8505 ---- - - if (theline[0] == '{') - { -! amount = curbuf->b_ind_first_open; - } - - /* -*************** -*** 8543,8552 **** - && !cin_ends_in(theline, (char_u *)",", NULL) - && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, - cur_curpos.lnum + 1, -! ind_maxparen, ind_maxcomment) - && !cin_isterminated(theline, FALSE, TRUE)) - { -! amount = ind_func_type; - } - else - { ---- 8517,8527 ---- - && !cin_ends_in(theline, (char_u *)",", NULL) - && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, - cur_curpos.lnum + 1, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) - && !cin_isterminated(theline, FALSE, TRUE)) - { -! amount = curbuf->b_ind_func_type; - } - else - { -*************** -*** 8565,8571 **** - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = find_start_comment(ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; ---- 8540,8547 ---- - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = find_start_comment( -! curbuf->b_ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; -*************** -*** 8577,8583 **** - * constructor initialization? - */ /* XXX */ - n = FALSE; -! if (ind_cpp_baseclass != 0 && theline[0] != '{') - { - n = cin_is_cpp_baseclass(&col); - l = ml_get_curline(); ---- 8553,8559 ---- - * constructor initialization? - */ /* XXX */ - n = FALSE; -! if (curbuf->b_ind_cpp_baseclass != 0 && theline[0] != '{') - { - n = cin_is_cpp_baseclass(&col); - l = ml_get_curline(); -*************** -*** 8585,8592 **** - if (n) - { - /* XXX */ -! amount = get_baseclass_amount(col, ind_maxparen, -! ind_maxcomment, ind_cpp_baseclass); - break; - } - ---- 8561,8569 ---- - if (n) - { - /* XXX */ -! amount = get_baseclass_amount(col, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment, -! curbuf->b_ind_cpp_baseclass); - break; - } - -*************** -*** 8617,8624 **** - { - /* take us back to opening paren */ - if (find_last_paren(l, '(', ')') -! && (trypos = find_match_paren(ind_maxparen, -! ind_maxcomment)) != NULL) - curwin->w_cursor = *trypos; - - /* For a line ending in ',' that is a continuation line go ---- 8594,8602 ---- - { - /* take us back to opening paren */ - if (find_last_paren(l, '(', ')') -! && (trypos = find_match_paren( -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - curwin->w_cursor = *trypos; - - /* For a line ending in ',' that is a continuation line go -*************** -*** 8650,8656 **** - * not in a comment, put it the left margin. - */ - if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0, -! ind_maxparen, ind_maxcomment)) /* XXX */ - break; - l = ml_get_curline(); - ---- 8628,8635 ---- - * not in a comment, put it the left margin. - */ - if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) /* XXX */ - break; - l = ml_get_curline(); - -*************** -*** 8699,8707 **** - * parameters. - */ - if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0, -! ind_maxparen, ind_maxcomment)) - { -! amount = ind_param; - break; - } - ---- 8678,8687 ---- - * parameters. - */ - if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) - { -! amount = curbuf->b_ind_param; - break; - } - -*************** -*** 8730,8737 **** - */ - find_last_paren(l, '(', ')'); - -! if ((trypos = find_match_paren(ind_maxparen, -! ind_maxcomment)) != NULL) - curwin->w_cursor = *trypos; - amount = get_indent(); /* XXX */ - break; ---- 8710,8717 ---- - */ - find_last_paren(l, '(', ')'); - -! if ((trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - curwin->w_cursor = *trypos; - amount = get_indent(); /* XXX */ - break; -*************** -*** 8739,8745 **** - - /* add extra indent for a comment */ - if (cin_iscomment(theline)) -! amount += ind_comment; - - /* add extra indent if the previous line ended in a backslash: - * "asdfasdf\ ---- 8719,8725 ---- - - /* add extra indent for a comment */ - if (cin_iscomment(theline)) -! amount += curbuf->b_ind_comment; - - /* add extra indent if the previous line ended in a backslash: - * "asdfasdf\ -*** ../vim-7.4.068/src/ops.c 2013-11-04 01:41:11.000000000 +0100 ---- src/ops.c 2013-11-05 06:13:27.000000000 +0100 -*************** -*** 336,342 **** - { - int count; - int i, j; -! int p_sw = (int)get_sw_value(); - - count = get_indent(); /* get current indent */ - ---- 336,342 ---- - { - int count; - int i, j; -! int p_sw = (int)get_sw_value(curbuf); - - count = get_indent(); /* get current indent */ - -*************** -*** 392,398 **** - int total; - char_u *newp, *oldp; - int oldcol = curwin->w_cursor.col; -! int p_sw = (int)get_sw_value(); - int p_ts = (int)curbuf->b_p_ts; - struct block_def bd; - int incr; ---- 392,398 ---- - int total; - char_u *newp, *oldp; - int oldcol = curwin->w_cursor.col; -! int p_sw = (int)get_sw_value(curbuf); - int p_ts = (int)curbuf->b_p_ts; - struct block_def bd; - int incr; -*************** -*** 4046,4052 **** - # endif - # endif - # ifdef FEAT_CINDENT -! (curbuf->b_p_cin && in_cinkeys('#', ' ', TRUE)) - # endif - ; - } ---- 4046,4053 ---- - # endif - # endif - # ifdef FEAT_CINDENT -! (curbuf->b_p_cin && in_cinkeys('#', ' ', TRUE) -! && curbuf->b_ind_hash_comment == 0) - # endif - ; - } -*** ../vim-7.4.068/src/proto/misc1.pro 2013-11-04 02:53:46.000000000 +0100 ---- src/proto/misc1.pro 2013-11-05 06:08:46.000000000 +0100 -*************** -*** 84,89 **** ---- 84,90 ---- - int cin_islabel __ARGS((int ind_maxcomment)); - int cin_iscase __ARGS((char_u *s, int strict)); - int cin_isscopedecl __ARGS((char_u *s)); -+ void parse_cino __ARGS((buf_T *buf)); - int get_c_indent __ARGS((void)); - int get_expr_indent __ARGS((void)); - int get_lisp_indent __ARGS((void)); -*** ../vim-7.4.068/src/proto/option.pro 2013-08-10 13:37:22.000000000 +0200 ---- src/proto/option.pro 2013-11-05 06:14:46.000000000 +0100 -*************** -*** 59,65 **** - void save_file_ff __ARGS((buf_T *buf)); - int file_ff_differs __ARGS((buf_T *buf, int ignore_empty)); - int check_ff_value __ARGS((char_u *p)); -! long get_sw_value __ARGS((void)); - long get_sts_value __ARGS((void)); - void find_mps_values __ARGS((int *initc, int *findc, int *backwards, int switchit)); - /* vim: set ft=c : */ ---- 59,65 ---- - void save_file_ff __ARGS((buf_T *buf)); - int file_ff_differs __ARGS((buf_T *buf, int ignore_empty)); - int check_ff_value __ARGS((char_u *p)); -! long get_sw_value __ARGS((buf_T *buf)); - long get_sts_value __ARGS((void)); - void find_mps_values __ARGS((int *initc, int *findc, int *backwards, int switchit)); - /* vim: set ft=c : */ -*** ../vim-7.4.068/src/structs.h 2013-07-03 15:35:59.000000000 +0200 ---- src/structs.h 2013-11-05 05:08:26.000000000 +0100 -*************** -*** 1633,1638 **** ---- 1633,1677 ---- - - /* end of buffer options */ - -+ #ifdef FEAT_CINDENT -+ /* values set from b_p_cino */ -+ int b_ind_level; -+ int b_ind_open_imag; -+ int b_ind_no_brace; -+ int b_ind_first_open; -+ int b_ind_open_extra; -+ int b_ind_close_extra; -+ int b_ind_open_left_imag; -+ int b_ind_jump_label; -+ int b_ind_case; -+ int b_ind_case_code; -+ int b_ind_case_break; -+ int b_ind_param; -+ int b_ind_func_type; -+ int b_ind_comment; -+ int b_ind_in_comment; -+ int b_ind_in_comment2; -+ int b_ind_cpp_baseclass; -+ int b_ind_continuation; -+ int b_ind_unclosed; -+ int b_ind_unclosed2; -+ int b_ind_unclosed_noignore; -+ int b_ind_unclosed_wrapped; -+ int b_ind_unclosed_whiteok; -+ int b_ind_matching_paren; -+ int b_ind_paren_prev; -+ int b_ind_maxparen; -+ int b_ind_maxcomment; -+ int b_ind_scopedecl; -+ int b_ind_scopedecl_code; -+ int b_ind_java; -+ int b_ind_js; -+ int b_ind_keep_case_label; -+ int b_ind_hash_comment; -+ int b_ind_cpp_namespace; -+ int b_ind_if_for_while; -+ #endif -+ - linenr_T b_no_eol_lnum; /* non-zero lnum when last line of next binary - * write should not have an end-of-line */ - -*** ../vim-7.4.068/src/option.c 2013-07-17 21:39:13.000000000 +0200 ---- src/option.c 2013-11-05 06:58:04.000000000 +0100 -*************** -*** 5372,5377 **** ---- 5372,5378 ---- - #ifdef FEAT_CINDENT - check_string_option(&buf->b_p_cink); - check_string_option(&buf->b_p_cino); -+ parse_cino(buf); - #endif - #ifdef FEAT_AUTOCMD - check_string_option(&buf->b_p_ft); -*************** -*** 6990,6995 **** ---- 6991,7005 ---- - } - #endif - -+ #ifdef FEAT_CINDENT -+ /* 'cinoptions' */ -+ else if (gvarp == &p_cino) -+ { -+ /* TODO: recognize errors */ -+ parse_cino(curbuf); -+ } -+ #endif -+ - /* Options that are a list of flags. */ - else - { -*************** -*** 8338,8351 **** - curwin->w_p_fdc = 12; - } - } - - /* 'shiftwidth' or 'tabstop' */ - else if (pp == &curbuf->b_p_sw || pp == &curbuf->b_p_ts) - { - if (foldmethodIsIndent(curwin)) - foldUpdateAll(curwin); - } -! #endif /* FEAT_FOLDING */ - - #ifdef FEAT_MBYTE - /* 'maxcombine' */ ---- 8348,8371 ---- - curwin->w_p_fdc = 12; - } - } -+ #endif /* FEAT_FOLDING */ - -+ #if defined(FEAT_FOLDING) || defined(FEAT_CINDENT) - /* 'shiftwidth' or 'tabstop' */ - else if (pp == &curbuf->b_p_sw || pp == &curbuf->b_p_ts) - { -+ # ifdef FEAT_FOLDING - if (foldmethodIsIndent(curwin)) - foldUpdateAll(curwin); -+ # endif -+ # ifdef FEAT_CINDENT -+ /* When 'shiftwidth' changes, or it's zero and 'tabstop' changes: -+ * parse 'cinoptions'. */ -+ if (pp == &curbuf->b_p_sw || curbuf->b_p_sw == 0) -+ parse_cino(curbuf); -+ # endif - } -! #endif - - #ifdef FEAT_MBYTE - /* 'maxcombine' */ -*************** -*** 11729,11737 **** - * 'tabstop' value when 'shiftwidth' is zero. - */ - long -! get_sw_value() - { -! return curbuf->b_p_sw ? curbuf->b_p_sw : curbuf->b_p_ts; - } - - /* ---- 11749,11758 ---- - * 'tabstop' value when 'shiftwidth' is zero. - */ - long -! get_sw_value(buf) -! buf_T *buf; - { -! return buf->b_p_sw ? buf->b_p_sw : buf->b_p_ts; - } - - /* -*************** -*** 11741,11747 **** - long - get_sts_value() - { -! return curbuf->b_p_sts < 0 ? get_sw_value() : curbuf->b_p_sts; - } - - /* ---- 11762,11768 ---- - long - get_sts_value() - { -! return curbuf->b_p_sts < 0 ? get_sw_value(curbuf) : curbuf->b_p_sts; - } - - /* -*** ../vim-7.4.068/src/version.c 2013-11-04 04:57:46.000000000 +0100 ---- src/version.c 2013-11-05 04:55:36.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 69, - /**/ - --- -A special cleaning ordinance bans housewives from hiding dirt and dust under a -rug in a dwelling. - [real standing law in Pennsylvania, United States of America] - - /// 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 /// diff --git a/7.4.070 b/7.4.070 deleted file mode 100644 index 749b7445..00000000 --- a/7.4.070 +++ /dev/null @@ -1,47 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.070 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.070 (after 7.4.069) -Problem: Can't compile with tiny features. (Tony Mechelynck) -Solution: Add #ifdef. -Files: src/buffer.c - - -*** ../vim-7.4.069/src/buffer.c 2013-11-05 07:12:59.000000000 +0100 ---- src/buffer.c 2013-11-05 17:37:27.000000000 +0100 -*************** -*** 213,219 **** ---- 213,221 ---- - if (curbuf->b_flags & BF_NEVERLOADED) - { - (void)buf_init_chartab(curbuf, FALSE); -+ #ifdef FEAT_CINDENT - parse_cino(curbuf); -+ #endif - } - - /* -*** ../vim-7.4.069/src/version.c 2013-11-05 07:12:59.000000000 +0100 ---- src/version.c 2013-11-05 17:38:56.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 70, - /**/ - --- -No man may purchase alcohol without written consent from his wife. - [real standing law in Pennsylvania, United States of America] - - /// 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 /// diff --git a/7.4.071 b/7.4.071 deleted file mode 100644 index 71b2984e..00000000 --- a/7.4.071 +++ /dev/null @@ -1,1302 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.071 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.071 (after 7.4.069) -Problem: Passing limits around too often. -Solution: Use limits from buffer. -Files: src/edit.c, src/misc1.c, src/proto/misc1.pro - - -*** ../vim-7.4.070/src/edit.c 2013-11-05 07:12:59.000000000 +0100 ---- src/edit.c 2013-11-06 03:19:10.000000000 +0100 -*************** -*** 7857,7864 **** - if (try_match && keytyped == ':') - { - p = ml_get_curline(); -! if (cin_iscase(p, FALSE) || cin_isscopedecl(p) -! || cin_islabel(30)) - return TRUE; - /* Need to get the line again after cin_islabel(). */ - p = ml_get_curline(); ---- 7857,7863 ---- - if (try_match && keytyped == ':') - { - p = ml_get_curline(); -! if (cin_iscase(p, FALSE) || cin_isscopedecl(p) || cin_islabel()) - return TRUE; - /* Need to get the line again after cin_islabel(). */ - p = ml_get_curline(); -*************** -*** 7868,7874 **** - { - p[curwin->w_cursor.col - 1] = ' '; - i = (cin_iscase(p, FALSE) || cin_isscopedecl(p) -! || cin_islabel(30)); - p = ml_get_curline(); - p[curwin->w_cursor.col - 1] = ':'; - if (i) ---- 7867,7873 ---- - { - p[curwin->w_cursor.col - 1] = ' '; - i = (cin_iscase(p, FALSE) || cin_isscopedecl(p) -! || cin_islabel()); - p = ml_get_curline(); - p[curwin->w_cursor.col - 1] = ':'; - if (i) -*** ../vim-7.4.070/src/misc1.c 2013-11-05 07:12:59.000000000 +0100 ---- src/misc1.c 2013-11-06 03:46:59.000000000 +0100 -*************** -*** 5191,5201 **** ---- 5191,5208 ---- - #if defined(FEAT_CINDENT) || defined(FEAT_SYN_HL) - - static char_u *skip_string __ARGS((char_u *p)); -+ static pos_T *ind_find_start_comment __ARGS((void)); - - /* - * Find the start of a comment, not knowing if we are in a comment right now. - * Search starts at w_cursor.lnum and goes backwards. - */ -+ static pos_T * -+ ind_find_start_comment() /* XXX */ -+ { -+ return find_start_comment(curbuf->b_ind_maxcomment); -+ } -+ - pos_T * - find_start_comment(ind_maxcomment) /* XXX */ - int ind_maxcomment; -*************** -*** 5313,5319 **** - static int cin_isdefault __ARGS((char_u *)); - static char_u *after_label __ARGS((char_u *l)); - static int get_indent_nolabel __ARGS((linenr_T lnum)); -! static int skip_label __ARGS((linenr_T, char_u **pp, int ind_maxcomment)); - static int cin_first_id_amount __ARGS((void)); - static int cin_get_equal_amount __ARGS((linenr_T lnum)); - static int cin_ispreproc __ARGS((char_u *)); ---- 5320,5326 ---- - static int cin_isdefault __ARGS((char_u *)); - static char_u *after_label __ARGS((char_u *l)); - static int get_indent_nolabel __ARGS((linenr_T lnum)); -! static int skip_label __ARGS((linenr_T, char_u **pp)); - static int cin_first_id_amount __ARGS((void)); - static int cin_get_equal_amount __ARGS((linenr_T lnum)); - static int cin_ispreproc __ARGS((char_u *)); -*************** -*** 5322,5345 **** - static int cin_islinecomment __ARGS((char_u *)); - static int cin_isterminated __ARGS((char_u *, int, int)); - static int cin_isinit __ARGS((void)); -! static int cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T, int, int)); - static int cin_isif __ARGS((char_u *)); - static int cin_iselse __ARGS((char_u *)); - static int cin_isdo __ARGS((char_u *)); -! static int cin_iswhileofdo __ARGS((char_u *, linenr_T, int)); - static int cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset)); -! static int cin_iswhileofdo_end __ARGS((int terminated, int ind_maxparen, int ind_maxcomment)); - static int cin_isbreak __ARGS((char_u *)); - static int cin_is_cpp_baseclass __ARGS((colnr_T *col)); -! static int get_baseclass_amount __ARGS((int col, int ind_maxparen, int ind_maxcomment, int ind_cpp_baseclass)); - static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); - static int cin_starts_with __ARGS((char_u *s, char *word)); - static int cin_skip2pos __ARGS((pos_T *trypos)); -! static pos_T *find_start_brace __ARGS((int)); -! static pos_T *find_match_paren __ARGS((int, int)); -! static int corr_ind_maxparen __ARGS((int ind_maxparen, pos_T *startpos)); - static int find_last_paren __ARGS((char_u *l, int start, int end)); -! static int find_match __ARGS((int lookfor, linenr_T ourscope, int ind_maxparen, int ind_maxcomment)); - static int cin_is_cpp_namespace __ARGS((char_u *)); - - /* ---- 5329,5352 ---- - static int cin_islinecomment __ARGS((char_u *)); - static int cin_isterminated __ARGS((char_u *, int, int)); - static int cin_isinit __ARGS((void)); -! static int cin_isfuncdecl __ARGS((char_u **, linenr_T, linenr_T)); - static int cin_isif __ARGS((char_u *)); - static int cin_iselse __ARGS((char_u *)); - static int cin_isdo __ARGS((char_u *)); -! static int cin_iswhileofdo __ARGS((char_u *, linenr_T)); - static int cin_is_if_for_while_before_offset __ARGS((char_u *line, int *poffset)); -! static int cin_iswhileofdo_end __ARGS((int terminated)); - static int cin_isbreak __ARGS((char_u *)); - static int cin_is_cpp_baseclass __ARGS((colnr_T *col)); -! static int get_baseclass_amount __ARGS((int col)); - static int cin_ends_in __ARGS((char_u *, char_u *, char_u *)); - static int cin_starts_with __ARGS((char_u *s, char *word)); - static int cin_skip2pos __ARGS((pos_T *trypos)); -! static pos_T *find_start_brace __ARGS((void)); -! static pos_T *find_match_paren __ARGS((int)); -! static int corr_ind_maxparen __ARGS((pos_T *startpos)); - static int find_last_paren __ARGS((char_u *l, int start, int end)); -! static int find_match __ARGS((int lookfor, linenr_T ourscope)); - static int cin_is_cpp_namespace __ARGS((char_u *)); - - /* -*************** -*** 5444,5451 **** - * Note: curwin->w_cursor must be where we are looking for the label. - */ - int -! cin_islabel(ind_maxcomment) /* XXX */ -! int ind_maxcomment; - { - char_u *s; - ---- 5451,5457 ---- - * Note: curwin->w_cursor must be where we are looking for the label. - */ - int -! cin_islabel() /* XXX */ - { - char_u *s; - -*************** -*** 5479,5485 **** - * If we're in a comment now, skip to the start of the comment. - */ - curwin->w_cursor.col = 0; -! if ((trypos = find_start_comment(ind_maxcomment)) != NULL) /* XXX */ - curwin->w_cursor = *trypos; - - line = ml_get_curline(); ---- 5485,5491 ---- - * If we're in a comment now, skip to the start of the comment. - */ - curwin->w_cursor.col = 0; -! if ((trypos = ind_find_start_comment()) != NULL) /* XXX */ - curwin->w_cursor = *trypos; - - line = ml_get_curline(); -*************** -*** 5725,5734 **** - * ^ - */ - static int -! skip_label(lnum, pp, ind_maxcomment) - linenr_T lnum; - char_u **pp; -- int ind_maxcomment; - { - char_u *l; - int amount; ---- 5731,5739 ---- - * ^ - */ - static int -! skip_label(lnum, pp) - linenr_T lnum; - char_u **pp; - { - char_u *l; - int amount; -*************** -*** 5738,5745 **** - curwin->w_cursor.lnum = lnum; - l = ml_get_curline(); - /* XXX */ -! if (cin_iscase(l, FALSE) || cin_isscopedecl(l) -! || cin_islabel(ind_maxcomment)) - { - amount = get_indent_nolabel(lnum); - l = after_label(ml_get_curline()); ---- 5743,5749 ---- - curwin->w_cursor.lnum = lnum; - l = ml_get_curline(); - /* XXX */ -! if (cin_iscase(l, FALSE) || cin_isscopedecl(l) || cin_islabel()) - { - amount = get_indent_nolabel(lnum); - l = after_label(ml_get_curline()); -*************** -*** 5983,5994 **** - * "min_lnum" is the line before which we will not be looking. - */ - static int -! cin_isfuncdecl(sp, first_lnum, min_lnum, ind_maxparen, ind_maxcomment) - char_u **sp; - linenr_T first_lnum; - linenr_T min_lnum; -- int ind_maxparen; -- int ind_maxcomment; - { - char_u *s; - linenr_T lnum = first_lnum; ---- 5987,5996 ---- - * "min_lnum" is the line before which we will not be looking. - */ - static int -! cin_isfuncdecl(sp, first_lnum, min_lnum) - char_u **sp; - linenr_T first_lnum; - linenr_T min_lnum; - { - char_u *s; - linenr_T lnum = first_lnum; -*************** -*** 6002,6008 **** - s = *sp; - - if (find_last_paren(s, '(', ')') -! && (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL) - { - lnum = trypos->lnum; - if (lnum < min_lnum) ---- 6004,6010 ---- - s = *sp; - - if (find_last_paren(s, '(', ')') -! && (trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) - { - lnum = trypos->lnum; - if (lnum < min_lnum) -*************** -*** 6110,6119 **** - * ')' and ';'. The condition may be spread over several lines. - */ - static int -! cin_iswhileofdo(p, lnum, ind_maxparen) /* XXX */ - char_u *p; - linenr_T lnum; -- int ind_maxparen; - { - pos_T cursor_save; - pos_T *trypos; ---- 6112,6120 ---- - * ')' and ';'. The condition may be spread over several lines. - */ - static int -! cin_iswhileofdo(p, lnum) /* XXX */ - char_u *p; - linenr_T lnum; - { - pos_T cursor_save; - pos_T *trypos; -*************** -*** 6133,6139 **** - ++p; - ++curwin->w_cursor.col; - } -! if ((trypos = findmatchlimit(NULL, 0, 0, ind_maxparen)) != NULL - && *cin_skipcomment(ml_get_pos(trypos) + 1) == ';') - retval = TRUE; - curwin->w_cursor = cursor_save; ---- 6134,6141 ---- - ++p; - ++curwin->w_cursor.col; - } -! if ((trypos = findmatchlimit(NULL, 0, 0, -! curbuf->b_ind_maxparen)) != NULL - && *cin_skipcomment(ml_get_pos(trypos) + 1) == ';') - retval = TRUE; - curwin->w_cursor = cursor_save; -*************** -*** 6196,6205 **** - * Adjust the cursor to the line with "while". - */ - static int -! cin_iswhileofdo_end(terminated, ind_maxparen, ind_maxcomment) - int terminated; -- int ind_maxparen; -- int ind_maxcomment; - { - char_u *line; - char_u *p; ---- 6198,6205 ---- - * Adjust the cursor to the line with "while". - */ - static int -! cin_iswhileofdo_end(terminated) - int terminated; - { - char_u *line; - char_u *p; -*************** -*** 6223,6229 **** - * before the matching '('. XXX */ - i = (int)(p - line); - curwin->w_cursor.col = i; -! trypos = find_match_paren(ind_maxparen, ind_maxcomment); - if (trypos != NULL) - { - s = cin_skipcomment(ml_get(trypos->lnum)); ---- 6223,6229 ---- - * before the matching '('. XXX */ - i = (int)(p - line); - curwin->w_cursor.col = i; -! trypos = find_match_paren(curbuf->b_ind_maxparen); - if (trypos != NULL) - { - s = cin_skipcomment(ml_get(trypos->lnum)); -*************** -*** 6415,6425 **** - } - - static int -! get_baseclass_amount(col, ind_maxparen, ind_maxcomment, ind_cpp_baseclass) - int col; -- int ind_maxparen; -- int ind_maxcomment; -- int ind_cpp_baseclass; - { - int amount; - colnr_T vcol; ---- 6415,6422 ---- - } - - static int -! get_baseclass_amount(col) - int col; - { - int amount; - colnr_T vcol; -*************** -*** 6429,6439 **** - { - amount = get_indent(); - if (find_last_paren(ml_get_curline(), '(', ')') -! && (trypos = find_match_paren(ind_maxparen, -! ind_maxcomment)) != NULL) - amount = get_indent_lnum(trypos->lnum); /* XXX */ - if (!cin_ends_in(ml_get_curline(), (char_u *)",", NULL)) -! amount += ind_cpp_baseclass; - } - else - { ---- 6426,6435 ---- - { - amount = get_indent(); - if (find_last_paren(ml_get_curline(), '(', ')') -! && (trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) - amount = get_indent_lnum(trypos->lnum); /* XXX */ - if (!cin_ends_in(ml_get_curline(), (char_u *)",", NULL)) -! amount += curbuf->b_ind_cpp_baseclass; - } - else - { -*************** -*** 6441,6448 **** - getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL); - amount = (int)vcol; - } -! if (amount < ind_cpp_baseclass) -! amount = ind_cpp_baseclass; - return amount; - } - ---- 6437,6444 ---- - getvcol(curwin, &curwin->w_cursor, &vcol, NULL, NULL); - amount = (int)vcol; - } -! if (amount < curbuf->b_ind_cpp_baseclass) -! amount = curbuf->b_ind_cpp_baseclass; - return amount; - } - -*************** -*** 6526,6533 **** - /* } */ - - static pos_T * -! find_start_brace(ind_maxcomment) /* XXX */ -! int ind_maxcomment; - { - pos_T cursor_save; - pos_T *trypos; ---- 6522,6528 ---- - /* } */ - - static pos_T * -! find_start_brace() /* XXX */ - { - pos_T cursor_save; - pos_T *trypos; -*************** -*** 6543,6549 **** - pos = NULL; - /* ignore the { if it's in a // or / * * / comment */ - if ((colnr_T)cin_skip2pos(trypos) == trypos->col -! && (pos = find_start_comment(ind_maxcomment)) == NULL) /* XXX */ - break; - if (pos != NULL) - curwin->w_cursor.lnum = pos->lnum; ---- 6538,6544 ---- - pos = NULL; - /* ignore the { if it's in a // or / * * / comment */ - if ((colnr_T)cin_skip2pos(trypos) == trypos->col -! && (pos = ind_find_start_comment()) == NULL) /* XXX */ - break; - if (pos != NULL) - curwin->w_cursor.lnum = pos->lnum; -*************** -*** 6557,6565 **** - * Return NULL if no match found. - */ - static pos_T * -! find_match_paren(ind_maxparen, ind_maxcomment) /* XXX */ - int ind_maxparen; -- int ind_maxcomment; - { - pos_T cursor_save; - pos_T *trypos; ---- 6552,6559 ---- - * Return NULL if no match found. - */ - static pos_T * -! find_match_paren(ind_maxparen) /* XXX */ - int ind_maxparen; - { - pos_T cursor_save; - pos_T *trypos; -*************** -*** 6576,6582 **** - pos_copy = *trypos; /* copy trypos, findmatch will change it */ - trypos = &pos_copy; - curwin->w_cursor = *trypos; -! if (find_start_comment(ind_maxcomment) != NULL) /* XXX */ - trypos = NULL; - } - } ---- 6570,6576 ---- - pos_copy = *trypos; /* copy trypos, findmatch will change it */ - trypos = &pos_copy; - curwin->w_cursor = *trypos; -! if (ind_find_start_comment() != NULL) /* XXX */ - trypos = NULL; - } - } -*************** -*** 6591,6605 **** - * looking a few lines further. - */ - static int -! corr_ind_maxparen(ind_maxparen, startpos) -! int ind_maxparen; - pos_T *startpos; - { - long n = (long)startpos->lnum - (long)curwin->w_cursor.lnum; - -! if (n > 0 && n < ind_maxparen / 2) -! return ind_maxparen - (int)n; -! return ind_maxparen; - } - - /* ---- 6585,6598 ---- - * looking a few lines further. - */ - static int -! corr_ind_maxparen(startpos) - pos_T *startpos; - { - long n = (long)startpos->lnum - (long)curwin->w_cursor.lnum; - -! if (n > 0 && n < curbuf->b_ind_maxparen / 2) -! return curbuf->b_ind_maxparen - (int)n; -! return curbuf->b_ind_maxparen; - } - - /* -*************** -*** 6937,6943 **** - - curwin->w_cursor.col = 0; - -! original_line_islabel = cin_islabel(curbuf->b_ind_maxcomment); /* XXX */ - - /* - * #defines and so on always go at the left when included in 'cinkeys'. ---- 6930,6936 ---- - - curwin->w_cursor.col = 0; - -! original_line_islabel = cin_islabel(); /* XXX */ - - /* - * #defines and so on always go at the left when included in 'cinkeys'. -*************** -*** 6973,6979 **** - * comment, try using the 'comments' option. - */ - else if (!cin_iscomment(theline) -! && (trypos = find_start_comment(curbuf->b_ind_maxcomment)) != NULL) - /* XXX */ - { - int lead_start_len = 2; ---- 6966,6972 ---- - * comment, try using the 'comments' option. - */ - else if (!cin_iscomment(theline) -! && (trypos = ind_find_start_comment()) != NULL) - /* XXX */ - { - int lead_start_len = 2; -*************** -*** 7126,7136 **** - /* - * Are we inside parentheses or braces? - */ /* XXX */ -! else if (((trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL - && curbuf->b_ind_java == 0) -! || (tryposBrace = -! find_start_brace(curbuf->b_ind_maxcomment)) != NULL - || trypos != NULL) - { - if (trypos != NULL && tryposBrace != NULL) ---- 7119,7127 ---- - /* - * Are we inside parentheses or braces? - */ /* XXX */ -! else if (((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL - && curbuf->b_ind_java == 0) -! || (tryposBrace = find_start_brace()) != NULL - || trypos != NULL) - { - if (trypos != NULL && tryposBrace != NULL) -*************** -*** 7170,7177 **** - curwin->w_cursor.lnum = lnum; - - /* Skip a comment. XXX */ -! if ((trypos = find_start_comment(curbuf->b_ind_maxcomment)) -! != NULL) - { - lnum = trypos->lnum + 1; - continue; ---- 7161,7167 ---- - curwin->w_cursor.lnum = lnum; - - /* Skip a comment. XXX */ -! if ((trypos = ind_find_start_comment()) != NULL) - { - lnum = trypos->lnum + 1; - continue; -*************** -*** 7179,7186 **** - - /* XXX */ - if ((trypos = find_match_paren( -! corr_ind_maxparen(curbuf->b_ind_maxparen, &cur_curpos), -! curbuf->b_ind_maxcomment)) != NULL - && trypos->lnum == our_paren_pos.lnum - && trypos->col == our_paren_pos.col) - { ---- 7169,7175 ---- - - /* XXX */ - if ((trypos = find_match_paren( -! corr_ind_maxparen(&cur_curpos))) != NULL - && trypos->lnum == our_paren_pos.lnum - && trypos->col == our_paren_pos.col) - { -*************** -*** 7223,7230 **** - curwin->w_cursor.lnum = outermost.lnum; - curwin->w_cursor.col = outermost.col; - -! trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment); - } while (trypos && trypos->lnum == outermost.lnum); - - curwin->w_cursor = cursor_save; ---- 7212,7218 ---- - curwin->w_cursor.lnum = outermost.lnum; - curwin->w_cursor.col = outermost.col; - -! trypos = find_match_paren(curbuf->b_ind_maxparen); - } while (trypos && trypos->lnum == outermost.lnum); - - curwin->w_cursor = cursor_save; -*************** -*** 7235,7242 **** - cin_is_if_for_while_before_offset(line, &outermost.col); - } - -! amount = skip_label(our_paren_pos.lnum, &look, -! curbuf->b_ind_maxcomment); - look = skipwhite(look); - if (*look == '(') - { ---- 7223,7229 ---- - cin_is_if_for_while_before_offset(line, &outermost.col); - } - -! amount = skip_label(our_paren_pos.lnum, &look); - look = skipwhite(look); - if (*look == '(') - { -*************** -*** 7366,7373 **** - { - curwin->w_cursor.lnum = our_paren_pos.lnum; - curwin->w_cursor.col = col; -! if (find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) != NULL) - amount += curbuf->b_ind_unclosed2; - else - { ---- 7353,7359 ---- - { - curwin->w_cursor.lnum = our_paren_pos.lnum; - curwin->w_cursor.col = col; -! if (find_match_paren(curbuf->b_ind_maxparen) != NULL) - amount += curbuf->b_ind_unclosed2; - else - { -*************** -*** 7435,7442 **** - */ - lnum = ourscope; - if (find_last_paren(start, '(', ')') -! && (trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - lnum = trypos->lnum; - - /* ---- 7421,7428 ---- - */ - lnum = ourscope; - if (find_last_paren(start, '(', ')') -! && (trypos = find_match_paren(curbuf->b_ind_maxparen)) -! != NULL) - lnum = trypos->lnum; - - /* -*************** -*** 7449,7455 **** - && cin_iscase(skipwhite(ml_get_curline()), FALSE))) - amount = get_indent(); - else -! amount = skip_label(lnum, &l, curbuf->b_ind_maxcomment); - - start_brace = BRACE_AT_END; - } ---- 7435,7441 ---- - && cin_iscase(skipwhite(ml_get_curline()), FALSE))) - amount = get_indent(); - else -! amount = skip_label(lnum, &l); - - start_brace = BRACE_AT_END; - } -*************** -*** 7478,7491 **** - lookfor = LOOKFOR_INITIAL; - if (cin_iselse(theline)) - lookfor = LOOKFOR_IF; -! else if (cin_iswhileofdo(theline, cur_curpos.lnum, -! curbuf->b_ind_maxparen)) /* XXX */ - lookfor = LOOKFOR_DO; - if (lookfor != LOOKFOR_INITIAL) - { - curwin->w_cursor.lnum = cur_curpos.lnum; -! if (find_match(lookfor, ourscope, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) == OK) - { - amount = get_indent(); /* XXX */ - goto theend; ---- 7464,7475 ---- - lookfor = LOOKFOR_INITIAL; - if (cin_iselse(theline)) - lookfor = LOOKFOR_IF; -! else if (cin_iswhileofdo(theline, cur_curpos.lnum)) /* XXX */ - lookfor = LOOKFOR_DO; - if (lookfor != LOOKFOR_INITIAL) - { - curwin->w_cursor.lnum = cur_curpos.lnum; -! if (find_match(lookfor, ourscope) == OK) - { - amount = get_indent(); /* XXX */ - goto theend; -*************** -*** 7611,7617 **** - * If we're in a comment now, skip to the start of the - * comment. - */ -! trypos = find_start_comment(curbuf->b_ind_maxcomment); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; ---- 7595,7601 ---- - * If we're in a comment now, skip to the start of the - * comment. - */ -! trypos = ind_find_start_comment(); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; -*************** -*** 7636,7644 **** - * (it's a variable declaration). - */ - if (start_brace != BRACE_IN_COL0 -! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum, -! 0, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) - { - /* if the line is terminated with another ',' - * it is a continued variable initialization. ---- 7620,7626 ---- - * (it's a variable declaration). - */ - if (start_brace != BRACE_IN_COL0 -! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0)) - { - /* if the line is terminated with another ',' - * it is a continued variable initialization. -*************** -*** 7670,7681 **** - trypos = NULL; - if (find_last_paren(l, '(', ')')) - trypos = find_match_paren( -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment); - - if (trypos == NULL && find_last_paren(l, '{', '}')) -! trypos = find_start_brace( -! curbuf->b_ind_maxcomment); - - if (trypos != NULL) - { ---- 7652,7661 ---- - trypos = NULL; - if (find_last_paren(l, '(', ')')) - trypos = find_match_paren( -! curbuf->b_ind_maxparen); - - if (trypos == NULL && find_last_paren(l, '{', '}')) -! trypos = find_start_brace(); - - if (trypos != NULL) - { -*************** -*** 7733,7740 **** - - /* If we're in a comment now, skip to the start of - * the comment. */ -! trypos = find_start_comment( -! curbuf->b_ind_maxcomment); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; ---- 7713,7719 ---- - - /* If we're in a comment now, skip to the start of - * the comment. */ -! trypos = ind_find_start_comment(); - if (trypos != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; -*************** -*** 7764,7771 **** - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = find_start_comment(curbuf->b_ind_maxcomment)) -! != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; ---- 7743,7749 ---- - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = ind_find_start_comment()) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; -*************** -*** 7819,7826 **** - * Check that this case label is not for another - * switch() - */ /* XXX */ -! if ((trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) == NULL - || trypos->lnum == ourscope) - { - amount = get_indent(); /* XXX */ ---- 7797,7803 ---- - * Check that this case label is not for another - * switch() - */ /* XXX */ -! if ((trypos = find_start_brace()) == NULL - || trypos->lnum == ourscope) - { - amount = get_indent(); /* XXX */ -*************** -*** 7894,7901 **** - */ - if (lookfor == LOOKFOR_CASE || lookfor == LOOKFOR_SCOPEDECL) - { -! if (find_last_paren(l, '{', '}') && (trypos = -! find_start_brace(curbuf->b_ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; ---- 7871,7878 ---- - */ - if (lookfor == LOOKFOR_CASE || lookfor == LOOKFOR_SCOPEDECL) - { -! if (find_last_paren(l, '{', '}') -! && (trypos = find_start_brace()) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; -*************** -*** 7906,7912 **** - /* - * Ignore jump labels with nothing after them. - */ -! if (!curbuf->b_ind_js && cin_islabel(curbuf->b_ind_maxcomment)) - { - l = after_label(ml_get_curline()); - if (l == NULL || cin_nocode(l)) ---- 7883,7889 ---- - /* - * Ignore jump labels with nothing after them. - */ -! if (!curbuf->b_ind_js && cin_islabel()) - { - l = after_label(ml_get_curline()); - if (l == NULL || cin_nocode(l)) -*************** -*** 7952,7961 **** - } - else - /* XXX */ -! amount = get_baseclass_amount(col, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment, -! curbuf->b_ind_cpp_baseclass); - break; - } - else if (lookfor == LOOKFOR_CPP_BASECLASS) ---- 7929,7935 ---- - } - else - /* XXX */ -! amount = get_baseclass_amount(col); - break; - } - else if (lookfor == LOOKFOR_CPP_BASECLASS) -*************** -*** 7997,8005 **** - * matching it will take us back to the start of the line. - */ - (void)find_last_paren(l, '(', ')'); -! trypos = find_match_paren( -! corr_ind_maxparen(curbuf->b_ind_maxparen, -! &cur_curpos), curbuf->b_ind_maxcomment); - - /* - * If we are looking for ',', we also look for matching ---- 7971,7977 ---- - * matching it will take us back to the start of the line. - */ - (void)find_last_paren(l, '(', ')'); -! trypos = find_match_paren(corr_ind_maxparen(&cur_curpos)); - - /* - * If we are looking for ',', we also look for matching -*************** -*** 8007,8013 **** - */ - if (trypos == NULL && terminated == ',' - && find_last_paren(l, '{', '}')) -! trypos = find_start_brace(curbuf->b_ind_maxcomment); - - if (trypos != NULL) - { ---- 7979,7985 ---- - */ - if (trypos == NULL && terminated == ',' - && find_last_paren(l, '{', '}')) -! trypos = find_start_brace(); - - if (trypos != NULL) - { -*************** -*** 8051,8058 **** - * ignoring any jump label. XXX - */ - if (!curbuf->b_ind_js) -! cur_amount = skip_label(curwin->w_cursor.lnum, -! &l, curbuf->b_ind_maxcomment); - else - cur_amount = get_indent(); - /* ---- 8023,8029 ---- - * ignoring any jump label. XXX - */ - if (!curbuf->b_ind_js) -! cur_amount = skip_label(curwin->w_cursor.lnum, &l); - else - cur_amount = get_indent(); - /* -*************** -*** 8162,8172 **** - curwin->w_cursor.col = - (colnr_T)(l - ml_get_curline()) + 1; - -! if ((trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) == NULL -! || find_match(LOOKFOR_IF, trypos->lnum, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) == FAIL) - break; - } - } ---- 8133,8141 ---- - curwin->w_cursor.col = - (colnr_T)(l - ml_get_curline()) + 1; - -! if ((trypos = find_start_brace()) == NULL -! || find_match(LOOKFOR_IF, trypos->lnum) -! == FAIL) - break; - } - } -*************** -*** 8261,8268 **** - * If so: Ignore until the matching "do". - */ - /* XXX */ -! else if (cin_iswhileofdo_end(terminated, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) - { - /* - * Found an unterminated line after a while ();, line up ---- 8230,8236 ---- - * If so: Ignore until the matching "do". - */ - /* XXX */ -! else if (cin_iswhileofdo_end(terminated)) - { - /* - * Found an unterminated line after a while ();, line up -*************** -*** 8380,8387 **** - l = ml_get_curline(); - if (find_last_paren(l, '(', ')') - && (trypos = find_match_paren( -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - { - /* - * Check if we are on a case label now. This is ---- 8348,8354 ---- - l = ml_get_curline(); - if (find_last_paren(l, '(', ')') - && (trypos = find_match_paren( -! curbuf->b_ind_maxparen)) != NULL) - { - /* - * Check if we are on a case label now. This is -*************** -*** 8415,8422 **** - * Get indent and pointer to text for current line, - * ignoring any jump label. - */ -! amount = skip_label(curwin->w_cursor.lnum, -! &l, curbuf->b_ind_maxcomment); - - if (theline[0] == '{') - amount += curbuf->b_ind_open_extra; ---- 8382,8388 ---- - * Get indent and pointer to text for current line, - * ignoring any jump label. - */ -! amount = skip_label(curwin->w_cursor.lnum, &l); - - if (theline[0] == '{') - amount += curbuf->b_ind_open_extra; -*************** -*** 8439,8449 **** - && cin_iselse(l) - && whilelevel == 0) - { -! if ((trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) == NULL -! || find_match(LOOKFOR_IF, trypos->lnum, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) == FAIL) - break; - continue; - } ---- 8405,8413 ---- - && cin_iselse(l) - && whilelevel == 0) - { -! if ((trypos = find_start_brace()) == NULL -! || find_match(LOOKFOR_IF, trypos->lnum) -! == FAIL) - break; - continue; - } -*************** -*** 8453,8461 **** - * that block. - */ - l = ml_get_curline(); -! if (find_last_paren(l, '{', '}') -! && (trypos = find_start_brace( -! curbuf->b_ind_maxcomment)) != NULL) /* XXX */ - { - curwin->w_cursor = *trypos; - /* if not "else {" check for terminated again */ ---- 8417,8424 ---- - * that block. - */ - l = ml_get_curline(); -! if (find_last_paren(l, '{', '}') /* XXX */ -! && (trypos = find_start_brace()) != NULL) - { - curwin->w_cursor = *trypos; - /* if not "else {" check for terminated again */ -*************** -*** 8516,8524 **** - && !cin_ends_in(theline, (char_u *)":", NULL) - && !cin_ends_in(theline, (char_u *)",", NULL) - && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, -! cur_curpos.lnum + 1, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment) - && !cin_isterminated(theline, FALSE, TRUE)) - { - amount = curbuf->b_ind_func_type; ---- 8479,8485 ---- - && !cin_ends_in(theline, (char_u *)":", NULL) - && !cin_ends_in(theline, (char_u *)",", NULL) - && cin_isfuncdecl(NULL, cur_curpos.lnum + 1, -! cur_curpos.lnum + 1) - && !cin_isterminated(theline, FALSE, TRUE)) - { - amount = curbuf->b_ind_func_type; -*************** -*** 8540,8547 **** - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = find_start_comment( -! curbuf->b_ind_maxcomment)) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; ---- 8501,8507 ---- - /* - * If we're in a comment now, skip to the start of the comment. - */ /* XXX */ -! if ((trypos = ind_find_start_comment()) != NULL) - { - curwin->w_cursor.lnum = trypos->lnum + 1; - curwin->w_cursor.col = 0; -*************** -*** 8561,8569 **** - if (n) - { - /* XXX */ -! amount = get_baseclass_amount(col, curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment, -! curbuf->b_ind_cpp_baseclass); - break; - } - ---- 8521,8527 ---- - if (n) - { - /* XXX */ -! amount = get_baseclass_amount(col); - break; - } - -*************** -*** 8595,8602 **** - /* take us back to opening paren */ - if (find_last_paren(l, '(', ')') - && (trypos = find_match_paren( -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - curwin->w_cursor = *trypos; - - /* For a line ending in ',' that is a continuation line go ---- 8553,8559 ---- - /* take us back to opening paren */ - if (find_last_paren(l, '(', ')') - && (trypos = find_match_paren( -! curbuf->b_ind_maxparen)) != NULL) - curwin->w_cursor = *trypos; - - /* For a line ending in ',' that is a continuation line go -*************** -*** 8627,8635 **** - * If the line looks like a function declaration, and we're - * not in a comment, put it the left margin. - */ -! if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) /* XXX */ - break; - l = ml_get_curline(); - ---- 8584,8590 ---- - * If the line looks like a function declaration, and we're - * not in a comment, put it the left margin. - */ -! if (cin_isfuncdecl(NULL, cur_curpos.lnum, 0)) /* XXX */ - break; - l = ml_get_curline(); - -*************** -*** 8677,8685 **** - * line (and the ones that follow) needs to be indented as - * parameters. - */ -! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0, -! curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) - { - amount = curbuf->b_ind_param; - break; ---- 8632,8638 ---- - * line (and the ones that follow) needs to be indented as - * parameters. - */ -! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0)) - { - amount = curbuf->b_ind_param; - break; -*************** -*** 8710,8717 **** - */ - find_last_paren(l, '(', ')'); - -! if ((trypos = find_match_paren(curbuf->b_ind_maxparen, -! curbuf->b_ind_maxcomment)) != NULL) - curwin->w_cursor = *trypos; - amount = get_indent(); /* XXX */ - break; ---- 8663,8669 ---- - */ - find_last_paren(l, '(', ')'); - -! if ((trypos = find_match_paren(curbuf->b_ind_maxparen)) != NULL) - curwin->w_cursor = *trypos; - amount = get_indent(); /* XXX */ - break; -*************** -*** 8754,8764 **** - } - - static int -! find_match(lookfor, ourscope, ind_maxparen, ind_maxcomment) - int lookfor; - linenr_T ourscope; -- int ind_maxparen; -- int ind_maxcomment; - { - char_u *look; - pos_T *theirscope; ---- 8706,8714 ---- - } - - static int -! find_match(lookfor, ourscope) - int lookfor; - linenr_T ourscope; - { - char_u *look; - pos_T *theirscope; -*************** -*** 8788,8800 **** - if (cin_iselse(look) - || cin_isif(look) - || cin_isdo(look) /* XXX */ -! || cin_iswhileofdo(look, curwin->w_cursor.lnum, ind_maxparen)) - { - /* - * if we've gone outside the braces entirely, - * we must be out of scope... - */ -! theirscope = find_start_brace(ind_maxcomment); /* XXX */ - if (theirscope == NULL) - break; - ---- 8738,8750 ---- - if (cin_iselse(look) - || cin_isif(look) - || cin_isdo(look) /* XXX */ -! || cin_iswhileofdo(look, curwin->w_cursor.lnum)) - { - /* - * if we've gone outside the braces entirely, - * we must be out of scope... - */ -! theirscope = find_start_brace(); /* XXX */ - if (theirscope == NULL) - break; - -*************** -*** 8832,8838 **** - * if it was a "while" then we need to go back to - * another "do", so increment whilelevel. XXX - */ -! if (cin_iswhileofdo(look, curwin->w_cursor.lnum, ind_maxparen)) - { - ++whilelevel; - continue; ---- 8782,8788 ---- - * if it was a "while" then we need to go back to - * another "do", so increment whilelevel. XXX - */ -! if (cin_iswhileofdo(look, curwin->w_cursor.lnum)) - { - ++whilelevel; - continue; -*** ../vim-7.4.070/src/proto/misc1.pro 2013-11-05 07:12:59.000000000 +0100 ---- src/proto/misc1.pro 2013-11-06 03:19:45.000000000 +0100 -*************** -*** 81,87 **** - char_u *FullName_save __ARGS((char_u *fname, int force)); - pos_T *find_start_comment __ARGS((int ind_maxcomment)); - void do_c_expr_indent __ARGS((void)); -! int cin_islabel __ARGS((int ind_maxcomment)); - int cin_iscase __ARGS((char_u *s, int strict)); - int cin_isscopedecl __ARGS((char_u *s)); - void parse_cino __ARGS((buf_T *buf)); ---- 81,87 ---- - char_u *FullName_save __ARGS((char_u *fname, int force)); - pos_T *find_start_comment __ARGS((int ind_maxcomment)); - void do_c_expr_indent __ARGS((void)); -! int cin_islabel __ARGS((void)); - int cin_iscase __ARGS((char_u *s, int strict)); - int cin_isscopedecl __ARGS((char_u *s)); - void parse_cino __ARGS((buf_T *buf)); -*** ../vim-7.4.070/src/version.c 2013-11-05 17:40:47.000000000 +0100 ---- src/version.c 2013-11-06 03:43:44.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 71, - /**/ - --- -A law to reduce crime states: "It is mandatory for a motorist with criminal -intentions to stop at the city limits and telephone the chief of police as he -is entering the town. - [real standing law in Washington, United States of America] - - /// 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 /// diff --git a/7.4.072 b/7.4.072 deleted file mode 100644 index e96888e7..00000000 --- a/7.4.072 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.072 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.072 -Problem: Crash when using Insert mode completion. -Solution: Avoid going past the end of pum_array. (idea by Fransisco Lopes) -Files: src/popupmnu.c - - -*** ../vim-7.4.071/src/popupmnu.c 2011-08-17 18:04:28.000000000 +0200 ---- src/popupmnu.c 2013-11-02 04:01:06.000000000 +0100 -*************** -*** 282,287 **** ---- 282,291 ---- - int round; - int n; - -+ /* Never display more than we have */ -+ if (pum_first > pum_size - pum_height) -+ pum_first = pum_size - pum_height; -+ - if (pum_scrollbar) - { - thumb_heigth = pum_height * pum_height / pum_size; -*************** -*** 672,681 **** - #endif - } - -- /* Never display more than we have */ -- if (pum_first > pum_size - pum_height) -- pum_first = pum_size - pum_height; -- - if (!resized) - pum_redraw(); - ---- 676,681 ---- -*** ../vim-7.4.071/src/version.c 2013-11-06 04:01:31.000000000 +0100 ---- src/version.c 2013-11-06 04:03:18.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 72, - /**/ - --- -No children may attend school with their breath smelling of "wild onions." - [real standing law in West Virginia, United States of America] - - /// 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 /// diff --git a/7.4.073 b/7.4.073 deleted file mode 100644 index 7d9cedcf..00000000 --- a/7.4.073 +++ /dev/null @@ -1,404 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.073 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -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 - - -*** ../vim-7.4.072/runtime/doc/options.txt 2013-08-10 13:24:57.000000000 +0200 ---- runtime/doc/options.txt 2013-11-06 04:18:43.000000000 +0100 -*************** -*** 7594,7600 **** - *'undolevels'* *'ul'* - 'undolevels' 'ul' number (default 100, 1000 for Unix, VMS, - Win32 and OS/2) -! global - {not in Vi} - Maximum number of changes that can be undone. Since undo information - is kept in memory, higher numbers will cause more memory to be used ---- 7594,7600 ---- - *'undolevels'* *'ul'* - 'undolevels' 'ul' number (default 100, 1000 for Unix, VMS, - Win32 and OS/2) -! global or local to buffer |global-local| - {not in Vi} - Maximum number of changes that can be undone. Since undo information - is kept in memory, higher numbers will cause more memory to be used -*************** -*** 7605,7612 **** - < But you can also get Vi compatibility by including the 'u' flag in - 'cpoptions', and still be able to use CTRL-R to repeat undo. - Also see |undo-two-ways|. -! Set to a negative number for no undo at all: > -! set ul=-1 - < This helps when you run out of memory for a single change. - Also see |clear-undo|. - ---- 7605,7613 ---- - < But you can also get Vi compatibility by including the 'u' flag in - 'cpoptions', and still be able to use CTRL-R to repeat undo. - Also see |undo-two-ways|. -! Set to -1 for no undo at all. You might want to do this only for the -! current buffer: > -! setlocal ul=-1 - < This helps when you run out of memory for a single change. - Also see |clear-undo|. - -*** ../vim-7.4.072/src/buffer.c 2013-11-05 17:40:47.000000000 +0100 ---- src/buffer.c 2013-11-06 04:25:27.000000000 +0100 -*************** -*** 1949,1954 **** ---- 1949,1955 ---- - clear_string_option(&buf->b_p_qe); - #endif - buf->b_p_ar = -1; -+ buf->b_p_ul = NO_LOCAL_UNDOLEVEL; - } - - /* -*** ../vim-7.4.072/src/option.c 2013-11-05 07:12:59.000000000 +0100 ---- src/option.c 2013-11-06 04:34:23.000000000 +0100 -*************** -*** 234,239 **** ---- 234,240 ---- - #ifdef FEAT_STL_OPT - # define PV_STL OPT_BOTH(OPT_WIN(WV_STL)) - #endif -+ #define PV_UL OPT_BOTH(OPT_BUF(BV_UL)) - #ifdef FEAT_WINDOWS - # define PV_WFH OPT_WIN(WV_WFH) - #endif -*************** -*** 2683,2689 **** - #endif - {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, - {"undolevels", "ul", P_NUM|P_VI_DEF, -! (char_u *)&p_ul, PV_NONE, - { - #if defined(UNIX) || defined(WIN3264) || defined(OS2) || defined(VMS) - (char_u *)1000L, ---- 2684,2690 ---- - #endif - {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, - {"undolevels", "ul", P_NUM|P_VI_DEF, -! (char_u *)&p_ul, PV_UL, - { - #if defined(UNIX) || defined(WIN3264) || defined(OS2) || defined(VMS) - (char_u *)1000L, -*************** -*** 3313,3318 **** ---- 3314,3320 ---- - - curbuf->b_p_initialized = TRUE; - curbuf->b_p_ar = -1; /* no local 'autoread' value */ -+ curbuf->b_p_ul = NO_LOCAL_UNDOLEVEL; - check_buf_options(curbuf); - check_win_options(curwin); - check_options(); -*************** -*** 4512,4519 **** - ((flags & P_VI_DEF) || cp_val) - ? VI_DEFAULT : VIM_DEFAULT]; - else if (nextchar == '<') -! value = *(long *)get_varp_scope(&(options[opt_idx]), -! OPT_GLOBAL); - else if (((long *)varp == &p_wc - || (long *)varp == &p_wcm) - && (*arg == '<' ---- 4514,4529 ---- - ((flags & P_VI_DEF) || cp_val) - ? VI_DEFAULT : VIM_DEFAULT]; - else if (nextchar == '<') -! { -! /* For 'undolevels' NO_LOCAL_UNDOLEVEL means to -! * use the global value. */ -! if ((long *)varp == &curbuf->b_p_ul -! && opt_flags == OPT_LOCAL) -! value = NO_LOCAL_UNDOLEVEL; -! else -! value = *(long *)get_varp_scope( -! &(options[opt_idx]), OPT_GLOBAL); -! } - else if (((long *)varp == &p_wc - || (long *)varp == &p_wcm) - && (*arg == '<' -*************** -*** 8487,8492 **** ---- 8497,8509 ---- - u_sync(TRUE); - p_ul = value; - } -+ else if (pp == &curbuf->b_p_ul) -+ { -+ /* use the old value, otherwise u_sync() may not work properly */ -+ curbuf->b_p_ul = old_value; -+ u_sync(TRUE); -+ curbuf->b_p_ul = value; -+ } - - #ifdef FEAT_LINEBREAK - /* 'numberwidth' must be positive */ -*************** -*** 9720,9726 **** - /* - * Unset local option value, similar to ":set opt<". - */ -- - void - unset_global_local_option(name, from) - char_u *name; ---- 9737,9742 ---- -*************** -*** 9793,9798 **** ---- 9809,9817 ---- - clear_string_option(&((win_T *)from)->w_p_stl); - break; - #endif -+ case PV_UL: -+ buf->b_p_ul = NO_LOCAL_UNDOLEVEL; -+ break; - } - } - -*************** -*** 9841,9846 **** ---- 9860,9866 ---- - #ifdef FEAT_STL_OPT - case PV_STL: return (char_u *)&(curwin->w_p_stl); - #endif -+ case PV_UL: return (char_u *)&(curbuf->b_p_ul); - } - return NULL; /* "cannot happen" */ - } -*************** -*** 9905,9910 **** ---- 9925,9932 ---- - case PV_STL: return *curwin->w_p_stl != NUL - ? (char_u *)&(curwin->w_p_stl) : p->var; - #endif -+ case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL -+ ? (char_u *)&(curbuf->b_p_ul) : p->var; - - #ifdef FEAT_ARABIC - case PV_ARAB: return (char_u *)&(curwin->w_p_arab); -*************** -*** 10445,10450 **** ---- 10467,10473 ---- - /* options that are normally global but also have a local value - * are not copied, start using the global value */ - buf->b_p_ar = -1; -+ buf->b_p_ul = NO_LOCAL_UNDOLEVEL; - #ifdef FEAT_QUICKFIX - buf->b_p_gp = empty_option; - buf->b_p_mp = empty_option; -*** ../vim-7.4.072/src/option.h 2013-06-26 18:41:39.000000000 +0200 ---- src/option.h 2013-11-06 04:17:40.000000000 +0100 -*************** -*** 1031,1036 **** ---- 1031,1037 ---- - , BV_TW - , BV_TX - , BV_UDF -+ , BV_UL - , BV_WM - , BV_COUNT /* must be the last one */ - }; -*************** -*** 1109,1111 **** ---- 1110,1115 ---- - , WV_WRAP - , WV_COUNT /* must be the last one */ - }; -+ -+ /* Value for b_p_ul indicating the global value must be used. */ -+ #define NO_LOCAL_UNDOLEVEL -123456 -*** ../vim-7.4.072/src/structs.h 2013-11-05 07:12:59.000000000 +0100 ---- src/structs.h 2013-11-06 04:26:17.000000000 +0100 -*************** -*** 1627,1632 **** ---- 1627,1633 ---- - char_u *b_p_dict; /* 'dictionary' local value */ - char_u *b_p_tsr; /* 'thesaurus' local value */ - #endif -+ long b_p_ul; /* 'undolevels' local value */ - #ifdef FEAT_PERSISTENT_UNDO - int b_p_udf; /* 'undofile' */ - #endif -*** ../vim-7.4.072/src/undo.c 2013-09-08 15:40:45.000000000 +0200 ---- src/undo.c 2013-11-06 04:33:12.000000000 +0100 -*************** -*** 83,88 **** ---- 83,89 ---- - - #include "vim.h" - -+ static long get_undolevel __ARGS((void)); - static void u_unch_branch __ARGS((u_header_T *uhp)); - static u_entry_T *u_get_headentry __ARGS((void)); - static void u_getbot __ARGS((void)); -*************** -*** 336,341 **** ---- 337,353 ---- - } - - /* -+ * Get the undolevle value for the current buffer. -+ */ -+ static long -+ get_undolevel() -+ { -+ if (curbuf->b_p_ul == NO_LOCAL_UNDOLEVEL) -+ return p_ul; -+ return curbuf->b_p_ul; -+ } -+ -+ /* - * Common code for various ways to save text before a change. - * "top" is the line above the first changed line. - * "bot" is the line below the last changed line. -*************** -*** 419,425 **** - curbuf->b_new_change = TRUE; - #endif - -! if (p_ul >= 0) - { - /* - * Make a new header entry. Do this first so that we don't mess ---- 431,437 ---- - curbuf->b_new_change = TRUE; - #endif - -! if (get_undolevel() >= 0) - { - /* - * Make a new header entry. Do this first so that we don't mess -*************** -*** 449,455 **** - /* - * free headers to keep the size right - */ -! while (curbuf->b_u_numhead > p_ul && curbuf->b_u_oldhead != NULL) - { - u_header_T *uhfree = curbuf->b_u_oldhead; - ---- 461,468 ---- - /* - * free headers to keep the size right - */ -! while (curbuf->b_u_numhead > get_undolevel() -! && curbuf->b_u_oldhead != NULL) - { - u_header_T *uhfree = curbuf->b_u_oldhead; - -*************** -*** 530,536 **** - } - else - { -! if (p_ul < 0) /* no undo at all */ - return OK; - - /* ---- 543,549 ---- - } - else - { -! if (get_undolevel() < 0) /* no undo at all */ - return OK; - - /* -*************** -*** 1972,1978 **** - { - if (curbuf->b_u_curhead == NULL) /* first undo */ - curbuf->b_u_curhead = curbuf->b_u_newhead; -! else if (p_ul > 0) /* multi level undo */ - /* get next undo */ - curbuf->b_u_curhead = curbuf->b_u_curhead->uh_next.ptr; - /* nothing to undo */ ---- 1985,1991 ---- - { - if (curbuf->b_u_curhead == NULL) /* first undo */ - curbuf->b_u_curhead = curbuf->b_u_newhead; -! else if (get_undolevel() > 0) /* multi level undo */ - /* get next undo */ - curbuf->b_u_curhead = curbuf->b_u_curhead->uh_next.ptr; - /* nothing to undo */ -*************** -*** 1993,1999 **** - } - else - { -! if (curbuf->b_u_curhead == NULL || p_ul <= 0) - { - beep_flush(); /* nothing to redo */ - if (count == startcount - 1) ---- 2006,2012 ---- - } - else - { -! if (curbuf->b_u_curhead == NULL || get_undolevel() <= 0) - { - beep_flush(); /* nothing to redo */ - if (count == startcount - 1) -*************** -*** 2751,2757 **** - if (im_is_preediting()) - return; /* XIM is busy, don't break an undo sequence */ - #endif -! if (p_ul < 0) - curbuf->b_u_synced = TRUE; /* no entries, nothing to do */ - else - { ---- 2764,2770 ---- - if (im_is_preediting()) - return; /* XIM is busy, don't break an undo sequence */ - #endif -! if (get_undolevel() < 0) - curbuf->b_u_synced = TRUE; /* no entries, nothing to do */ - else - { -*************** -*** 2911,2917 **** - } - if (!curbuf->b_u_synced) - return; /* already unsynced */ -! if (p_ul < 0) - return; /* no entries, nothing to do */ - else - { ---- 2924,2930 ---- - } - if (!curbuf->b_u_synced) - return; /* already unsynced */ -! if (get_undolevel() < 0) - return; /* no entries, nothing to do */ - else - { -*** ../vim-7.4.072/src/version.c 2013-11-06 04:04:29.000000000 +0100 ---- src/version.c 2013-11-06 05:21:43.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 73, - /**/ - --- -Living on Earth includes an annual free trip around the Sun. - - /// 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 /// diff --git a/7.4.074 b/7.4.074 deleted file mode 100644 index 70045c08..00000000 --- a/7.4.074 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.074 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.074 -Problem: When undo'ing all changes and creating a new change the undo - structure is incorrect. (Christian Brabandt) -Solution: When deleting the branch starting at the old header, delete the - whole branch, not just the first entry. -Files: src/undo.c - - -*** ../vim-7.4.073/src/undo.c 2013-11-06 05:26:08.000000000 +0100 ---- src/undo.c 2013-11-07 03:01:42.000000000 +0100 -*************** -*** 3121,3127 **** - * all the pointers. */ - if (uhp == buf->b_u_oldhead) - { -! u_freeheader(buf, uhp, uhpp); - return; - } - ---- 3121,3128 ---- - * all the pointers. */ - if (uhp == buf->b_u_oldhead) - { -! while (buf->b_u_oldhead != NULL) -! u_freeheader(buf, buf->b_u_oldhead, uhpp); - return; - } - -*** ../vim-7.4.073/src/version.c 2013-11-06 05:26:08.000000000 +0100 ---- src/version.c 2013-11-07 03:03:02.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 74, - /**/ - --- -LETTERS TO THE EDITOR (The Times of London) - -Dear Sir, - -I am firmly opposed to the spread of microchips either to the home or -to the office.  We have more than enough of them foisted upon us in -public places.  They are a disgusting Americanism, and can only result -in the farmers being forced to grow smaller potatoes, which in turn -will cause massive unemployment in the already severely depressed -agricultural industry. - -Yours faithfully, -        Capt. Quinton D'Arcy, J. P. -        Sevenoaks - - /// 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 /// diff --git a/7.4.075 b/7.4.075 deleted file mode 100644 index f7ba21e1..00000000 --- a/7.4.075 +++ /dev/null @@ -1,290 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.075 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.075 -Problem: Locally setting 'undolevels' is not tested. -Solution: Add a test. (Christian Brabandt) -Files: src/testdir/test100.in, src/testdir/test100.ok, - src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, - src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, - src/testdir/Make_vms.mms, src/testdir/Makefile, src/Makefile - - -*** ../vim-7.4.074/src/testdir/test100.in 2013-11-07 03:24:56.000000000 +0100 ---- src/testdir/test100.in 2013-11-07 03:20:32.000000000 +0100 -*************** -*** 0 **** ---- 1,42 ---- -+ Tests for 'undolevel' setting being global-local -+ -+ STARTTEST -+ :so small.vim -+ :set nocompatible viminfo+=nviminfo ul=5 -+ :fu! FillBuffer() -+ :for i in range(1,13) -+ :put=i -+ :exe "setg ul=" . &g:ul -+ :endfor -+ :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 -+ -*** ../vim-7.4.074/src/testdir/test100.ok 2013-11-07 03:24:56.000000000 +0100 ---- src/testdir/test100.ok 2013-11-07 03:11:51.000000000 +0100 -*************** -*** 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 -*** ../vim-7.4.074/src/testdir/Make_amiga.mak 2013-09-19 17:00:14.000000000 +0200 ---- src/testdir/Make_amiga.mak 2013-11-07 03:07:57.000000000 +0100 -*************** -*** 34,40 **** - 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 - - .SUFFIXES: .in .out - ---- 34,40 ---- - 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 test100.out - - .SUFFIXES: .in .out - -*************** -*** 150,152 **** ---- 150,153 ---- - test97.out: test97.in - test98.out: test98.in - test99.out: test99.in -+ test100.out: test100.in -*** ../vim-7.4.074/src/testdir/Make_dos.mak 2013-09-19 17:00:14.000000000 +0200 ---- src/testdir/Make_dos.mak 2013-11-07 03:08:05.000000000 +0100 -*************** -*** 32,38 **** - 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 - - SCRIPTS32 = test50.out test70.out - ---- 32,39 ---- - 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 \ -! test100.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.074/src/testdir/Make_ming.mak 2013-09-19 17:00:14.000000000 +0200 ---- src/testdir/Make_ming.mak 2013-11-07 03:08:12.000000000 +0100 -*************** -*** 52,58 **** - 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 - - SCRIPTS32 = test50.out test70.out - ---- 52,59 ---- - 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 \ -! test100out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.074/src/testdir/Make_os2.mak 2013-09-19 17:00:14.000000000 +0200 ---- src/testdir/Make_os2.mak 2013-11-07 03:08:18.000000000 +0100 -*************** -*** 34,40 **** - 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 - - .SUFFIXES: .in .out - ---- 34,41 ---- - 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 \ -! test100.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.074/src/testdir/Make_vms.mms 2013-09-19 17:00:14.000000000 +0200 ---- src/testdir/Make_vms.mms 2013-11-07 03:08:24.000000000 +0100 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Sep 19 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 07 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 78,84 **** - 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 - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 78,85 ---- - 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 \ -! test100.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.074/src/testdir/Makefile 2013-09-22 15:03:34.000000000 +0200 ---- src/testdir/Makefile 2013-11-07 03:08:31.000000000 +0100 -*************** -*** 30,36 **** - 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 - - SCRIPTS_GUI = test16.out - ---- 30,36 ---- - 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 test100.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.074/src/Makefile 2013-08-10 14:21:15.000000000 +0200 ---- src/Makefile 2013-11-07 03:10:40.000000000 +0100 -*************** -*** 1882,1888 **** - test60 test61 test62 test63 test64 test65 test66 test67 test68 test69 \ - test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \ - test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \ -! test90 test91 test92 test93 test94 test95 test96 test97 test98 test99: - cd testdir; rm $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) - - testclean: ---- 1883,1890 ---- - test60 test61 test62 test63 test64 test65 test66 test67 test68 test69 \ - test70 test71 test72 test73 test74 test75 test76 test77 test78 test79 \ - test80 test81 test82 test83 test84 test85 test86 test87 test88 test89 \ -! test90 test91 test92 test93 test94 test95 test96 test97 test98 test99 \ -! test100 test101 test102 test103 test104 test105 test106 test107: - cd testdir; rm $@.out; $(MAKE) -f Makefile $@.out VIMPROG=../$(VIMTARGET) - - testclean: -*** ../vim-7.4.074/src/version.c 2013-11-07 03:04:06.000000000 +0100 ---- src/version.c 2013-11-07 03:10:10.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 75, - /**/ - --- -Why is "abbreviation" such a long word? - - /// 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 /// diff --git a/7.4.076 b/7.4.076 deleted file mode 100644 index fa9abbc2..00000000 --- a/7.4.076 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.076 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.076 -Problem: "cgn" does not wrap around the end of the file. (Dimitrov - Dimitrov) -Solution: Restore 'wrapscan' earlier. (Christian Brabandt) -Files: src/search.c - - -*** ../vim-7.4.075/src/search.c 2013-10-02 21:54:57.000000000 +0200 ---- src/search.c 2013-11-07 04:38:46.000000000 +0100 -*************** -*** 4592,4598 **** - ml_get(curwin->w_buffer->b_ml.ml_line_count)); - } - } -! - } - - start_pos = pos; ---- 4592,4598 ---- - ml_get(curwin->w_buffer->b_ml.ml_line_count)); - } - } -! p_ws = old_p_ws; - } - - start_pos = pos; -*************** -*** 4607,4613 **** - if (!VIsual_active) - VIsual = start_pos; - -- p_ws = old_p_ws; - curwin->w_cursor = pos; - VIsual_active = TRUE; - VIsual_mode = 'v'; ---- 4607,4612 ---- -*** ../vim-7.4.075/src/version.c 2013-11-07 03:25:51.000000000 +0100 ---- src/version.c 2013-11-07 04:44:44.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 76, - /**/ - --- -INSPECTOR END OF FILM: Move along. There's nothing to see! Keep moving! - [Suddenly he notices the cameras.] -INSPECTOR END OF FILM: (to Camera) All right, put that away sonny. - [He walks over to it and puts his hand over the lens.] - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.077 b/7.4.077 deleted file mode 100644 index fd2d3d7c..00000000 --- a/7.4.077 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.077 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.077 -Problem: DOS installer creates shortcut without a path, resulting in the - current directory to be C:\Windows\system32. -Solution: Use environment variables. -Files: src/dosinst.c - - -*** ../vim-7.4.076/src/dosinst.c 2013-05-06 04:06:04.000000000 +0200 ---- src/dosinst.c 2013-11-06 18:18:47.000000000 +0100 -*************** -*** 1773,1781 **** - - /* - * We used to use "homedir" as the working directory, but that is a bad choice -! * on multi-user systems. Not specifying a directory appears to work best. - */ -! #define WORKDIR "" - - /* - * Create shortcut(s) in the Start Menu\Programs\Vim folder. ---- 1773,1783 ---- - - /* - * We used to use "homedir" as the working directory, but that is a bad choice -! * on multi-user systems. However, not specifying a directory results in the -! * current directory to be c:\Windows\system32 on Windows 7. Use environment -! * variables instead. - */ -! #define WORKDIR "%HOMEDRIVE%%HOMEPATH%" - - /* - * Create shortcut(s) in the Start Menu\Programs\Vim folder. -*** ../vim-7.4.076/src/version.c 2013-11-07 04:46:43.000000000 +0100 ---- src/version.c 2013-11-07 04:47:42.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 77, - /**/ - --- -JOHN CLEESE PLAYED: SECOND SOLDIER WITH A KEEN INTEREST IN BIRDS, LARGE MAN - WITH DEAD BODY, BLACK KNIGHT, MR NEWT (A VILLAGE - BLACKSMITH INTERESTED IN BURNING WITCHES), A QUITE - EXTRAORDINARILY RUDE FRENCHMAN, TIM THE WIZARD, SIR - LAUNCELOT - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.078 b/7.4.078 deleted file mode 100644 index 56b50763..00000000 --- a/7.4.078 +++ /dev/null @@ -1,114 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.078 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.078 -Problem: MSVC 2013 is not supported. -Solution: Recognize and support MSVC 2013. (Ed Brown) -Files: src/Make_mvc.mak - - -*** ../vim-7.4.077/src/Make_mvc.mak 2013-07-09 13:13:12.000000000 +0200 ---- src/Make_mvc.mak 2013-11-08 03:12:48.000000000 +0100 -*************** -*** 424,429 **** ---- 424,432 ---- - !if "$(_NMAKE_VER)" == "11.00.60610.1" - MSVCVER = 11.0 - !endif -+ !if "$(_NMAKE_VER)" == "12.00.21005.1" -+ MSVCVER = 12.0 -+ !endif - !endif - - # Abort building VIM if version of VC is unrecognised. -*************** -*** 438,444 **** - !endif - - # Convert processor ID to MVC-compatible number -! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") - !if "$(CPUNR)" == "i386" - CPUARG = /G3 - !elseif "$(CPUNR)" == "i486" ---- 441,447 ---- - !endif - - # Convert processor ID to MVC-compatible number -! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") && ("$(MSVCVER)" != "11.0") && ("$(MSVCVER)" != "12.0") - !if "$(CPUNR)" == "i386" - CPUARG = /G3 - !elseif "$(CPUNR)" == "i486" -*************** -*** 472,478 **** - OPTFLAG = /Ox - !endif - -! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") - # Use link time code generation if not worried about size - !if "$(OPTIMIZE)" != "SPACE" - OPTFLAG = $(OPTFLAG) /GL ---- 475,481 ---- - OPTFLAG = /Ox - !endif - -! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0") - # Use link time code generation if not worried about size - !if "$(OPTIMIZE)" != "SPACE" - OPTFLAG = $(OPTFLAG) /GL -*************** -*** 485,491 **** - !endif - - # Static code analysis generally available starting with VS2012 -! !if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") - CFLAGS=$(CFLAGS) /analyze - !endif - ---- 488,494 ---- - !endif - - # Static code analysis generally available starting with VS2012 -! !if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") && ("$(MSVCVER)" == "12.0") - CFLAGS=$(CFLAGS) /analyze - !endif - -*************** -*** 943,949 **** - - # Report link time code generation progress if used. - !ifdef NODEBUG -! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") - !if "$(OPTIMIZE)" != "SPACE" - LINKARGS1 = $(LINKARGS1) /LTCG:STATUS - !endif ---- 946,952 ---- - - # Report link time code generation progress if used. - !ifdef NODEBUG -! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0") - !if "$(OPTIMIZE)" != "SPACE" - LINKARGS1 = $(LINKARGS1) /LTCG:STATUS - !endif -*** ../vim-7.4.077/src/version.c 2013-11-07 04:49:23.000000000 +0100 ---- src/version.c 2013-11-08 03:13:56.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 78, - /**/ - --- -Every time I lose weight, it finds me again! - - /// 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 /// diff --git a/7.4.079 b/7.4.079 deleted file mode 100644 index fbda97d8..00000000 --- a/7.4.079 +++ /dev/null @@ -1,470 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.079 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.079 -Problem: A script cannot detect whether 'hlsearch' highlighting is actually - displayed. -Solution: Add the "v:hlsearch" variable. (ZyX) -Files: src/runtime/doc/eval.txt, src/eval.c, src/ex_docmd.c, - src/option.c, src/screen.c, src/search.c, src/tag.c, src/vim.h, - src/testdir/test101.in, src/testdir/test101.ok, - src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, - src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, - src/testdir/Make_vms.mms, src/testdir/Makefile - - -diff: ../vim-7.4.078/src/runtime/doc/eval.txt: No such file or directory -diff: src/runtime/doc/eval.txt: No such file or directory -*** ../vim-7.4.078/src/eval.c 2013-11-05 07:12:59.000000000 +0100 ---- src/eval.c 2013-11-08 04:11:46.000000000 +0100 -*************** -*** 356,361 **** ---- 356,362 ---- - {VV_NAME("mouse_col", VAR_NUMBER), 0}, - {VV_NAME("operator", VAR_STRING), VV_RO}, - {VV_NAME("searchforward", VAR_NUMBER), 0}, -+ {VV_NAME("hlsearch", VAR_NUMBER), 0}, - {VV_NAME("oldfiles", VAR_LIST), 0}, - {VV_NAME("windowid", VAR_NUMBER), VV_RO}, - }; -*************** -*** 871,876 **** ---- 872,878 ---- - hash_add(&compat_hashtab, p->vv_di.di_key); - } - set_vim_var_nr(VV_SEARCHFORWARD, 1L); -+ set_vim_var_nr(VV_HLSEARCH, 1L); - set_reg_var(0); /* default for v:register is not 0 but '"' */ - - #ifdef EBCDIC -*************** -*** 20613,20618 **** ---- 20615,20627 ---- - v->di_tv.vval.v_number = get_tv_number(tv); - if (STRCMP(varname, "searchforward") == 0) - set_search_direction(v->di_tv.vval.v_number ? '/' : '?'); -+ #ifdef FEAT_SEARCH_EXTRA -+ else if (STRCMP(varname, "hlsearch") == 0) -+ { -+ no_hlsearch = !v->di_tv.vval.v_number; -+ redraw_all_later(SOME_VALID); -+ } -+ #endif - } - return; - } -*** ../vim-7.4.078/src/ex_docmd.c 2013-07-24 15:09:37.000000000 +0200 ---- src/ex_docmd.c 2013-11-08 04:17:01.000000000 +0100 -*************** -*** 11389,11395 **** - ex_nohlsearch(eap) - exarg_T *eap UNUSED; - { -! no_hlsearch = TRUE; - redraw_all_later(SOME_VALID); - } - ---- 11389,11395 ---- - ex_nohlsearch(eap) - exarg_T *eap UNUSED; - { -! SET_NO_HLSEARCH(TRUE); - redraw_all_later(SOME_VALID); - } - -*** ../vim-7.4.078/src/option.c 2013-11-06 05:26:08.000000000 +0100 ---- src/option.c 2013-11-08 04:17:32.000000000 +0100 -*************** -*** 7811,7817 **** - /* when 'hlsearch' is set or reset: reset no_hlsearch */ - else if ((int *)varp == &p_hls) - { -! no_hlsearch = FALSE; - } - #endif - ---- 7811,7817 ---- - /* when 'hlsearch' is set or reset: reset no_hlsearch */ - else if ((int *)varp == &p_hls) - { -! SET_NO_HLSEARCH(FALSE); - } - #endif - -*** ../vim-7.4.078/src/screen.c 2013-07-13 12:23:00.000000000 +0200 ---- src/screen.c 2013-11-08 04:17:48.000000000 +0100 -*************** -*** 7447,7453 **** - { - /* don't free regprog in the match list, it's a copy */ - vim_regfree(shl->rm.regprog); -! no_hlsearch = TRUE; - } - shl->rm.regprog = NULL; - shl->lnum = 0; ---- 7447,7453 ---- - { - /* don't free regprog in the match list, it's a copy */ - vim_regfree(shl->rm.regprog); -! SET_NO_HLSEARCH(TRUE); - } - shl->rm.regprog = NULL; - shl->lnum = 0; -*** ../vim-7.4.078/src/search.c 2013-11-07 04:46:43.000000000 +0100 ---- src/search.c 2013-11-08 04:18:57.000000000 +0100 -*************** -*** 289,295 **** - /* If 'hlsearch' set and search pat changed: need redraw. */ - if (p_hls) - redraw_all_later(SOME_VALID); -! no_hlsearch = FALSE; - #endif - } - } ---- 289,295 ---- - /* If 'hlsearch' set and search pat changed: need redraw. */ - if (p_hls) - redraw_all_later(SOME_VALID); -! SET_NO_HLSEARCH(FALSE); - #endif - } - } -*************** -*** 333,339 **** - spats[1] = saved_spats[1]; - last_idx = saved_last_idx; - # ifdef FEAT_SEARCH_EXTRA -! no_hlsearch = saved_no_hlsearch; - # endif - } - } ---- 333,339 ---- - spats[1] = saved_spats[1]; - last_idx = saved_last_idx; - # ifdef FEAT_SEARCH_EXTRA -! SET_NO_HLSEARCH(saved_no_hlsearch); - # endif - } - } -*************** -*** 1148,1154 **** - if (no_hlsearch && !(options & SEARCH_KEEP)) - { - redraw_all_later(SOME_VALID); -! no_hlsearch = FALSE; - } - #endif - ---- 1148,1154 ---- - if (no_hlsearch && !(options & SEARCH_KEEP)) - { - redraw_all_later(SOME_VALID); -! SET_NO_HLSEARCH(FALSE); - } - #endif - -*************** -*** 5561,5567 **** - spats[idx].off.off = off; - #ifdef FEAT_SEARCH_EXTRA - if (setlast) -! no_hlsearch = !hlsearch_on; - #endif - } - } ---- 5561,5569 ---- - spats[idx].off.off = off; - #ifdef FEAT_SEARCH_EXTRA - if (setlast) -! { -! SET_NO_HLSEARCH(!hlsearch_on); -! } - #endif - } - } -*** ../vim-7.4.078/src/tag.c 2013-09-05 12:06:26.000000000 +0200 ---- src/tag.c 2013-11-08 04:19:14.000000000 +0100 -*************** -*** 3330,3336 **** - #ifdef FEAT_SEARCH_EXTRA - /* restore no_hlsearch when keeping the old search pattern */ - if (search_options) -! no_hlsearch = save_no_hlsearch; - #endif - - /* Return OK if jumped to another file (at least we found the file!). */ ---- 3330,3338 ---- - #ifdef FEAT_SEARCH_EXTRA - /* restore no_hlsearch when keeping the old search pattern */ - if (search_options) -! { -! SET_NO_HLSEARCH(save_no_hlsearch); -! } - #endif - - /* Return OK if jumped to another file (at least we found the file!). */ -*** ../vim-7.4.078/src/vim.h 2013-08-02 16:02:27.000000000 +0200 ---- src/vim.h 2013-11-08 04:16:57.000000000 +0100 -*************** -*** 1864,1872 **** - #define VV_MOUSE_COL 51 - #define VV_OP 52 - #define VV_SEARCHFORWARD 53 -! #define VV_OLDFILES 54 -! #define VV_WINDOWID 55 -! #define VV_LEN 56 /* number of v: vars */ - - #ifdef FEAT_CLIPBOARD - ---- 1864,1873 ---- - #define VV_MOUSE_COL 51 - #define VV_OP 52 - #define VV_SEARCHFORWARD 53 -! #define VV_HLSEARCH 54 -! #define VV_OLDFILES 55 -! #define VV_WINDOWID 56 -! #define VV_LEN 57 /* number of v: vars */ - - #ifdef FEAT_CLIPBOARD - -*************** -*** 2246,2249 **** ---- 2247,2256 ---- - /* Character used as separated in autoload function/variable names. */ - #define AUTOLOAD_CHAR '#' - -+ #ifdef FEAT_EVAL -+ # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr(VV_HLSEARCH, !no_hlsearch) -+ #else -+ # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag) -+ #endif -+ - #endif /* VIM__H */ -*** ../vim-7.4.078/src/testdir/test101.in 2013-11-08 04:28:49.000000000 +0100 ---- src/testdir/test101.in 2013-11-08 04:11:46.000000000 +0100 -*************** -*** 0 **** ---- 1,45 ---- -+ Test for v:hlsearch vim: set ft=vim : -+ -+ STARTTEST -+ :" Last abc: Q -+ :so small.vim -+ :new -+ :call setline(1, repeat(['aaa'], 10)) -+ :set hlsearch nolazyredraw -+ :let r=[] -+ :command -nargs=0 -bar AddR :call add(r, [screenattr(1, 1), v:hlsearch]) -+ /aaa -+ :AddR -+ :nohlsearch -+ :AddR -+ :let v:hlsearch=1 -+ :AddR -+ :let v:hlsearch=0 -+ :AddR -+ :set hlsearch -+ :AddR -+ :let v:hlsearch=0 -+ :AddR -+ n:AddR -+ :let v:hlsearch=0 -+ :AddR -+ / -+ :AddR -+ :let r1=r[0][0] -+ :" I guess it is not guaranteed that screenattr outputs always the same character -+ :call map(r, 'v:val[1].":".(v:val[0]==r1?"highlighted":"not highlighted")') -+ :try -+ : let v:hlsearch=[] -+ :catch -+ : call add(r, matchstr(v:exception,'^Vim(let):E\d\+:')) -+ :endtry -+ :bwipeout! -+ :$put=r -+ :call garbagecollect(1) -+ :" -+ :/^start:/,$wq! test.out -+ :" vim: et ts=4 isk-=\: -+ :call getchar() -+ ENDTEST -+ -+ start: -*** ../vim-7.4.078/src/testdir/test101.ok 2013-11-08 04:28:49.000000000 +0100 ---- src/testdir/test101.ok 2013-11-08 04:11:46.000000000 +0100 -*************** -*** 0 **** ---- 1,11 ---- -+ start: -+ 1:highlighted -+ 0:not highlighted -+ 1:highlighted -+ 0:not highlighted -+ 1:highlighted -+ 0:not highlighted -+ 1:highlighted -+ 0:not highlighted -+ 1:highlighted -+ Vim(let):E706: -*** ../vim-7.4.078/src/testdir/Make_amiga.mak 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/Make_amiga.mak 2013-11-08 04:22:13.000000000 +0100 -*************** -*** 34,40 **** - 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 test100.out - - .SUFFIXES: .in .out - ---- 34,40 ---- - 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 test100.out test101.out - - .SUFFIXES: .in .out - -*************** -*** 151,153 **** ---- 151,154 ---- - test98.out: test98.in - test99.out: test99.in - test100.out: test100.in -+ test101.out: test101.in -*** ../vim-7.4.078/src/testdir/Make_dos.mak 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/Make_dos.mak 2013-11-08 04:22:17.000000000 +0100 -*************** -*** 33,39 **** - 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 \ -! test100.out - - SCRIPTS32 = test50.out test70.out - ---- 33,39 ---- - 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 \ -! test100.out test101.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.078/src/testdir/Make_ming.mak 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/Make_ming.mak 2013-11-08 04:22:19.000000000 +0100 -*************** -*** 53,59 **** - 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 \ -! test100out - - SCRIPTS32 = test50.out test70.out - ---- 53,59 ---- - 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 \ -! test100out test101.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.078/src/testdir/Make_os2.mak 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/Make_os2.mak 2013-11-08 04:22:21.000000000 +0100 -*************** -*** 35,41 **** - 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 \ -! test100.out - - .SUFFIXES: .in .out - ---- 35,41 ---- - 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 \ -! test100.out test101.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.078/src/testdir/Make_vms.mms 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/Make_vms.mms 2013-11-08 04:22:23.000000000 +0100 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 07 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 08 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 79,85 **** - 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 \ -! test100.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 79,85 ---- - 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 \ -! test100.out test101.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.078/src/testdir/Makefile 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/Makefile 2013-11-08 04:22:26.000000000 +0100 -*************** -*** 30,36 **** - 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 test100.out - - SCRIPTS_GUI = test16.out - ---- 30,36 ---- - 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 test100.out test101.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.078/src/version.c 2013-11-08 03:15:39.000000000 +0100 ---- src/version.c 2013-11-08 04:11:08.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 79, - /**/ - --- -Corn oil comes from corn and olive oil comes from olives, so where -does baby oil come from? - - /// 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 /// diff --git a/7.4.080 b/7.4.080 deleted file mode 100644 index eeec1dec..00000000 --- a/7.4.080 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.080 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.080 (after 7.4.079) -Problem: Missing documentation for v:hlsearch. -Solution: Include the right file in the patch. -Files: runtime/doc/eval.txt - - -*** ../vim-7.4.079/runtime/doc/eval.txt 2013-11-02 23:29:17.000000000 +0100 ---- runtime/doc/eval.txt 2013-11-08 04:20:27.000000000 +0100 -*************** -*** 1454,1459 **** ---- 1455,1467 ---- - v:foldstart Used for 'foldtext': first line of closed fold. - Read-only in the |sandbox|. |fold-foldtext| - -+ *v:hlsearch* *hlsearch-variable* -+ v:hlsearch Variable that determines whether search highlighting is on. -+ Makes sense only if 'hlsearch' is enabled which requires -+ |+extra_search|. Setting this variable to zero acts the like -+ |:nohlsearch| command, setting it to one acts like > -+ let &hlsearch = &hlsearch -+ < - *v:insertmode* *insertmode-variable* - v:insertmode Used for the |InsertEnter| and |InsertChange| autocommand - events. Values: -*** ../vim-7.4.079/src/version.c 2013-11-08 04:30:06.000000000 +0100 ---- src/version.c 2013-11-09 01:42:56.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 80, - /**/ - --- -The chat program is in public domain. This is not the GNU public license. -If it breaks then you get to keep both pieces. - -- Copyright notice for the chat program - - /// 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 /// diff --git a/7.4.081 b/7.4.081 deleted file mode 100644 index b2c61d9a..00000000 --- a/7.4.081 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.081 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.081 (after 7.4.078) -Problem: Wrong logic when ANALYZE is "yes". -Solution: Use or instead of and. (KF Leong) -Files: src/Make_mvc.mak - - -*** ../vim-7.4.080/src/Make_mvc.mak 2013-11-08 03:15:39.000000000 +0100 ---- src/Make_mvc.mak 2013-11-08 18:02:54.000000000 +0100 -*************** -*** 488,494 **** - !endif - - # Static code analysis generally available starting with VS2012 -! !if ("$(ANALYZE)" == "yes") && ("$(MSVCVER)" == "11.0") && ("$(MSVCVER)" == "12.0") - CFLAGS=$(CFLAGS) /analyze - !endif - ---- 488,494 ---- - !endif - - # Static code analysis generally available starting with VS2012 -! !if ("$(ANALYZE)" == "yes") && (("$(MSVCVER)" == "10.0") || ("$(MSVCVER)" == "11.0") || ("$(MSVCVER)" == "12.0")) - CFLAGS=$(CFLAGS) /analyze - !endif - -*** ../vim-7.4.080/src/version.c 2013-11-09 01:44:38.000000000 +0100 ---- src/version.c 2013-11-09 02:31:34.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 81, - /**/ - --- -Wi n0t trei a h0liday in Sweden thi yer? - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.082 b/7.4.082 deleted file mode 100644 index 03089d66..00000000 --- a/7.4.082 +++ /dev/null @@ -1,344 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.082 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.082 -Problem: Using "gf" in a changed buffer suggests adding "!", which is not - possible. (Tim Chase) -Solution: Pass a flag to check_changed() wether adding ! make sense. -Files: src/vim.h, src/ex_cmds2.c, src/proto/ex_cmds2.pro, src/globals.h, - src/ex_cmds.c, src/ex_docmd.c - - -*** ../vim-7.4.081/src/vim.h 2013-11-08 04:30:06.000000000 +0100 ---- src/vim.h 2013-11-09 03:00:00.000000000 +0100 -*************** -*** 1176,1181 **** ---- 1176,1190 ---- - #define RESIZE_BOTH 15 /* resize in both directions */ - - /* -+ * flags for check_changed() -+ */ -+ #define CCGD_AW 1 /* do autowrite if buffer was changed */ -+ #define CCGD_MULTWIN 2 /* check also when several wins for the buf */ -+ #define CCGD_FORCEIT 4 /* ! used */ -+ #define CCGD_ALLBUF 8 /* may write all buffers */ -+ #define CCGD_EXCMD 16 /* may suggest using ! */ -+ -+ /* - * "flags" values for option-setting functions. - * When OPT_GLOBAL and OPT_LOCAL are both missing, set both local and global - * values, get local value. -*** ../vim-7.4.081/src/ex_cmds2.c 2013-06-28 20:14:53.000000000 +0200 ---- src/ex_cmds2.c 2013-11-09 03:14:44.000000000 +0100 -*************** -*** 1436,1455 **** - } - - /* -! * return TRUE if buffer was changed and cannot be abandoned. - */ - int -! check_changed(buf, checkaw, mult_win, forceit, allbuf) - buf_T *buf; -! int checkaw; /* do autowrite if buffer was changed */ -! int mult_win; /* check also when several wins for the buf */ -! int forceit; -! int allbuf UNUSED; /* may write all buffers */ - { - if ( !forceit - && bufIsChanged(buf) -! && (mult_win || buf->b_nwindows <= 1) -! && (!checkaw || autowrite(buf, forceit) == FAIL)) - { - #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) - if ((p_confirm || cmdmod.confirm) && p_write) ---- 1436,1455 ---- - } - - /* -! * Return TRUE if buffer was changed and cannot be abandoned. -! * For flags use the CCGD_ values. - */ - int -! check_changed(buf, flags) - buf_T *buf; -! int flags; - { -+ int forceit = (flags & CCGD_FORCEIT); -+ - if ( !forceit - && bufIsChanged(buf) -! && ((flags & CCGD_MULTWIN) || buf->b_nwindows <= 1) -! && (!(flags & CCGD_AW) || autowrite(buf, forceit) == FAIL)) - { - #if defined(FEAT_GUI_DIALOG) || defined(FEAT_CON_DIALOG) - if ((p_confirm || cmdmod.confirm) && p_write) -*************** -*** 1457,1463 **** - buf_T *buf2; - int count = 0; - -! if (allbuf) - for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next) - if (bufIsChanged(buf2) - && (buf2->b_ffname != NULL ---- 1457,1463 ---- - buf_T *buf2; - int count = 0; - -! if (flags & CCGD_ALLBUF) - for (buf2 = firstbuf; buf2 != NULL; buf2 = buf2->b_next) - if (bufIsChanged(buf2) - && (buf2->b_ffname != NULL -*************** -*** 1480,1486 **** - return bufIsChanged(buf); - } - #endif -! EMSG(_(e_nowrtmsg)); - return TRUE; - } - return FALSE; ---- 1480,1489 ---- - return bufIsChanged(buf); - } - #endif -! if (flags & CCGD_EXCMD) -! EMSG(_(e_nowrtmsg)); -! else -! EMSG(_(e_nowrtmsg_nobang)); - return TRUE; - } - return FALSE; -*************** -*** 1690,1696 **** - { - /* Try auto-writing the buffer. If this fails but the buffer no - * longer exists it's not changed, that's OK. */ -! if (check_changed(buf, p_awa, TRUE, FALSE, TRUE) && buf_valid(buf)) - break; /* didn't save - still changes */ - } - } ---- 1693,1701 ---- - { - /* Try auto-writing the buffer. If this fails but the buffer no - * longer exists it's not changed, that's OK. */ -! if (check_changed(buf, (p_awa ? CCGD_AW : 0) -! | CCGD_MULTWIN -! | CCGD_ALLBUF) && buf_valid(buf)) - break; /* didn't save - still changes */ - } - } -*************** -*** 2274,2280 **** - vim_free(p); - } - if ((!P_HID(curbuf) || !other) -! && check_changed(curbuf, TRUE, !other, eap->forceit, FALSE)) - return; - } - ---- 2279,2288 ---- - vim_free(p); - } - if ((!P_HID(curbuf) || !other) -! && check_changed(curbuf, CCGD_AW -! | (other ? 0 : CCGD_MULTWIN) -! | (eap->forceit ? CCGD_FORCEIT : 0) -! | CCGD_EXCMD)) - return; - } - -*************** -*** 2315,2321 **** - */ - if ( P_HID(curbuf) - || eap->cmdidx == CMD_snext -! || !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE)) - { - if (*eap->arg != NUL) /* redefine file list */ - { ---- 2323,2331 ---- - */ - if ( P_HID(curbuf) - || eap->cmdidx == CMD_snext -! || !check_changed(curbuf, CCGD_AW -! | (eap->forceit ? CCGD_FORCEIT : 0) -! | CCGD_EXCMD)) - { - if (*eap->arg != NUL) /* redefine file list */ - { -*************** -*** 2458,2464 **** - if (eap->cmdidx == CMD_windo - || eap->cmdidx == CMD_tabdo - || P_HID(curbuf) -! || !check_changed(curbuf, TRUE, FALSE, eap->forceit, FALSE)) - { - /* start at the first argument/window/buffer */ - i = 0; ---- 2468,2476 ---- - if (eap->cmdidx == CMD_windo - || eap->cmdidx == CMD_tabdo - || P_HID(curbuf) -! || !check_changed(curbuf, CCGD_AW -! | (eap->forceit ? CCGD_FORCEIT : 0) -! | CCGD_EXCMD)) - { - /* start at the first argument/window/buffer */ - i = 0; -*** ../vim-7.4.081/src/proto/ex_cmds2.pro 2013-08-10 13:37:10.000000000 +0200 ---- src/proto/ex_cmds2.pro 2013-11-09 03:18:02.000000000 +0100 -*************** -*** 35,41 **** - int prof_def_func __ARGS((void)); - int autowrite __ARGS((buf_T *buf, int forceit)); - void autowrite_all __ARGS((void)); -! int check_changed __ARGS((buf_T *buf, int checkaw, int mult_win, int forceit, int allbuf)); - void browse_save_fname __ARGS((buf_T *buf)); - void dialog_changed __ARGS((buf_T *buf, int checkall)); - int can_abandon __ARGS((buf_T *buf, int forceit)); ---- 35,41 ---- - int prof_def_func __ARGS((void)); - int autowrite __ARGS((buf_T *buf, int forceit)); - void autowrite_all __ARGS((void)); -! int check_changed __ARGS((buf_T *buf, int flags)); - void browse_save_fname __ARGS((buf_T *buf)); - void dialog_changed __ARGS((buf_T *buf, int checkall)); - int can_abandon __ARGS((buf_T *buf, int forceit)); -*** ../vim-7.4.081/src/globals.h 2013-07-04 19:53:44.000000000 +0200 ---- src/globals.h 2013-11-09 03:05:54.000000000 +0100 -*************** -*** 1490,1495 **** ---- 1490,1496 ---- - EXTERN char_u e_notopen[] INIT(= N_("E484: Can't open file %s")); - EXTERN char_u e_notread[] INIT(= N_("E485: Can't read file %s")); - EXTERN char_u e_nowrtmsg[] INIT(= N_("E37: No write since last change (add ! to override)")); -+ EXTERN char_u e_nowrtmsg_nobang[] INIT(= N_("E37: No write since last change")); - EXTERN char_u e_null[] INIT(= N_("E38: Null argument")); - #ifdef FEAT_DIGRAPHS - EXTERN char_u e_number_exp[] INIT(= N_("E39: Number expected")); -*** ../vim-7.4.081/src/ex_cmds.c 2013-10-02 18:43:00.000000000 +0200 ---- src/ex_cmds.c 2013-11-09 03:19:25.000000000 +0100 -*************** -*** 3253,3260 **** - if ( ((!other_file && !(flags & ECMD_OLDBUF)) - || (curbuf->b_nwindows == 1 - && !(flags & (ECMD_HIDE | ECMD_ADDBUF)))) -! && check_changed(curbuf, p_awa, !other_file, -! (flags & ECMD_FORCEIT), FALSE)) - { - if (fnum == 0 && other_file && ffname != NULL) - (void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum); ---- 3253,3262 ---- - if ( ((!other_file && !(flags & ECMD_OLDBUF)) - || (curbuf->b_nwindows == 1 - && !(flags & (ECMD_HIDE | ECMD_ADDBUF)))) -! && check_changed(curbuf, (p_awa ? CCGD_AW : 0) -! | (other_file ? 0 : CCGD_MULTWIN) -! | ((flags & ECMD_FORCEIT) ? CCGD_FORCEIT : 0) -! | (eap == NULL ? 0 : CCGD_EXCMD))) - { - if (fnum == 0 && other_file && ffname != NULL) - (void)setaltfname(ffname, sfname, newlnum < 0 ? 0 : newlnum); -*************** -*** 7664,7670 **** - # ifdef FEAT_WINDOWS - ++emsg_off; - # endif -! split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE); - # ifdef FEAT_WINDOWS - --emsg_off; - # else ---- 7666,7672 ---- - # ifdef FEAT_WINDOWS - ++emsg_off; - # endif -! split = check_changed(curbuf, CCGD_AW | CCGD_EXCMD); - # ifdef FEAT_WINDOWS - --emsg_off; - # else -*** ../vim-7.4.081/src/ex_docmd.c 2013-11-08 04:30:06.000000000 +0100 ---- src/ex_docmd.c 2013-11-09 03:30:10.000000000 +0100 -*************** -*** 6565,6571 **** - if (check_more(FALSE, eap->forceit) == OK && only_one_window()) - exiting = TRUE; - if ((!P_HID(curbuf) -! && check_changed(curbuf, p_awa, FALSE, eap->forceit, FALSE)) - || check_more(TRUE, eap->forceit) == FAIL - || (only_one_window() && check_changed_any(eap->forceit))) - { ---- 6565,6573 ---- - if (check_more(FALSE, eap->forceit) == OK && only_one_window()) - exiting = TRUE; - if ((!P_HID(curbuf) -! && check_changed(curbuf, (p_awa ? CCGD_AW : 0) -! | (eap->forceit ? CCGD_FORCEIT : 0) -! | CCGD_EXCMD)) - || check_more(TRUE, eap->forceit) == FAIL - || (only_one_window() && check_changed_any(eap->forceit))) - { -*************** -*** 7099,7105 **** - if (!P_HID(curbuf) && !split) - { - ++emsg_off; -! split = check_changed(curbuf, TRUE, FALSE, FALSE, FALSE); - --emsg_off; - } - if (split) ---- 7101,7107 ---- - if (!P_HID(curbuf) && !split) - { - ++emsg_off; -! split = check_changed(curbuf, CCGD_AW); - --emsg_off; - } - if (split) -*************** -*** 7361,7367 **** - { - /* Set recoverymode right away to avoid the ATTENTION prompt. */ - recoverymode = TRUE; -! if (!check_changed(curbuf, p_awa, TRUE, eap->forceit, FALSE) - && (*eap->arg == NUL - || setfname(curbuf, eap->arg, NULL, TRUE) == OK)) - ml_recover(); ---- 7363,7373 ---- - { - /* Set recoverymode right away to avoid the ATTENTION prompt. */ - recoverymode = TRUE; -! if (!check_changed(curbuf, (p_awa ? CCGD_AW : 0) -! | CCGD_MULTWIN -! | (eap->forceit ? CCGD_FORCEIT : 0) -! | CCGD_EXCMD) -! - && (*eap->arg == NUL - || setfname(curbuf, eap->arg, NULL, TRUE) == OK)) - ml_recover(); -*** ../vim-7.4.081/src/version.c 2013-11-09 02:32:15.000000000 +0100 ---- src/version.c 2013-11-09 03:26:06.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 82, - /**/ - --- -People who want to share their religious views with you -almost never want you to share yours with them. - - /// 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 /// diff --git a/7.4.083 b/7.4.083 deleted file mode 100644 index c71450eb..00000000 --- a/7.4.083 +++ /dev/null @@ -1,136 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.083 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.083 -Problem: It's hard to avoid adding a used pattern to the search history. -Solution: Add the ":keeppatterns" modifier. (Christian Brabandt) -Files: runtime/doc/cmdline.txt, src/ex_cmds.h, src/ex_docmd.c, - src/ex_getln.c, src/structs.h - - -*** ../vim-7.4.082/runtime/doc/cmdline.txt 2013-08-10 13:24:52.000000000 +0200 ---- runtime/doc/cmdline.txt 2013-11-09 04:26:30.000000000 +0100 -*************** -*** 356,361 **** ---- 356,365 ---- - List the recent five entries from all histories: > - :history all -5, - -+ :keepp[atterns] {command} *:keepp* *:keeppatterns* -+ Execute {command}, without adding anything to the search -+ history -+ - ============================================================================== - 2. Command-line completion *cmdline-completion* - -*** ../vim-7.4.082/src/ex_cmds.h 2013-06-08 15:08:20.000000000 +0200 ---- src/ex_cmds.h 2013-11-09 04:26:30.000000000 +0100 -*************** -*** 477,482 **** ---- 477,484 ---- - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), -+ EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier, -+ NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_keepalt, "keepalt", ex_wrongmodifier, - NEEDARG|EXTRA|NOTRLCOM), - EX(CMD_list, "list", ex_print, -*** ../vim-7.4.082/src/ex_docmd.c 2013-11-09 03:31:45.000000000 +0100 ---- src/ex_docmd.c 2013-11-09 04:31:36.000000000 +0100 -*************** -*** 1843,1848 **** ---- 1843,1853 ---- - cmdmod.keepalt = TRUE; - continue; - } -+ if (checkforcmd(&ea.cmd, "keeppatterns", 5)) -+ { -+ cmdmod.keeppatterns = TRUE; -+ continue; -+ } - if (!checkforcmd(&ea.cmd, "keepjumps", 5)) - break; - cmdmod.keepjumps = TRUE; -*************** -*** 2584,2589 **** ---- 2589,2595 ---- - case CMD_keepalt: - case CMD_keepjumps: - case CMD_keepmarks: -+ case CMD_keeppatterns: - case CMD_leftabove: - case CMD_let: - case CMD_lockmarks: -*************** -*** 3089,3094 **** ---- 3095,3101 ---- - {"keepalt", 5, FALSE}, - {"keepjumps", 5, FALSE}, - {"keepmarks", 3, FALSE}, -+ {"keeppatterns", 5, FALSE}, - {"leftabove", 5, FALSE}, - {"lockmarks", 3, FALSE}, - {"noautocmd", 3, FALSE}, -*************** -*** 3597,3602 **** ---- 3604,3610 ---- - case CMD_keepalt: - case CMD_keepjumps: - case CMD_keepmarks: -+ case CMD_keeppatterns: - case CMD_leftabove: - case CMD_lockmarks: - case CMD_rightbelow: -*** ../vim-7.4.082/src/ex_getln.c 2013-11-05 07:12:59.000000000 +0100 ---- src/ex_getln.c 2013-11-09 04:26:30.000000000 +0100 -*************** -*** 5498,5503 **** ---- 5498,5506 ---- - if (hislen == 0) /* no history */ - return; - -+ if (cmdmod.keeppatterns && histype == HIST_SEARCH) -+ return; -+ - /* - * Searches inside the same mapping overwrite each other, so that only - * the last line is kept. Be careful not to remove a line that was moved -*** ../vim-7.4.082/src/structs.h 2013-11-06 05:26:08.000000000 +0100 ---- src/structs.h 2013-11-09 04:26:30.000000000 +0100 -*************** -*** 542,547 **** ---- 542,548 ---- - int keepmarks; /* TRUE when ":keepmarks" was used */ - int keepjumps; /* TRUE when ":keepjumps" was used */ - int lockmarks; /* TRUE when ":lockmarks" was used */ -+ int keeppatterns; /* TRUE when ":keeppatterns" was used */ - # ifdef FEAT_AUTOCMD - char_u *save_ei; /* saved value of 'eventignore' */ - # endif -*** ../vim-7.4.082/src/version.c 2013-11-09 03:31:45.000000000 +0100 ---- src/version.c 2013-11-09 04:29:07.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 83, - /**/ - --- -I am always surprised in the Linux world how quickly solutions can be -obtained. (Imagine sending an email to Bill Gates, asking why Windows -crashed, and how to fix it... and then getting an answer that fixed the -problem... <0>_<0> !) -- Mark Langdon - - /// 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 /// diff --git a/7.4.084 b/7.4.084 deleted file mode 100644 index 142e251d..00000000 --- a/7.4.084 +++ /dev/null @@ -1,184 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.084 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.084 -Problem: Python: interrupt not being properly discarded. (Yggdroot Chen) -Solution: Discard interrupt in VimTryEnd. (ZyX) -Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test86.ok, - src/testdir/test87.in, src/testdir/test87.ok - - -*** ../vim-7.4.083/src/if_py_both.h 2013-11-04 00:34:47.000000000 +0100 ---- src/if_py_both.h 2013-11-11 00:56:41.000000000 +0100 -*************** -*** 558,564 **** - /* Keyboard interrupt should be preferred over anything else */ - if (got_int) - { -! did_throw = got_int = FALSE; - PyErr_SetNone(PyExc_KeyboardInterrupt); - return -1; - } ---- 558,568 ---- - /* Keyboard interrupt should be preferred over anything else */ - if (got_int) - { -! if (current_exception != NULL) -! discard_current_exception(); -! else -! need_rethrow = did_throw = FALSE; -! got_int = FALSE; - PyErr_SetNone(PyExc_KeyboardInterrupt); - return -1; - } -*************** -*** 567,573 **** - /* Python exception is preferred over vim one; unlikely to occur though */ - else if (PyErr_Occurred()) - { -! did_throw = FALSE; - return -1; - } - /* Finally transform VimL exception to python one */ ---- 571,580 ---- - /* Python exception is preferred over vim one; unlikely to occur though */ - else if (PyErr_Occurred()) - { -! if (current_exception != NULL) -! discard_current_exception(); -! else -! need_rethrow = did_throw = FALSE; - return -1; - } - /* Finally transform VimL exception to python one */ -*** ../vim-7.4.083/src/testdir/test86.in 2013-11-04 00:34:47.000000000 +0100 ---- src/testdir/test86.in 2013-11-11 00:56:11.000000000 +0100 -*************** -*** 1281,1286 **** ---- 1281,1317 ---- - EOF - :delfunction Exe - :" -+ :" Regression: interrupting vim.command propagates to next vim.command -+ py << EOF -+ def test_keyboard_interrupt(): -+ try: -+ vim.command('while 1 | endwhile') -+ except KeyboardInterrupt: -+ cb.append('Caught KeyboardInterrupt') -+ except Exception: -+ cb.append('!!!!!!!! Caught exception: ' + repr(sys.exc_info)) -+ else: -+ cb.append('!!!!!!!! No exception') -+ try: -+ vim.command('$ put =\'Running :put\'') -+ except KeyboardInterrupt: -+ cb.append('!!!!!!!! Caught KeyboardInterrupt') -+ except Exception: -+ cb.append('!!!!!!!! Caught exception: ' + repr(sys.exc_info)) -+ else: -+ cb.append('No exception') -+ EOF -+ :debuggreedy -+ :call inputsave() -+ :call feedkeys("s\ns\ns\ns\nq\n") -+ :redir => output -+ :debug silent! py test_keyboard_interrupt() -+ :redir END -+ :0 debuggreedy -+ :silent $put =output -+ :unlet output -+ :py del test_keyboard_interrupt -+ :" - :" Cleanup - py << EOF - del cb -*** ../vim-7.4.083/src/testdir/test86.ok 2013-11-04 00:34:47.000000000 +0100 ---- src/testdir/test86.ok 2013-11-11 00:56:11.000000000 +0100 -*************** -*** 1198,1200 **** ---- 1198,1204 ---- - vim.eval("Exe('echoerr ''jkl''')"):error:('Vim(echoerr):jkl',) - vim.eval("Exe('xxx_non_existent_command_xxx')"):error:('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',) - vim.bindeval("Exe('xxx_non_existent_command_xxx')"):error:('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',) -+ Caught KeyboardInterrupt -+ Running :put -+ No exception -+ -*** ../vim-7.4.083/src/testdir/test87.in 2013-11-04 00:34:47.000000000 +0100 ---- src/testdir/test87.in 2013-11-11 00:56:11.000000000 +0100 -*************** -*** 1232,1237 **** ---- 1232,1268 ---- - EOF - :delfunction Exe - :" -+ :" Regression: interrupting vim.command propagates to next vim.command -+ py3 << EOF -+ def test_keyboard_interrupt(): -+ try: -+ vim.command('while 1 | endwhile') -+ except KeyboardInterrupt: -+ cb.append('Caught KeyboardInterrupt') -+ except Exception as e: -+ cb.append('!!!!!!!! Caught exception: ' + repr(e)) -+ else: -+ cb.append('!!!!!!!! No exception') -+ try: -+ vim.command('$ put =\'Running :put\'') -+ except KeyboardInterrupt: -+ cb.append('!!!!!!!! Caught KeyboardInterrupt') -+ except Exception as e: -+ cb.append('!!!!!!!! Caught exception: ' + repr(e)) -+ else: -+ cb.append('No exception') -+ EOF -+ :debuggreedy -+ :call inputsave() -+ :call feedkeys("s\ns\ns\ns\nq\n") -+ :redir => output -+ :debug silent! py3 test_keyboard_interrupt() -+ :redir END -+ :0 debuggreedy -+ :silent $put =output -+ :unlet output -+ :py3 del test_keyboard_interrupt -+ :" - :" Cleanup - py3 << EOF - del cb -*** ../vim-7.4.083/src/testdir/test87.ok 2013-11-04 00:34:47.000000000 +0100 ---- src/testdir/test87.ok 2013-11-11 00:56:11.000000000 +0100 -*************** -*** 1187,1189 **** ---- 1187,1193 ---- - vim.eval("Exe('echoerr ''jkl''')"):(, error('Vim(echoerr):jkl',)) - vim.eval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) - vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) -+ Caught KeyboardInterrupt -+ Running :put -+ No exception -+ -*** ../vim-7.4.083/src/version.c 2013-11-09 05:30:18.000000000 +0100 ---- src/version.c 2013-11-11 00:55:23.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 84, - /**/ - --- -Computers make very fast, very accurate, mistakes. - - /// 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 /// diff --git a/7.4.085 b/7.4.085 deleted file mode 100644 index a6e9a804..00000000 --- a/7.4.085 +++ /dev/null @@ -1,118 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.085 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.085 -Problem: When inserting text in Visual block mode and moving the cursor the - wrong text gets repeated in other lines. -Solution: Use the '[ mark to find the start of the actually inserted text. - (Christian Brabandt) -Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok - - -*** ../vim-7.4.084/src/ops.c 2013-11-05 07:12:59.000000000 +0100 ---- src/ops.c 2013-11-11 01:23:14.000000000 +0100 -*************** -*** 2640,2645 **** ---- 2640,2670 ---- - { - struct block_def bd2; - -+ /* The user may have moved the cursor before inserting something, try -+ * to adjust the block for that. */ -+ if (oap->start.lnum == curbuf->b_op_start.lnum) -+ { -+ if (oap->op_type == OP_INSERT -+ && oap->start.col != curbuf->b_op_start.col) -+ { -+ oap->start.col = curbuf->b_op_start.col; -+ pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) -+ - oap->start_vcol; -+ oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd); -+ } -+ else if (oap->op_type == OP_APPEND -+ && oap->end.col >= curbuf->b_op_start.col) -+ { -+ oap->start.col = curbuf->b_op_start.col; -+ /* reset pre_textlen to the value of OP_INSERT */ -+ pre_textlen += bd.textlen; -+ pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) -+ - oap->start_vcol; -+ oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd); -+ oap->op_type = OP_INSERT; -+ } -+ } -+ - /* - * Spaces and tabs in the indent may have changed to other spaces and - * tabs. Get the starting column again and correct the length. -*** ../vim-7.4.084/src/testdir/test39.in 2013-11-04 01:41:11.000000000 +0100 ---- src/testdir/test39.in 2013-11-11 01:20:51.000000000 +0100 -*************** -*** 19,24 **** ---- 19,28 ---- - :" Test block-change - G$khhhhhkkcmno - :$-4,$w! test.out -+ :" Test block-insert using cursor keys for movement -+ /^aaaa/ -+ :exe ":norm! l\jjjlllI\\ \" -+ :/^aa/,/^$/w >> test.out - :" gUe must uppercase a whole word, also when ß changes to SS - Gothe youtußeuu endYpk0wgUe - :" gUfx must uppercase until x, inclusive. -*************** -*** 40,45 **** ---- 44,54 ---- - :qa! - ENDTEST - -+ aaaaaa -+ bbbbbb -+ cccccc -+ dddddd -+ - abcdefghijklm - abcdefghijklm - abcdefghijklm -*** ../vim-7.4.084/src/testdir/test39.ok 2013-11-04 01:41:11.000000000 +0100 ---- src/testdir/test39.ok 2013-11-11 01:20:51.000000000 +0100 -*************** -*** 3,8 **** ---- 3,13 ---- - axyzqqqqef mno ghijklm - axyzqqqqefgmnoklm - abcdqqqqijklm -+ aaa aaa -+ bbb bbb -+ ccc ccc -+ ddd ddd -+ - the YOUTUSSEUU end - - yOUSSTUSSEXu - - THE YOUTUSSEUU END -*** ../vim-7.4.084/src/version.c 2013-11-11 01:05:43.000000000 +0100 ---- src/version.c 2013-11-11 01:18:01.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 85, - /**/ - --- -SOLDIER: What? Ridden on a horse? -ARTHUR: Yes! -SOLDIER: You're using coconuts! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.086 b/7.4.086 deleted file mode 100644 index 46f9eb90..00000000 --- a/7.4.086 +++ /dev/null @@ -1,145 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.086 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.086 -Problem: Skipping over an expression when not evaluating it does not work - properly for dict members. -Solution: Skip over unrecognized expression. (ZyX) -Files: src/eval.c, src/testdir/test34.in, src/testdir/test34.ok - - -*** ../vim-7.4.085/src/eval.c 2013-11-08 04:30:06.000000000 +0100 ---- src/eval.c 2013-11-11 04:11:38.000000000 +0100 -*************** -*** 19845,19868 **** - while (ret == OK - && (**arg == '[' - || (**arg == '.' && rettv->v_type == VAR_DICT) -! || (**arg == '(' && rettv->v_type == VAR_FUNC)) - && !vim_iswhite(*(*arg - 1))) - { - if (**arg == '(') - { - /* need to copy the funcref so that we can clear rettv */ -! functv = *rettv; -! rettv->v_type = VAR_UNKNOWN; - -! /* Invoke the function. Recursive! */ -! s = functv.vval.v_string; - ret = get_func_tv(s, (int)STRLEN(s), rettv, arg, - curwin->w_cursor.lnum, curwin->w_cursor.lnum, - &len, evaluate, selfdict); - - /* Clear the funcref afterwards, so that deleting it while - * evaluating the arguments is possible (see test55). */ -! clear_tv(&functv); - - /* Stop the expression evaluation when immediately aborting on - * error, or when an interrupt occurred or an exception was thrown ---- 19845,19874 ---- - while (ret == OK - && (**arg == '[' - || (**arg == '.' && rettv->v_type == VAR_DICT) -! || (**arg == '(' && (!evaluate || rettv->v_type == VAR_FUNC))) - && !vim_iswhite(*(*arg - 1))) - { - if (**arg == '(') - { - /* need to copy the funcref so that we can clear rettv */ -! if (evaluate) -! { -! functv = *rettv; -! rettv->v_type = VAR_UNKNOWN; - -! /* Invoke the function. Recursive! */ -! s = functv.vval.v_string; -! } -! else -! s = (char_u *)""; - ret = get_func_tv(s, (int)STRLEN(s), rettv, arg, - curwin->w_cursor.lnum, curwin->w_cursor.lnum, - &len, evaluate, selfdict); - - /* Clear the funcref afterwards, so that deleting it while - * evaluating the arguments is possible (see test55). */ -! if (evaluate) -! clear_tv(&functv); - - /* Stop the expression evaluation when immediately aborting on - * error, or when an interrupt occurred or an exception was thrown -*** ../vim-7.4.085/src/testdir/test34.in 2012-07-16 16:51:29.000000000 +0200 ---- src/testdir/test34.in 2013-11-11 04:10:13.000000000 +0100 -*************** -*** 1,6 **** ---- 1,7 ---- - Test for user functions. - Also test an mapping calling a function. - Also test that a builtin function cannot be replaced. -+ Also test for regression when calling arbitrary expression. - - STARTTEST - :so small.vim -*************** -*** 62,68 **** - [(one again:call append(line('$'), max([1, 2, 3])) - :call extend(g:, {'max': function('min')}) - :call append(line('$'), max([1, 2, 3])) -! :$-7,$w! test.out - :delfunc Table - :delfunc Compute - :delfunc Expr1 ---- 63,79 ---- - [(one again:call append(line('$'), max([1, 2, 3])) - :call extend(g:, {'max': function('min')}) - :call append(line('$'), max([1, 2, 3])) -! :try -! : " Regression: the first line below used to throw ?E110: Missing ')'? -! : " Second is here just to prove that this line is correct when not skipping -! : " rhs of &&. -! : $put =(0&&(function('tr'))(1, 2, 3)) -! : $put =(1&&(function('tr'))(1, 2, 3)) -! :catch -! : $put ='!!! Unexpected exception:' -! : $put =v:exception -! :endtry -! :$-9,$w! test.out - :delfunc Table - :delfunc Compute - :delfunc Expr1 -*** ../vim-7.4.085/src/testdir/test34.ok 2012-07-16 16:43:15.000000000 +0200 ---- src/testdir/test34.ok 2013-11-11 04:10:13.000000000 +0100 -*************** -*** 6,8 **** ---- 6,10 ---- - 1. one again - 3 - 3 -+ 0 -+ 1 -*** ../vim-7.4.085/src/version.c 2013-11-11 01:29:16.000000000 +0100 ---- src/version.c 2013-11-11 04:15:59.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 86, - /**/ - --- -ARTHUR: The swallow may fly south with the sun, or the house martin or the - plover seek warmer hot lands in winter, yet these are not strangers to - our land. -SOLDIER: Are you suggesting coconuts migrate? - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.087 b/7.4.087 deleted file mode 100644 index b8c1a48a..00000000 --- a/7.4.087 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.087 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.087 -Problem: Compiler warning on 64 bit Windows systems. -Solution: Fix type cast. (Mike Williams) -Files: src/ops.c - - -*** ../vim-7.4.086/src/ops.c 2013-11-11 01:29:16.000000000 +0100 ---- src/ops.c 2013-11-11 23:16:06.000000000 +0100 -*************** -*** 2193,2199 **** - else - { - /* Replacing with \r or \n means splitting the line. */ -! after_p = alloc_check((unsigned)oldlen + 1 + n - STRLEN(newp)); - if (after_p != NULL) - STRMOVE(after_p, oldp); - } ---- 2193,2200 ---- - else - { - /* Replacing with \r or \n means splitting the line. */ -! after_p = alloc_check( -! (unsigned)(oldlen + 1 + n - STRLEN(newp))); - if (after_p != NULL) - STRMOVE(after_p, oldp); - } -*** ../vim-7.4.086/src/version.c 2013-11-11 04:25:48.000000000 +0100 ---- src/version.c 2013-11-11 23:16:23.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 87, - /**/ - - --- -SECOND SOLDIER: It could be carried by an African swallow! -FIRST SOLDIER: Oh yes! An African swallow maybe ... but not a European - swallow. that's my point. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.088 b/7.4.088 deleted file mode 100644 index 62dc91ca..00000000 --- a/7.4.088 +++ /dev/null @@ -1,564 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.088 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.088 -Problem: When spell checking is enabled Asian characters are always marked - as error. -Solution: When 'spelllang' contains "cjk" do not mark Asian characters as - error. (Ken Takata) -Files: runtime/doc/options.txt, runtime/doc/spell.txt, src/mbyte.c, - src/option.c, src/spell.c, src/structs.h - - -*** ../vim-7.4.087/runtime/doc/options.txt 2013-11-06 05:26:08.000000000 +0100 ---- runtime/doc/options.txt 2013-11-12 04:00:51.000000000 +0100 -*************** -*** 6555,6560 **** ---- 6555,6563 ---- - region by listing them: "en_us,en_ca" supports both US and Canadian - English, but not words specific for Australia, New Zealand or Great - Britain. -+ If the name "cjk" is included East Asian characters are excluded from -+ spell checking. This is useful when editing text that also has Asian -+ words. - *E757* - As a special case the name of a .spl file can be given as-is. The - first "_xx" in the name is removed and used as the region name -*** ../vim-7.4.087/runtime/doc/spell.txt 2013-08-10 13:25:01.000000000 +0200 ---- runtime/doc/spell.txt 2013-11-12 04:02:27.000000000 +0100 -*************** -*** 269,274 **** ---- 269,281 ---- - latin1 yi transliterated Yiddish - utf-8 yi-tr transliterated Yiddish - -+ *spell-cjk* -+ Chinese, Japanese and other East Asian characters are normally marked as -+ errors, because spell checking of these characters is not supported. If -+ 'spelllang' includes "cjk", these characters are not marked as errors. This -+ is useful when editing text with spell checking while some Asian words are -+ present. -+ - - SPELL FILES *spell-load* - -*** ../vim-7.4.087/src/mbyte.c 2013-07-05 20:07:21.000000000 +0200 ---- src/mbyte.c 2013-11-12 03:55:50.000000000 +0100 -*************** -*** 947,954 **** - { - case 0x2121: /* ZENKAKU space */ - return 0; -! case 0x2122: /* KU-TEN (Japanese comma) */ -! case 0x2123: /* TOU-TEN (Japanese period) */ - case 0x2124: /* ZENKAKU comma */ - case 0x2125: /* ZENKAKU period */ - return 1; ---- 947,954 ---- - { - case 0x2121: /* ZENKAKU space */ - return 0; -! case 0x2122: /* TOU-TEN (Japanese comma) */ -! case 0x2123: /* KU-TEN (Japanese period) */ - case 0x2124: /* ZENKAKU comma */ - case 0x2125: /* ZENKAKU period */ - return 1; -*************** -*** 2477,2485 **** - /* sorted list of non-overlapping intervals */ - static struct clinterval - { -! unsigned short first; -! unsigned short last; -! unsigned short class; - } classes[] = - { - {0x037e, 0x037e, 1}, /* Greek question mark */ ---- 2477,2485 ---- - /* sorted list of non-overlapping intervals */ - static struct clinterval - { -! unsigned int first; -! unsigned int last; -! unsigned int class; - } classes[] = - { - {0x037e, 0x037e, 1}, /* Greek question mark */ -*************** -*** 2544,2549 **** ---- 2544,2553 ---- - {0xff1a, 0xff20, 1}, /* half/fullwidth ASCII */ - {0xff3b, 0xff40, 1}, /* half/fullwidth ASCII */ - {0xff5b, 0xff65, 1}, /* half/fullwidth ASCII */ -+ {0x20000, 0x2a6df, 0x4e00}, /* CJK Ideographs */ -+ {0x2a700, 0x2b73f, 0x4e00}, /* CJK Ideographs */ -+ {0x2b740, 0x2b81f, 0x4e00}, /* CJK Ideographs */ -+ {0x2f800, 0x2fa1f, 0x4e00}, /* CJK Ideographs */ - }; - int bot = 0; - int top = sizeof(classes) / sizeof(struct clinterval) - 1; -*************** -*** 2563,2571 **** - while (top >= bot) - { - mid = (bot + top) / 2; -! if (classes[mid].last < c) - bot = mid + 1; -! else if (classes[mid].first > c) - top = mid - 1; - else - return (int)classes[mid].class; ---- 2567,2575 ---- - while (top >= bot) - { - mid = (bot + top) / 2; -! if (classes[mid].last < (unsigned int)c) - bot = mid + 1; -! else if (classes[mid].first > (unsigned int)c) - top = mid - 1; - else - return (int)classes[mid].class; -*** ../vim-7.4.087/src/option.c 2013-11-08 04:30:06.000000000 +0100 ---- src/option.c 2013-11-12 04:34:46.000000000 +0100 -*************** -*** 7122,7127 **** ---- 7122,7132 ---- - if (varp == &(curwin->w_s->b_p_spl)) - { - char_u fname[200]; -+ char_u *q = curwin->w_s->b_p_spl; -+ -+ /* Skip the first name if it is "cjk". */ -+ if (STRNCMP(q, "cjk,", 4) == 0) -+ q += 4; - - /* - * Source the spell/LANG.vim in 'runtimepath'. -*************** -*** 7129,7139 **** - * Use the first name in 'spelllang' up to '_region' or - * '.encoding'. - */ -! for (p = curwin->w_s->b_p_spl; *p != NUL; ++p) - if (vim_strchr((char_u *)"_.,", *p) != NULL) - break; -! vim_snprintf((char *)fname, 200, "spell/%.*s.vim", -! (int)(p - curwin->w_s->b_p_spl), curwin->w_s->b_p_spl); - source_runtime(fname, TRUE); - } - #endif ---- 7134,7143 ---- - * Use the first name in 'spelllang' up to '_region' or - * '.encoding'. - */ -! for (p = q; *p != NUL; ++p) - if (vim_strchr((char_u *)"_.,", *p) != NULL) - break; -! vim_snprintf((char *)fname, 200, "spell/%.*s.vim", (int)(p - q), q); - source_runtime(fname, TRUE); - } - #endif -*** ../vim-7.4.087/src/spell.c 2013-09-29 13:38:25.000000000 +0200 ---- src/spell.c 2013-11-12 04:37:33.000000000 +0100 -*************** -*** 754,762 **** - static void clear_spell_chartab __ARGS((spelltab_T *sp)); - static int set_spell_finish __ARGS((spelltab_T *new_st)); - static int spell_iswordp __ARGS((char_u *p, win_T *wp)); -! static int spell_iswordp_nmw __ARGS((char_u *p)); - #ifdef FEAT_MBYTE -! static int spell_mb_isword_class __ARGS((int cl)); - static int spell_iswordp_w __ARGS((int *p, win_T *wp)); - #endif - static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap)); ---- 754,762 ---- - static void clear_spell_chartab __ARGS((spelltab_T *sp)); - static int set_spell_finish __ARGS((spelltab_T *new_st)); - static int spell_iswordp __ARGS((char_u *p, win_T *wp)); -! static int spell_iswordp_nmw __ARGS((char_u *p, win_T *wp)); - #ifdef FEAT_MBYTE -! static int spell_mb_isword_class __ARGS((int cl, win_T *wp)); - static int spell_iswordp_w __ARGS((int *p, win_T *wp)); - #endif - static int write_spell_prefcond __ARGS((FILE *fd, garray_T *gap)); -*************** -*** 1149,1155 **** - - /* When we are at a non-word character there is no error, just - * skip over the character (try looking for a word after it). */ -! else if (!spell_iswordp_nmw(ptr)) - { - if (capcol != NULL && wp->w_s->b_cap_prog != NULL) - { ---- 1149,1155 ---- - - /* When we are at a non-word character there is no error, just - * skip over the character (try looking for a word after it). */ -! else if (!spell_iswordp_nmw(ptr, wp)) - { - if (capcol != NULL && wp->w_s->b_cap_prog != NULL) - { -*************** -*** 1561,1567 **** - * accept a no-caps word, even when the dictionary - * word specifies ONECAP. */ - mb_ptr_back(mip->mi_word, p); -! if (spell_iswordp_nmw(p) - ? capflags == WF_ONECAP - : (flags & WF_ONECAP) != 0 - && capflags != WF_ONECAP) ---- 1561,1567 ---- - * accept a no-caps word, even when the dictionary - * word specifies ONECAP. */ - mb_ptr_back(mip->mi_word, p); -! if (spell_iswordp_nmw(p, mip->mi_win) - ? capflags == WF_ONECAP - : (flags & WF_ONECAP) != 0 - && capflags != WF_ONECAP) -*************** -*** 4234,4240 **** - if (spl_copy == NULL) - goto theend; - -! /* loop over comma separated language names. */ - for (splp = spl_copy; *splp != NUL; ) - { - /* Get one language name. */ ---- 4234,4242 ---- - if (spl_copy == NULL) - goto theend; - -! wp->w_s->b_cjk = 0; -! -! /* Loop over comma separated language names. */ - for (splp = spl_copy; *splp != NUL; ) - { - /* Get one language name. */ -*************** -*** 4242,4247 **** ---- 4244,4255 ---- - region = NULL; - len = (int)STRLEN(lang); - -+ if (STRCMP(lang, "cjk") == 0) -+ { -+ wp->w_s->b_cjk = 1; -+ continue; -+ } -+ - /* If the name ends in ".spl" use it as the name of the spell file. - * If there is a region name let "region" point to it and remove it - * from the name. */ -*************** -*** 4601,4607 **** - int past_second = FALSE; /* past second word char */ - - /* find first letter */ -! for (p = word; !spell_iswordp_nmw(p); mb_ptr_adv(p)) - if (end == NULL ? *p == NUL : p >= end) - return 0; /* only non-word characters, illegal word */ - #ifdef FEAT_MBYTE ---- 4609,4615 ---- - int past_second = FALSE; /* past second word char */ - - /* find first letter */ -! for (p = word; !spell_iswordp_nmw(p, curwin); mb_ptr_adv(p)) - if (end == NULL ? *p == NUL : p >= end) - return 0; /* only non-word characters, illegal word */ - #ifdef FEAT_MBYTE -*************** -*** 4617,4623 **** - * But a word with an upper char only at start is a ONECAP. - */ - for ( ; end == NULL ? *p != NUL : p < end; mb_ptr_adv(p)) -! if (spell_iswordp_nmw(p)) - { - c = PTR2CHAR(p); - if (!SPELL_ISUPPER(c)) ---- 4625,4631 ---- - * But a word with an upper char only at start is a ONECAP. - */ - for ( ; end == NULL ? *p != NUL : p < end; mb_ptr_adv(p)) -! if (spell_iswordp_nmw(p, curwin)) - { - c = PTR2CHAR(p); - if (!SPELL_ISUPPER(c)) -*************** -*** 9907,9913 **** - - c = mb_ptr2char(s); - if (c > 255) -! return spell_mb_isword_class(mb_get_class(s)); - return spelltab.st_isw[c]; - } - #endif ---- 9915,9921 ---- - - c = mb_ptr2char(s); - if (c > 255) -! return spell_mb_isword_class(mb_get_class(s), wp); - return spelltab.st_isw[c]; - } - #endif -*************** -*** 9920,9927 **** - * Unlike spell_iswordp() this doesn't check for "midword" characters. - */ - static int -! spell_iswordp_nmw(p) - char_u *p; - { - #ifdef FEAT_MBYTE - int c; ---- 9928,9936 ---- - * Unlike spell_iswordp() this doesn't check for "midword" characters. - */ - static int -! spell_iswordp_nmw(p, wp) - char_u *p; -+ win_T *wp; - { - #ifdef FEAT_MBYTE - int c; -*************** -*** 9930,9936 **** - { - c = mb_ptr2char(p); - if (c > 255) -! return spell_mb_isword_class(mb_get_class(p)); - return spelltab.st_isw[c]; - } - #endif ---- 9939,9945 ---- - { - c = mb_ptr2char(p); - if (c > 255) -! return spell_mb_isword_class(mb_get_class(p), wp); - return spelltab.st_isw[c]; - } - #endif -*************** -*** 9942,9952 **** - * Return TRUE if word class indicates a word character. - * Only for characters above 255. - * Unicode subscript and superscript are not considered word characters. - */ - static int -! spell_mb_isword_class(cl) -! int cl; - { - return cl >= 2 && cl != 0x2070 && cl != 0x2080; - } - ---- 9951,9966 ---- - * Return TRUE if word class indicates a word character. - * Only for characters above 255. - * Unicode subscript and superscript are not considered word characters. -+ * See also dbcs_class() and utf_class() in mbyte.c. - */ - static int -! spell_mb_isword_class(cl, wp) -! int cl; -! win_T *wp; - { -+ if (wp->w_s->b_cjk) -+ /* East Asian characters are not considered word characters. */ -+ return cl == 2 || cl == 0x2800; - return cl >= 2 && cl != 0x2070 && cl != 0x2080; - } - -*************** -*** 9971,9979 **** - if (*s > 255) - { - if (enc_utf8) -! return spell_mb_isword_class(utf_class(*s)); - if (enc_dbcs) -! return dbcs_class((unsigned)*s >> 8, *s & 0xff) >= 2; - return 0; - } - return spelltab.st_isw[*s]; ---- 9985,9994 ---- - if (*s > 255) - { - if (enc_utf8) -! return spell_mb_isword_class(utf_class(*s), wp); - if (enc_dbcs) -! return spell_mb_isword_class( -! dbcs_class((unsigned)*s >> 8, *s & 0xff), wp); - return 0; - } - return spelltab.st_isw[*s]; -*************** -*** 10193,10205 **** - line = ml_get_curline(); - p = line + curwin->w_cursor.col; - /* Backup to before start of word. */ -! while (p > line && spell_iswordp_nmw(p)) - mb_ptr_back(line, p); - /* Forward to start of word. */ -! while (*p != NUL && !spell_iswordp_nmw(p)) - mb_ptr_adv(p); - -! if (!spell_iswordp_nmw(p)) /* No word found. */ - { - beep_flush(); - return; ---- 10208,10220 ---- - line = ml_get_curline(); - p = line + curwin->w_cursor.col; - /* Backup to before start of word. */ -! while (p > line && spell_iswordp_nmw(p, curwin)) - mb_ptr_back(line, p); - /* Forward to start of word. */ -! while (*p != NUL && !spell_iswordp_nmw(p, curwin)) - mb_ptr_adv(p); - -! if (!spell_iswordp_nmw(p, curwin)) /* No word found. */ - { - beep_flush(); - return; -*************** -*** 10436,10442 **** - for (;;) - { - mb_ptr_back(line, p); -! if (p == line || spell_iswordp_nmw(p)) - break; - if (vim_regexec(®match, p, 0) - && regmatch.endp[0] == line + endcol) ---- 10451,10457 ---- - for (;;) - { - mb_ptr_back(line, p); -! if (p == line || spell_iswordp_nmw(p, curwin)) - break; - if (vim_regexec(®match, p, 0) - && regmatch.endp[0] == line + endcol) -*************** -*** 11645,11651 **** - - /* When appending a compound word after a word character don't - * use Onecap. */ -! if (p != NULL && spell_iswordp_nmw(p)) - c &= ~WF_ONECAP; - make_case_word(tword + sp->ts_splitoff, - preword + sp->ts_prewordlen, c); ---- 11660,11666 ---- - - /* When appending a compound word after a word character don't - * use Onecap. */ -! if (p != NULL && spell_iswordp_nmw(p, curwin)) - c &= ~WF_ONECAP; - make_case_word(tword + sp->ts_splitoff, - preword + sp->ts_prewordlen, c); -*************** -*** 11895,11901 **** - * character when the word ends. But only when the - * good word can end. */ - if (((!try_compound && !spell_iswordp_nmw(fword -! + sp->ts_fidx)) - || fword_ends) - && fword[sp->ts_fidx] != NUL - && goodword_ends) ---- 11910,11917 ---- - * character when the word ends. But only when the - * good word can end. */ - if (((!try_compound && !spell_iswordp_nmw(fword -! + sp->ts_fidx, -! curwin)) - || fword_ends) - && fword[sp->ts_fidx] != NUL - && goodword_ends) -*************** -*** 14226,14232 **** - } - else - { -! if (spell_iswordp_nmw(s)) - *t++ = *s; - ++s; - } ---- 14242,14248 ---- - } - else - { -! if (spell_iswordp_nmw(s, curwin)) - *t++ = *s; - ++s; - } -*************** -*** 14521,14527 **** - else - { - did_white = FALSE; -! if (!spell_iswordp_nmw(t)) - continue; - } - } ---- 14537,14543 ---- - else - { - did_white = FALSE; -! if (!spell_iswordp_nmw(t, curwin)) - continue; - } - } -*************** -*** 16045,16051 **** - for (p = line + startcol; p > line; ) - { - mb_ptr_back(line, p); -! if (spell_iswordp_nmw(p)) - break; - } - ---- 16061,16067 ---- - for (p = line + startcol; p > line; ) - { - mb_ptr_back(line, p); -! if (spell_iswordp_nmw(p, curwin)) - break; - } - -*** ../vim-7.4.087/src/structs.h 2013-11-09 05:30:18.000000000 +0100 ---- src/structs.h 2013-11-12 03:55:50.000000000 +0100 -*************** -*** 1310,1315 **** ---- 1310,1318 ---- - regprog_T *b_cap_prog; /* program for 'spellcapcheck' */ - char_u *b_p_spf; /* 'spellfile' */ - char_u *b_p_spl; /* 'spelllang' */ -+ # ifdef FEAT_MBYTE -+ int b_cjk; /* all CJK letters as OK */ -+ # endif - #endif - #if !defined(FEAT_SYN_HL) && !defined(FEAT_SPELL) - int dummy; -*** ../vim-7.4.087/src/version.c 2013-11-11 23:17:31.000000000 +0100 ---- src/version.c 2013-11-12 03:59:03.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 88, - /**/ - --- -THEOREM: VI is perfect. -PROOF: VI in roman numerals is 6. The natural numbers < 6 which divide 6 are -1, 2, and 3. 1+2+3 = 6. So 6 is a perfect number. Therefore, VI is perfect. -QED - -- Arthur Tateishi - - /// 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 /// diff --git a/7.4.089 b/7.4.089 deleted file mode 100644 index 80697cef..00000000 --- a/7.4.089 +++ /dev/null @@ -1,47 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.089 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.089 -Problem: When editing a file in a directory mounted through sshfs Vim - doesn't set the security context on a renamed file. -Solution: Add mch_copy_sec() to vim_rename(). (Peter Backes) -Files: src/fileio.c - - -*** ../vim-7.4.088/src/fileio.c 2013-08-30 17:06:56.000000000 +0200 ---- src/fileio.c 2013-11-12 05:07:22.000000000 +0100 -*************** -*** 6707,6712 **** ---- 6707,6715 ---- - mch_set_acl(to, acl); - mch_free_acl(acl); - #endif -+ #ifdef HAVE_SELINUX -+ mch_copy_sec(from, to) -+ #endif - if (errmsg != NULL) - { - EMSG2(errmsg, to); -*** ../vim-7.4.088/src/version.c 2013-11-12 04:43:57.000000000 +0100 ---- src/version.c 2013-11-12 05:11:02.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 89, - /**/ - --- -Kiss me twice. I'm schizophrenic. - - /// 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 /// diff --git a/7.4.090 b/7.4.090 deleted file mode 100644 index a7ee9275..00000000 --- a/7.4.090 +++ /dev/null @@ -1,223 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.090 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.090 -Problem: Win32: When a directory name contains an exclamation mark, - completion doesn't complete the contents of the directory. -Solution: Escape the exclamation mark. (Jan Stocker) -Files: src/ex_getln.c, src/testdir/test102.in, src/testdir/test102.ok - src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, - src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, - src/testdir/Make_vms.mms, src/testdir/Makefile - - -*** ../vim-7.4.089/src/ex_getln.c 2013-11-09 05:30:18.000000000 +0100 ---- src/ex_getln.c 2013-11-12 05:23:15.000000000 +0100 -*************** -*** 3852,3860 **** - char_u buf[20]; - int j = 0; - -! /* Don't escape '[' and '{' if they are in 'isfname'. */ - for (p = PATH_ESC_CHARS; *p != NUL; ++p) -! if ((*p != '[' && *p != '{') || !vim_isfilec(*p)) - buf[j++] = *p; - buf[j] = NUL; - p = vim_strsave_escaped(fname, buf); ---- 3852,3860 ---- - char_u buf[20]; - int j = 0; - -! /* Don't escape '[', '{' and '!' if they are in 'isfname'. */ - for (p = PATH_ESC_CHARS; *p != NUL; ++p) -! if ((*p != '[' && *p != '{' && *p != '!') || !vim_isfilec(*p)) - buf[j++] = *p; - buf[j] = NUL; - p = vim_strsave_escaped(fname, buf); -*** ../vim-7.4.089/src/testdir/test102.in 2013-11-12 05:27:48.000000000 +0100 ---- src/testdir/test102.in 2013-11-12 05:21:26.000000000 +0100 -*************** -*** 0 **** ---- 1,12 ---- -+ Test if fnameescape is correct for special chars like ! -+ -+ STARTTEST -+ :%d -+ :let fname = 'Xspa ce' -+ :try | exe "w! " . fnameescape(fname) | put='Space' | endtry -+ :let fname = 'Xemark!' -+ :try | exe "w! " . fnameescape(fname) | put='ExclamationMark' | endtry -+ :w! test.out -+ :qa! -+ ENDTEST -+ -*** ../vim-7.4.089/src/testdir/test102.ok 2013-11-12 05:27:48.000000000 +0100 ---- src/testdir/test102.ok 2013-11-12 05:21:19.000000000 +0100 -*************** -*** 0 **** ---- 1,3 ---- -+ -+ Space -+ ExclamationMark -*** ../vim-7.4.089/src/testdir/Make_amiga.mak 2013-11-08 04:30:06.000000000 +0100 ---- src/testdir/Make_amiga.mak 2013-11-12 05:20:03.000000000 +0100 -*************** -*** 34,40 **** - 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 test100.out test101.out - - .SUFFIXES: .in .out - ---- 34,40 ---- - 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 test100.out test101.out test102.out - - .SUFFIXES: .in .out - -*************** -*** 152,154 **** ---- 152,155 ---- - test99.out: test99.in - test100.out: test100.in - test101.out: test101.in -+ test102.out: test102.in -*** ../vim-7.4.089/src/testdir/Make_dos.mak 2013-11-08 04:30:06.000000000 +0100 ---- src/testdir/Make_dos.mak 2013-11-12 05:20:10.000000000 +0100 -*************** -*** 33,39 **** - 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 \ -! test100.out test101.out - - SCRIPTS32 = test50.out test70.out - ---- 33,39 ---- - 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 \ -! test100.out test101.out test102.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.089/src/testdir/Make_ming.mak 2013-11-08 04:30:06.000000000 +0100 ---- src/testdir/Make_ming.mak 2013-11-12 05:20:14.000000000 +0100 -*************** -*** 53,59 **** - 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 \ -! test100out test101.out - - SCRIPTS32 = test50.out test70.out - ---- 53,59 ---- - 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 \ -! test100out test101.out test102.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.089/src/testdir/Make_os2.mak 2013-11-08 04:30:06.000000000 +0100 ---- src/testdir/Make_os2.mak 2013-11-12 05:20:18.000000000 +0100 -*************** -*** 35,41 **** - 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 \ -! test100.out test101.out - - .SUFFIXES: .in .out - ---- 35,41 ---- - 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 \ -! test100.out test101.out test102.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.089/src/testdir/Make_vms.mms 2013-11-08 04:30:06.000000000 +0100 ---- src/testdir/Make_vms.mms 2013-11-12 05:20:21.000000000 +0100 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 08 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 12 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 79,85 **** - 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 \ -! test100.out test101.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 79,85 ---- - 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 \ -! test100.out test101.out test102.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.089/src/testdir/Makefile 2013-11-08 04:30:06.000000000 +0100 ---- src/testdir/Makefile 2013-11-12 05:20:32.000000000 +0100 -*************** -*** 30,36 **** - 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 test100.out test101.out - - SCRIPTS_GUI = test16.out - ---- 30,36 ---- - 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 test100.out test101.out test102.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.089/src/version.c 2013-11-12 05:11:58.000000000 +0100 ---- src/version.c 2013-11-12 05:24:24.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 90, - /**/ - --- -If you don't get everything you want, think of -everything you didn't get and don't want. - - /// 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 /// diff --git a/7.4.091 b/7.4.091 deleted file mode 100644 index 230601df..00000000 --- a/7.4.091 +++ /dev/null @@ -1,59 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.091 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.091 (after 7.4.089) -Problem: Missing semicolon. -Solution: Add the semicolon. -Files: src/fileio.c - - -*** ../vim-7.4.090/src/fileio.c 2013-11-12 05:11:58.000000000 +0100 ---- src/fileio.c 2013-11-12 18:07:47.000000000 +0100 -*************** -*** 6708,6714 **** - mch_free_acl(acl); - #endif - #ifdef HAVE_SELINUX -! mch_copy_sec(from, to) - #endif - if (errmsg != NULL) - { ---- 6708,6714 ---- - mch_free_acl(acl); - #endif - #ifdef HAVE_SELINUX -! mch_copy_sec(from, to); - #endif - if (errmsg != NULL) - { -*** ../vim-7.4.090/src/version.c 2013-11-12 05:28:08.000000000 +0100 ---- src/version.c 2013-11-12 18:08:33.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 91, - /**/ - --- -CART DRIVER: Bring out your dead! - We follow the cart through a wretched, impoverished plague-ridden village. - A few starved mongrels run about in the mud scavenging. In the open - doorway of one house perhaps we jug glimpse a pair of legs dangling from - the ceiling. In another doorway an OLD WOMAN is beating a cat against a - wall rather like one does with a mat. The cart passes round a dead donkey - or cow in the mud. And a MAN tied to a cart is being hammered to death by - four NUNS with huge mallets. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.092 b/7.4.092 deleted file mode 100644 index e74888eb..00000000 --- a/7.4.092 +++ /dev/null @@ -1,62 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.092 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.092 (after 7.4.088) -Problem: Can't build small version. -Solution: Add #ifdef where the b_cjk flag is used. (Ken Takata) -Files: src/spell.c - - -*** ../vim-7.4.091/src/spell.c 2013-11-12 04:43:57.000000000 +0100 ---- src/spell.c 2013-11-14 03:51:24.000000000 +0100 -*************** -*** 4234,4240 **** ---- 4234,4242 ---- - if (spl_copy == NULL) - goto theend; - -+ #ifdef FEAT_MBYTE - wp->w_s->b_cjk = 0; -+ #endif - - /* Loop over comma separated language names. */ - for (splp = spl_copy; *splp != NUL; ) -*************** -*** 4246,4252 **** ---- 4248,4256 ---- - - if (STRCMP(lang, "cjk") == 0) - { -+ #ifdef FEAT_MBYTE - wp->w_s->b_cjk = 1; -+ #endif - continue; - } - -*** ../vim-7.4.091/src/version.c 2013-11-12 18:09:20.000000000 +0100 ---- src/version.c 2013-11-14 03:52:18.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 92, - /**/ - --- -ARTHUR: Old woman! -DENNIS: Man! -ARTHUR: Man. I'm sorry. Old man, What knight live in that castle over there? -DENNIS: I'm thirty-seven. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.093 b/7.4.093 deleted file mode 100644 index 24da0a8f..00000000 --- a/7.4.093 +++ /dev/null @@ -1,72 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.093 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.093 -Problem: Configure can't use LuaJIT on ubuntu 12.04. -Solution: Adjust the configure regexp that locates the version number. - (Charles Strahan) -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.4.092/src/configure.in 2013-11-04 04:57:46.000000000 +0100 ---- src/configure.in 2013-11-17 20:12:04.000000000 +0100 -*************** -*** 496,502 **** - if test "X$vi_cv_path_luajit" != "X"; then - dnl -- find LuaJIT version - AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit, -! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]] .*/\1/'` ]) - AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit, - [ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ]) - vi_cv_path_lua="$vi_cv_path_luajit" ---- 496,502 ---- - if test "X$vi_cv_path_luajit" != "X"; then - dnl -- find LuaJIT version - AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit, -! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]\+\)\? .*/\1/'` ]) - AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit, - [ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ]) - vi_cv_path_lua="$vi_cv_path_luajit" -*** ../vim-7.4.092/src/auto/configure 2013-11-04 04:57:46.000000000 +0100 ---- src/auto/configure 2013-11-17 20:13:30.000000000 +0100 -*************** -*** 4743,4749 **** - if test "${vi_cv_version_luajit+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -! vi_cv_version_luajit=`${vi_cv_path_luajit} -v | sed 's/LuaJIT \([0-9.]*\)\.[0-9] .*/\1/'` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5 - $as_echo "$vi_cv_version_luajit" >&6; } ---- 4743,4749 ---- - if test "${vi_cv_version_luajit+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -! vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]\+\)\? .*/\1/'` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5 - $as_echo "$vi_cv_version_luajit" >&6; } -*** ../vim-7.4.092/src/version.c 2013-11-14 03:54:02.000000000 +0100 ---- src/version.c 2013-11-17 20:13:43.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 93, - /**/ - --- -"Beware of bugs in the above code; I have only proved -it correct, not tried it." -- Donald Knuth - - /// 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 /// diff --git a/7.4.094 b/7.4.094 deleted file mode 100644 index 96ebc4d4..00000000 --- a/7.4.094 +++ /dev/null @@ -1,139 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.094 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.094 -Problem: Configure may not find that -lint is needed for gettext(). -Solution: Check for gettext() with empty $LIBS. (Thomas De Schampheleire) -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.4.093/src/configure.in 2013-11-17 20:17:05.000000000 +0100 ---- src/configure.in 2013-11-17 20:23:49.000000000 +0100 -*************** -*** 3725,3730 **** ---- 3725,3733 ---- - fi - - dnl Check if gettext() is working and if it needs -lintl -+ dnl We take care to base this on an empty LIBS: on some systems libelf would be -+ dnl in LIBS and implicitly take along libintl. The final LIBS would then not -+ dnl contain libintl, and the link step would fail due to -Wl,--as-needed. - AC_MSG_CHECKING(--disable-nls argument) - AC_ARG_ENABLE(nls, - [ --disable-nls Don't support NLS (gettext()).], , -*************** -*** 3743,3758 **** - if test -f po/Makefile; then - have_gettext="no" - if test -n "$MSGFMT"; then - AC_TRY_LINK( - [#include ], - [gettext("Test");], -! AC_MSG_RESULT([gettext() works]); have_gettext="yes", -! olibs=$LIBS -! LIBS="$LIBS -lintl" - AC_TRY_LINK( - [#include ], - [gettext("Test");], -! AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes", - AC_MSG_RESULT([gettext() doesn't work]); - LIBS=$olibs)) - else ---- 3746,3763 ---- - if test -f po/Makefile; then - have_gettext="no" - if test -n "$MSGFMT"; then -+ olibs=$LIBS -+ LIBS="" - AC_TRY_LINK( - [#include ], - [gettext("Test");], -! AC_MSG_RESULT([gettext() works]); have_gettext="yes"; LIBS=$olibs, -! LIBS="-lintl" - AC_TRY_LINK( - [#include ], - [gettext("Test");], -! AC_MSG_RESULT([gettext() works with -lintl]); have_gettext="yes"; -! LIBS="$olibs -lintl", - AC_MSG_RESULT([gettext() doesn't work]); - LIBS=$olibs)) - else -*** ../vim-7.4.093/src/auto/configure 2013-11-17 20:17:05.000000000 +0100 ---- src/auto/configure 2013-11-17 20:25:13.000000000 +0100 -*************** -*** 12690,12695 **** ---- 12690,12697 ---- - if test -f po/Makefile; then - have_gettext="no" - if test -n "$MSGFMT"; then -+ olibs=$LIBS -+ LIBS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -*************** -*** 12703,12712 **** - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5 -! $as_echo "gettext() works" >&6; }; have_gettext="yes" - else -! olibs=$LIBS -! LIBS="$LIBS -lintl" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include ---- 12705,12713 ---- - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works" >&5 -! $as_echo "gettext() works" >&6; }; have_gettext="yes"; LIBS=$olibs - else -! LIBS="-lintl" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext - /* end confdefs.h. */ - #include -*************** -*** 12720,12726 **** - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5 -! $as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5 - $as_echo "gettext() doesn't work" >&6; }; ---- 12721,12728 ---- - _ACEOF - if ac_fn_c_try_link "$LINENO"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() works with -lintl" >&5 -! $as_echo "gettext() works with -lintl" >&6; }; have_gettext="yes"; -! LIBS="$olibs -lintl" - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: gettext() doesn't work" >&5 - $as_echo "gettext() doesn't work" >&6; }; -*** ../vim-7.4.093/src/version.c 2013-11-17 20:17:05.000000000 +0100 ---- src/version.c 2013-11-17 20:27:43.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 94, - /**/ - --- -BLACK KNIGHT: The Black Knight always triumphs. Have at you! - ARTHUR takes his last leg off. The BLACK KNIGHT's body lands upright. -BLACK KNIGHT: All right, we'll call it a draw. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.095 b/7.4.095 deleted file mode 100644 index f7abfcaf..00000000 --- a/7.4.095 +++ /dev/null @@ -1,73 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.095 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.095 (after 7.4.093) -Problem: Regexp for LuaJIT version doesn't work on BSD. -Solution: Use "*" instead of "\+" and "\?". (Ozaki) -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.4.094/src/configure.in 2013-11-17 20:32:49.000000000 +0100 ---- src/configure.in 2013-11-21 12:04:46.000000000 +0100 -*************** -*** 496,502 **** - if test "X$vi_cv_path_luajit" != "X"; then - dnl -- find LuaJIT version - AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit, -! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]\+\)\? .*/\1/'` ]) - AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit, - [ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ]) - vi_cv_path_lua="$vi_cv_path_luajit" ---- 496,502 ---- - if test "X$vi_cv_path_luajit" != "X"; then - dnl -- find LuaJIT version - AC_CACHE_CHECK(LuaJIT version, vi_cv_version_luajit, -! [ vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([[0-9.]]*\)\.[[0-9]]\(-[[a-z0-9]]*\)* .*/\1/'` ]) - AC_CACHE_CHECK(Lua version of LuaJIT, vi_cv_version_lua_luajit, - [ vi_cv_version_lua_luajit=`${vi_cv_path_luajit} -e "print(_VERSION)" | sed 's/.* //'` ]) - vi_cv_path_lua="$vi_cv_path_luajit" -*** ../vim-7.4.094/src/auto/configure 2013-11-17 20:32:49.000000000 +0100 ---- src/auto/configure 2013-11-21 12:07:39.000000000 +0100 -*************** -*** 4743,4749 **** - if test "${vi_cv_version_luajit+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -! vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]\+\)\? .*/\1/'` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5 - $as_echo "$vi_cv_version_luajit" >&6; } ---- 4743,4749 ---- - if test "${vi_cv_version_luajit+set}" = set; then : - $as_echo_n "(cached) " >&6 - else -! vi_cv_version_luajit=`${vi_cv_path_luajit} -v 2>&1 | sed 's/LuaJIT \([0-9.]*\)\.[0-9]\(-[a-z0-9]*\)* .*/\1/'` - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $vi_cv_version_luajit" >&5 - $as_echo "$vi_cv_version_luajit" >&6; } -*** ../vim-7.4.094/src/version.c 2013-11-17 20:32:49.000000000 +0100 ---- src/version.c 2013-11-21 12:06:26.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 95, - /**/ - --- -Our job was to build a computer information system for the branch banks. We -were the perfect people for the job: Dean had seen a computer once, and I had -heard Dean talk about it. - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.096 b/7.4.096 deleted file mode 100644 index be20959b..00000000 --- a/7.4.096 +++ /dev/null @@ -1,96 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.096 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.096 -Problem: Can't change directory to an UNC path. -Solution: Use win32_getattrs() in mch_getperm(). (Christian Brabandt) -Files: src/os_win32.c - - -*** ../vim-7.4.095/src/os_win32.c 2013-09-25 19:13:32.000000000 +0200 ---- src/os_win32.c 2013-11-21 12:31:52.000000000 +0100 -*************** -*** 2841,2858 **** - } - - /* -! * get file permissions for `name' -! * -1 : error -! * else mode_t - */ - long - mch_getperm(char_u *name) - { - struct stat st; -! int n; - - n = mch_stat(name, &st); -! return n == 0 ? (int)st.st_mode : -1; - } - - ---- 2841,2860 ---- - } - - /* -! * Get file permissions for "name". -! * Return mode_t or -1 for error. - */ - long - mch_getperm(char_u *name) - { - struct stat st; -! int n; - -+ if (name[0] == '\\' && name[1] == '\\') -+ /* UNC path */ -+ return (long)win32_getattrs(name); - n = mch_stat(name, &st); -! return n == 0 ? (long)st.st_mode : -1L; - } - - -*************** -*** 3094,3101 **** - * -1 : error - * else FILE_ATTRIBUTE_* defined in winnt.h - */ -! static -! int - win32_getattrs(char_u *name) - { - int attr; ---- 3096,3102 ---- - * -1 : error - * else FILE_ATTRIBUTE_* defined in winnt.h - */ -! static int - win32_getattrs(char_u *name) - { - int attr; -*** ../vim-7.4.095/src/version.c 2013-11-21 12:17:46.000000000 +0100 ---- src/version.c 2013-11-21 12:32:46.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 96, - /**/ - --- -If your company is not involved in something called "ISO 9000" you probably -have no idea what it is. If your company _is_ involved in ISO 9000 then you -definitely have no idea what it is. - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.097 b/7.4.097 deleted file mode 100644 index cfb61839..00000000 --- a/7.4.097 +++ /dev/null @@ -1,50 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.097 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.097 (after 7.4.034) -Problem: Unexpected behavior change related to 'virtualedit'. (Ingo Karkat) -Solution: Update the valid cursor position. (Christian Brabandt) -Files: src/ops.c - - -*** ../vim-7.4.096/src/ops.c 2013-11-11 23:17:31.000000000 +0100 ---- src/ops.c 2013-11-21 13:21:24.000000000 +0100 -*************** -*** 3844,3850 **** ---- 3844,3854 ---- - ml_replace(lnum, newp, FALSE); - /* Place cursor on last putted char. */ - if (lnum == curwin->w_cursor.lnum) -+ { -+ /* make sure curwin->w_virtcol is updated */ -+ changed_cline_bef_curs(); - curwin->w_cursor.col += (colnr_T)(totlen - 1); -+ } - } - #ifdef FEAT_VISUAL - if (VIsual_active) -*** ../vim-7.4.096/src/version.c 2013-11-21 12:34:07.000000000 +0100 ---- src/version.c 2013-11-21 13:08:27.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 97, - /**/ - --- -The only way the average employee can speak to an executive is by taking a -second job as a golf caddie. - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.098 b/7.4.098 deleted file mode 100644 index 78af90e2..00000000 --- a/7.4.098 +++ /dev/null @@ -1,243 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.098 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.098 -Problem: When using ":'<,'>del" errors may be given for the visual line - numbers being out of range. -Solution: Reset Visual mode in ":del". (Lech Lorens) -Files: src/ex_docmd.c, src/testdir/test103.in, src/testdir/test103.ok, - src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, - src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, - src/testdir/Make_vms.mms, src/testdir/Makefile - - -*** ../vim-7.4.097/src/ex_docmd.c 2013-11-09 05:30:18.000000000 +0100 ---- src/ex_docmd.c 2013-11-21 14:04:55.000000000 +0100 -*************** -*** 8570,8575 **** ---- 8570,8580 ---- - beginline(BL_SOL | BL_FIX); - } - -+ #if defined(FEAT_VISUAL) -+ if (VIsual_active) -+ end_visual_mode(); -+ #endif -+ - switch (eap->cmdidx) - { - case CMD_delete: -*** ../vim-7.4.097/src/testdir/test103.in 2013-11-21 14:21:12.000000000 +0100 ---- src/testdir/test103.in 2013-11-21 14:02:09.000000000 +0100 -*************** -*** 0 **** ---- 1,37 ---- -+ Test for visual mode not being reset causing E315 error. -+ STARTTEST -+ :so small.vim -+ :enew -+ :let g:msg="Everything's fine." -+ :function! TriggerTheProblem() -+ : " At this point there is no visual selection because :call reset it. -+ : " Let's restore the selection: -+ : normal gv -+ : '<,'>del _ -+ : try -+ : exe "normal \" -+ : catch /^Vim\%((\a\+)\)\=:E315/ -+ : echom 'Snap! E315 error!' -+ : let g:msg='Snap! E315 error!' -+ : endtry -+ :endfunction -+ :enew -+ :setl buftype=nofile -+ :call append(line('$'), 'Delete this line.') -+ :" -+ :" -+ :" NOTE: this has to be done by a call to a function because executing :del the -+ :" ex-way will require the colon operator which resets the visual mode thus -+ :" preventing the problem: -+ :" -+ GV:call TriggerTheProblem() -+ :%del _ -+ :call append(line('$'), g:msg) -+ :w! test.out -+ :brewind -+ ENDTEST -+ -+ STARTTEST -+ :qa! -+ ENDTEST -+ -*** ../vim-7.4.097/src/testdir/test103.ok 2013-11-21 14:21:12.000000000 +0100 ---- src/testdir/test103.ok 2013-11-21 14:02:28.000000000 +0100 -*************** -*** 0 **** ---- 1,2 ---- -+ -+ Everything's fine. -*** ../vim-7.4.097/src/testdir/Make_amiga.mak 2013-11-12 05:28:08.000000000 +0100 ---- src/testdir/Make_amiga.mak 2013-11-21 14:02:51.000000000 +0100 -*************** -*** 34,40 **** - 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 test100.out test101.out test102.out - - .SUFFIXES: .in .out - ---- 34,40 ---- - 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 test100.out test101.out test102.out test103.out - - .SUFFIXES: .in .out - -*************** -*** 153,155 **** ---- 153,156 ---- - test100.out: test100.in - test101.out: test101.in - test102.out: test102.in -+ test103.out: test103.in -*** ../vim-7.4.097/src/testdir/Make_dos.mak 2013-11-12 05:28:08.000000000 +0100 ---- src/testdir/Make_dos.mak 2013-11-21 14:02:58.000000000 +0100 -*************** -*** 33,39 **** - 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 \ -! test100.out test101.out test102.out - - SCRIPTS32 = test50.out test70.out - ---- 33,39 ---- - 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 \ -! test100.out test101.out test102.out test103.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.097/src/testdir/Make_ming.mak 2013-11-12 05:28:08.000000000 +0100 ---- src/testdir/Make_ming.mak 2013-11-21 14:03:01.000000000 +0100 -*************** -*** 53,59 **** - 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 \ -! test100out test101.out test102.out - - SCRIPTS32 = test50.out test70.out - ---- 53,59 ---- - 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 \ -! test100out test101.out test102.out test103.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.097/src/testdir/Make_os2.mak 2013-11-12 05:28:08.000000000 +0100 ---- src/testdir/Make_os2.mak 2013-11-21 14:03:03.000000000 +0100 -*************** -*** 35,41 **** - 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 \ -! test100.out test101.out test102.out - - .SUFFIXES: .in .out - ---- 35,41 ---- - 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 \ -! test100.out test101.out test102.out test103.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.097/src/testdir/Make_vms.mms 2013-11-12 05:28:08.000000000 +0100 ---- src/testdir/Make_vms.mms 2013-11-21 14:03:13.000000000 +0100 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 12 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 21 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 79,85 **** - 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 \ -! test100.out test101.out test102.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 79,85 ---- - 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 \ -! test100.out test101.out test102.out test103.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.097/src/testdir/Makefile 2013-11-12 05:28:08.000000000 +0100 ---- src/testdir/Makefile 2013-11-21 14:03:23.000000000 +0100 -*************** -*** 30,36 **** - 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 test100.out test101.out test102.out - - SCRIPTS_GUI = test16.out - ---- 30,36 ---- - 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 test100.out test101.out test102.out test103.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.097/src/version.c 2013-11-21 13:24:36.000000000 +0100 ---- src/version.c 2013-11-21 14:20:34.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 98, - /**/ - --- -I recommend ordering large cargo containers of paper towels to make up -whatever budget underruns you have. Paper products are always useful and they -have the advantage of being completely flushable if you need to make room in -the storage area later. - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.099 b/7.4.099 deleted file mode 100644 index a9cf6368..00000000 --- a/7.4.099 +++ /dev/null @@ -1,113 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.099 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.099 -Problem: Append in blockwise Visual mode with "$" is wrong. -Solution: After "$" don't use the code that checks if the cursor was moved. - (Hirohito Higashi, Ken Takata) -Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok - - -*** ../vim-7.4.098/src/ops.c 2013-11-21 13:24:36.000000000 +0100 ---- src/ops.c 2013-11-21 14:33:57.000000000 +0100 -*************** -*** 2643,2649 **** - - /* The user may have moved the cursor before inserting something, try - * to adjust the block for that. */ -! if (oap->start.lnum == curbuf->b_op_start.lnum) - { - if (oap->op_type == OP_INSERT - && oap->start.col != curbuf->b_op_start.col) ---- 2643,2649 ---- - - /* The user may have moved the cursor before inserting something, try - * to adjust the block for that. */ -! if (oap->start.lnum == curbuf->b_op_start.lnum && !bd.is_MAX) - { - if (oap->op_type == OP_INSERT - && oap->start.col != curbuf->b_op_start.col) -*** ../vim-7.4.098/src/testdir/test39.in 2013-11-11 01:29:16.000000000 +0100 ---- src/testdir/test39.in 2013-11-21 14:25:55.000000000 +0100 -*************** -*** 23,28 **** ---- 23,40 ---- - /^aaaa/ - :exe ":norm! l\jjjlllI\\ \" - :/^aa/,/^$/w >> test.out -+ :" Test for Visual block was created with the last $ -+ /^A23$/ -+ :exe ":norm! l\j$Aab\" -+ :.,/^$/w >> test.out -+ :" Test for Visual block was created with the middle $ (1) -+ /^B23$/ -+ :exe ":norm! l\j$hAab\" -+ :.,/^$/w >> test.out -+ :" Test for Visual block was created with the middle $ (2) -+ /^C23$/ -+ :exe ":norm! l\j$hhAab\" -+ :.,/^$/w >> test.out - :" gUe must uppercase a whole word, also when ß changes to SS - Gothe youtußeuu endYpk0wgUe - :" gUfx must uppercase until x, inclusive. -*************** -*** 49,54 **** ---- 61,75 ---- - cccccc - dddddd - -+ A23 -+ 4567 -+ -+ B23 -+ 4567 -+ -+ C23 -+ 4567 -+ - abcdefghijklm - abcdefghijklm - abcdefghijklm -*** ../vim-7.4.098/src/testdir/test39.ok 2013-11-11 01:29:16.000000000 +0100 ---- src/testdir/test39.ok 2013-11-21 14:25:10.000000000 +0100 -*************** -*** 8,13 **** ---- 8,22 ---- - ccc ccc - ddd ddd - -+ A23ab -+ 4567ab -+ -+ B23 ab -+ 4567ab -+ -+ C23ab -+ 456ab7 -+ - the YOUTUSSEUU end - - yOUSSTUSSEXu - - THE YOUTUSSEUU END -*** ../vim-7.4.098/src/version.c 2013-11-21 14:21:25.000000000 +0100 ---- src/version.c 2013-11-21 14:34:28.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 99, - /**/ - --- -If the Universe is constantly expanding, why can't I ever find a parking space? - - /// 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 /// diff --git a/7.4.100 b/7.4.100 deleted file mode 100644 index c3c0cb64..00000000 --- a/7.4.100 +++ /dev/null @@ -1,82 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.100 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.100 -Problem: NFA regexp doesn't handle backreference correctly. (Ryuichi - Hayashida, Urtica Dioica) -Solution: Always add NFA_SKIP, also when it already exists at the start - position. -Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.099/src/regexp_nfa.c 2013-10-06 15:46:06.000000000 +0200 ---- src/regexp_nfa.c 2013-11-21 15:58:58.000000000 +0100 -*************** -*** 4278,4284 **** - * endless loop for "\(\)*" */ - - default: -! if (state->lastlist[nfa_ll_index] == l->id) - { - /* This state is already in the list, don't add it again, - * unless it is an MOPEN that is used for a backreference or ---- 4278,4284 ---- - * endless loop for "\(\)*" */ - - default: -! if (state->lastlist[nfa_ll_index] == l->id && state->c != NFA_SKIP) - { - /* This state is already in the list, don't add it again, - * unless it is an MOPEN that is used for a backreference or -*** ../vim-7.4.099/src/testdir/test64.in 2013-09-25 18:16:34.000000000 +0200 ---- src/testdir/test64.in 2013-11-21 15:58:19.000000000 +0100 -*************** -*** 406,411 **** ---- 406,412 ---- - :call add(tl, [2, '^.*\.\(.*\)/.\+\(\1\)\@ -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.101 -Problem: Using \1 in pattern goes one line too far. (Bohr Shaw, John Little) -Solution: Only advance the match end for the matched characters in the last - line. -Files: src/regexp.c, src/testdir/test64.in, src/testdir/test64.ok - - -*** ../vim-7.4.100/src/regexp.c 2013-09-19 17:03:57.000000000 +0200 ---- src/regexp.c 2013-11-21 16:58:38.000000000 +0100 -*************** -*** 6455,6461 **** - /* - * Check whether a backreference matches. - * Returns RA_FAIL, RA_NOMATCH or RA_MATCH. -! * If "bytelen" is not NULL, it is set to the bytelength of the whole match. - */ - static int - match_with_backref(start_lnum, start_col, end_lnum, end_col, bytelen) ---- 6455,6462 ---- - /* - * Check whether a backreference matches. - * Returns RA_FAIL, RA_NOMATCH or RA_MATCH. -! * If "bytelen" is not NULL, it is set to the byte length of the match in the -! * last line. - */ - static int - match_with_backref(start_lnum, start_col, end_lnum, end_col, bytelen) -*************** -*** 6511,6516 **** ---- 6512,6519 ---- - - /* Advance to next line. */ - reg_nextline(); -+ if (bytelen != NULL) -+ *bytelen = 0; - ++clnum; - ccol = 0; - if (got_int) -*** ../vim-7.4.100/src/testdir/test64.in 2013-11-21 16:03:35.000000000 +0100 ---- src/testdir/test64.in 2013-11-21 16:56:20.000000000 +0100 -*************** -*** 507,512 **** ---- 507,514 ---- - :" Check a pattern with a line break and ^ and $ - :call add(tl, [2, 'a\n^b$\n^c', ['a', 'b', 'c'], ['XX']]) - :" -+ :call add(tl, [2, '\(^.\+\n\)\1', [' dog', ' dog', 'asdf'], ['XXasdf']]) -+ :" - :"""" Run the multi-line tests - :" - :$put ='multi-line tests' -*** ../vim-7.4.100/src/testdir/test64.ok 2013-11-21 16:03:35.000000000 +0100 ---- src/testdir/test64.ok 2013-11-21 16:57:41.000000000 +0100 -*************** -*** 1031,1036 **** ---- 1031,1039 ---- - OK 0 - a\n^b$\n^c - OK 1 - a\n^b$\n^c - OK 2 - a\n^b$\n^c -+ OK 0 - \(^.\+\n\)\1 -+ OK 1 - \(^.\+\n\)\1 -+ OK 2 - \(^.\+\n\)\1 - - Ta 5 - Ac 7 -*** ../vim-7.4.100/src/version.c 2013-11-21 16:03:35.000000000 +0100 ---- src/version.c 2013-11-21 16:44:00.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 101, - /**/ - --- -The budget process was invented by an alien race of sadistic beings who -resemble large cats. - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.102 b/7.4.102 deleted file mode 100644 index b4134130..00000000 --- a/7.4.102 +++ /dev/null @@ -1,84 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.102 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.102 -Problem: Crash when interrupting "z=". -Solution: Add safety check for word length. (Christian Brabandt, Dominique - Pelle) -Files: src/spell.c - - -*** ../vim-7.4.101/src/spell.c 2013-11-14 03:54:02.000000000 +0100 ---- src/spell.c 2013-11-21 17:37:04.000000000 +0100 -*************** -*** 13398,13406 **** - - /* Lookup the word "orgnr" one of the two tries. */ - n = 0; -- wlen = 0; - wordcount = 0; -! for (;;) - { - i = 1; - if (wordcount == orgnr && byts[n + 1] == NUL) ---- 13398,13405 ---- - - /* Lookup the word "orgnr" one of the two tries. */ - n = 0; - wordcount = 0; -! for (wlen = 0; wlen < MAXWLEN - 3; ++wlen) - { - i = 1; - if (wordcount == orgnr && byts[n + 1] == NUL) -*************** -*** 13414,13419 **** ---- 13413,13419 ---- - if (i > byts[n]) /* safety check */ - { - STRCPY(theword + wlen, "BAD"); -+ wlen += 3; - goto badword; - } - -*************** -*** 13426,13432 **** - wordcount += wc; - } - -! theword[wlen++] = byts[n + i]; - n = idxs[n + i]; - } - badword: ---- 13426,13432 ---- - wordcount += wc; - } - -! theword[wlen] = byts[n + i]; - n = idxs[n + i]; - } - badword: -*** ../vim-7.4.101/src/version.c 2013-11-21 17:12:55.000000000 +0100 ---- src/version.c 2013-11-21 17:38:21.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 102, - /**/ - --- -Engineers will go without food and hygiene for days to solve a problem. -(Other times just because they forgot.) - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.103 b/7.4.103 deleted file mode 100644 index 4dbce997..00000000 --- a/7.4.103 +++ /dev/null @@ -1,93 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.103 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.103 -Problem: Dos installer uses an old way to escape spaces in the diff - command. -Solution: Adjust the quoting to the new default shellxquote. (Ben Fritz) -Files: src/dosinst.c - - -*** ../vim-7.4.102/src/dosinst.c 2013-11-07 04:49:23.000000000 +0100 ---- src/dosinst.c 2013-11-21 18:12:13.000000000 +0100 -*************** -*** 1192,1214 **** - fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n"); - - /* If the path has a space: When using cmd.exe (Win NT/2000/XP) put -! * quotes around the whole command and around the diff command. - * Otherwise put a double quote just before the space and at the - * end of the command. Putting quotes around the whole thing - * doesn't work on Win 95/98/ME. This is mostly guessed! */ -- fprintf(fd, " let eq = ''\n"); - fprintf(fd, " if $VIMRUNTIME =~ ' '\n"); - fprintf(fd, " if &sh =~ '\\ ' . arg3 . eq\n"); -! - fprintf(fd, "endfunction\n"); - fprintf(fd, "\n"); - } ---- 1192,1220 ---- - fprintf(fd, " if arg3 =~ ' ' | let arg3 = '\"' . arg3 . '\"' | endif\n"); - - /* If the path has a space: When using cmd.exe (Win NT/2000/XP) put -! * quotes around the diff command and rely on the default value of -! * shellxquote to solve the quoting problem for the whole command. -! * - * Otherwise put a double quote just before the space and at the - * end of the command. Putting quotes around the whole thing - * doesn't work on Win 95/98/ME. This is mostly guessed! */ - fprintf(fd, " if $VIMRUNTIME =~ ' '\n"); - fprintf(fd, " if &sh =~ '\\ ' . arg3\n"); -! fprintf(fd, " if exists('l:shxq_sav')\n"); -! fprintf(fd, " let &shellxquote=l:shxq_sav\n"); -! fprintf(fd, " endif\n"); - fprintf(fd, "endfunction\n"); - fprintf(fd, "\n"); - } -*** ../vim-7.4.102/src/version.c 2013-11-21 17:42:26.000000000 +0100 ---- src/version.c 2013-11-21 18:11:08.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 103, - /**/ - --- -The fastest way to get an engineer to solve a problem is to declare that the -problem is unsolvable. No engineer can walk away from an unsolvable problem -until it's solved. - (Scott Adams - The Dilbert principle) - - /// 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 /// diff --git a/7.4.104 b/7.4.104 deleted file mode 100644 index 6e51568a..00000000 --- a/7.4.104 +++ /dev/null @@ -1,107 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.104 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.104 -Problem: ":help s/\_" reports an internal error. (John Beckett) -Solution: Check for NUL and invalid character classes. -Files: src/regexp_nfa.c - - -*** ../vim-7.4.103/src/regexp_nfa.c 2013-11-21 16:03:35.000000000 +0100 ---- src/regexp_nfa.c 2013-11-28 14:05:34.000000000 +0100 -*************** -*** 239,245 **** ---- 239,247 ---- - NFA_UPPER, NFA_NUPPER - }; - -+ static char_u e_nul_found[] = N_("E865: (NFA) Regexp end encountered prematurely"); - static char_u e_misplaced[] = N_("E866: (NFA regexp) Misplaced %c"); -+ static char_u e_ill_char_class[] = N_("E877: (NFA regexp) Invalid character class: %ld"); - - /* NFA regexp \ze operator encountered. */ - static int nfa_has_zend; -*************** -*** 1137,1143 **** - switch (c) - { - case NUL: -! EMSG_RET_FAIL(_("E865: (NFA) Regexp end encountered prematurely")); - - case Magic('^'): - EMIT(NFA_BOL); ---- 1139,1145 ---- - switch (c) - { - case NUL: -! EMSG_RET_FAIL(_(e_nul_found)); - - case Magic('^'): - EMIT(NFA_BOL); -*************** -*** 1160,1165 **** ---- 1162,1170 ---- - - case Magic('_'): - c = no_Magic(getchr()); -+ if (c == NUL) -+ EMSG_RET_FAIL(_(e_nul_found)); -+ - if (c == '^') /* "\_^" is start-of-line */ - { - EMIT(NFA_BOL); -*************** -*** 1216,1221 **** ---- 1221,1232 ---- - p = vim_strchr(classchars, no_Magic(c)); - if (p == NULL) - { -+ if (extra == NFA_ADD_NL) -+ { -+ EMSGN(_(e_ill_char_class), c); -+ rc_did_emsg = TRUE; -+ return FAIL; -+ } - EMSGN("INTERNAL: Unknown character class char: %ld", c); - return FAIL; - } -*************** -*** 4733,4739 **** - - default: - /* should not be here :P */ -! EMSGN("E877: (NFA regexp) Invalid character class: %ld", class); - return FAIL; - } - return FAIL; ---- 4744,4750 ---- - - default: - /* should not be here :P */ -! EMSGN(_(e_ill_char_class), class); - return FAIL; - } - return FAIL; -*** ../vim-7.4.103/src/version.c 2013-11-21 18:13:26.000000000 +0100 ---- src/version.c 2013-11-28 14:06:59.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 104, - /**/ - --- -Everybody wants to go to heaven, but nobody wants to die. - - /// 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 /// diff --git a/7.4.105 b/7.4.105 deleted file mode 100644 index f219ac6f..00000000 --- a/7.4.105 +++ /dev/null @@ -1,58 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.105 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.105 -Problem: Completing a tag pattern may give an error for invalid pattern. -Solution: Suppress the error, just return no matches. -Files: src/tag.c - - -*** ../vim-7.4.104/src/tag.c 2013-11-08 04:30:06.000000000 +0100 ---- src/tag.c 2013-11-28 14:27:38.000000000 +0100 -*************** -*** 1326,1331 **** ---- 1326,1332 ---- - int match_no_ic = 0;/* matches with rm_ic == FALSE */ - int match_re; /* match with regexp */ - int matchoff = 0; -+ int save_emsg_off; - - #ifdef FEAT_EMACS_TAGS - /* -*************** -*** 1442,1448 **** ---- 1443,1452 ---- - if (p_tl != 0 && orgpat.len > p_tl) /* adjust for 'taglength' */ - orgpat.len = p_tl; - -+ save_emsg_off = emsg_off; -+ emsg_off = TRUE; /* don't want error for invalid RE here */ - prepare_pats(&orgpat, has_re); -+ emsg_off = save_emsg_off; - if (has_re && orgpat.regmatch.regprog == NULL) - goto findtag_end; - -*** ../vim-7.4.104/src/version.c 2013-11-28 14:20:11.000000000 +0100 ---- src/version.c 2013-11-28 14:30:35.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 105, - /**/ - --- -The goal of science is to build better mousetraps. -The goal of nature is to build better mice. - - /// 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 /// diff --git a/7.4.106 b/7.4.106 deleted file mode 100644 index 13ab0b11..00000000 --- a/7.4.106 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.106 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.106 -Problem: Can't build with Ruby using Cygwin. -Solution: Fix library name in makefile. (Steve Hall) -Files: src/Make_cyg.mak - - -*** ../vim-7.4.105/src/Make_cyg.mak 2013-09-19 20:48:59.000000000 +0200 ---- src/Make_cyg.mak 2013-11-28 16:29:52.000000000 +0100 -*************** -*** 1,6 **** - # - # Makefile for VIM on Win32, using Cygnus gcc -! # Last updated by Dan Sharp. Last Change: 2013 Sep 19 - # - # Also read INSTALLpc.txt! - # ---- 1,6 ---- - # - # Makefile for VIM on Win32, using Cygnus gcc -! # Last updated by Dan Sharp. Last Change: 2013 Nov 28 - # - # Also read INSTALLpc.txt! - # -*************** -*** 272,278 **** - DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\" - DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER) - else -! EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME).lib - endif - endif - ---- 272,278 ---- - DEFINES += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\" - DEFINES += -DDYNAMIC_RUBY_VER=$(RUBY_VER) - else -! EXTRA_LIBS += $(RUBY)/lib/$(RUBY_INSTALL_NAME) - endif - endif - -*** ../vim-7.4.105/src/version.c 2013-11-28 14:36:24.000000000 +0100 ---- src/version.c 2013-11-28 16:29:25.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 106, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -7. You finally do take that vacation, but only after buying a cellular modem - and a laptop. - - /// 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 /// diff --git a/7.4.107 b/7.4.107 deleted file mode 100644 index 5ac7189f..00000000 --- a/7.4.107 +++ /dev/null @@ -1,639 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.107 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.107 -Problem: Python: When vim.eval() encounters a Vim error, a try/catch in the - Python code doesn't catch it. (Yggdroot Chen) -Solution: Throw exceptions on errors in vim.eval(). (ZyX) -Files: src/ex_eval.c, src/if_py_both.h, src/proto/ex_eval.pro, - src/testdir/test86.in, src/testdir/test86.ok, - src/testdir/test87.in, src/testdir/test87.ok - - -*** ../vim-7.4.106/src/ex_eval.c 2013-06-08 15:50:28.000000000 +0200 ---- src/ex_eval.c 2013-11-28 16:59:09.000000000 +0100 -*************** -*** 321,326 **** ---- 321,337 ---- - } - - /* -+ * Free global "*msg_list" and the messages it contains, then set "*msg_list" -+ * to NULL. -+ */ -+ void -+ free_global_msglist() -+ { -+ free_msglist(*msg_list); -+ *msg_list = NULL; -+ } -+ -+ /* - * Throw the message specified in the call to cause_errthrow() above as an - * error exception. If cstack is NULL, postpone the throw until do_cmdline() - * has returned (see do_one_cmd()). -*************** -*** 410,475 **** - return TRUE; - } - -- - /* -! * Throw a new exception. Return FAIL when out of memory or it was tried to -! * throw an illegal user exception. "value" is the exception string for a user -! * or interrupt exception, or points to a message list in case of an error -! * exception. - */ -! static int -! throw_exception(value, type, cmdname) - void *value; - int type; - char_u *cmdname; - { -! except_T *excp; -! char_u *p, *mesg, *val; - int cmdlen; -! -! /* -! * Disallow faking Interrupt or error exceptions as user exceptions. They -! * would be treated differently from real interrupt or error exceptions when -! * no active try block is found, see do_cmdline(). -! */ -! if (type == ET_USER) -! { -! if (STRNCMP((char_u *)value, "Vim", 3) == 0 && -! (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':' || -! ((char_u *)value)[3] == '(')) -! { -! EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix")); -! goto fail; -! } -! } -! -! excp = (except_T *)alloc((unsigned)sizeof(except_T)); -! if (excp == NULL) -! goto nomem; - - if (type == ET_ERROR) - { -! /* Store the original message and prefix the exception value with -! * "Vim:" or, if a command name is given, "Vim(cmdname):". */ -! excp->messages = (struct msglist *)value; -! mesg = excp->messages->throw_msg; - if (cmdname != NULL && *cmdname != NUL) - { - cmdlen = (int)STRLEN(cmdname); -! excp->value = vim_strnsave((char_u *)"Vim(", - 4 + cmdlen + 2 + (int)STRLEN(mesg)); -! if (excp->value == NULL) -! goto nomem; -! STRCPY(&excp->value[4], cmdname); -! STRCPY(&excp->value[4 + cmdlen], "):"); -! val = excp->value + 4 + cmdlen + 2; - } - else - { -! excp->value = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg)); -! if (excp->value == NULL) -! goto nomem; -! val = excp->value + 4; - } - - /* msg_add_fname may have been used to prefix the message with a file ---- 421,461 ---- - return TRUE; - } - - /* -! * Get an exception message that is to be stored in current_exception->value. - */ -! char_u * -! get_exception_string(value, type, cmdname, should_free) - void *value; - int type; - char_u *cmdname; -+ int *should_free; - { -! char_u *ret, *mesg; - int cmdlen; -! char_u *p, *val; - - if (type == ET_ERROR) - { -! *should_free = FALSE; -! mesg = ((struct msglist *)value)->throw_msg; - if (cmdname != NULL && *cmdname != NUL) - { - cmdlen = (int)STRLEN(cmdname); -! ret = vim_strnsave((char_u *)"Vim(", - 4 + cmdlen + 2 + (int)STRLEN(mesg)); -! if (ret == NULL) -! return ret; -! STRCPY(&ret[4], cmdname); -! STRCPY(&ret[4 + cmdlen], "):"); -! val = ret + 4 + cmdlen + 2; - } - else - { -! ret = vim_strnsave((char_u *)"Vim:", 4 + (int)STRLEN(mesg)); -! if (ret == NULL) -! return ret; -! val = ret + 4; - } - - /* msg_add_fname may have been used to prefix the message with a file -*************** -*** 506,519 **** - } - } - else -! excp->value = value; - - excp->type = type; - excp->throw_name = vim_strsave(sourcing_name == NULL - ? (char_u *)"" : sourcing_name); - if (excp->throw_name == NULL) - { -! if (type == ET_ERROR) - vim_free(excp->value); - goto nomem; - } ---- 492,556 ---- - } - } - else -! { -! *should_free = FALSE; -! ret = (char_u *) value; -! } -! -! return ret; -! } -! -! -! /* -! * Throw a new exception. Return FAIL when out of memory or it was tried to -! * throw an illegal user exception. "value" is the exception string for a -! * user or interrupt exception, or points to a message list in case of an -! * error exception. -! */ -! static int -! throw_exception(value, type, cmdname) -! void *value; -! int type; -! char_u *cmdname; -! { -! except_T *excp; -! int should_free; -! -! /* -! * Disallow faking Interrupt or error exceptions as user exceptions. They -! * would be treated differently from real interrupt or error exceptions -! * when no active try block is found, see do_cmdline(). -! */ -! if (type == ET_USER) -! { -! if (STRNCMP((char_u *)value, "Vim", 3) == 0 -! && (((char_u *)value)[3] == NUL || ((char_u *)value)[3] == ':' -! || ((char_u *)value)[3] == '(')) -! { -! EMSG(_("E608: Cannot :throw exceptions with 'Vim' prefix")); -! goto fail; -! } -! } -! -! excp = (except_T *)alloc((unsigned)sizeof(except_T)); -! if (excp == NULL) -! goto nomem; -! -! if (type == ET_ERROR) -! /* Store the original message and prefix the exception value with -! * "Vim:" or, if a command name is given, "Vim(cmdname):". */ -! excp->messages = (struct msglist *)value; -! -! excp->value = get_exception_string(value, type, cmdname, &should_free); -! if (excp->value == NULL && should_free) -! goto nomem; - - excp->type = type; - excp->throw_name = vim_strsave(sourcing_name == NULL - ? (char_u *)"" : sourcing_name); - if (excp->throw_name == NULL) - { -! if (should_free) - vim_free(excp->value); - goto nomem; - } -*************** -*** 2033,2042 **** - /* If an error was about to be converted to an exception when - * enter_cleanup() was called, free the message list. */ - if (msg_list != NULL) -! { -! free_msglist(*msg_list); -! *msg_list = NULL; -! } - } - - /* ---- 2070,2076 ---- - /* If an error was about to be converted to an exception when - * enter_cleanup() was called, free the message list. */ - if (msg_list != NULL) -! free_global_msglist(); - } - - /* -*** ../vim-7.4.106/src/if_py_both.h 2013-11-11 01:05:43.000000000 +0100 ---- src/if_py_both.h 2013-11-28 17:00:22.000000000 +0100 -*************** -*** 566,571 **** ---- 566,593 ---- - PyErr_SetNone(PyExc_KeyboardInterrupt); - return -1; - } -+ else if (msg_list != NULL && *msg_list != NULL) -+ { -+ int should_free; -+ char_u *msg; -+ -+ msg = get_exception_string(*msg_list, ET_ERROR, NULL, &should_free); -+ -+ if (msg == NULL) -+ { -+ PyErr_NoMemory(); -+ return -1; -+ } -+ -+ PyErr_SetVim((char *) msg); -+ -+ free_global_msglist(); -+ -+ if (should_free) -+ vim_free(msg); -+ -+ return -1; -+ } - else if (!did_throw) - return (PyErr_Occurred() ? -1 : 0); - /* Python exception is preferred over vim one; unlikely to occur though */ -*** ../vim-7.4.106/src/proto/ex_eval.pro 2013-08-10 13:37:10.000000000 +0200 ---- src/proto/ex_eval.pro 2013-11-28 16:56:33.000000000 +0100 -*************** -*** 4,11 **** ---- 4,13 ---- - int should_abort __ARGS((int retcode)); - int aborted_in_try __ARGS((void)); - int cause_errthrow __ARGS((char_u *mesg, int severe, int *ignore)); -+ void free_global_msglist __ARGS((void)); - void do_errthrow __ARGS((struct condstack *cstack, char_u *cmdname)); - int do_intthrow __ARGS((struct condstack *cstack)); -+ char_u *get_exception_string __ARGS((void *value, int type, char_u *cmdname, int *should_free)); - void discard_current_exception __ARGS((void)); - void report_make_pending __ARGS((int pending, void *value)); - void report_resume_pending __ARGS((int pending, void *value)); -*** ../vim-7.4.106/src/testdir/test86.in 2013-11-11 01:05:43.000000000 +0100 ---- src/testdir/test86.in 2013-11-28 16:41:01.000000000 +0100 -*************** -*** 179,184 **** ---- 179,210 ---- - :unlockvar! l - :" - :" Function calls -+ py << EOF -+ import sys -+ def ee(expr, g=globals(), l=locals()): -+ try: -+ exec(expr, g, l) -+ except: -+ ei = sys.exc_info() -+ msg = sys.exc_info()[0].__name__ + ':' + repr(sys.exc_info()[1].args) -+ msg = msg.replace('TypeError:(\'argument 1 ', 'TypeError:(\'') -+ if expr.find('None') > -1: -+ msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', -+ 'TypeError:("\'NoneType\' object is not iterable",)') -+ if expr.find('FailingNumber') > -1: -+ msg = msg.replace(', not \'FailingNumber\'', '').replace('"', '\'') -+ msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', -+ 'TypeError:("\'FailingNumber\' object is not iterable",)') -+ if msg.find('(\'\'') > -1 or msg.find('(\'can\'t') > -1: -+ msg = msg.replace('(\'', '("').replace('\',)', '",)') -+ if expr == 'fd(self=[])': -+ # HACK: PyMapping_Check changed meaning -+ msg = msg.replace('AttributeError:(\'keys\',)', -+ 'TypeError:(\'unable to convert list to vim dictionary\',)') -+ vim.current.buffer.append(expr + ':' + msg) -+ else: -+ vim.current.buffer.append(expr + ':NOT FAILED') -+ EOF - :fun New(...) - : return ['NewStart']+a:000+['NewEnd'] - :endfun -*************** -*** 193,210 **** - :$put =string(l) - :py l.extend([l[0].name]) - :$put =string(l) -! :try -! : py l[1](1, 2, 3) -! :catch -! : $put =v:exception[:16] -! :endtry - :py f=l[0] - :delfunction New -! :try -! : py f(1, 2, 3) -! :catch -! : $put =v:exception[:16] -! :endtry - :if has('float') - : let l=[0.0] - : py l=vim.bindeval('l') ---- 219,228 ---- - :$put =string(l) - :py l.extend([l[0].name]) - :$put =string(l) -! :py ee('l[1](1, 2, 3)') - :py f=l[0] - :delfunction New -! :py ee('f(1, 2, 3)') - :if has('float') - : let l=[0.0] - : py l=vim.bindeval('l') -*************** -*** 216,222 **** - :let messages=[] - :delfunction DictNew - py < 8 # check if the background thread is working - :py del time - :py del threading -+ :py del t - :$put =string(l) - :" - :" settrace -*************** -*** 882,910 **** - :fun D() - :endfun - py << EOF -- def ee(expr, g=globals(), l=locals()): -- try: -- exec(expr, g, l) -- except: -- ei = sys.exc_info() -- msg = sys.exc_info()[0].__name__ + ':' + repr(sys.exc_info()[1].args) -- msg = msg.replace('TypeError:(\'argument 1 ', 'TypeError:(\'') -- if expr.find('None') > -1: -- msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', -- 'TypeError:("\'NoneType\' object is not iterable",)') -- if expr.find('FailingNumber') > -1: -- msg = msg.replace(', not \'FailingNumber\'', '').replace('"', '\'') -- msg = msg.replace('TypeError:(\'iteration over non-sequence\',)', -- 'TypeError:("\'FailingNumber\' object is not iterable",)') -- if msg.find('(\'\'') > -1 or msg.find('(\'can\'t') > -1: -- msg = msg.replace('(\'', '("').replace('\',)', '",)') -- if expr == 'fd(self=[])': -- # HACK: PyMapping_Check changed meaning -- msg = msg.replace('AttributeError:(\'keys\',)', -- 'TypeError:(\'unable to convert list to vim dictionary\',)') -- cb.append(expr + ':' + msg) -- else: -- cb.append(expr + ':NOT FAILED') - d = vim.Dictionary() - ned = vim.Dictionary(foo='bar', baz='abcD') - dl = vim.Dictionary(a=1) ---- 900,905 ---- -*************** -*** 1276,1281 **** ---- 1271,1277 ---- - ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")') - ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")') - ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")') -+ ee('vim.eval("xxx_unknown_function_xxx()")') - ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")') - del Exe - EOF -*** ../vim-7.4.106/src/testdir/test86.ok 2013-11-11 01:05:43.000000000 +0100 ---- src/testdir/test86.ok 2013-11-28 16:41:01.000000000 +0100 -*************** -*** 53,60 **** - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New'] -! Vim(python):E725: -! Vim(python):E117: - [0.0, 0.0] - KeyError - TypeError ---- 53,60 ---- - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New'] -! l[1](1, 2, 3):error:('Vim:E725: Calling dict function without Dictionary: DictNew',) -! f(1, 2, 3):error:('Vim:E117: Unknown function: New',) - [0.0, 0.0] - KeyError - TypeError -*************** -*** 1197,1202 **** ---- 1197,1203 ---- - vim.eval("Exe('throw ''ghi''')"):error:('ghi',) - vim.eval("Exe('echoerr ''jkl''')"):error:('Vim(echoerr):jkl',) - vim.eval("Exe('xxx_non_existent_command_xxx')"):error:('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',) -+ vim.eval("xxx_unknown_function_xxx()"):error:('Vim:E117: Unknown function: xxx_unknown_function_xxx',) - vim.bindeval("Exe('xxx_non_existent_command_xxx')"):error:('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',) - Caught KeyboardInterrupt - Running :put -*** ../vim-7.4.106/src/testdir/test87.in 2013-11-11 01:05:43.000000000 +0100 ---- src/testdir/test87.in 2013-11-28 16:41:01.000000000 +0100 -*************** -*** 172,177 **** ---- 172,207 ---- - :unlockvar! l - :" - :" Function calls -+ py3 << EOF -+ import sys -+ import re -+ -+ py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$') -+ -+ def ee(expr, g=globals(), l=locals()): -+ cb = vim.current.buffer -+ try: -+ try: -+ exec(expr, g, l) -+ except Exception as e: -+ if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."): -+ cb.append(expr + ':' + repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1])))) -+ elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0: -+ cb.append(expr + ':' + repr((e.__class__, ImportError(str(e).replace("'", ''))))) -+ elif sys.version_info >= (3, 3) and e.__class__ is TypeError: -+ m = py33_type_error_pattern.search(str(e)) -+ if m: -+ msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2)) -+ cb.append(expr + ':' + repr((e.__class__, TypeError(msg)))) -+ else: -+ cb.append(expr + ':' + repr((e.__class__, e))) -+ else: -+ cb.append(expr + ':' + repr((e.__class__, e))) -+ else: -+ cb.append(expr + ':NOT FAILED') -+ except Exception as e: -+ cb.append(expr + '::' + repr((e.__class__, e))) -+ EOF - :fun New(...) - : return ['NewStart']+a:000+['NewEnd'] - :endfun -*************** -*** 186,203 **** - :$put =string(l) - :py3 l+=[l[0].name] - :$put =string(l) -! :try -! : py3 l[1](1, 2, 3) -! :catch -! : $put =v:exception[:13] -! :endtry - :py3 f=l[0] - :delfunction New -! :try -! : py3 f(1, 2, 3) -! :catch -! : $put =v:exception[:13] -! :endtry - :if has('float') - : let l=[0.0] - : py3 l=vim.bindeval('l') ---- 216,225 ---- - :$put =string(l) - :py3 l+=[l[0].name] - :$put =string(l) -! :py3 ee('l[1](1, 2, 3)') - :py3 f=l[0] - :delfunction New -! :py3 ee('f(1, 2, 3)') - :if has('float') - : let l=[0.0] - : py3 l=vim.bindeval('l') -*************** -*** 315,320 **** ---- 337,343 ---- - :py3 l[0] = t.t > 8 # check if the background thread is working - :py3 del time - :py3 del threading -+ :py3 del t - :$put =string(l) - :" - :" settrace -*************** -*** 829,861 **** - :fun D() - :endfun - py3 << EOF -- import re -- -- py33_type_error_pattern = re.compile('^__call__\(\) takes (\d+) positional argument but (\d+) were given$') -- -- def ee(expr, g=globals(), l=locals()): -- try: -- try: -- exec(expr, g, l) -- except Exception as e: -- if sys.version_info >= (3, 3) and e.__class__ is AttributeError and str(e).find('has no attribute')>=0 and not str(e).startswith("'vim."): -- cb.append(expr + ':' + repr((e.__class__, AttributeError(str(e)[str(e).rfind(" '") + 2:-1])))) -- elif sys.version_info >= (3, 3) and e.__class__ is ImportError and str(e).find('No module named \'') >= 0: -- cb.append(expr + ':' + repr((e.__class__, ImportError(str(e).replace("'", ''))))) -- elif sys.version_info >= (3, 3) and e.__class__ is TypeError: -- m = py33_type_error_pattern.search(str(e)) -- if m: -- msg = '__call__() takes exactly {0} positional argument ({1} given)'.format(m.group(1), m.group(2)) -- cb.append(expr + ':' + repr((e.__class__, TypeError(msg)))) -- else: -- cb.append(expr + ':' + repr((e.__class__, e))) -- else: -- cb.append(expr + ':' + repr((e.__class__, e))) -- else: -- cb.append(expr + ':NOT FAILED') -- except Exception as e: -- cb.append(expr + '::' + repr((e.__class__, e))) -- - d = vim.Dictionary() - ned = vim.Dictionary(foo='bar', baz='abcD') - dl = vim.Dictionary(a=1) ---- 852,857 ---- -*************** -*** 1227,1232 **** ---- 1223,1229 ---- - ee('vim.eval("Exe(\'throw \'\'ghi\'\'\')")') - ee('vim.eval("Exe(\'echoerr \'\'jkl\'\'\')")') - ee('vim.eval("Exe(\'xxx_non_existent_command_xxx\')")') -+ ee('vim.eval("xxx_unknown_function_xxx()")') - ee('vim.bindeval("Exe(\'xxx_non_existent_command_xxx\')")') - del Exe - EOF -*** ../vim-7.4.106/src/testdir/test87.ok 2013-11-11 01:05:43.000000000 +0100 ---- src/testdir/test87.ok 2013-11-28 16:41:01.000000000 +0100 -*************** -*** 53,60 **** - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New'] -! Vim(py3):E725: -! Vim(py3):E117: - [0.0, 0.0] - KeyError - TypeError ---- 53,60 ---- - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}, 'New'] -! l[1](1, 2, 3):(, error('Vim:E725: Calling dict function without Dictionary: DictNew',)) -! f(1, 2, 3):(, error('Vim:E117: Unknown function: New',)) - [0.0, 0.0] - KeyError - TypeError -*************** -*** 1186,1191 **** ---- 1186,1192 ---- - vim.eval("Exe('throw ''ghi''')"):(, error('ghi',)) - vim.eval("Exe('echoerr ''jkl''')"):(, error('Vim(echoerr):jkl',)) - vim.eval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) -+ vim.eval("xxx_unknown_function_xxx()"):(, error('Vim:E117: Unknown function: xxx_unknown_function_xxx',)) - vim.bindeval("Exe('xxx_non_existent_command_xxx')"):(, error('Vim:E492: Not an editor command: xxx_non_existent_command_xxx',)) - Caught KeyboardInterrupt - Running :put -*** ../vim-7.4.106/src/version.c 2013-11-28 16:32:34.000000000 +0100 ---- src/version.c 2013-11-28 16:41:43.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 107, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -8. You spend half of the plane trip with your laptop on your lap...and your - child in the overhead compartment. - - /// 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 /// diff --git a/7.4.108 b/7.4.108 deleted file mode 100644 index 05423474..00000000 --- a/7.4.108 +++ /dev/null @@ -1,215 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.108 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.108 -Problem: "zG" and "zW" leave temp files around on MS-Windows. -Solution: Delete the temp files when exiting. (Ken Takata) -Files: src/memline.c, src/proto/spell.pro, src/spell.c - - -*** ../vim-7.4.107/src/memline.c 2013-11-04 02:53:46.000000000 +0100 ---- src/memline.c 2013-11-28 17:27:06.000000000 +0100 -*************** -*** 841,848 **** - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0 - || vim_strchr(p_cpo, CPO_PRESERVE) == NULL)); - #ifdef TEMPDIRNAMES -! vim_deltempdir(); /* delete created temp directory */ - #endif - } - ---- 841,851 ---- - for (buf = firstbuf; buf != NULL; buf = buf->b_next) - ml_close(buf, del_file && ((buf->b_flags & BF_PRESERVED) == 0 - || vim_strchr(p_cpo, CPO_PRESERVE) == NULL)); -+ #ifdef FEAT_SPELL -+ spell_delete_wordlist(); /* delete the internal wordlist */ -+ #endif - #ifdef TEMPDIRNAMES -! vim_deltempdir(); /* delete created temp directory */ - #endif - } - -*** ../vim-7.4.107/src/proto/spell.pro 2013-08-10 13:37:26.000000000 +0200 ---- src/proto/spell.pro 2013-11-28 17:25:59.000000000 +0100 -*************** -*** 3,8 **** ---- 3,9 ---- - int spell_move_to __ARGS((win_T *wp, int dir, int allwords, int curline, hlf_T *attrp)); - void spell_cat_line __ARGS((char_u *buf, char_u *line, int maxlen)); - char_u *did_set_spelllang __ARGS((win_T *wp)); -+ void spell_delete_wordlist __ARGS((void)); - void spell_free_all __ARGS((void)); - void spell_reload __ARGS((void)); - int spell_check_msm __ARGS((void)); -*** ../vim-7.4.107/src/spell.c 2013-11-21 17:42:26.000000000 +0100 ---- src/spell.c 2013-11-28 17:25:59.000000000 +0100 -*************** -*** 2180,2188 **** - char_u *endp; - hlf_T attr; - int len; -! # ifdef FEAT_SYN_HL - int has_syntax = syntax_present(wp); -! # endif - int col; - int can_spell; - char_u *buf = NULL; ---- 2180,2188 ---- - char_u *endp; - hlf_T attr; - int len; -! #ifdef FEAT_SYN_HL - int has_syntax = syntax_present(wp); -! #endif - int col; - int can_spell; - char_u *buf = NULL; -*************** -*** 2280,2286 **** - : p - buf) - > wp->w_cursor.col))) - { -! # ifdef FEAT_SYN_HL - if (has_syntax) - { - col = (int)(p - buf); ---- 2280,2286 ---- - : p - buf) - > wp->w_cursor.col))) - { -! #ifdef FEAT_SYN_HL - if (has_syntax) - { - col = (int)(p - buf); -*************** -*** 4701,4707 **** - return flags; - } - -! # if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO) - /* - * Free all languages. - */ ---- 4701,4725 ---- - return flags; - } - -! /* -! * Delete the internal wordlist and its .spl file. -! */ -! void -! spell_delete_wordlist() -! { -! char_u fname[MAXPATHL]; -! -! if (int_wordlist != NULL) -! { -! mch_remove(int_wordlist); -! int_wordlist_spl(fname); -! mch_remove(fname); -! vim_free(int_wordlist); -! int_wordlist = NULL; -! } -! } -! -! #if defined(FEAT_MBYTE) || defined(EXITFREE) || defined(PROTO) - /* - * Free all languages. - */ -*************** -*** 4710,4716 **** - { - slang_T *slang; - buf_T *buf; -- char_u fname[MAXPATHL]; - - /* Go through all buffers and handle 'spelllang'. */ - for (buf = firstbuf; buf != NULL; buf = buf->b_next) ---- 4728,4733 ---- -*************** -*** 4723,4746 **** - slang_free(slang); - } - -! if (int_wordlist != NULL) -! { -! /* Delete the internal wordlist and its .spl file */ -! mch_remove(int_wordlist); -! int_wordlist_spl(fname); -! mch_remove(fname); -! vim_free(int_wordlist); -! int_wordlist = NULL; -! } - - vim_free(repl_to); - repl_to = NULL; - vim_free(repl_from); - repl_from = NULL; - } -! # endif - -! # if defined(FEAT_MBYTE) || defined(PROTO) - /* - * Clear all spelling tables and reload them. - * Used after 'encoding' is set and when ":mkspell" was used. ---- 4740,4755 ---- - slang_free(slang); - } - -! spell_delete_wordlist(); - - vim_free(repl_to); - repl_to = NULL; - vim_free(repl_from); - repl_from = NULL; - } -! #endif - -! #if defined(FEAT_MBYTE) || defined(PROTO) - /* - * Clear all spelling tables and reload them. - * Used after 'encoding' is set and when ":mkspell" was used. -*************** -*** 4773,4779 **** - } - } - } -! # endif - - /* - * Reload the spell file "fname" if it's loaded. ---- 4782,4788 ---- - } - } - } -! #endif - - /* - * Reload the spell file "fname" if it's loaded. -*** ../vim-7.4.107/src/version.c 2013-11-28 17:04:38.000000000 +0100 ---- src/version.c 2013-11-28 17:26:31.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 108, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -9. All your daydreaming is preoccupied with getting a faster connection to the - net: 28.8...ISDN...cable modem...T1...T3. - - /// 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 /// diff --git a/7.4.109 b/7.4.109 deleted file mode 100644 index 70ed86d2..00000000 --- a/7.4.109 +++ /dev/null @@ -1,123 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.109 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.109 -Problem: ColorScheme autocommand matches with the current buffer name. -Solution: Match with the colorscheme name. (Christian Brabandt) -Files: runtime/doc/autocmd.txt, src/fileio.c, src/syntax.c - - -*** ../vim-7.4.108/runtime/doc/autocmd.txt 2013-08-10 13:24:52.000000000 +0200 ---- runtime/doc/autocmd.txt 2013-11-28 18:44:20.000000000 +0100 -*************** -*** 480,485 **** ---- 480,491 ---- - |cmdwin-char| - *ColorScheme* - ColorScheme After loading a color scheme. |:colorscheme| -+ The pattern is matched against the -+ colorscheme name. can be used for the -+ name of the actual file where this option was -+ set, and for the new colorscheme -+ name. -+ - - *CompleteDone* - CompleteDone After Insert mode completion is done. Either -*** ../vim-7.4.108/src/fileio.c 2013-11-12 18:09:20.000000000 +0100 ---- src/fileio.c 2013-11-28 18:44:20.000000000 +0100 -*************** -*** 9330,9336 **** - */ - if (fname_io == NULL) - { -! if (fname != NULL && *fname != NUL) - autocmd_fname = fname; - else if (buf != NULL) - autocmd_fname = buf->b_ffname; ---- 9330,9338 ---- - */ - if (fname_io == NULL) - { -! if (event == EVENT_COLORSCHEME) -! autocmd_fname = NULL; -! else if (fname != NULL && *fname != NUL) - autocmd_fname = fname; - else if (buf != NULL) - autocmd_fname = buf->b_ffname; -*************** -*** 9383,9396 **** - else - { - sfname = vim_strsave(fname); -! /* Don't try expanding FileType, Syntax, FuncUndefined, WindowID or -! * QuickFixCmd* */ - if (event == EVENT_FILETYPE - || event == EVENT_SYNTAX - || event == EVENT_FUNCUNDEFINED - || event == EVENT_REMOTEREPLY - || event == EVENT_SPELLFILEMISSING - || event == EVENT_QUICKFIXCMDPRE - || event == EVENT_QUICKFIXCMDPOST) - fname = vim_strsave(fname); - else ---- 9385,9399 ---- - else - { - sfname = vim_strsave(fname); -! /* Don't try expanding FileType, Syntax, FuncUndefined, WindowID, -! * ColorScheme or QuickFixCmd* */ - if (event == EVENT_FILETYPE - || event == EVENT_SYNTAX - || event == EVENT_FUNCUNDEFINED - || event == EVENT_REMOTEREPLY - || event == EVENT_SPELLFILEMISSING - || event == EVENT_QUICKFIXCMDPRE -+ || event == EVENT_COLORSCHEME - || event == EVENT_QUICKFIXCMDPOST) - fname = vim_strsave(fname); - else -*** ../vim-7.4.108/src/syntax.c 2013-06-08 16:10:08.000000000 +0200 ---- src/syntax.c 2013-11-28 18:44:20.000000000 +0100 -*************** -*** 7071,7077 **** - retval = source_runtime(buf, FALSE); - vim_free(buf); - #ifdef FEAT_AUTOCMD -! apply_autocmds(EVENT_COLORSCHEME, NULL, NULL, FALSE, curbuf); - #endif - } - recursive = FALSE; ---- 7071,7077 ---- - retval = source_runtime(buf, FALSE); - vim_free(buf); - #ifdef FEAT_AUTOCMD -! apply_autocmds(EVENT_COLORSCHEME, name, curbuf->b_fname, FALSE, curbuf); - #endif - } - recursive = FALSE; -*** ../vim-7.4.108/src/version.c 2013-11-28 17:41:41.000000000 +0100 ---- src/version.c 2013-11-28 18:48:42.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 109, - /**/ - --- -"How is your new girlfriend?" -"90-60-90 man!" -"What, pale purple?" - - /// 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 /// diff --git a/7.4.110 b/7.4.110 deleted file mode 100644 index 0a40ee90..00000000 --- a/7.4.110 +++ /dev/null @@ -1,102 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.110 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.110 -Problem: "gUgn" cannot be repeeated. (Dimitar Dimitrov) -Solution: Don't put "gn" in a different order in the redo buffer. Restore - 'wrapscan' when the pattern isn't found. (Christian Wellenbrock) -Files: src/normal.c, src/search.c, src/test53.in, src/test53.ok - - -*** ../vim-7.4.109/src/normal.c 2013-11-04 01:41:11.000000000 +0100 ---- src/normal.c 2013-11-28 19:02:45.000000000 +0100 -*************** -*** 962,972 **** - #ifdef FEAT_CMDL_INFO - need_flushbuf |= add_to_showcmd(ca.nchar); - #endif -- /* For "gn" from redo, need to get one more char to determine the -- * operator */ - if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`' -! || ca.nchar == Ctrl_BSL -! || ((ca.nchar == 'n' || ca.nchar == 'N') && !stuff_empty())) - { - cp = &ca.extra_char; /* need to get a third character */ - if (ca.nchar != 'r') ---- 962,969 ---- - #ifdef FEAT_CMDL_INFO - need_flushbuf |= add_to_showcmd(ca.nchar); - #endif - if (ca.nchar == 'r' || ca.nchar == '\'' || ca.nchar == '`' -! || ca.nchar == Ctrl_BSL) - { - cp = &ca.extra_char; /* need to get a third character */ - if (ca.nchar != 'r') -*************** -*** 1797,1806 **** - * otherwise it might be the second char of the operator. */ - if (cap->cmdchar == 'g' && (cap->nchar == 'n' - || cap->nchar == 'N')) -! /* "gn" and "gN" are a bit different */ -! prep_redo(oap->regname, 0L, NUL, cap->cmdchar, cap->nchar, -! get_op_char(oap->op_type), -! get_extra_op_char(oap->op_type)); - else if (cap->cmdchar != ':') - prep_redo(oap->regname, 0L, NUL, 'v', - get_op_char(oap->op_type), ---- 1794,1802 ---- - * otherwise it might be the second char of the operator. */ - if (cap->cmdchar == 'g' && (cap->nchar == 'n' - || cap->nchar == 'N')) -! prep_redo(oap->regname, cap->count0, -! get_op_char(oap->op_type), get_extra_op_char(oap->op_type), -! oap->motion_force, cap->cmdchar, cap->nchar); - else if (cap->cmdchar != ':') - prep_redo(oap->regname, 0L, NUL, 'v', - get_op_char(oap->op_type), -*** ../vim-7.4.109/src/search.c 2013-11-08 04:30:06.000000000 +0100 ---- src/search.c 2013-11-28 19:05:16.000000000 +0100 -*************** -*** 4544,4550 **** - /* Is the pattern is zero-width? */ - one_char = is_one_char(spats[last_idx].pat); - if (one_char == -1) -! return FAIL; /* invalid pattern */ - - /* - * The trick is to first search backwards and then search forward again, ---- 4544,4553 ---- - /* Is the pattern is zero-width? */ - one_char = is_one_char(spats[last_idx].pat); - if (one_char == -1) -! { -! p_ws = old_p_ws; -! return FAIL; /* pattern not found */ -! } - - /* - * The trick is to first search backwards and then search forward again, -*** ../vim-7.4.109/src/version.c 2013-11-28 18:53:47.000000000 +0100 ---- src/version.c 2013-11-28 19:20:29.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 110, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -10. And even your night dreams are in HTML. - - /// 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 /// diff --git a/7.4.111 b/7.4.111 deleted file mode 100644 index e8c7a48d..00000000 --- a/7.4.111 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.111 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.111 -Problem: Memory leak in Python OptionsAssItem. (Ken Takata) -Solution: Call Py_XDECREF() where needed. (ZyX) -Files: src/if_py_both.h - - -*** ../vim-7.4.110/src/if_py_both.h 2013-11-28 17:04:38.000000000 +0100 ---- src/if_py_both.h 2013-12-07 14:23:00.000000000 +0100 -*************** -*** 3005,3015 **** - else - { - char_u *val; -! PyObject *todecref; - -! if ((val = StringToChars(valObject, &todecref))) - ret = set_option_value_for(key, 0, val, opt_flags, - self->opt_type, self->from); - else - ret = -1; - } ---- 3005,3018 ---- - else - { - char_u *val; -! PyObject *todecref2; - -! if ((val = StringToChars(valObject, &todecref2))) -! { - ret = set_option_value_for(key, 0, val, opt_flags, - self->opt_type, self->from); -+ Py_XDECREF(todecref2); -+ } - else - ret = -1; - } -*** ../vim-7.4.110/src/version.c 2013-11-28 19:27:18.000000000 +0100 ---- src/version.c 2013-12-07 14:24:16.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 111, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -12. Sing along at the opera. - - /// 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 /// diff --git a/7.4.112 b/7.4.112 deleted file mode 100644 index ab64e131..00000000 --- a/7.4.112 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.112 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.112 -Problem: The defaults for 'directory' and 'backupdir' on MS-Windows do not - include a directory that exists. -Solution: Use $TEMP. -Files: src/os_dos.h - - -*** ../vim-7.4.111/src/os_dos.h 2013-06-12 20:09:44.000000000 +0200 ---- src/os_dos.h 2013-12-04 15:23:22.000000000 +0100 -*************** -*** 109,115 **** - #endif - - #ifndef DFLT_BDIR -! # define DFLT_BDIR ".,c:\\tmp,c:\\temp" /* default for 'backupdir' */ - #endif - - #ifndef DFLT_VDIR ---- 109,115 ---- - #endif - - #ifndef DFLT_BDIR -! # define DFLT_BDIR ".,$TEMP,c:\\tmp,c:\\temp" /* default for 'backupdir' */ - #endif - - #ifndef DFLT_VDIR -*************** -*** 117,123 **** - #endif - - #ifndef DFLT_DIR -! # define DFLT_DIR ".,c:\\tmp,c:\\temp" /* default for 'directory' */ - #endif - - #define DFLT_ERRORFILE "errors.err" ---- 117,123 ---- - #endif - - #ifndef DFLT_DIR -! # define DFLT_DIR ".,$TEMP,c:\\tmp,c:\\temp" /* default for 'directory' */ - #endif - - #define DFLT_ERRORFILE "errors.err" -*** ../vim-7.4.111/src/version.c 2013-12-07 14:28:37.000000000 +0100 ---- src/version.c 2013-12-07 14:31:03.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 112, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -13. Go to a poetry recital and ask why the poems don't rhyme. - - /// 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 /// diff --git a/7.4.113 b/7.4.113 deleted file mode 100644 index 97059e55..00000000 --- a/7.4.113 +++ /dev/null @@ -1,101 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.113 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.113 -Problem: MSVC static analysis gives warnings. -Solution: Avoid the warnings and avoid possible bugs. (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.112/src/os_win32.c 2013-11-21 12:34:07.000000000 +0100 ---- src/os_win32.c 2013-12-07 14:41:35.000000000 +0100 -*************** -*** 2509,2515 **** - WCHAR *porig, *porigPrev; - int flen; - WIN32_FIND_DATAW fb; -! HANDLE hFind; - int c; - int slen; - ---- 2509,2515 ---- - WCHAR *porig, *porigPrev; - int flen; - WIN32_FIND_DATAW fb; -! HANDLE hFind = INVALID_HANDLE_VALUE; - int c; - int slen; - -*************** -*** 2528,2535 **** - /* copy leading drive letter */ - *ptrue++ = *porig++; - *ptrue++ = *porig++; -- *ptrue = NUL; /* in case nothing follows */ - } - - while (*porig != NUL) - { ---- 2528,2535 ---- - /* copy leading drive letter */ - *ptrue++ = *porig++; - *ptrue++ = *porig++; - } -+ *ptrue = NUL; /* in case nothing follows */ - - while (*porig != NUL) - { -*************** -*** 2673,2680 **** - /* copy leading drive letter */ - *ptrue++ = *porig++; - *ptrue++ = *porig++; -- *ptrue = NUL; /* in case nothing follows */ - } - - while (*porig != NUL) - { ---- 2673,2680 ---- - /* copy leading drive letter */ - *ptrue++ = *porig++; - *ptrue++ = *porig++; - } -+ *ptrue = NUL; /* in case nothing follows */ - - while (*porig != NUL) - { -*************** -*** 6272,6277 **** ---- 6272,6278 ---- - while (i > 0) - free(argv[--i]); - free(argv); -+ argv = NULL; - argc = 0; - } - } -*** ../vim-7.4.112/src/version.c 2013-12-07 14:32:04.000000000 +0100 ---- src/version.c 2013-12-07 14:37:48.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 113, - /**/ - --- -How To Keep A Healthy Level Of Insanity: -15. Five days in advance, tell your friends you can't attend their - party because you're not in the mood. - - /// 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 /// diff --git a/7.4.114 b/7.4.114 deleted file mode 100644 index 9b982f6b..00000000 --- a/7.4.114 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.114 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.114 -Problem: New GNU make outputs messages about changing directory in another - format. -Solution: Recognize the new format. -Files: src/option.h - - -*** ../vim-7.4.113/src/option.h 2013-11-06 05:26:08.000000000 +0100 ---- src/option.h 2013-12-04 12:43:03.000000000 +0100 -*************** -*** 31,39 **** - # define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m" - # else /* Unix, probably */ - # ifdef EBCDIC -! #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m" - # else -! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory `%f',%X%*\\a[%*\\d]: Leaving directory `%f',%D%*\\a: Entering directory `%f',%X%*\\a: Leaving directory `%f',%DMaking %*\\a in %f,%f|%l| %m" - # endif - # endif - # endif ---- 31,39 ---- - # define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m" - # else /* Unix, probably */ - # ifdef EBCDIC -! #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m" - # else -! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory [`']%f',%D%*\\a: Entering directory [`']%f',%X%*\\a: Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m" - # endif - # endif - # endif -*** ../vim-7.4.113/src/version.c 2013-12-07 14:48:06.000000000 +0100 ---- src/version.c 2013-12-11 12:22:19.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 114, - /**/ - --- -Everyone has a photographic memory. Some don't have film. - - /// 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 /// diff --git a/7.4.115 b/7.4.115 deleted file mode 100644 index 1d1a561b..00000000 --- a/7.4.115 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.115 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.115 -Problem: When using Zsh expanding ~abc doesn't work when the result - contains a space. -Solution: Off-by-one error in detecting the NUL. (Pavol Juhas) -Files: src/os_unix.c - - -*** ../vim-7.4.114/src/os_unix.c 2013-11-03 00:40:54.000000000 +0100 ---- src/os_unix.c 2013-12-11 13:19:26.000000000 +0100 -*************** -*** 5990,5996 **** - { - /* If there is a NUL, set did_find_nul, else set check_spaces */ - buffer[len] = NUL; -! if (len && (int)STRLEN(buffer) < (int)len - 1) - did_find_nul = TRUE; - else - check_spaces = TRUE; ---- 5990,5996 ---- - { - /* If there is a NUL, set did_find_nul, else set check_spaces */ - buffer[len] = NUL; -! if (len && (int)STRLEN(buffer) < (int)len) - did_find_nul = TRUE; - else - check_spaces = TRUE; -*** ../vim-7.4.114/src/version.c 2013-12-11 12:22:54.000000000 +0100 ---- src/version.c 2013-12-11 13:20:29.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 115, - /**/ - --- -Change is inevitable, except from a vending machine. - - /// 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 /// diff --git a/7.4.116 b/7.4.116 deleted file mode 100644 index f242f050..00000000 --- a/7.4.116 +++ /dev/null @@ -1,46 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.116 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.116 -Problem: When a mapping starts with a space, the typed space does not show - up for 'showcmd'. -Solution: Show "<20>". (Brook Hong) -Files: src/normal.c - - -*** ../vim-7.4.115/src/normal.c 2013-11-28 19:27:18.000000000 +0100 ---- src/normal.c 2013-12-07 14:30:29.000000000 +0100 -*************** -*** 4021,4026 **** ---- 4021,4028 ---- - #endif - - p = transchar(c); -+ if (*p == ' ') -+ STRCPY(p, "<20>"); - old_len = (int)STRLEN(showcmd_buf); - extra_len = (int)STRLEN(p); - overflow = old_len + extra_len - SHOWCMD_COLS; -*** ../vim-7.4.115/src/version.c 2013-12-11 13:21:44.000000000 +0100 ---- src/version.c 2013-12-11 14:16:58.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 116, - /**/ - --- -Bumper sticker: Honk if you love peace and quiet. - - /// 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 /// diff --git a/7.4.117 b/7.4.117 deleted file mode 100644 index 5fb02689..00000000 --- a/7.4.117 +++ /dev/null @@ -1,263 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.117 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.117 -Problem: Can't build with Cygwin/MingW and Perl 5.18. -Solution: Add a linker argument for the Perl library. (Cesar Romani) - Adjust CFLAGS and LIB. (Cesar Romani) - Move including inline.h further down. (Ken Takata) -Files: src/Make_cyg.mak, src/Make_ming.mak, src/if_perl.xs - - -*** ../vim-7.4.116/src/Make_cyg.mak 2013-11-28 16:32:34.000000000 +0100 ---- src/Make_cyg.mak 2013-12-11 14:59:12.000000000 +0100 -*************** -*** 1,6 **** - # - # Makefile for VIM on Win32, using Cygnus gcc -! # Last updated by Dan Sharp. Last Change: 2013 Nov 28 - # - # Also read INSTALLpc.txt! - # ---- 1,6 ---- - # - # Makefile for VIM on Win32, using Cygnus gcc -! # Last updated by Dan Sharp. Last Change: 2013 Dec 11 - # - # Also read INSTALLpc.txt! - # -*************** -*** 155,161 **** - ifeq (yes, $(DYNAMIC_PERL)) - DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" - else -! EXTRA_LIBS += $(PERL)/lib/CORE/perl$(PERL_VER).lib - endif - endif - ---- 155,161 ---- - ifeq (yes, $(DYNAMIC_PERL)) - DEFINES += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" - else -! EXTRA_LIBS += -L$(PERL)/lib/CORE -lperl$(PERL_VER) - endif - endif - -*** ../vim-7.4.116/src/Make_ming.mak 2013-07-06 13:32:11.000000000 +0200 ---- src/Make_ming.mak 2013-12-07 20:02:52.000000000 +0100 -*************** -*** 359,364 **** ---- 359,365 ---- - - CFLAGS = -Iproto $(DEFINES) -pipe -w -march=$(ARCH) -Wall - WINDRES_FLAGS = --preprocessor="$(WINDRES_CC) -E -xc" -DRC_INVOKED -+ EXTRA_LIBS = - - ifdef GETTEXT - DEFINES += -DHAVE_GETTEXT -DHAVE_LOCALE_H -*************** -*** 377,385 **** - endif - - ifdef PERL -! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL -L$(PERLLIBS) - ifeq (yes, $(DYNAMIC_PERL)) - CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" - endif - endif - ---- 378,387 ---- - endif - - ifdef PERL -! CFLAGS += -I$(PERLLIBS) -DFEAT_PERL - ifeq (yes, $(DYNAMIC_PERL)) - CFLAGS += -DDYNAMIC_PERL -DDYNAMIC_PERL_DLL=\"perl$(PERL_VER).dll\" -+ EXTRA_LIBS += -L$(PERLLIBS) -lperl$(PERL_VER) - endif - endif - -*************** -*** 632,638 **** - - ifdef PERL - ifeq (no, $(DYNAMIC_PERL)) -! LIB += -lperl$(PERL_VER) - endif - endif - ---- 634,640 ---- - - ifdef PERL - ifeq (no, $(DYNAMIC_PERL)) -! LIB += -L$(PERLLIBS) -lperl$(PERL_VER) - endif - endif - -*** ../vim-7.4.116/src/if_perl.xs 2013-08-02 19:28:50.000000000 +0200 ---- src/if_perl.xs 2013-12-11 15:02:58.000000000 +0100 -*************** -*** 14,20 **** - #define IN_PERL_FILE /* don't include if_perl.pro from proto.h */ - - /* -! * Currently 32-bit version of ActivePerl is built with VC6. - * (http://community.activestate.com/faq/windows-compilers-perl-modules) - * It means that time_t should be 32-bit. However the default size of - * time_t is 64-bit since VC8. So we have to define _USE_32BIT_TIME_T. ---- 14,21 ---- - #define IN_PERL_FILE /* don't include if_perl.pro from proto.h */ - - /* -! * Currently 32-bit version of ActivePerl is built with VC6 (or MinGW since -! * ActivePerl 5.18). - * (http://community.activestate.com/faq/windows-compilers-perl-modules) - * It means that time_t should be 32-bit. However the default size of - * time_t is 64-bit since VC8. So we have to define _USE_32BIT_TIME_T. -*************** -*** 23,28 **** ---- 24,45 ---- - # define _USE_32BIT_TIME_T - #endif - -+ /* Work around for perl-5.18. -+ * Don't include "perl\lib\CORE\inline.h" for now, -+ * include it after Perl_sv_free2 is defined. */ -+ #define PERL_NO_INLINE_FUNCTIONS -+ -+ /* -+ * Prevent including winsock.h. perl.h tries to detect whether winsock.h is -+ * already included before including winsock2.h, because winsock2.h isn't -+ * compatible with winsock.h. However the detection doesn't work with some -+ * versions of MinGW. If WIN32_LEAN_AND_MEAN is defined, windows.h will not -+ * include winsock.h. -+ */ -+ #ifdef WIN32 -+ # define WIN32_LEAN_AND_MEAN -+ #endif -+ - #include "vim.h" - - #include -*************** -*** 81,90 **** - # define PERL5101_OR_LATER - #endif - -- #if (PERL_REVISION == 5) && (PERL_VERSION >= 18) -- # define PERL5180_OR_LATER -- #endif -- - #ifndef pTHX - # define pTHX void - # define pTHX_ ---- 98,103 ---- -*************** -*** 145,155 **** - # define perl_free dll_perl_free - # define Perl_get_context dll_Perl_get_context - # define Perl_croak dll_Perl_croak -- # ifndef PERL5180_OR_LATER - # ifdef PERL5101_OR_LATER - # define Perl_croak_xs_usage dll_Perl_croak_xs_usage - # endif -- # endif - # ifndef PROTO - # define Perl_croak_nocontext dll_Perl_croak_nocontext - # define Perl_call_argv dll_Perl_call_argv ---- 158,166 ---- -*************** -*** 262,271 **** - static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**); - static void* (*Perl_get_context)(void); - static void (*Perl_croak)(pTHX_ const char*, ...); -- #ifndef PERL5180_OR_LATER - #ifdef PERL5101_OR_LATER - static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params); -! #endif - #endif - static void (*Perl_croak_nocontext)(const char*, ...); - static I32 (*Perl_dowantarray)(pTHX); ---- 273,285 ---- - static int (*perl_parse)(PerlInterpreter*, XSINIT_t, int, char**, char**); - static void* (*Perl_get_context)(void); - static void (*Perl_croak)(pTHX_ const char*, ...); - #ifdef PERL5101_OR_LATER -+ /* Perl-5.18 has a different Perl_croak_xs_usage signature. */ -+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) -+ static void (*Perl_croak_xs_usage)(const CV *const, const char *const params); -+ # else - static void (*Perl_croak_xs_usage)(pTHX_ const CV *const, const char *const params); -! # endif - #endif - static void (*Perl_croak_nocontext)(const char*, ...); - static I32 (*Perl_dowantarray)(pTHX); -*************** -*** 337,343 **** ---- 351,362 ---- - static XPV** (*Perl_TXpv_ptr)(register PerlInterpreter*); - static STRLEN* (*Perl_Tna_ptr)(register PerlInterpreter*); - #else -+ /* Perl-5.18 has a different Perl_sv_free2 signature. */ -+ # if (PERL_REVISION == 5) && (PERL_VERSION >= 18) -+ static void (*Perl_sv_free2)(pTHX_ SV*, const U32); -+ # else - static void (*Perl_sv_free2)(pTHX_ SV*); -+ # endif - static void (*Perl_sys_init)(int* argc, char*** argv); - static void (*Perl_sys_term)(void); - static void (*Perl_call_list)(pTHX_ I32, AV*); -*************** -*** 384,394 **** - {"perl_parse", (PERL_PROC*)&perl_parse}, - {"Perl_get_context", (PERL_PROC*)&Perl_get_context}, - {"Perl_croak", (PERL_PROC*)&Perl_croak}, -- #ifndef PERL5180_OR_LATER - #ifdef PERL5101_OR_LATER - {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage}, - #endif -- #endif - {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext}, - {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray}, - {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps}, ---- 403,411 ---- -*************** -*** 492,497 **** ---- 509,522 ---- - {"", NULL}, - }; - -+ /* Work around for perl-5.18. -+ * The definitions of S_SvREFCNT_inc and S_SvREFCNT_dec are needed, so include -+ * "perl\lib\CORE\inline.h", after Perl_sv_free2 is defined. -+ * The linker won't complain about undefined __impl_Perl_sv_free2. */ -+ #if (PERL_REVISION == 5) && (PERL_VERSION >= 18) -+ # include -+ #endif -+ - /* - * Make all runtime-links of perl. - * -*** ../vim-7.4.116/src/version.c 2013-12-11 14:54:58.000000000 +0100 ---- src/version.c 2013-12-11 15:00:12.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 117, - /**/ - --- -Despite the cost of living, have you noticed how it remains so popular? - - /// 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 /// diff --git a/7.4.118 b/7.4.118 deleted file mode 100644 index 04701cc4..00000000 --- a/7.4.118 +++ /dev/null @@ -1,90 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.118 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.118 -Problem: It's possible that redrawing the status lines causes - win_redr_custom() to be called recursively. -Solution: Protect against recursiveness. (Yasuhiro Matsumoto) -Files: src/screen.c - - -*** ../vim-7.4.117/src/screen.c 2013-11-08 04:30:06.000000000 +0100 ---- src/screen.c 2013-12-11 15:32:21.000000000 +0100 -*************** -*** 6653,6658 **** ---- 6653,6659 ---- - win_T *wp; - int draw_ruler; /* TRUE or FALSE */ - { -+ static int entered = FALSE; - int attr; - int curattr; - int row; -*************** -*** 6671,6676 **** ---- 6672,6684 ---- - win_T *ewp; - int p_crb_save; - -+ /* There is a tiny chance that this gets called recursively: When -+ * redrawing a status line triggers redrawing the ruler or tabline. -+ * Avoid trouble by not allowing recursion. */ -+ if (entered) -+ return; -+ entered = TRUE; -+ - /* setup environment for the task at hand */ - if (wp == NULL) - { -*************** -*** 6746,6752 **** - } - - if (maxwidth <= 0) -! return; - - /* Temporarily reset 'cursorbind', we don't want a side effect from moving - * the cursor away and back. */ ---- 6754,6760 ---- - } - - if (maxwidth <= 0) -! goto theend; - - /* Temporarily reset 'cursorbind', we don't want a side effect from moving - * the cursor away and back. */ -*************** -*** 6827,6832 **** ---- 6835,6843 ---- - while (col < Columns) - TabPageIdxs[col++] = fillchar; - } -+ -+ theend: -+ entered = FALSE; - } - - #endif /* FEAT_STL_OPT */ -*** ../vim-7.4.117/src/version.c 2013-12-11 15:06:36.000000000 +0100 ---- src/version.c 2013-12-11 15:32:16.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 118, - /**/ - --- -Nothing is fool-proof to a sufficiently talented fool. - - /// 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 /// diff --git a/7.4.119 b/7.4.119 deleted file mode 100644 index 061b81a5..00000000 --- a/7.4.119 +++ /dev/null @@ -1,245 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.119 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.119 -Problem: Vim doesn't work well on OpenVMS. -Solution: Fix various problems. (Samuel Ferencik) -Files: src/os_unix.c, src/os_unix.h, src/os_vms.c - - -*** ../vim-7.4.118/src/os_unix.c 2013-12-11 13:21:44.000000000 +0100 ---- src/os_unix.c 2013-12-11 16:16:03.000000000 +0100 -*************** -*** 168,174 **** - static pid_t wait4pid __ARGS((pid_t, waitstatus *)); - - static int WaitForChar __ARGS((long)); -! #if defined(__BEOS__) - int RealWaitForChar __ARGS((int, long, int *)); - #else - static int RealWaitForChar __ARGS((int, long, int *)); ---- 168,174 ---- - static pid_t wait4pid __ARGS((pid_t, waitstatus *)); - - static int WaitForChar __ARGS((long)); -! #if defined(__BEOS__) || defined(VMS) - int RealWaitForChar __ARGS((int, long, int *)); - #else - static int RealWaitForChar __ARGS((int, long, int *)); -*************** -*** 435,441 **** - /* Process the queued netbeans messages. */ - netbeans_parse_messages(); - #endif -- #ifndef VMS /* VMS: must try reading, WaitForChar() does nothing. */ - /* - * We want to be interrupted by the winch signal - * or by an event on the monitored file descriptors. ---- 435,440 ---- -*************** -*** 446,452 **** - handle_resize(); - return 0; - } -- #endif - - /* If input was put directly in typeahead buffer bail out here. */ - if (typebuf_changed(tb_change_cnt)) ---- 445,450 ---- -*************** -*** 5039,5044 **** ---- 5037,5043 ---- - return avail; - } - -+ #ifndef VMS - /* - * Wait "msec" msec until a character is available from file descriptor "fd". - * "msec" == 0 will check for characters once. -*************** -*** 5338,5350 **** - } - # endif - -- # ifdef OLD_VMS -- /* Old VMS as v6.2 and older have broken select(). It waits more than -- * required. Should not be used */ -- ret = 0; -- # else - ret = select(maxfd + 1, &rfds, NULL, &efds, tvp); -- # endif - # ifdef EINTR - if (ret == -1 && errno == EINTR) - { ---- 5337,5343 ---- -*************** -*** 5466,5473 **** - return (ret > 0); - } - -- #ifndef VMS -- - #ifndef NO_EXPANDPATH - /* - * Expand a path into all matching files and/or directories. Handles "*", ---- 5459,5464 ---- -*** ../vim-7.4.118/src/os_unix.h 2013-06-12 20:09:44.000000000 +0200 ---- src/os_unix.h 2013-12-11 16:16:03.000000000 +0100 -*************** -*** 225,230 **** ---- 225,232 ---- - # include - # include - # include -+ # include -+ # include - - # ifdef FEAT_GUI_GTK - # include "gui_gtk_vms.h" -*** ../vim-7.4.118/src/os_vms.c 2010-06-26 06:03:31.000000000 +0200 ---- src/os_vms.c 2013-12-11 17:10:24.000000000 +0100 -*************** -*** 11,16 **** ---- 11,33 ---- - - #include "vim.h" - -+ /* define _generic_64 for use in time functions */ -+ #ifndef VAX -+ # include -+ #else -+ /* based on Alpha's gen64def.h; the file is absent on VAX */ -+ typedef struct _generic_64 { -+ # pragma __nomember_alignment -+ __union { /* You can treat me as... */ -+ /* long long is not available on VAXen */ -+ /* unsigned __int64 gen64$q_quadword; ...a single 64-bit value, or */ -+ -+ unsigned int gen64$l_longword [2]; /* ...two 32-bit values, or */ -+ unsigned short int gen64$w_word [4]; /* ...four 16-bit values */ -+ } gen64$r_quad_overlay; -+ } GENERIC_64; -+ #endif -+ - typedef struct - { - char class; -*************** -*** 669,671 **** ---- 686,777 ---- - } - return ; - } -+ -+ struct typeahead_st { -+ unsigned short numchars; -+ unsigned char firstchar; -+ unsigned char reserved0; -+ unsigned long reserved1; -+ } typeahead; -+ -+ /* -+ * Wait "msec" msec until a character is available from file descriptor "fd". -+ * "msec" == 0 will check for characters once. -+ * "msec" == -1 will block until a character is available. -+ */ -+ int -+ RealWaitForChar(fd, msec, check_for_gpm) -+ int fd UNUSED; /* always read from iochan */ -+ long msec; -+ int *check_for_gpm UNUSED; -+ { -+ int status; -+ struct _generic_64 time_curr; -+ struct _generic_64 time_diff; -+ struct _generic_64 time_out; -+ unsigned int convert_operation = LIB$K_DELTA_SECONDS_F; -+ float sec = (float) msec / 1000; -+ -+ /* make sure the iochan is set */ -+ if (!iochan) -+ get_tty(); -+ -+ if (msec > 0) { -+ /* time-out specified; convert it to absolute time */ -+ -+ /* get current time (number of 100ns ticks since the VMS Epoch) */ -+ status = sys$gettim(&time_curr); -+ if (status != SS$_NORMAL) -+ return 0; /* error */ -+ -+ /* construct the delta time */ -+ status = lib$cvtf_to_internal_time( -+ &convert_operation, &sec, &time_diff); -+ if (status != LIB$_NORMAL) -+ return 0; /* error */ -+ -+ /* add them up */ -+ status = lib$add_times( -+ &time_curr, -+ &time_diff, -+ &time_out); -+ if (status != LIB$_NORMAL) -+ return 0; /* error */ -+ } -+ -+ while (TRUE) { -+ /* select() */ -+ status = sys$qiow(0, iochan, IO$_SENSEMODE | IO$M_TYPEAHDCNT, iosb, -+ 0, 0, &typeahead, 8, 0, 0, 0, 0); -+ if (status != SS$_NORMAL || (iosb[0] & 0xFFFF) != SS$_NORMAL) -+ return 0; /* error */ -+ -+ if (typeahead.numchars) -+ return 1; /* ready to read */ -+ -+ /* there's nothing to read; what now? */ -+ if (msec == 0) { -+ /* immediate time-out; return impatiently */ -+ return 0; -+ } -+ else if (msec < 0) { -+ /* no time-out; wait on indefinitely */ -+ continue; -+ } -+ else { -+ /* time-out needs to be checked */ -+ status = sys$gettim(&time_curr); -+ if (status != SS$_NORMAL) -+ return 0; /* error */ -+ -+ status = lib$sub_times( -+ &time_out, -+ &time_curr, -+ &time_diff); -+ if (status != LIB$_NORMAL) -+ return 0; /* error, incl. time_diff < 0 (i.e. time-out) */ -+ -+ /* otherwise wait some more */ -+ } -+ } -+ } -*** ../vim-7.4.118/src/version.c 2013-12-11 15:51:54.000000000 +0100 ---- src/version.c 2013-12-11 16:09:16.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 119, - /**/ - --- -It is hard to understand how a cemetery raised its burial -cost and blamed it on the cost of living. - - /// 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 /// diff --git a/7.4.120 b/7.4.120 deleted file mode 100644 index 4f7a17a1..00000000 --- a/7.4.120 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.120 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.120 (after 7.4.117) -Problem: Can't build with Perl 5.18 on Linux. (Lcd 47) -Solution: Add #ifdef. (Ken Takata) -Files: src/if_perl.xs - - -*** ../vim-7.4.119/src/if_perl.xs 2013-12-11 15:06:36.000000000 +0100 ---- src/if_perl.xs 2013-12-11 17:17:43.000000000 +0100 -*************** -*** 27,33 **** - /* Work around for perl-5.18. - * Don't include "perl\lib\CORE\inline.h" for now, - * include it after Perl_sv_free2 is defined. */ -! #define PERL_NO_INLINE_FUNCTIONS - - /* - * Prevent including winsock.h. perl.h tries to detect whether winsock.h is ---- 27,35 ---- - /* Work around for perl-5.18. - * Don't include "perl\lib\CORE\inline.h" for now, - * include it after Perl_sv_free2 is defined. */ -! #ifdef DYNAMIC_PERL -! # define PERL_NO_INLINE_FUNCTIONS -! #endif - - /* - * Prevent including winsock.h. perl.h tries to detect whether winsock.h is -*** ../vim-7.4.119/src/version.c 2013-12-11 17:12:32.000000000 +0100 ---- src/version.c 2013-12-11 17:19:34.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 120, - /**/ - --- -Just remember...if the world didn't suck, we'd all fall off. - - /// 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 /// diff --git a/7.4.121 b/7.4.121 deleted file mode 100644 index 2e04890e..00000000 --- a/7.4.121 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.121 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.121 -Problem: Completion doesn't work for ":py3d" and ":py3f". (Bohr Shaw) -Solution: Skip over letters after ":py3". -Files: src/ex_docmd.c - - -*** ../vim-7.4.120/src/ex_docmd.c 2013-11-21 14:21:25.000000000 +0100 ---- src/ex_docmd.c 2013-12-11 17:41:50.000000000 +0100 -*************** -*** 3261,3267 **** ---- 3261,3271 ---- - ++p; - /* for python 3.x: ":py3*" commands completion */ - if (cmd[0] == 'p' && cmd[1] == 'y' && p == cmd + 2 && *p == '3') -+ { - ++p; -+ while (ASCII_ISALPHA(*p) || *p == '*') -+ ++p; -+ } - len = (int)(p - cmd); - - if (len == 0) -*** ../vim-7.4.120/src/version.c 2013-12-11 17:20:14.000000000 +0100 ---- src/version.c 2013-12-11 17:43:44.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 121, - /**/ - --- -It was recently discovered that research causes cancer in rats. - - /// 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 /// diff --git a/7.4.122 b/7.4.122 deleted file mode 100644 index 2e6e581c..00000000 --- a/7.4.122 +++ /dev/null @@ -1,215 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.122 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.122 -Problem: Win32: When 'encoding' is set to "utf-8" and the active codepage - is cp932 then ":grep" and other commands don't work for multi-byte - characters. -Solution: (Yasuhiro Matsumoto) -Files: src/os_win32.c - - -*** ../vim-7.4.121/src/os_win32.c 2013-12-07 14:48:06.000000000 +0100 ---- src/os_win32.c 2013-12-11 17:57:48.000000000 +0100 -*************** -*** 3788,3793 **** ---- 3788,3837 ---- - } - #endif /* FEAT_GUI_W32 */ - -+ static BOOL -+ vim_create_process( -+ const char *cmd, -+ DWORD flags, -+ BOOL inherit_handles, -+ STARTUPINFO *si, -+ PROCESS_INFORMATION *pi) -+ { -+ # ifdef FEAT_MBYTE -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ WCHAR *wcmd = enc_to_utf16(cmd, NULL); -+ -+ if (wcmd != NULL) -+ { -+ BOOL ret; -+ ret = CreateProcessW( -+ NULL, /* Executable name */ -+ wcmd, /* Command to execute */ -+ NULL, /* Process security attributes */ -+ NULL, /* Thread security attributes */ -+ inherit_handles, /* Inherit handles */ -+ flags, /* Creation flags */ -+ NULL, /* Environment */ -+ NULL, /* Current directory */ -+ si, /* Startup information */ -+ pi); /* Process information */ -+ vim_free(wcmd); -+ return ret; -+ } -+ } -+ #endif -+ return CreateProcess( -+ NULL, /* Executable name */ -+ cmd, /* Command to execute */ -+ NULL, /* Process security attributes */ -+ NULL, /* Thread security attributes */ -+ inherit_handles, /* Inherit handles */ -+ flags, /* Creation flags */ -+ NULL, /* Environment */ -+ NULL, /* Current directory */ -+ si, /* Startup information */ -+ pi); /* Process information */ -+ } - - - #if defined(FEAT_GUI_W32) || defined(PROTO) -*************** -*** 3834,3851 **** - cmd += 3; - - /* Now, run the command */ -! CreateProcess(NULL, /* Executable name */ -! cmd, /* Command to execute */ -! NULL, /* Process security attributes */ -! NULL, /* Thread security attributes */ -! FALSE, /* Inherit handles */ -! CREATE_DEFAULT_ERROR_MODE | /* Creation flags */ -! CREATE_NEW_CONSOLE, -! NULL, /* Environment */ -! NULL, /* Current directory */ -! &si, /* Startup information */ -! &pi); /* Process information */ -! - - /* Wait for the command to terminate before continuing */ - if (g_PlatformId != VER_PLATFORM_WIN32s) ---- 3878,3885 ---- - cmd += 3; - - /* Now, run the command */ -! vim_create_process(cmd, FALSE, -! CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_CONSOLE, &si, &pi); - - /* Wait for the command to terminate before continuing */ - if (g_PlatformId != VER_PLATFORM_WIN32s) -*************** -*** 4177,4198 **** - p = cmd; - } - -! /* Now, run the command */ -! CreateProcess(NULL, /* Executable name */ -! p, /* Command to execute */ -! NULL, /* Process security attributes */ -! NULL, /* Thread security attributes */ -! -! // this command can be litigious, handle inheritance was -! // deactivated for pending temp file, but, if we deactivate -! // it, the pipes don't work for some reason. -! TRUE, /* Inherit handles, first deactivated, -! * but needed */ -! CREATE_DEFAULT_ERROR_MODE, /* Creation flags */ -! NULL, /* Environment */ -! NULL, /* Current directory */ -! &si, /* Startup information */ -! &pi); /* Process information */ - - if (p != cmd) - vim_free(p); ---- 4211,4221 ---- - p = cmd; - } - -! /* Now, run the command. -! * About "Inherit handles" being TRUE: this command can be litigious, -! * handle inheritance was deactivated for pending temp file, but, if we -! * deactivate it, the pipes don't work for some reason. */ -! vim_create_process(p, TRUE, CREATE_DEFAULT_ERROR_MODE, &si, &pi); - - if (p != cmd) - vim_free(p); -*************** -*** 4410,4416 **** - } - #else - -! # define mch_system(c, o) system(c) - - #endif - ---- 4433,4457 ---- - } - #else - -! # ifdef FEAT_MBYTE -! static int -! mch_system(char *cmd, int options) -! { -! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -! { -! WCHAR *wcmd = enc_to_utf16(cmd, NULL); -! if (wcmd != NULL) -! { -! int ret = _wsystem(wcmd); -! vim_free(wcmd); -! return ret; -! } -! } -! return system(cmd); -! } -! # else -! # define mch_system(c, o) system(c) -! # endif - - #endif - -*************** -*** 4578,4593 **** - * inherit our handles which causes unpleasant dangling swap - * files if we exit before the spawned process - */ -! if (CreateProcess(NULL, // Executable name -! newcmd, // Command to execute -! NULL, // Process security attributes -! NULL, // Thread security attributes -! FALSE, // Inherit handles -! flags, // Creation flags -! NULL, // Environment -! NULL, // Current directory -! &si, // Startup information -! &pi)) // Process information - x = 0; - else - { ---- 4619,4625 ---- - * inherit our handles which causes unpleasant dangling swap - * files if we exit before the spawned process - */ -! if (vim_create_process(newcmd, FALSE, flags, &si, &pi)) - x = 0; - else - { -*** ../vim-7.4.121/src/version.c 2013-12-11 17:44:33.000000000 +0100 ---- src/version.c 2013-12-11 17:48:09.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 122, - /**/ - --- -Never overestimate a man's ability to underestimate a woman. - - /// 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 /// diff --git a/7.4.123 b/7.4.123 deleted file mode 100644 index b564fe40..00000000 --- a/7.4.123 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.123 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.123 -Problem: Win32: Getting user name does not use wide function. -Solution: Use GetUserNameW() if possible. (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.122/src/os_win32.c 2013-12-11 17:58:29.000000000 +0100 ---- src/os_win32.c 2013-12-11 18:14:29.000000000 +0100 -*************** -*** 2768,2773 **** ---- 2768,2793 ---- - char szUserName[256 + 1]; /* UNLEN is 256 */ - DWORD cch = sizeof szUserName; - -+ #ifdef FEAT_MBYTE -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ WCHAR wszUserName[256 + 1]; /* UNLEN is 256 */ -+ DWORD wcch = sizeof(wszUserName) / sizeof(WCHAR); -+ -+ if (GetUserNameW(wszUserName, &wcch)) -+ { -+ char_u *p = utf16_to_enc(wszUserName, NULL); -+ -+ if (p != NULL) -+ { -+ vim_strncpy(s, p, len - 1); -+ vim_free(p); -+ return OK; -+ } -+ } -+ /* Retry with non-wide function (for Windows 98). */ -+ } -+ #endif - if (GetUserName(szUserName, &cch)) - { - vim_strncpy(s, szUserName, len - 1); -*** ../vim-7.4.122/src/version.c 2013-12-11 17:58:29.000000000 +0100 ---- src/version.c 2013-12-11 18:15:48.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 123, - /**/ - --- -Everybody lies, but it doesn't matter since nobody listens. - -- Lieberman's Law - - /// 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 /// diff --git a/7.4.124 b/7.4.124 deleted file mode 100644 index 7815bf5e..00000000 --- a/7.4.124 +++ /dev/null @@ -1,63 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.124 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.124 -Problem: Win32: Getting host name does not use wide function. -Solution: Use GetComputerNameW() if possible. (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.123/src/os_win32.c 2013-12-11 18:18:01.000000000 +0100 ---- src/os_win32.c 2013-12-11 18:19:11.000000000 +0100 -*************** -*** 2808,2813 **** ---- 2808,2833 ---- - { - DWORD cch = len; - -+ #ifdef FEAT_MBYTE -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ WCHAR wszHostName[256 + 1]; -+ DWORD wcch = sizeof(wszHostName) / sizeof(WCHAR); -+ -+ if (GetComputerNameW(wszHostName, &wcch)) -+ { -+ char_u *p = utf16_to_enc(wszHostName, NULL); -+ -+ if (p != NULL) -+ { -+ vim_strncpy(s, p, len - 1); -+ vim_free(p); -+ return; -+ } -+ } -+ /* Retry with non-wide function (for Windows 98). */ -+ } -+ #endif - if (!GetComputerName(s, &cch)) - vim_strncpy(s, "PC (Win32 Vim)", len - 1); - } -*** ../vim-7.4.123/src/version.c 2013-12-11 18:18:01.000000000 +0100 ---- src/version.c 2013-12-11 18:20:03.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 124, - /**/ - --- -Don't read everything you believe. - - /// 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 /// diff --git a/7.4.125 b/7.4.125 deleted file mode 100644 index 04a0fe9a..00000000 --- a/7.4.125 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.125 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.125 -Problem: Win32: Dealing with messages may not work for multi-byte chars. -Solution: Use pDispatchMessage(). (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.124/src/os_win32.c 2013-12-11 18:21:41.000000000 +0100 ---- src/os_win32.c 2013-12-11 18:23:47.000000000 +0100 -*************** -*** 4282,4291 **** - { - MSG msg; - -! if (PeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE)) - { - TranslateMessage(&msg); -! DispatchMessage(&msg); - } - - /* write pipe information in the window */ ---- 4282,4291 ---- - { - MSG msg; - -! if (pPeekMessage(&msg, (HWND)NULL, 0, 0, PM_REMOVE)) - { - TranslateMessage(&msg); -! pDispatchMessage(&msg); - } - - /* write pipe information in the window */ -*** ../vim-7.4.124/src/version.c 2013-12-11 18:21:41.000000000 +0100 ---- src/version.c 2013-12-11 18:35:44.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 125, - /**/ - --- -Don't believe everything you hear or anything you say. - - /// 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 /// diff --git a/7.4.126 b/7.4.126 deleted file mode 100644 index c7acae7d..00000000 --- a/7.4.126 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.126 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.126 -Problem: Compiler warnings for "const" and incompatible types. -Solution: Remove "const", add type cast. (Ken Takata) -Files: src/os_win32.c - - -*** ../vim-7.4.125/src/os_win32.c 2013-12-11 18:36:28.000000000 +0100 ---- src/os_win32.c 2013-12-12 20:19:39.000000000 +0100 -*************** -*** 3830,3836 **** - - static BOOL - vim_create_process( -! const char *cmd, - DWORD flags, - BOOL inherit_handles, - STARTUPINFO *si, ---- 3830,3836 ---- - - static BOOL - vim_create_process( -! char *cmd, - DWORD flags, - BOOL inherit_handles, - STARTUPINFO *si, -*************** -*** 3853,3859 **** - flags, /* Creation flags */ - NULL, /* Environment */ - NULL, /* Current directory */ -! si, /* Startup information */ - pi); /* Process information */ - vim_free(wcmd); - return ret; ---- 3853,3859 ---- - flags, /* Creation flags */ - NULL, /* Environment */ - NULL, /* Current directory */ -! (LPSTARTUPINFOW)si, /* Startup information */ - pi); /* Process information */ - vim_free(wcmd); - return ret; -*** ../vim-7.4.125/src/version.c 2013-12-11 18:36:28.000000000 +0100 ---- src/version.c 2013-12-12 20:21:27.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 126, - /**/ - --- -Microsoft is to software what McDonalds is to gourmet cooking - - /// 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 /// diff --git a/7.4.127 b/7.4.127 deleted file mode 100644 index 71ce694b..00000000 --- a/7.4.127 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.127 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.127 -Problem: Perl 5.18 on Unix doesn't work. -Solution: Move workaround to after including vim.h. (Ken Takata) -Files: src/if_perl.xs - - -*** ../vim-7.4.126/src/if_perl.xs 2013-12-11 17:20:14.000000000 +0100 ---- src/if_perl.xs 2013-12-14 11:41:56.000000000 +0100 -*************** -*** 24,36 **** - # define _USE_32BIT_TIME_T - #endif - -- /* Work around for perl-5.18. -- * Don't include "perl\lib\CORE\inline.h" for now, -- * include it after Perl_sv_free2 is defined. */ -- #ifdef DYNAMIC_PERL -- # define PERL_NO_INLINE_FUNCTIONS -- #endif -- - /* - * Prevent including winsock.h. perl.h tries to detect whether winsock.h is - * already included before including winsock2.h, because winsock2.h isn't ---- 24,29 ---- -*************** -*** 44,49 **** ---- 37,49 ---- - - #include "vim.h" - -+ /* Work around for perl-5.18. -+ * Don't include "perl\lib\CORE\inline.h" for now, -+ * include it after Perl_sv_free2 is defined. */ -+ #ifdef DYNAMIC_PERL -+ # define PERL_NO_INLINE_FUNCTIONS -+ #endif -+ - #include - #include - #include -*** ../vim-7.4.126/src/version.c 2013-12-12 20:25:39.000000000 +0100 ---- src/version.c 2013-12-14 11:43:54.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 127, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -54. You start tilting your head sideways to smile. :-) - - /// 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 /// diff --git a/7.4.128 b/7.4.128 deleted file mode 100644 index ead1b676..00000000 --- a/7.4.128 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.128 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.128 -Problem: Perl 5.18 for MSVC doesn't work. -Solution: Add check in makefile and define __inline. (Ken Takata) -Files: src/Make_mvc.mak, src/if_perl.xs - - -*** ../vim-7.4.127/src/Make_mvc.mak 2013-11-09 02:32:15.000000000 +0100 ---- src/Make_mvc.mak 2013-12-14 11:47:37.000000000 +0100 -*************** -*** 825,831 **** ---- 825,836 ---- - PERL_LIB = $(PERL_INCDIR)\perl.lib - !else - PERL_DLL = perl$(PERL_VER).dll -+ !if exist($(PERL_INCDIR)\perl$(PERL_VER).lib) - PERL_LIB = $(PERL_INCDIR)\perl$(PERL_VER).lib -+ !else -+ # For ActivePerl 5.18 and later -+ PERL_LIB = $(PERL_INCDIR)\libperl$(PERL_VER).a -+ !endif - !endif - - CFLAGS = $(CFLAGS) -DFEAT_PERL -*** ../vim-7.4.127/src/if_perl.xs 2013-12-14 11:46:04.000000000 +0100 ---- src/if_perl.xs 2013-12-14 11:47:37.000000000 +0100 -*************** -*** 44,49 **** ---- 44,54 ---- - # define PERL_NO_INLINE_FUNCTIONS - #endif - -+ /* Work around for using MSVC and ActivePerl 5.18. */ -+ #ifdef _MSC_VER -+ # define __inline__ __inline -+ #endif -+ - #include - #include - #include -*** ../vim-7.4.127/src/version.c 2013-12-14 11:46:04.000000000 +0100 ---- src/version.c 2013-12-14 11:48:51.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 128, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -55. You ask your doctor to implant a gig in your brain. - - /// 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 /// diff --git a/7.4.129 b/7.4.129 deleted file mode 100644 index efe9a1c5..00000000 --- a/7.4.129 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.129 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.129 -Problem: getline(-1) returns zero. (mvxxc) -Solution: Return an empty string. -Files: src/eval.c - - -*** ../vim-7.4.128/src/eval.c 2013-11-11 04:25:48.000000000 +0100 ---- src/eval.c 2013-12-14 12:11:27.000000000 +0100 -*************** -*** 11119,11124 **** ---- 11119,11126 ---- - { - char_u *p; - -+ rettv->v_type = VAR_STRING; -+ rettv->vval.v_string = NULL; - if (retlist && rettv_list_alloc(rettv) == FAIL) - return; - -*************** -*** 11131,11138 **** - p = ml_get_buf(buf, start, FALSE); - else - p = (char_u *)""; -- -- rettv->v_type = VAR_STRING; - rettv->vval.v_string = vim_strsave(p); - } - else ---- 11133,11138 ---- -*** ../vim-7.4.128/src/version.c 2013-12-14 11:50:28.000000000 +0100 ---- src/version.c 2013-12-14 12:13:32.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 129, - /**/ - --- -Keyboard not found. Think ENTER to continue. - - /// 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 /// diff --git a/7.4.130 b/7.4.130 deleted file mode 100644 index 864d82c9..00000000 --- a/7.4.130 +++ /dev/null @@ -1,69 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.130 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.130 -Problem: Relative line numbers mix up windows when using folds. -Solution: Use hasFoldingWin() instead of hasFolding(). (Lech Lorens) -Files: src/misc2.c - - -*** ../vim-7.4.129/src/misc2.c 2013-09-08 16:07:03.000000000 +0200 ---- src/misc2.c 2013-12-14 12:43:35.000000000 +0100 -*************** -*** 487,493 **** - { - while (lnum > cursor) - { -! (void)hasFolding(lnum, &lnum, NULL); - /* if lnum and cursor are in the same fold, - * now lnum <= cursor */ - if (lnum > cursor) ---- 487,493 ---- - { - while (lnum > cursor) - { -! (void)hasFoldingWin(wp, lnum, &lnum, NULL, TRUE, NULL); - /* if lnum and cursor are in the same fold, - * now lnum <= cursor */ - if (lnum > cursor) -*************** -*** 499,505 **** - { - while (lnum < cursor) - { -! (void)hasFolding(lnum, NULL, &lnum); - /* if lnum and cursor are in the same fold, - * now lnum >= cursor */ - if (lnum < cursor) ---- 499,505 ---- - { - while (lnum < cursor) - { -! (void)hasFoldingWin(wp, lnum, NULL, &lnum, TRUE, NULL); - /* if lnum and cursor are in the same fold, - * now lnum >= cursor */ - if (lnum < cursor) -*** ../vim-7.4.129/src/version.c 2013-12-14 12:17:34.000000000 +0100 ---- src/version.c 2013-12-14 12:44:27.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 130, - /**/ - --- -Over the years, I've developed my sense of deja vu so acutely that now -I can remember things that *have* happened before ... - - /// 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 /// diff --git a/7.4.131 b/7.4.131 deleted file mode 100644 index ec04b85f..00000000 --- a/7.4.131 +++ /dev/null @@ -1,113 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.131 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.131 -Problem: Syncbind causes E315 errors in some situations. (Liang Li) -Solution: Set and restore curbuf in ex_syncbind(). (Christian Brabandt) -Files: src/ex_docmd.c, src/testdir/test37.ok - - -*** ../vim-7.4.130/src/ex_docmd.c 2013-12-11 17:44:33.000000000 +0100 ---- src/ex_docmd.c 2013-12-14 12:55:05.000000000 +0100 -*************** -*** 8054,8059 **** ---- 8054,8061 ---- - { - #ifdef FEAT_SCROLLBIND - win_T *wp; -+ win_T *save_curwin = curwin; -+ buf_T *save_curbuf = curbuf; - long topline; - long y; - linenr_T old_linenr = curwin->w_cursor.lnum; -*************** -*** 8085,8097 **** - - - /* -! * set all scrollbind windows to the same topline - */ -- wp = curwin; - for (curwin = firstwin; curwin; curwin = curwin->w_next) - { - if (curwin->w_p_scb) - { - y = topline - curwin->w_topline; - if (y > 0) - scrollup(y, TRUE); ---- 8087,8099 ---- - - - /* -! * Set all scrollbind windows to the same topline. - */ - for (curwin = firstwin; curwin; curwin = curwin->w_next) - { - if (curwin->w_p_scb) - { -+ curbuf = curwin->w_buffer; - y = topline - curwin->w_topline; - if (y > 0) - scrollup(y, TRUE); -*************** -*** 8105,8111 **** - #endif - } - } -! curwin = wp; - if (curwin->w_p_scb) - { - did_syncbind = TRUE; ---- 8107,8114 ---- - #endif - } - } -! curwin = save_curwin; -! curbuf = save_curbuf; - if (curwin->w_p_scb) - { - did_syncbind = TRUE; -*** ../vim-7.4.130/src/testdir/test37.ok 2010-05-15 13:04:10.000000000 +0200 ---- src/testdir/test37.ok 2013-12-14 12:54:57.000000000 +0100 -*************** -*** 27,33 **** - - . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 - :set scrollbind -- zt: -- . line 15 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 15 - :set scrollbind -! . line 11 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 11 ---- 27,33 ---- - - . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 - :set scrollbind - :set scrollbind -! . line 16 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 16 -! j: -! . line 12 ZYXWVUTSRQPONMLKJIHGREDCBA9876543210 12 -*** ../vim-7.4.130/src/version.c 2013-12-14 12:48:55.000000000 +0100 ---- src/version.c 2013-12-14 13:03:51.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 131, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -57. You begin to wonder how on earth your service provider is allowed to call - 200 hours per month "unlimited." - - /// 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 /// diff --git a/7.4.132 b/7.4.132 deleted file mode 100644 index 73d7281c..00000000 --- a/7.4.132 +++ /dev/null @@ -1,54 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.132 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.132 (after 7.4.122) -Problem: Win32: flags and inherit_handles arguments mixed up. -Solution: Swap the argument. (cs86661) -Files: src/os_win32.c - - -*** ../vim-7.4.131/src/os_win32.c 2013-12-12 20:25:39.000000000 +0100 ---- src/os_win32.c 2014-01-05 13:24:15.000000000 +0100 -*************** -*** 3831,3838 **** - static BOOL - vim_create_process( - char *cmd, -- DWORD flags, - BOOL inherit_handles, - STARTUPINFO *si, - PROCESS_INFORMATION *pi) - { ---- 3831,3838 ---- - static BOOL - vim_create_process( - char *cmd, - BOOL inherit_handles, -+ DWORD flags, - STARTUPINFO *si, - PROCESS_INFORMATION *pi) - { -*** ../vim-7.4.131/src/version.c 2013-12-14 13:06:13.000000000 +0100 ---- src/version.c 2014-01-05 13:27:25.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 132, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -93. New mail alarm on your palmtop annoys other churchgoers. - - /// 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 /// diff --git a/7.4.133 b/7.4.133 deleted file mode 100644 index 7c4bdfad..00000000 --- a/7.4.133 +++ /dev/null @@ -1,74 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.133 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.133 -Problem: Clang warns for using NUL. -Solution: Change NUL to NULL. (Dominique Pelle) -Files: src/eval.c, src/misc2.c - - -*** ../vim-7.4.132/src/eval.c 2013-12-14 12:17:34.000000000 +0100 ---- src/eval.c 2014-01-06 06:11:50.000000000 +0100 -*************** -*** 14141,14148 **** - } - else - { -! list_append_string(rettv->vval.v_list, NUL, -1); -! list_append_string(rettv->vval.v_list, NUL, -1); - } - } - #endif ---- 14141,14148 ---- - } - else - { -! list_append_string(rettv->vval.v_list, NULL, -1); -! list_append_string(rettv->vval.v_list, NULL, -1); - } - } - #endif -*** ../vim-7.4.132/src/misc2.c 2013-12-14 12:48:55.000000000 +0100 ---- src/misc2.c 2014-01-06 06:11:50.000000000 +0100 -*************** -*** 4695,4702 **** - else - { - char_u *p = gettail(search_ctx->ffsc_fix_path); -! char_u *wc_path = NUL; -! char_u *temp = NUL; - int len = 0; - - if (p > search_ctx->ffsc_fix_path) ---- 4695,4702 ---- - else - { - char_u *p = gettail(search_ctx->ffsc_fix_path); -! char_u *wc_path = NULL; -! char_u *temp = NULL; - int len = 0; - - if (p > search_ctx->ffsc_fix_path) -*** ../vim-7.4.132/src/version.c 2014-01-06 06:16:55.000000000 +0100 ---- src/version.c 2014-01-06 06:13:26.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 133, - /**/ - --- -A meeting is an event at which the minutes are kept and the hours are lost. - - /// 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 /// diff --git a/7.4.134 b/7.4.134 deleted file mode 100644 index d8f47c57..00000000 --- a/7.4.134 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.134 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.134 -Problem: Spurious space in MingW Makefile. -Solution: Remove the space. (Michael Soyka) -Files: src/Make_ming.mak - - -*** ../vim-7.4.133/src/Make_ming.mak 2013-12-11 15:06:36.000000000 +0100 ---- src/Make_ming.mak 2014-01-06 15:37:57.000000000 +0100 -*************** -*** 598,604 **** - ifeq (yes, $(GUI)) - OBJ += $(OUTDIR)/xpm_w32.o - # You'll need libXpm.a from http://gnuwin32.sf.net -! LIB += -L $(XPM)/lib -lXpm - endif - endif - ---- 598,604 ---- - ifeq (yes, $(GUI)) - OBJ += $(OUTDIR)/xpm_w32.o - # You'll need libXpm.a from http://gnuwin32.sf.net -! LIB += -L$(XPM)/lib -lXpm - endif - endif - -*** ../vim-7.4.133/src/version.c 2014-01-06 06:18:44.000000000 +0100 ---- src/version.c 2014-01-06 15:39:32.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 134, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -115. You are late picking up your kid from school and try to explain - to the teacher you were stuck in Web traffic. - - /// 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 /// diff --git a/7.4.135 b/7.4.135 deleted file mode 100644 index 4f11071b..00000000 --- a/7.4.135 +++ /dev/null @@ -1,51 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.135 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.135 -Problem: Missing dot in MingW test Makefile. -Solution: Add the dot. (Michael Soyka) -Files: src/testdir/Make_ming.mak - - -*** ../vim-7.4.134/src/testdir/Make_ming.mak 2013-11-21 14:21:25.000000000 +0100 ---- src/testdir/Make_ming.mak 2014-01-06 15:41:27.000000000 +0100 -*************** -*** 53,59 **** - 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 \ -! test100out test101.out test102.out test103.out - - SCRIPTS32 = test50.out test70.out - ---- 53,59 ---- - 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 \ -! test100.out test101.out test102.out test103.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.134/src/version.c 2014-01-06 15:44:59.000000000 +0100 ---- src/version.c 2014-01-06 15:47:14.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 135, - /**/ - --- -Two percent of zero is almost nothing. - - /// 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 /// diff --git a/7.4.136 b/7.4.136 deleted file mode 100644 index 20976809..00000000 --- a/7.4.136 +++ /dev/null @@ -1,75 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.136 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.136 (after 7.4.096) -Problem: MS-Windows: When saving a file with a UNC path the file becomes - read-only. -Solution: Don't mix up Win32 attributes and Unix attributes. (Ken Takata) -Files: src/os_mswin.c, src/os_win32.c - - -*** ../vim-7.4.135/src/os_mswin.c 2013-09-29 19:05:17.000000000 +0200 ---- src/os_mswin.c 2014-01-10 13:03:19.000000000 +0100 -*************** -*** 617,624 **** ---- 617,638 ---- - p = buf + strlen(buf); - if (p > buf) - mb_ptr_back(buf, p); -+ -+ /* Remove trailing '\\' except root path. */ - if (p > buf && (*p == '\\' || *p == '/') && p[-1] != ':') - *p = NUL; -+ -+ if ((buf[0] == '\\' && buf[1] == '\\') || (buf[0] == '/' && buf[1] == '/')) -+ { -+ /* UNC root path must be followed by '\\'. */ -+ p = vim_strpbrk(buf + 2, "\\/"); -+ if (p != NULL) -+ { -+ p = vim_strpbrk(p + 1, "\\/"); -+ if (p == NULL) -+ STRCAT(buf, "\\"); -+ } -+ } - #ifdef FEAT_MBYTE - if (enc_codepage >= 0 && (int)GetACP() != enc_codepage - # ifdef __BORLANDC__ -*** ../vim-7.4.135/src/os_win32.c 2014-01-05 13:29:16.000000000 +0100 ---- src/os_win32.c 2014-01-10 12:59:32.000000000 +0100 -*************** -*** 2890,2898 **** - struct stat st; - int n; - -- if (name[0] == '\\' && name[1] == '\\') -- /* UNC path */ -- return (long)win32_getattrs(name); - n = mch_stat(name, &st); - return n == 0 ? (long)st.st_mode : -1L; - } ---- 2890,2895 ---- -*** ../vim-7.4.135/src/version.c 2014-01-06 15:51:46.000000000 +0100 ---- src/version.c 2014-01-10 13:04:43.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 136, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -128. You can access the Net -- via your portable and cellular phone. - - /// 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 /// diff --git a/7.4.137 b/7.4.137 deleted file mode 100644 index 4e685c13..00000000 --- a/7.4.137 +++ /dev/null @@ -1,239 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.137 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.137 -Problem: Cannot use IME with Windows 8 console. -Solution: Change the user of ReadConsoleInput() and PeekConsoleInput(). - (Nobuhiro Takasaki) -Files: src/os_win32.c - - -*** ../vim-7.4.136/src/os_win32.c 2014-01-10 13:05:12.000000000 +0100 ---- src/os_win32.c 2014-01-10 13:42:19.000000000 +0100 -*************** -*** 232,237 **** ---- 232,306 ---- - - static char_u *exe_path = NULL; - -+ /* -+ * Version of ReadConsoleInput() that works with IME. -+ */ -+ static BOOL -+ read_console_input( -+ HANDLE hConsoleInput, -+ PINPUT_RECORD lpBuffer, -+ DWORD nLength, -+ LPDWORD lpNumberOfEventsRead) -+ { -+ enum -+ { -+ IRSIZE = 10, /* rough value */ -+ }; -+ static INPUT_RECORD irCache[IRSIZE]; -+ static DWORD s_dwIndex = 0; -+ static DWORD s_dwMax = 0; -+ -+ if (hConsoleInput == NULL || lpBuffer == NULL) -+ return ReadConsoleInput(hConsoleInput, lpBuffer, nLength, -+ lpNumberOfEventsRead); -+ -+ if (nLength == -1) -+ { -+ if (s_dwMax == 0) -+ { -+ PeekConsoleInput(hConsoleInput, lpBuffer, 1, lpNumberOfEventsRead); -+ if (*lpNumberOfEventsRead == 0) -+ return FALSE; -+ ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax); -+ s_dwIndex = 0; -+ } -+ ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex]; -+ *lpNumberOfEventsRead = 1; -+ return TRUE; -+ } -+ -+ if (s_dwMax == 0) -+ { -+ ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax); -+ s_dwIndex = 0; -+ if (s_dwMax == 0) -+ { -+ *lpNumberOfEventsRead = 0; -+ return FALSE; -+ } -+ } -+ -+ ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex]; -+ if (++s_dwIndex == s_dwMax) -+ s_dwMax = 0; -+ *lpNumberOfEventsRead = 1; -+ return TRUE; -+ } -+ -+ /* -+ * Version of PeekConsoleInput() that works with IME. -+ */ -+ static BOOL -+ peek_console_input( -+ HANDLE hConsoleInput, -+ PINPUT_RECORD lpBuffer, -+ DWORD nLength, -+ LPDWORD lpNumberOfEventsRead) -+ { -+ return read_console_input(hConsoleInput, lpBuffer, -1, -+ lpNumberOfEventsRead); -+ } -+ - static void - get_exe_name(void) - { -*************** -*** 1117,1123 **** - INPUT_RECORD ir; - MOUSE_EVENT_RECORD* pmer2 = &ir.Event.MouseEvent; - -! PeekConsoleInput(g_hConIn, &ir, 1, &cRecords); - - if (cRecords == 0 || ir.EventType != MOUSE_EVENT - || !(pmer2->dwButtonState & LEFT_RIGHT)) ---- 1186,1192 ---- - INPUT_RECORD ir; - MOUSE_EVENT_RECORD* pmer2 = &ir.Event.MouseEvent; - -! peek_console_input(g_hConIn, &ir, 1, &cRecords); - - if (cRecords == 0 || ir.EventType != MOUSE_EVENT - || !(pmer2->dwButtonState & LEFT_RIGHT)) -*************** -*** 1126,1132 **** - { - if (pmer2->dwEventFlags != MOUSE_MOVED) - { -! ReadConsoleInput(g_hConIn, &ir, 1, &cRecords); - - return decode_mouse_event(pmer2); - } ---- 1195,1201 ---- - { - if (pmer2->dwEventFlags != MOUSE_MOVED) - { -! read_console_input(g_hConIn, &ir, 1, &cRecords); - - return decode_mouse_event(pmer2); - } -*************** -*** 1134,1143 **** - s_yOldMouse == pmer2->dwMousePosition.Y) - { - /* throw away spurious mouse move */ -! ReadConsoleInput(g_hConIn, &ir, 1, &cRecords); - - /* are there any more mouse events in queue? */ -! PeekConsoleInput(g_hConIn, &ir, 1, &cRecords); - - if (cRecords==0 || ir.EventType != MOUSE_EVENT) - break; ---- 1203,1212 ---- - s_yOldMouse == pmer2->dwMousePosition.Y) - { - /* throw away spurious mouse move */ -! read_console_input(g_hConIn, &ir, 1, &cRecords); - - /* are there any more mouse events in queue? */ -! peek_console_input(g_hConIn, &ir, 1, &cRecords); - - if (cRecords==0 || ir.EventType != MOUSE_EVENT) - break; -*************** -*** 1374,1380 **** - } - - cRecords = 0; -! PeekConsoleInput(g_hConIn, &ir, 1, &cRecords); - - #ifdef FEAT_MBYTE_IME - if (State & CMDLINE && msg_row == Rows - 1) ---- 1443,1449 ---- - } - - cRecords = 0; -! peek_console_input(g_hConIn, &ir, 1, &cRecords); - - #ifdef FEAT_MBYTE_IME - if (State & CMDLINE && msg_row == Rows - 1) -*************** -*** 1405,1411 **** - if (ir.Event.KeyEvent.uChar.UnicodeChar == 0 - && ir.Event.KeyEvent.wVirtualKeyCode == 13) - { -! ReadConsoleInput(g_hConIn, &ir, 1, &cRecords); - continue; - } - #endif ---- 1474,1480 ---- - if (ir.Event.KeyEvent.uChar.UnicodeChar == 0 - && ir.Event.KeyEvent.wVirtualKeyCode == 13) - { -! read_console_input(g_hConIn, &ir, 1, &cRecords); - continue; - } - #endif -*************** -*** 1414,1420 **** - return TRUE; - } - -! ReadConsoleInput(g_hConIn, &ir, 1, &cRecords); - - if (ir.EventType == FOCUS_EVENT) - handle_focus_event(ir); ---- 1483,1489 ---- - return TRUE; - } - -! read_console_input(g_hConIn, &ir, 1, &cRecords); - - if (ir.EventType == FOCUS_EVENT) - handle_focus_event(ir); -*************** -*** 1484,1490 **** - return 0; - # endif - #endif -! if (ReadConsoleInput(g_hConIn, &ir, 1, &cRecords) == 0) - { - if (did_create_conin) - read_error_exit(); ---- 1553,1559 ---- - return 0; - # endif - #endif -! if (read_console_input(g_hConIn, &ir, 1, &cRecords) == 0) - { - if (did_create_conin) - read_error_exit(); -*** ../vim-7.4.136/src/version.c 2014-01-10 13:05:12.000000000 +0100 ---- src/version.c 2014-01-10 13:42:34.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 137, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -131. You challenge authority and society by portnuking people - - /// 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 /// diff --git a/7.4.138 b/7.4.138 deleted file mode 100644 index 413383c5..00000000 --- a/7.4.138 +++ /dev/null @@ -1,55 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.138 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.138 (after 7.4.114) -Problem: Directory change messages are not recognized. -Solution: Fix using a character range literally. (Lech Lorens) -Files: src/option.h - - -*** ../vim-7.4.137/src/option.h 2013-12-11 12:22:54.000000000 +0100 ---- src/option.h 2014-01-10 15:17:09.000000000 +0100 -*************** -*** 31,39 **** - # define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m" - # else /* Unix, probably */ - # ifdef EBCDIC -! #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m" - # else -! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory [`']%f',%X%*\\a[%*\\d]: Leaving directory [`']%f',%D%*\\a: Entering directory [`']%f',%X%*\\a: Leaving directory [`']%f',%DMaking %*\\a in %f,%f|%l| %m" - # endif - # endif - # endif ---- 31,39 ---- - # define DFLT_EFM "%A%p^,%C%%CC-%t-%m,%Cat line number %l in file %f,%f|%l| %m" - # else /* Unix, probably */ - # ifdef EBCDIC -! #define DFLT_EFM "%*[^ ] %*[^ ] %f:%l%*[ ]%m,%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m" - # else -! #define DFLT_EFM "%*[^\"]\"%f\"%*\\D%l: %m,\"%f\"%*\\D%l: %m,%-G%f:%l: (Each undeclared identifier is reported only once,%-G%f:%l: for each function it appears in.),%-GIn file included from %f:%l:%c:,%-GIn file included from %f:%l:%c\\,,%-GIn file included from %f:%l:%c,%-GIn file included from %f:%l,%-G%*[ ]from %f:%l:%c,%-G%*[ ]from %f:%l:,%-G%*[ ]from %f:%l\\,,%-G%*[ ]from %f:%l,%f:%l:%c:%m,%f(%l):%m,%f:%l:%m,\"%f\"\\, line %l%*\\D%c%*[^ ] %m,%D%*\\a[%*\\d]: Entering directory %*[`']%f',%X%*\\a[%*\\d]: Leaving directory %*[`']%f',%D%*\\a: Entering directory %*[`']%f',%X%*\\a: Leaving directory %*[`']%f',%DMaking %*\\a in %f,%f|%l| %m" - # endif - # endif - # endif -*** ../vim-7.4.137/src/version.c 2014-01-10 13:51:35.000000000 +0100 ---- src/version.c 2014-01-10 15:17:04.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 138, - /**/ - --- -In a world without fences, who needs Gates and Windows? - - /// 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 /// diff --git a/7.4.139 b/7.4.139 deleted file mode 100644 index dc870dc0..00000000 --- a/7.4.139 +++ /dev/null @@ -1,76 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.139 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.139 -Problem: Crash when using :cd in autocommand. (François Ingelrest) -Solution: Set w_localdir to NULL after freeing it. (Dominique Pelle) -Files: src/ex_docmd.c, src/window.c - - -*** ../vim-7.4.138/src/ex_docmd.c 2013-12-14 13:06:13.000000000 +0100 ---- src/ex_docmd.c 2014-01-10 15:39:58.000000000 +0100 -*************** -*** 8228,8233 **** ---- 8228,8234 ---- - int local; - { - vim_free(curwin->w_localdir); -+ curwin->w_localdir = NULL; - if (local) - { - /* If still in global directory, need to remember current -*************** -*** 8244,8250 **** - * name. */ - vim_free(globaldir); - globaldir = NULL; -- curwin->w_localdir = NULL; - } - - shorten_fnames(TRUE); ---- 8245,8250 ---- -*** ../vim-7.4.138/src/window.c 2013-08-14 17:11:14.000000000 +0200 ---- src/window.c 2014-01-10 15:39:58.000000000 +0100 -*************** -*** 1216,1223 **** - else - copy_loclist(oldp, newp); - #endif -! if (oldp->w_localdir != NULL) -! newp->w_localdir = vim_strsave(oldp->w_localdir); - - /* copy tagstack and folds */ - for (i = 0; i < oldp->w_tagstacklen; i++) ---- 1216,1223 ---- - else - copy_loclist(oldp, newp); - #endif -! newp->w_localdir = (oldp->w_localdir == NULL) -! ? NULL : vim_strsave(oldp->w_localdir); - - /* copy tagstack and folds */ - for (i = 0; i < oldp->w_tagstacklen; i++) -*** ../vim-7.4.138/src/version.c 2014-01-10 15:32:17.000000000 +0100 ---- src/version.c 2014-01-10 15:39:48.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 139, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -132. You come back and check this list every half-hour. - - /// 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 /// diff --git a/7.4.140 b/7.4.140 deleted file mode 100644 index e493828e..00000000 --- a/7.4.140 +++ /dev/null @@ -1,174 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.140 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.140 -Problem: Crash when wiping out buffer triggers autocommand that wipes out - only other buffer. -Solution: Do not delete the last buffer, make it empty. (Hirohito Higashi) -Files: src/buffer.c - - -*** ../vim-7.4.139/src/buffer.c 2013-11-06 05:26:08.000000000 +0100 ---- src/buffer.c 2014-01-10 16:41:22.000000000 +0100 -*************** -*** 994,999 **** ---- 994,1043 ---- - #if defined(FEAT_LISTCMDS) || defined(FEAT_PYTHON) \ - || defined(FEAT_PYTHON3) || defined(PROTO) - -+ static int empty_curbuf __ARGS((int close_others, int forceit, int action)); -+ -+ /* -+ * Make the current buffer empty. -+ * Used when it is wiped out and it's the last buffer. -+ */ -+ static int -+ empty_curbuf(close_others, forceit, action) -+ int close_others; -+ int forceit; -+ int action; -+ { -+ int retval; -+ buf_T *buf = curbuf; -+ -+ if (action == DOBUF_UNLOAD) -+ { -+ EMSG(_("E90: Cannot unload last buffer")); -+ return FAIL; -+ } -+ -+ if (close_others) -+ { -+ /* Close any other windows on this buffer, then make it empty. */ -+ #ifdef FEAT_WINDOWS -+ close_windows(buf, TRUE); -+ #endif -+ } -+ -+ setpcmark(); -+ retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, -+ forceit ? ECMD_FORCEIT : 0, curwin); -+ -+ /* -+ * do_ecmd() may create a new buffer, then we have to delete -+ * the old one. But do_ecmd() may have done that already, check -+ * if the buffer still exists. -+ */ -+ if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0) -+ close_buffer(NULL, buf, action, FALSE); -+ if (!close_others) -+ need_fileinfo = FALSE; -+ return retval; -+ } - /* - * Implementation of the commands for the buffer list. - * -*************** -*** 1114,1120 **** - if (unload) - { - int forward; -- int retval; - - /* When unloading or deleting a buffer that's already unloaded and - * unlisted: fail silently. */ ---- 1158,1163 ---- -*************** -*** 1155,1184 **** - if (bp->b_p_bl && bp != buf) - break; - if (bp == NULL && buf == curbuf) -! { -! if (action == DOBUF_UNLOAD) -! { -! EMSG(_("E90: Cannot unload last buffer")); -! return FAIL; -! } -! -! /* Close any other windows on this buffer, then make it empty. */ -! #ifdef FEAT_WINDOWS -! close_windows(buf, TRUE); -! #endif -! setpcmark(); -! retval = do_ecmd(0, NULL, NULL, NULL, ECMD_ONE, -! forceit ? ECMD_FORCEIT : 0, curwin); -! -! /* -! * do_ecmd() may create a new buffer, then we have to delete -! * the old one. But do_ecmd() may have done that already, check -! * if the buffer still exists. -! */ -! if (buf != curbuf && buf_valid(buf) && buf->b_nwindows == 0) -! close_buffer(NULL, buf, action, FALSE); -! return retval; -! } - - #ifdef FEAT_WINDOWS - /* ---- 1198,1204 ---- - if (bp->b_p_bl && bp != buf) - break; - if (bp == NULL && buf == curbuf) -! return empty_curbuf(TRUE, forceit, action); - - #ifdef FEAT_WINDOWS - /* -*************** -*** 1212,1218 **** - - /* - * Deleting the current buffer: Need to find another buffer to go to. -! * There must be another, otherwise it would have been handled above. - * First use au_new_curbuf, if it is valid. - * Then prefer the buffer we most recently visited. - * Else try to find one that is loaded, after the current buffer, ---- 1232,1239 ---- - - /* - * Deleting the current buffer: Need to find another buffer to go to. -! * There should be another, otherwise it would have been handled -! * above. However, autocommands may have deleted all buffers. - * First use au_new_curbuf, if it is valid. - * Then prefer the buffer we most recently visited. - * Else try to find one that is loaded, after the current buffer, -*************** -*** 1311,1316 **** ---- 1332,1344 ---- - } - } - -+ if (buf == NULL) -+ { -+ /* Autocommands must have wiped out all other buffers. Only option -+ * now is to make the current buffer empty. */ -+ return empty_curbuf(FALSE, forceit, action); -+ } -+ - /* - * make buf current buffer - */ -*** ../vim-7.4.139/src/version.c 2014-01-10 15:53:09.000000000 +0100 ---- src/version.c 2014-01-10 16:36:03.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 140, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -133. You communicate with people on other continents more than you - do with your own neighbors. - - /// 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 /// diff --git a/7.4.141 b/7.4.141 deleted file mode 100644 index 8667b727..00000000 --- a/7.4.141 +++ /dev/null @@ -1,88 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.141 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.141 -Problem: Problems when building with Borland: st_mode is signed short; - can't build with Python; temp files not ignored by Mercurial; - building with DEBUG doesn't define _DEBUG. -Solution: Fix the problems. (Ken Takata) -Files: src/Make_bc5.mak, src/if_py_both.h, src/os_win32.c - - -*** ../vim-7.4.140/src/Make_bc5.mak 2013-06-03 20:09:58.000000000 +0200 ---- src/Make_bc5.mak 2014-01-10 18:12:14.000000000 +0100 -*************** -*** 419,425 **** - ALIGNARG = -a$(ALIGN) - # - !if ("$(DEBUG)"=="yes") -! DEFINES=$(DEFINES) -DDEBUG - !endif - # - !if ("$(OLE)"=="yes") ---- 419,425 ---- - ALIGNARG = -a$(ALIGN) - # - !if ("$(DEBUG)"=="yes") -! DEFINES=$(DEFINES) -DDEBUG -D_DEBUG - !endif - # - !if ("$(OLE)"=="yes") -*** ../vim-7.4.140/src/if_py_both.h 2013-12-07 14:28:37.000000000 +0100 ---- src/if_py_both.h 2014-01-10 18:12:14.000000000 +0100 -*************** -*** 13,18 **** ---- 13,23 ---- - * Common code for if_python.c and if_python3.c. - */ - -+ #ifdef __BORLANDC__ -+ /* Disable Warning W8060: Possibly incorrect assignment in function ... */ -+ # pragma warn -8060 -+ #endif -+ - static char_u e_py_systemexit[] = "E880: Can't handle SystemExit of %s exception in vim"; - - #if PY_VERSION_HEX < 0x02050000 -*** ../vim-7.4.140/src/os_win32.c 2014-01-10 13:51:35.000000000 +0100 ---- src/os_win32.c 2014-01-10 18:12:14.000000000 +0100 -*************** -*** 2960,2966 **** - int n; - - n = mch_stat(name, &st); -! return n == 0 ? (long)st.st_mode : -1L; - } - - ---- 2960,2966 ---- - int n; - - n = mch_stat(name, &st); -! return n == 0 ? (long)(unsigned short)st.st_mode : -1L; - } - - -*** ../vim-7.4.140/src/version.c 2014-01-10 16:43:09.000000000 +0100 ---- src/version.c 2014-01-10 18:14:58.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 141, - /**/ - --- -Never eat yellow snow. - - /// 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 /// diff --git a/7.4.142 b/7.4.142 deleted file mode 100644 index 0e4f8f07..00000000 --- a/7.4.142 +++ /dev/null @@ -1,186 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.142 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.142 (after 7.4.137) -Problem: On MS-Windows 8 IME input doen't work correctly. -Solution: Work around the problem. (Nobuhiro Takasaki) -Files: src/os_win32.c - - -*** ../vim-7.4.141/src/os_win32.c 2014-01-10 18:16:00.000000000 +0100 ---- src/os_win32.c 2014-01-12 13:23:24.000000000 +0100 -*************** -*** 234,289 **** - - /* - * Version of ReadConsoleInput() that works with IME. - */ - static BOOL - read_console_input( -! HANDLE hConsoleInput, -! PINPUT_RECORD lpBuffer, -! DWORD nLength, -! LPDWORD lpNumberOfEventsRead) - { - enum - { -! IRSIZE = 10, /* rough value */ - }; -! static INPUT_RECORD irCache[IRSIZE]; - static DWORD s_dwIndex = 0; - static DWORD s_dwMax = 0; -! -! if (hConsoleInput == NULL || lpBuffer == NULL) -! return ReadConsoleInput(hConsoleInput, lpBuffer, nLength, -! lpNumberOfEventsRead); -! -! if (nLength == -1) -! { -! if (s_dwMax == 0) -! { -! PeekConsoleInput(hConsoleInput, lpBuffer, 1, lpNumberOfEventsRead); -! if (*lpNumberOfEventsRead == 0) -! return FALSE; -! ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax); -! s_dwIndex = 0; -! } -! ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex]; -! *lpNumberOfEventsRead = 1; -! return TRUE; -! } - - if (s_dwMax == 0) - { -! ReadConsoleInput(hConsoleInput, irCache, IRSIZE, &s_dwMax); - s_dwIndex = 0; -! if (s_dwMax == 0) - { -! *lpNumberOfEventsRead = 0; -! return FALSE; - } - } -! -! ((PINPUT_RECORD)lpBuffer)[0] = irCache[s_dwIndex]; -! if (++s_dwIndex == s_dwMax) - s_dwMax = 0; -! *lpNumberOfEventsRead = 1; - return TRUE; - } - ---- 234,275 ---- - - /* - * Version of ReadConsoleInput() that works with IME. -+ * Works around problems on Windows 8. - */ - static BOOL - read_console_input( -! HANDLE hInput, -! INPUT_RECORD *lpBuffer, -! DWORD nLength, -! LPDWORD lpEvents) - { - enum - { -! IRSIZE = 10 - }; -! static INPUT_RECORD s_irCache[IRSIZE]; - static DWORD s_dwIndex = 0; - static DWORD s_dwMax = 0; -! DWORD dwEvents; - - if (s_dwMax == 0) - { -! if (nLength == -1) -! return PeekConsoleInput(hInput, lpBuffer, 1, lpEvents); -! if (!ReadConsoleInput(hInput, s_irCache, IRSIZE, &dwEvents)) -! return FALSE; - s_dwIndex = 0; -! s_dwMax = dwEvents; -! if (dwEvents == 0) - { -! *lpEvents = 0; -! return TRUE; - } - } -! *lpBuffer = s_irCache[s_dwIndex]; -! if (nLength != -1 && ++s_dwIndex >= s_dwMax) - s_dwMax = 0; -! *lpEvents = 1; - return TRUE; - } - -*************** -*** 292,304 **** - */ - static BOOL - peek_console_input( -! HANDLE hConsoleInput, -! PINPUT_RECORD lpBuffer, -! DWORD nLength, -! LPDWORD lpNumberOfEventsRead) - { -! return read_console_input(hConsoleInput, lpBuffer, -1, -! lpNumberOfEventsRead); - } - - static void ---- 278,289 ---- - */ - static BOOL - peek_console_input( -! HANDLE hInput, -! INPUT_RECORD *lpBuffer, -! DWORD nLength, -! LPDWORD lpEvents) - { -! return read_console_input(hInput, lpBuffer, -1, lpEvents); - } - - static void -*************** -*** 585,594 **** - static BOOL - win32_enable_privilege(LPTSTR lpszPrivilege, BOOL bEnable) - { -! BOOL bResult; -! LUID luid; -! HANDLE hToken; -! TOKEN_PRIVILEGES tokenPrivileges; - - if (!OpenProcessToken(GetCurrentProcess(), - TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) ---- 570,579 ---- - static BOOL - win32_enable_privilege(LPTSTR lpszPrivilege, BOOL bEnable) - { -! BOOL bResult; -! LUID luid; -! HANDLE hToken; -! TOKEN_PRIVILEGES tokenPrivileges; - - if (!OpenProcessToken(GetCurrentProcess(), - TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) -*** ../vim-7.4.141/src/version.c 2014-01-10 18:16:00.000000000 +0100 ---- src/version.c 2014-01-12 13:17:47.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 142, - /**/ - --- -Drink wet cement and get really stoned. - - /// 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 /// diff --git a/7.4.143 b/7.4.143 deleted file mode 100644 index 909a9e9c..00000000 --- a/7.4.143 +++ /dev/null @@ -1,214 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.143 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.143 -Problem: TextChangedI is not triggered. -Solution: Reverse check for "ready". (lilydjwg) -Files: src/edit.c - - -*** ../vim-7.4.142/src/edit.c 2013-11-06 04:01:31.000000000 +0100 ---- src/edit.c 2014-01-12 13:30:53.000000000 +0100 -*************** -*** 1556,1642 **** - int conceal_update_lines = FALSE; - #endif - -! if (!char_avail()) -! { - #if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL) -! /* Trigger CursorMoved if the cursor moved. Not when the popup menu is -! * visible, the command might delete it. */ -! if (ready && ( - # ifdef FEAT_AUTOCMD -! has_cursormovedI() - # endif - # if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL) -! || - # endif - # ifdef FEAT_CONCEAL -! curwin->w_p_cole > 0 - # endif -! ) -! && !equalpos(last_cursormoved, curwin->w_cursor) - # ifdef FEAT_INS_EXPAND -! && !pum_visible() - # endif -! ) -! { - # ifdef FEAT_SYN_HL -! /* Need to update the screen first, to make sure syntax -! * highlighting is correct after making a change (e.g., inserting -! * a "(". The autocommand may also require a redraw, so it's done -! * again below, unfortunately. */ -! if (syntax_present(curwin) && must_redraw) -! update_screen(0); - # endif - # ifdef FEAT_AUTOCMD -! if (has_cursormovedI()) -! apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf); - # endif - # ifdef FEAT_CONCEAL -! if (curwin->w_p_cole > 0) -! { -! conceal_old_cursor_line = last_cursormoved.lnum; -! conceal_new_cursor_line = curwin->w_cursor.lnum; -! conceal_update_lines = TRUE; -! } -! # endif -! last_cursormoved = curwin->w_cursor; - } - #endif - #ifdef FEAT_AUTOCMD -! /* Trigger TextChangedI if b_changedtick differs. */ -! if (!ready && has_textchangedI() -! && last_changedtick != curbuf->b_changedtick - # ifdef FEAT_INS_EXPAND -! && !pum_visible() - # endif -! ) -! { -! if (last_changedtick_buf == curbuf) -! apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf); -! last_changedtick_buf = curbuf; -! last_changedtick = curbuf->b_changedtick; -! } - #endif -! if (must_redraw) -! update_screen(0); -! else if (clear_cmdline || redraw_cmdline) -! showmode(); /* clear cmdline and show mode */ - # if defined(FEAT_CONCEAL) -! if ((conceal_update_lines -! && (conceal_old_cursor_line != conceal_new_cursor_line -! || conceal_cursor_line(curwin))) -! || need_cursor_line_redraw) -! { -! if (conceal_old_cursor_line != conceal_new_cursor_line) -! update_single_line(curwin, conceal_old_cursor_line); -! update_single_line(curwin, conceal_new_cursor_line == 0 -! ? curwin->w_cursor.lnum : conceal_new_cursor_line); -! curwin->w_valid &= ~VALID_CROW; -! } -! # endif -! showruler(FALSE); -! setcursor(); -! emsg_on_display = FALSE; /* may remove error message now */ - } - } - - /* ---- 1556,1644 ---- - int conceal_update_lines = FALSE; - #endif - -! if (char_avail()) -! return; -! - #if defined(FEAT_AUTOCMD) || defined(FEAT_CONCEAL) -! /* Trigger CursorMoved if the cursor moved. Not when the popup menu is -! * visible, the command might delete it. */ -! if (ready && ( - # ifdef FEAT_AUTOCMD -! has_cursormovedI() - # endif - # if defined(FEAT_AUTOCMD) && defined(FEAT_CONCEAL) -! || - # endif - # ifdef FEAT_CONCEAL -! curwin->w_p_cole > 0 - # endif -! ) -! && !equalpos(last_cursormoved, curwin->w_cursor) - # ifdef FEAT_INS_EXPAND -! && !pum_visible() - # endif -! ) -! { - # ifdef FEAT_SYN_HL -! /* Need to update the screen first, to make sure syntax -! * highlighting is correct after making a change (e.g., inserting -! * a "(". The autocommand may also require a redraw, so it's done -! * again below, unfortunately. */ -! if (syntax_present(curwin) && must_redraw) -! update_screen(0); - # endif - # ifdef FEAT_AUTOCMD -! if (has_cursormovedI()) -! apply_autocmds(EVENT_CURSORMOVEDI, NULL, NULL, FALSE, curbuf); - # endif - # ifdef FEAT_CONCEAL -! if (curwin->w_p_cole > 0) -! { -! conceal_old_cursor_line = last_cursormoved.lnum; -! conceal_new_cursor_line = curwin->w_cursor.lnum; -! conceal_update_lines = TRUE; - } -+ # endif -+ last_cursormoved = curwin->w_cursor; -+ } - #endif -+ - #ifdef FEAT_AUTOCMD -! /* Trigger TextChangedI if b_changedtick differs. */ -! if (ready && has_textchangedI() -! && last_changedtick != curbuf->b_changedtick - # ifdef FEAT_INS_EXPAND -! && !pum_visible() - # endif -! ) -! { -! if (last_changedtick_buf == curbuf) -! apply_autocmds(EVENT_TEXTCHANGEDI, NULL, NULL, FALSE, curbuf); -! last_changedtick_buf = curbuf; -! last_changedtick = curbuf->b_changedtick; -! } - #endif -! -! if (must_redraw) -! update_screen(0); -! else if (clear_cmdline || redraw_cmdline) -! showmode(); /* clear cmdline and show mode */ - # if defined(FEAT_CONCEAL) -! if ((conceal_update_lines -! && (conceal_old_cursor_line != conceal_new_cursor_line -! || conceal_cursor_line(curwin))) -! || need_cursor_line_redraw) -! { -! if (conceal_old_cursor_line != conceal_new_cursor_line) -! update_single_line(curwin, conceal_old_cursor_line); -! update_single_line(curwin, conceal_new_cursor_line == 0 -! ? curwin->w_cursor.lnum : conceal_new_cursor_line); -! curwin->w_valid &= ~VALID_CROW; - } -+ # endif -+ showruler(FALSE); -+ setcursor(); -+ emsg_on_display = FALSE; /* may remove error message now */ - } - - /* -*** ../vim-7.4.142/src/version.c 2014-01-12 13:24:46.000000000 +0100 ---- src/version.c 2014-01-14 12:15:50.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 143, - /**/ - --- -You are not really successful until someone claims he sat -beside you in school. - - /// 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 /// diff --git a/7.4.144 b/7.4.144 deleted file mode 100644 index c88e2d2c..00000000 --- a/7.4.144 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.144 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.144 -Problem: MingW also supports intptr_t for OPEN_OH_ARGTYPE. -Solution: Adjust #ifdef. (Ken Takata) -Files: src/os_mswin.c - - -*** ../vim-7.4.143/src/os_mswin.c 2014-01-10 13:05:12.000000000 +0100 ---- src/os_mswin.c 2014-01-14 12:15:30.000000000 +0100 -*************** -*** 498,504 **** - } - } - -! #if (_MSC_VER >= 1300) - # define OPEN_OH_ARGTYPE intptr_t - #else - # define OPEN_OH_ARGTYPE long ---- 498,504 ---- - } - } - -! #if (defined(_MSC_VER) && (_MSC_VER >= 1300)) || defined(__MINGW32__) - # define OPEN_OH_ARGTYPE intptr_t - #else - # define OPEN_OH_ARGTYPE long -*** ../vim-7.4.143/src/version.c 2014-01-14 12:16:57.000000000 +0100 ---- src/version.c 2014-01-14 12:18:10.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 144, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -150. You find yourself counting emoticons to get to sleep. - - /// 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 /// diff --git a/7.4.145 b/7.4.145 deleted file mode 100644 index aa7b28d0..00000000 --- a/7.4.145 +++ /dev/null @@ -1,75 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.145 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.145 -Problem: getregtype() does not return zero for unknown register. -Solution: Adjust documention: return empty string for unknown register. - Check the register name to be valid. (Yukihiro Nakadaira) -Files: runtime/doc/eval.txt, src/ops.c - - -*** ../vim-7.4.144/runtime/doc/eval.txt 2013-11-09 01:44:38.000000000 +0100 ---- runtime/doc/eval.txt 2014-01-14 12:24:35.000000000 +0100 -*************** -*** 3459,3465 **** - "v" for |characterwise| text - "V" for |linewise| text - "{width}" for |blockwise-visual| text -! 0 for an empty or unknown register - is one character with value 0x16. - If {regname} is not specified, |v:register| is used. - ---- 3460,3466 ---- - "v" for |characterwise| text - "V" for |linewise| text - "{width}" for |blockwise-visual| text -! "" for an empty or unknown register - is one character with value 0x16. - If {regname} is not specified, |v:register| is used. - -*** ../vim-7.4.144/src/ops.c 2013-11-21 14:39:58.000000000 +0100 ---- src/ops.c 2014-01-14 12:28:33.000000000 +0100 -*************** -*** 6240,6246 **** - regname = may_get_selection(regname); - #endif - -! /* Should we check for a valid name? */ - get_yank_register(regname, FALSE); - - if (y_current->y_array != NULL) ---- 6240,6248 ---- - regname = may_get_selection(regname); - #endif - -! if (regname != NUL && !valid_yank_reg(regname, FALSE)) -! return MAUTO; -! - get_yank_register(regname, FALSE); - - if (y_current->y_array != NULL) -*** ../vim-7.4.144/src/version.c 2014-01-14 12:18:41.000000000 +0100 ---- src/version.c 2014-01-14 12:26:13.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 145, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -151. You find yourself engaged to someone you've never actually met, - except through e-mail. - - /// 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 /// diff --git a/7.4.146 b/7.4.146 deleted file mode 100644 index f23a77da..00000000 --- a/7.4.146 +++ /dev/null @@ -1,67 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.146 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.146 -Problem: When starting Vim with "-u NONE" v:oldfiles is NULL. -Solution: Set v:oldfiles to an empty list. (Yasuhiro Matsumoto) -Files: src/main.c - - -*** ../vim-7.4.145/src/main.c 2013-09-29 16:27:42.000000000 +0200 ---- src/main.c 2014-01-14 12:53:28.000000000 +0100 -*************** -*** 702,707 **** ---- 702,712 ---- - TIME_MSG("reading viminfo"); - } - #endif -+ #ifdef FEAT_EVAL -+ /* It's better to make v:oldfiles an empty list than NULL. */ -+ if (get_vim_var_list(VV_OLDFILES) == NULL) -+ set_vim_var_list(VV_OLDFILES, list_alloc()); -+ #endif - - #ifdef FEAT_QUICKFIX - /* -*************** -*** 1048,1054 **** - /* Setup to catch a terminating error from the X server. Just ignore - * it, restore the state and continue. This might not always work - * properly, but at least we don't exit unexpectedly when the X server -! * exists while Vim is running in a console. */ - if (!cmdwin && !noexmode && SETJMP(x_jump_env)) - { - State = NORMAL; ---- 1053,1059 ---- - /* Setup to catch a terminating error from the X server. Just ignore - * it, restore the state and continue. This might not always work - * properly, but at least we don't exit unexpectedly when the X server -! * exits while Vim is running in a console. */ - if (!cmdwin && !noexmode && SETJMP(x_jump_env)) - { - State = NORMAL; -*** ../vim-7.4.145/src/version.c 2014-01-14 12:33:32.000000000 +0100 ---- src/version.c 2014-01-14 12:56:08.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 146, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -152. You find yourself falling for someone you've never seen or hardly - know, but, boy can he/she TYPE!!!!!! - - /// 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 /// diff --git a/7.4.147 b/7.4.147 deleted file mode 100644 index 0df6ffa81db9a0e41cbe1b9c4500398b8d7084b1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2583 zcmc&$-EZ4A5Z`ME^tCU0xwt_SJJy#a+lks3O;e{W)^x?NQFpqOr@wwWk;eQr`7BNBOSsAs-p~s zc3^wKkQ_%*2%^$6aY>G)C_;ECX#pofWb!oG1JD5DWH*N3$)3p$SVV5b~>SRTw=^HqYH$XB?(I8I=@r4ZeQ=n61WE|q#cPIM&QEJr*OMvd0tCe zwwn`J1@D7tz;6U^;IAuwzU-Hswt=M@dE6$OuyH57lfz$+etg${cAYrp3h!CmM)N-& zz*pMnvqrq`C(r6N{p9a|tDnB;eYdfCp&vY`vHHDkf4FQa)2#hocW_gt*S_$2e$XEb z_x8W<&E0GLD&Y_yeLOrMWc zG-@`^QA1P;b&#Sih1zLtk6LZxx>Z&h4z?qahugNX_@npH-Ug8*E8hP|07B{_n*?C|{?%lBI(cCE#r(gNf9btm{$TK+@&|r5=--y#u!GfKy1)0` zpiki5x@$&E7&Hgsel5Ml^7^vZ2VO7i4@39!fw!8HU-t4t&kFu2H+k}>a zn~we)0GtjS#xZcLp=_>eUKKNxFvDEbpfjc*XB?s9kX>*(&0@$4hFxOZI}Rb11>`W- znW)kXbcUd!E3+`gw>6X!Ei4#Eu7MWj@-(^{X(_k@kw8sl7bw3H9HGtx$*6)EA_u{j zrp=9uJO+_;LD8!&P$-cq%C*`Ci3^cys9B!FoHtQZ4U7{tXL*h>WR%AWm^K%0f>bI| zpiMRmSr+U}P|7R#AWizHbr(*A)NMk*ah&^a6w7KPFK%8f=9OZknbu|KICWjy>pFnx zbV>}=H7S#}kZ{I|E-ZvbNQ5+T=}MxyhjqpZTgcS8c5)i9>2wM}IpAfqd{8vilOmP0 zD9i&Rr#!7_iub^NXT_{CaH~)p#~}uB#T&{nFQLHYdieI$DJ)o|S#dYAw?{|E)*F%M Kl*cPPgY_?LpVdzQ diff --git a/7.4.148 b/7.4.148 deleted file mode 100644 index 582b3788..00000000 --- a/7.4.148 +++ /dev/null @@ -1,83 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.148 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.148 -Problem: Cannot build with Cygwin and X11. -Solution: Include Xwindows.h instead of windows.h. (Lech Lorens) -Files: src/mbyte.c - - -*** ../vim-7.4.147/src/mbyte.c 2013-11-12 04:43:57.000000000 +0100 ---- src/mbyte.c 2014-01-14 13:21:36.000000000 +0100 -*************** -*** 83,92 **** - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif -! # include - # ifdef WIN32 - # undef WIN32 /* Some windows.h define WIN32, we don't want that here. */ - # endif - #endif - - #if (defined(WIN3264) || defined(WIN32UNIX)) && !defined(__MINGW32__) ---- 83,100 ---- - # ifndef WIN32_LEAN_AND_MEAN - # define WIN32_LEAN_AND_MEAN - # endif -! # if defined(FEAT_GUI) || defined(FEAT_XCLIPBOARD) -! # include -! # define WINBYTE wBYTE -! # else -! # include -! # define WINBYTE BYTE -! # endif - # ifdef WIN32 - # undef WIN32 /* Some windows.h define WIN32, we don't want that here. */ - # endif -+ #else -+ # define WINBYTE BYTE - #endif - - #if (defined(WIN3264) || defined(WIN32UNIX)) && !defined(__MINGW32__) -*************** -*** 698,704 **** - /* enc_dbcs is set by setting 'fileencoding'. It becomes a Windows - * CodePage identifier, which we can pass directly in to Windows - * API */ -! n = IsDBCSLeadByteEx(enc_dbcs, (BYTE)i) ? 2 : 1; - #else - # if defined(MACOS) || defined(__amigaos4__) - /* ---- 706,712 ---- - /* enc_dbcs is set by setting 'fileencoding'. It becomes a Windows - * CodePage identifier, which we can pass directly in to Windows - * API */ -! n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1; - #else - # if defined(MACOS) || defined(__amigaos4__) - /* -*** ../vim-7.4.147/src/version.c 2014-01-14 13:18:53.000000000 +0100 ---- src/version.c 2014-01-14 13:24:17.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 148, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -154. You fondle your mouse. - - /// 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 /// diff --git a/7.4.149 b/7.4.149 deleted file mode 100644 index b1584205..00000000 --- a/7.4.149 +++ /dev/null @@ -1,822 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.149 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.149 -Problem: Get E685 error when assigning a function to an autoload variable. - (Yukihiro Nakadaira) -Solution: Instead of having a global no_autoload variable, pass an autoload - flag down to where it is used. (ZyX) -Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok, - src/testdir/test60.in, src/testdir/test60.ok, - src/testdir/sautest/autoload/footest.vim - - -*** ../vim-7.4.148/src/eval.c 2014-01-06 06:18:44.000000000 +0100 ---- src/eval.c 2014-01-14 15:14:05.000000000 +0100 -*************** -*** 125,133 **** - */ - static hashtab_T compat_hashtab; - -- /* When using exists() don't auto-load a script. */ -- static int no_autoload = FALSE; -- - /* - * When recursively copying lists and dicts we need to remember which ones we - * have done to avoid endless recursiveness. This unique ID is used for that. ---- 125,130 ---- -*************** -*** 156,161 **** ---- 153,163 ---- - /* Values for trans_function_name() argument: */ - #define TFN_INT 1 /* internal function name OK */ - #define TFN_QUIET 2 /* no error messages */ -+ #define TFN_NO_AUTOLOAD 4 /* do not use script autoloading */ -+ -+ /* Values for get_lval() flags argument: */ -+ #define GLV_QUIET TFN_QUIET /* no error messages */ -+ #define GLV_NO_AUTOLOAD TFN_NO_AUTOLOAD /* do not use script autoloading */ - - /* - * Structure to hold info for a user function. -*************** -*** 390,396 **** - static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first)); - static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op)); - static int check_changedtick __ARGS((char_u *arg)); -! static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int quiet, int fne_flags)); - static void clear_lval __ARGS((lval_T *lp)); - static void set_var_lval __ARGS((lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op)); - static int tv_op __ARGS((typval_T *tv1, typval_T *tv2, char_u *op)); ---- 392,398 ---- - static char_u *list_arg_vars __ARGS((exarg_T *eap, char_u *arg, int *first)); - static char_u *ex_let_one __ARGS((char_u *arg, typval_T *tv, int copy, char_u *endchars, char_u *op)); - static int check_changedtick __ARGS((char_u *arg)); -! static char_u *get_lval __ARGS((char_u *name, typval_T *rettv, lval_T *lp, int unlet, int skip, int flags, int fne_flags)); - static void clear_lval __ARGS((lval_T *lp)); - static void set_var_lval __ARGS((lval_T *lp, char_u *endp, typval_T *rettv, int copy, char_u *op)); - static int tv_op __ARGS((typval_T *tv1, typval_T *tv2, char_u *op)); -*************** -*** 770,776 **** - static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end)); - static int eval_isnamec __ARGS((int c)); - static int eval_isnamec1 __ARGS((int c)); -! static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose)); - static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose)); - static typval_T *alloc_tv __ARGS((void)); - static typval_T *alloc_string_tv __ARGS((char_u *string)); ---- 772,778 ---- - static char_u * make_expanded_name __ARGS((char_u *in_start, char_u *expr_start, char_u *expr_end, char_u *in_end)); - static int eval_isnamec __ARGS((int c)); - static int eval_isnamec1 __ARGS((int c)); -! static int get_var_tv __ARGS((char_u *name, int len, typval_T *rettv, int verbose, int no_autoload)); - static int handle_subscript __ARGS((char_u **arg, typval_T *rettv, int evaluate, int verbose)); - static typval_T *alloc_tv __ARGS((void)); - static typval_T *alloc_string_tv __ARGS((char_u *string)); -*************** -*** 781,788 **** - static char_u *get_tv_string __ARGS((typval_T *varp)); - static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); - static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf)); -! static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp)); -! static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int writing)); - static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); - static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); - static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); ---- 783,790 ---- - static char_u *get_tv_string __ARGS((typval_T *varp)); - static char_u *get_tv_string_buf __ARGS((typval_T *varp, char_u *buf)); - static char_u *get_tv_string_buf_chk __ARGS((typval_T *varp, char_u *buf)); -! static dictitem_T *find_var __ARGS((char_u *name, hashtab_T **htp, int no_autoload)); -! static dictitem_T *find_var_in_ht __ARGS((hashtab_T *ht, int htname, char_u *varname, int no_autoload)); - static hashtab_T *find_var_ht __ARGS((char_u *name, char_u **varname)); - static void vars_clear_ext __ARGS((hashtab_T *ht, int free_val)); - static void delete_var __ARGS((hashtab_T *ht, hashitem_T *hi)); -*************** -*** 1059,1065 **** - ga_init2(&redir_ga, (int)sizeof(char), 500); - - /* Parse the variable name (can be a dict or list entry). */ -! redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, FALSE, - FNE_CHECK_START); - if (redir_endp == NULL || redir_lval->ll_name == NULL || *redir_endp != NUL) - { ---- 1061,1067 ---- - ga_init2(&redir_ga, (int)sizeof(char), 500); - - /* Parse the variable name (can be a dict or list entry). */ -! redir_endp = get_lval(redir_varname, NULL, redir_lval, FALSE, FALSE, 0, - FNE_CHECK_START); - if (redir_endp == NULL || redir_lval->ll_name == NULL || *redir_endp != NUL) - { -*************** -*** 1150,1156 **** - /* Call get_lval() again, if it's inside a Dict or List it may - * have changed. */ - redir_endp = get_lval(redir_varname, NULL, redir_lval, -! FALSE, FALSE, FALSE, FNE_CHECK_START); - if (redir_endp != NULL && redir_lval->ll_name != NULL) - set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); - clear_lval(redir_lval); ---- 1152,1158 ---- - /* Call get_lval() again, if it's inside a Dict or List it may - * have changed. */ - redir_endp = get_lval(redir_varname, NULL, redir_lval, -! FALSE, FALSE, 0, FNE_CHECK_START); - if (redir_endp != NULL && redir_lval->ll_name != NULL) - set_var_lval(redir_lval, redir_endp, &tv, FALSE, (char_u *)"."); - clear_lval(redir_lval); -*************** -*** 2239,2245 **** - { - if (tofree != NULL) - name = tofree; -! if (get_var_tv(name, len, &tv, TRUE) == FAIL) - error = TRUE; - else - { ---- 2241,2247 ---- - { - if (tofree != NULL) - name = tofree; -! if (get_var_tv(name, len, &tv, TRUE, FALSE) == FAIL) - error = TRUE; - else - { -*************** -*** 2474,2480 **** - { - lval_T lv; - -! p = get_lval(arg, tv, &lv, FALSE, FALSE, FALSE, FNE_CHECK_START); - if (p != NULL && lv.ll_name != NULL) - { - if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL) ---- 2476,2482 ---- - { - lval_T lv; - -! p = get_lval(arg, tv, &lv, FALSE, FALSE, 0, FNE_CHECK_START); - if (p != NULL && lv.ll_name != NULL) - { - if (endchars != NULL && vim_strchr(endchars, *skipwhite(p)) == NULL) -*************** -*** 2519,2536 **** - * "unlet" is TRUE for ":unlet": slightly different behavior when something is - * wrong; must end in space or cmd separator. - * - * Returns a pointer to just after the name, including indexes. - * When an evaluation error occurs "lp->ll_name" is NULL; - * Returns NULL for a parsing error. Still need to free items in "lp"! - */ - static char_u * -! get_lval(name, rettv, lp, unlet, skip, quiet, fne_flags) - char_u *name; - typval_T *rettv; - lval_T *lp; - int unlet; - int skip; -! int quiet; /* don't give error messages */ - int fne_flags; /* flags for find_name_end() */ - { - char_u *p; ---- 2521,2542 ---- - * "unlet" is TRUE for ":unlet": slightly different behavior when something is - * wrong; must end in space or cmd separator. - * -+ * flags: -+ * GLV_QUIET: do not give error messages -+ * GLV_NO_AUTOLOAD: do not use script autoloading -+ * - * Returns a pointer to just after the name, including indexes. - * When an evaluation error occurs "lp->ll_name" is NULL; - * Returns NULL for a parsing error. Still need to free items in "lp"! - */ - static char_u * -! get_lval(name, rettv, lp, unlet, skip, flags, fne_flags) - char_u *name; - typval_T *rettv; - lval_T *lp; - int unlet; - int skip; -! int flags; /* GLV_ values */ - int fne_flags; /* flags for find_name_end() */ - { - char_u *p; -*************** -*** 2544,2549 **** ---- 2550,2556 ---- - char_u *key = NULL; - int len; - hashtab_T *ht; -+ int quiet = flags & GLV_QUIET; - - /* Clear everything in "lp". */ - vim_memset(lp, 0, sizeof(lval_T)); -*************** -*** 2591,2597 **** - - cc = *p; - *p = NUL; -! v = find_var(lp->ll_name, &ht); - if (v == NULL && !quiet) - EMSG2(_(e_undefvar), lp->ll_name); - *p = cc; ---- 2598,2604 ---- - - cc = *p; - *p = NUL; -! v = find_var(lp->ll_name, &ht, flags & GLV_NO_AUTOLOAD); - if (v == NULL && !quiet) - EMSG2(_(e_undefvar), lp->ll_name); - *p = cc; -*************** -*** 2904,2910 **** - - /* handle +=, -= and .= */ - if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name), -! &tv, TRUE) == OK) - { - if (tv_op(&tv, rettv, op) == OK) - set_var(lp->ll_name, &tv, FALSE); ---- 2911,2917 ---- - - /* handle +=, -= and .= */ - if (get_var_tv(lp->ll_name, (int)STRLEN(lp->ll_name), -! &tv, TRUE, FALSE) == OK) - { - if (tv_op(&tv, rettv, op) == OK) - set_var(lp->ll_name, &tv, FALSE); -*************** -*** 3556,3562 **** - do - { - /* Parse the name and find the end. */ -! name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, FALSE, - FNE_CHECK_START); - if (lv.ll_name == NULL) - error = TRUE; /* error but continue parsing */ ---- 3563,3569 ---- - do - { - /* Parse the name and find the end. */ -! name_end = get_lval(arg, NULL, &lv, TRUE, eap->skip || error, 0, - FNE_CHECK_START); - if (lv.ll_name == NULL) - error = TRUE; /* error but continue parsing */ -*************** -*** 3709,3715 **** - ret = FAIL; - else - { -! di = find_var(lp->ll_name, NULL); - if (di == NULL) - ret = FAIL; - else ---- 3716,3722 ---- - ret = FAIL; - else - { -! di = find_var(lp->ll_name, NULL, TRUE); - if (di == NULL) - ret = FAIL; - else -*************** -*** 5179,5185 **** - } - } - else if (evaluate) -! ret = get_var_tv(s, len, rettv, TRUE); - else - ret = OK; - } ---- 5186,5192 ---- - } - } - else if (evaluate) -! ret = get_var_tv(s, len, rettv, TRUE, FALSE); - else - ret = OK; - } -*************** -*** 8284,8290 **** - - cc = name[*lenp]; - name[*lenp] = NUL; -! v = find_var(name, NULL); - name[*lenp] = cc; - if (v != NULL && v->di_tv.v_type == VAR_FUNC) - { ---- 8291,8297 ---- - - cc = name[*lenp]; - name[*lenp] = NUL; -! v = find_var(name, NULL, FALSE); - name[*lenp] = cc; - if (v != NULL && v->di_tv.v_type == VAR_FUNC) - { -*************** -*** 10039,10046 **** - int n = FALSE; - int len = 0; - -- no_autoload = TRUE; -- - p = get_tv_string(&argvars[0]); - if (*p == '$') /* environment variable */ - { ---- 10046,10051 ---- -*************** -*** 10091,10097 **** - { - if (tofree != NULL) - name = tofree; -! n = (get_var_tv(name, len, &tv, FALSE) == OK); - if (n) - { - /* handle d.key, l[idx], f(expr) */ ---- 10096,10102 ---- - { - if (tofree != NULL) - name = tofree; -! n = (get_var_tv(name, len, &tv, FALSE, TRUE) == OK); - if (n) - { - /* handle d.key, l[idx], f(expr) */ -*************** -*** 10107,10114 **** - } - - rettv->vval.v_number = n; -- -- no_autoload = FALSE; - } - - #ifdef FEAT_FLOAT ---- 10112,10117 ---- -*************** -*** 13344,13351 **** - dictitem_T *di; - - rettv->vval.v_number = -1; -! end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE, FALSE, -! FNE_CHECK_START); - if (end != NULL && lv.ll_name != NULL) - { - if (*end != NUL) ---- 13347,13354 ---- - dictitem_T *di; - - rettv->vval.v_number = -1; -! end = get_lval(get_tv_string(&argvars[0]), NULL, &lv, FALSE, FALSE, -! GLV_NO_AUTOLOAD, FNE_CHECK_START); - if (end != NULL && lv.ll_name != NULL) - { - if (*end != NUL) -*************** -*** 13358,13364 **** - rettv->vval.v_number = 1; /* always locked */ - else - { -! di = find_var(lv.ll_name, NULL); - if (di != NULL) - { - /* Consider a variable locked when: ---- 13361,13367 ---- - rettv->vval.v_number = 1; /* always locked */ - else - { -! di = find_var(lv.ll_name, NULL, TRUE); - if (di != NULL) - { - /* Consider a variable locked when: -*************** -*** 19774,19784 **** - * Return OK or FAIL. - */ - static int -! get_var_tv(name, len, rettv, verbose) - char_u *name; - int len; /* length of "name" */ - typval_T *rettv; /* NULL when only checking existence */ - int verbose; /* may give error message */ - { - int ret = OK; - typval_T *tv = NULL; ---- 19777,19788 ---- - * Return OK or FAIL. - */ - static int -! get_var_tv(name, len, rettv, verbose, no_autoload) - char_u *name; - int len; /* length of "name" */ - typval_T *rettv; /* NULL when only checking existence */ - int verbose; /* may give error message */ -+ int no_autoload; /* do not use script autoloading */ - { - int ret = OK; - typval_T *tv = NULL; -*************** -*** 19805,19811 **** - */ - else - { -! v = find_var(name, NULL); - if (v != NULL) - tv = &v->di_tv; - } ---- 19809,19815 ---- - */ - else - { -! v = find_var(name, NULL, no_autoload); - if (v != NULL) - tv = &v->di_tv; - } -*************** -*** 20207,20215 **** - * hashtab_T used. - */ - static dictitem_T * -! find_var(name, htp) - char_u *name; - hashtab_T **htp; - { - char_u *varname; - hashtab_T *ht; ---- 20211,20220 ---- - * hashtab_T used. - */ - static dictitem_T * -! find_var(name, htp, no_autoload) - char_u *name; - hashtab_T **htp; -+ int no_autoload; - { - char_u *varname; - hashtab_T *ht; -*************** -*** 20219,20225 **** - *htp = ht; - if (ht == NULL) - return NULL; -! return find_var_in_ht(ht, *name, varname, htp != NULL); - } - - /* ---- 20224,20230 ---- - *htp = ht; - if (ht == NULL) - return NULL; -! return find_var_in_ht(ht, *name, varname, no_autoload || htp != NULL); - } - - /* -*************** -*** 20227,20237 **** - * Returns NULL if not found. - */ - static dictitem_T * -! find_var_in_ht(ht, htname, varname, writing) - hashtab_T *ht; - int htname; - char_u *varname; -! int writing; - { - hashitem_T *hi; - ---- 20232,20242 ---- - * Returns NULL if not found. - */ - static dictitem_T * -! find_var_in_ht(ht, htname, varname, no_autoload) - hashtab_T *ht; - int htname; - char_u *varname; -! int no_autoload; - { - hashitem_T *hi; - -*************** -*** 20263,20269 **** - * worked find the variable again. Don't auto-load a script if it was - * loaded already, otherwise it would be loaded every time when - * checking if a function name is a Funcref variable. */ -! if (ht == &globvarht && !writing) - { - /* Note: script_autoload() may make "hi" invalid. It must either - * be obtained again or not used. */ ---- 20268,20274 ---- - * worked find the variable again. Don't auto-load a script if it was - * loaded already, otherwise it would be loaded every time when - * checking if a function name is a Funcref variable. */ -! if (ht == &globvarht && !no_autoload) - { - /* Note: script_autoload() may make "hi" invalid. It must either - * be obtained again or not used. */ -*************** -*** 20343,20349 **** - { - dictitem_T *v; - -! v = find_var(name, NULL); - if (v == NULL) - return NULL; - return get_tv_string(&v->di_tv); ---- 20348,20354 ---- - { - dictitem_T *v; - -! v = find_var(name, NULL, FALSE); - if (v == NULL) - return NULL; - return get_tv_string(&v->di_tv); -*************** -*** 21672,21678 **** - */ - if (fudi.fd_dict == NULL) - { -! v = find_var(name, &ht); - if (v != NULL && v->di_tv.v_type == VAR_FUNC) - { - emsg_funcname(N_("E707: Function name conflicts with variable: %s"), ---- 21677,21683 ---- - */ - if (fudi.fd_dict == NULL) - { -! v = find_var(name, &ht, FALSE); - if (v != NULL && v->di_tv.v_type == VAR_FUNC) - { - emsg_funcname(N_("E707: Function name conflicts with variable: %s"), -*************** -*** 21830,21837 **** - * Also handles a Funcref in a List or Dictionary. - * Returns the function name in allocated memory, or NULL for failure. - * flags: -! * TFN_INT: internal function name OK -! * TFN_QUIET: be quiet - * Advances "pp" to just after the function name (if no error). - */ - static char_u * ---- 21835,21843 ---- - * Also handles a Funcref in a List or Dictionary. - * Returns the function name in allocated memory, or NULL for failure. - * flags: -! * TFN_INT: internal function name OK -! * TFN_QUIET: be quiet -! * TFN_NO_AUTOLOAD: do not use script autoloading - * Advances "pp" to just after the function name (if no error). - */ - static char_u * -*************** -*** 21869,21875 **** - if (lead > 2) - start += lead; - -! end = get_lval(start, NULL, &lv, FALSE, skip, flags & TFN_QUIET, - lead > 2 ? 0 : FNE_CHECK_START); - if (end == start) - { ---- 21875,21882 ---- - if (lead > 2) - start += lead; - -! /* Note that TFN_ flags use the same values as GLV_ flags. */ -! end = get_lval(start, NULL, &lv, FALSE, skip, flags, - lead > 2 ? 0 : FNE_CHECK_START); - if (end == start) - { -*************** -*** 22146,22152 **** - char_u *p; - int n = FALSE; - -! p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET, NULL); - nm = skipwhite(nm); - - /* Only accept "funcname", "funcname ", "funcname (..." and ---- 22153,22160 ---- - char_u *p; - int n = FALSE; - -! p = trans_function_name(&nm, FALSE, TFN_INT|TFN_QUIET|TFN_NO_AUTOLOAD, -! NULL); - nm = skipwhite(nm); - - /* Only accept "funcname", "funcname ", "funcname (..." and -*************** -*** 22393,22402 **** - int ret = FALSE; - int i; - -- /* Return quickly when autoload disabled. */ -- if (no_autoload) -- return FALSE; -- - /* If there is no '#' after name[0] there is no package name. */ - p = vim_strchr(name, AUTOLOAD_CHAR); - if (p == NULL || p == name) ---- 22401,22406 ---- -*** ../vim-7.4.148/src/testdir/test55.in 2013-03-07 14:33:12.000000000 +0100 ---- src/testdir/test55.in 2014-01-14 14:48:10.000000000 +0100 -*************** -*** 282,287 **** ---- 282,294 ---- - : $put =ps - : endfor - :endfor -+ :" :lockvar/islocked() triggering script autoloading -+ :set rtp+=./sautest -+ :lockvar g:footest#x -+ :unlockvar g:footest#x -+ :$put ='locked g:footest#x:'.islocked('g:footest#x') -+ :$put ='exists g:footest#x:'.exists('g:footest#x') -+ :$put ='g:footest#x: '.g:footest#x - :" - :" a:000 function argument - :" first the tests that should fail -*** ../vim-7.4.148/src/testdir/test55.ok 2012-08-29 16:51:15.000000000 +0200 ---- src/testdir/test55.ok 2014-01-14 14:45:14.000000000 +0100 -*************** -*** 86,91 **** ---- 86,94 ---- - FFpFFpp - 0000-000 - ppppppp -+ locked g:footest#x:-1 -+ exists g:footest#x:0 -+ g:footest#x: 1 - caught a:000 - caught a:000[0] - caught a:000[2] -*** ../vim-7.4.148/src/testdir/test60.in 2010-05-15 13:04:10.000000000 +0200 ---- src/testdir/test60.in 2014-01-14 14:49:10.000000000 +0100 -*************** -*** 1,4 **** -! Tests for the exists() function. vim: set ft=vim : - - STARTTEST - :so small.vim ---- 1,4 ---- -! Tests for the exists() function. vim: set ft=vim ts=8 : - - STARTTEST - :so small.vim -*************** -*** 11,18 **** - endfunction - :function! TestExists() - augroup myagroup -! autocmd! BufEnter *.my echo 'myfile edited' - augroup END - - let test_cases = [] - ---- 11,20 ---- - endfunction - :function! TestExists() - augroup myagroup -! autocmd! BufEnter *.my echo "myfile edited" -! autocmd! FuncUndefined UndefFun exec "fu UndefFun()\nendfu" - augroup END -+ set rtp+=./sautest - - let test_cases = [] - -*************** -*** 95,104 **** - " Non-existing user defined function - let test_cases += [['*MyxyzFunc', 0]] - - redir! > test.out - - for [test_case, result] in test_cases -! echo test_case . ": " . result - call RunTest(test_case, result) - endfor - ---- 97,111 ---- - " Non-existing user defined function - let test_cases += [['*MyxyzFunc', 0]] - -+ " Function that may be created by FuncUndefined event -+ let test_cases += [['*UndefFun', 0]] -+ " Function that may be created by script autoloading -+ let test_cases += [['*footest#F', 0]] -+ - redir! > test.out - - for [test_case, result] in test_cases -! echo test_case . ": " . result - call RunTest(test_case, result) - endfor - -*************** -*** 207,212 **** ---- 214,227 ---- - echo "FAILED" - endif - -+ " Non-existing autoload variable that may be autoloaded -+ echo 'footest#x: 0' -+ if !exists('footest#x') -+ echo "OK" -+ else -+ echo "FAILED" -+ endif -+ - " Valid local list - let local_list = ["blue", "orange"] - echo 'local_list: 1' -*************** -*** 566,571 **** ---- 581,590 ---- - - call TestFuncArg("arg1", "arg2") - -+ echo ' g:footest#x =' g:footest#x -+ echo ' footest#F()' footest#F() -+ echo 'UndefFun()' UndefFun() -+ - redir END - endfunction - :call TestExists() -*************** -*** 576,580 **** ---- 595,600 ---- - :set ff=unix - :w - :qa! -+ :while getchar(1) | call getchar() | endwhile - ENDTEST - -*** ../vim-7.4.148/src/testdir/test60.ok 2010-05-15 13:04:10.000000000 +0200 ---- src/testdir/test60.ok 2014-01-14 14:50:50.000000000 +0100 -*************** -*** 71,76 **** ---- 71,80 ---- - OK - *MyxyzFunc: 0 - OK -+ *UndefFun: 0 -+ OK -+ *footest#F: 0 -+ OK - :edit: 2 - OK - :edit/a: 0 -*************** -*** 95,100 **** ---- 99,106 ---- - OK - local_var: 0 - OK -+ footest#x: 0 -+ OK - local_list: 1 - OK - local_list[1]: 1 -*************** -*** 195,197 **** ---- 201,206 ---- - OK - a:2: 0 - OK -+ g:footest#x = 1 -+ footest#F() 0 -+ UndefFun() 0 -*** ../vim-7.4.148/src/testdir/sautest/autoload/footest.vim 1970-01-01 01:00:00.000000000 +0100 ---- src/testdir/sautest/autoload/footest.vim 2014-01-14 14:52:06.000000000 +0100 -*************** -*** 0 **** ---- 1,5 ---- -+ " Autoload script used by test55 and test60 -+ let footest#x = 1 -+ func footest#F() -+ return 0 -+ endfunc -*** ../vim-7.4.148/src/version.c 2014-01-14 13:26:17.000000000 +0100 ---- src/version.c 2014-01-14 15:23:36.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 149, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -157. You fum through a magazine, you first check to see if it has a web - address. - - /// 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 /// diff --git a/7.4.150 b/7.4.150 deleted file mode 100644 index 528f4d6b..00000000 --- a/7.4.150 +++ /dev/null @@ -1,93 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.150 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.150 -Problem: :keeppatterns is not respected for :s. -Solution: Check the keeppatterns flag. (Yasuhiro Matsumoto) -Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok - - -*** ../vim-7.4.149/src/search.c 2013-11-28 19:27:18.000000000 +0100 ---- src/search.c 2014-01-14 15:44:33.000000000 +0100 -*************** -*** 201,207 **** - * Save the currently used pattern in the appropriate place, - * unless the pattern should not be remembered. - */ -! if (!(options & SEARCH_KEEP)) - { - /* search or global command */ - if (pat_save == RE_SEARCH || pat_save == RE_BOTH) ---- 201,207 ---- - * Save the currently used pattern in the appropriate place, - * unless the pattern should not be remembered. - */ -! if (!(options & SEARCH_KEEP) && !cmdmod.keeppatterns) - { - /* search or global command */ - if (pat_save == RE_SEARCH || pat_save == RE_BOTH) -*** ../vim-7.4.149/src/testdir/test14.in 2013-04-03 20:59:14.000000000 +0200 ---- src/testdir/test14.in 2014-01-14 15:43:28.000000000 +0100 -*************** -*** 47,52 **** ---- 47,61 ---- - /two - :call search('.', 'c') - :call append(line('$'), getline('.')[col('.') - 1:]) -+ :" -+ /^substitute -+ :s/foo/bar/ -+ :$put =@/ -+ /^substitute -+ :keeppatterns s/asdf/xyz/ -+ :$put =@/ -+ /^substitute -+ Y:$put =@0 - :/^search()/,$w >>test.out - :qa! - ENDTEST -*************** -*** 81,86 **** ---- 90,96 ---- - - foobar - -+ substitute foo asdf - - one two - search() -*** ../vim-7.4.149/src/testdir/test14.ok 2013-04-03 20:59:14.000000000 +0200 ---- src/testdir/test14.ok 2014-01-14 15:46:42.000000000 +0100 -*************** -*** 20,22 **** ---- 20,25 ---- - 1 - 1 - two -+ foo -+ ^substitute -+ substitute bar xyz -*** ../vim-7.4.149/src/version.c 2014-01-14 15:24:24.000000000 +0100 ---- src/version.c 2014-01-14 15:45:34.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 150, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -158. You get a tuner card so you can watch TV while surfing. - - /// 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 /// diff --git a/7.4.151 b/7.4.151 deleted file mode 100644 index 646cc792..00000000 --- a/7.4.151 +++ /dev/null @@ -1,1470 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.151 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.151 -Problem: Python: slices with steps are not supported. -Solution: Support slices in Python vim.List. (ZyX) -Files: src/eval.c, src/if_py_both.h, src/if_python3.c, src/if_python.c, - src/proto/eval.pro, src/testdir/test86.in, src/testdir/test86.ok, - src/testdir/test87.in, src/testdir/test87.ok - - -*** ../vim-7.4.150/src/eval.c 2014-01-14 15:24:24.000000000 +0100 ---- src/eval.c 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 6425,6430 **** ---- 6425,6440 ---- - if (ni == NULL) - return FAIL; - copy_tv(tv, &ni->li_tv); -+ list_insert(l, ni, item); -+ return OK; -+ } -+ -+ void -+ list_insert(l, ni, item) -+ list_T *l; -+ listitem_T *ni; -+ listitem_T *item; -+ { - if (item == NULL) - /* Append new item at end of list. */ - list_append(l, ni); -*************** -*** 6446,6452 **** - item->li_prev = ni; - ++l->lv_len; - } -- return OK; - } - - /* ---- 6456,6461 ---- -*** ../vim-7.4.150/src/if_py_both.h 2014-01-10 18:16:00.000000000 +0100 ---- src/if_py_both.h 2014-01-14 16:31:49.000000000 +0100 -*************** -*** 36,43 **** - #define PyErr_SET_STRING(exc, str) PyErr_SetString(exc, _(str)) - #define PyErr_SetVim(str) PyErr_SetString(VimError, str) - #define PyErr_SET_VIM(str) PyErr_SET_STRING(VimError, str) -! #define PyErr_FORMAT(exc, str, tail) PyErr_Format(exc, _(str), tail) -! #define PyErr_VIM_FORMAT(str, tail) PyErr_FORMAT(VimError, str, tail) - - #define Py_TYPE_NAME(obj) (obj->ob_type->tp_name == NULL \ - ? "(NULL)" \ ---- 36,44 ---- - #define PyErr_SET_STRING(exc, str) PyErr_SetString(exc, _(str)) - #define PyErr_SetVim(str) PyErr_SetString(VimError, str) - #define PyErr_SET_VIM(str) PyErr_SET_STRING(VimError, str) -! #define PyErr_FORMAT(exc, str, arg) PyErr_Format(exc, _(str), arg) -! #define PyErr_FORMAT2(exc, str, arg1, arg2) PyErr_Format(exc, _(str), arg1,arg2) -! #define PyErr_VIM_FORMAT(str, arg) PyErr_FORMAT(VimError, str, arg) - - #define Py_TYPE_NAME(obj) (obj->ob_type->tp_name == NULL \ - ? "(NULL)" \ -*************** -*** 2108,2115 **** - }; - - static PyTypeObject ListType; -- static PySequenceMethods ListAsSeq; -- static PyMappingMethods ListAsMapping; - - typedef struct - { ---- 2109,2114 ---- -*************** -*** 2253,2259 **** - } - - static PyObject * -! ListItem(ListObject *self, Py_ssize_t index) - { - listitem_T *li; - ---- 2252,2258 ---- - } - - static PyObject * -! ListIndex(ListObject *self, Py_ssize_t index) - { - listitem_T *li; - -*************** -*** 2273,2436 **** - return ConvertToPyObject(&li->li_tv); - } - -- #define PROC_RANGE \ -- if (last < 0) {\ -- if (last < -size) \ -- last = 0; \ -- else \ -- last += size; \ -- } \ -- if (first < 0) \ -- first = 0; \ -- if (first > size) \ -- first = size; \ -- if (last > size) \ -- last = size; -- - static PyObject * -! ListSlice(ListObject *self, Py_ssize_t first, Py_ssize_t last) - { - PyInt i; -- PyInt size = ListLength(self); -- PyInt n; - PyObject *list; -- int reversed = 0; - -! PROC_RANGE -! if (first >= last) -! first = last; - -! n = last-first; -! list = PyList_New(n); - if (list == NULL) - return NULL; - -! for (i = 0; i < n; ++i) - { -! PyObject *item = ListItem(self, first + i); - if (item == NULL) - { - Py_DECREF(list); - return NULL; - } - -! PyList_SET_ITEM(list, ((reversed)?(n-i-1):(i)), item); - } - - return list; - } - -- typedef struct -- { -- listwatch_T lw; -- list_T *list; -- } listiterinfo_T; -- -- static void -- ListIterDestruct(listiterinfo_T *lii) -- { -- list_rem_watch(lii->list, &lii->lw); -- PyMem_Free(lii); -- } -- - static PyObject * -! ListIterNext(listiterinfo_T **lii) - { -! PyObject *ret; -! -! if (!((*lii)->lw.lw_item)) -! return NULL; -! -! if (!(ret = ConvertToPyObject(&((*lii)->lw.lw_item->li_tv)))) -! return NULL; -! -! (*lii)->lw.lw_item = (*lii)->lw.lw_item->li_next; -! -! return ret; -! } -! -! static PyObject * -! ListIter(ListObject *self) -! { -! listiterinfo_T *lii; -! list_T *l = self->list; -! -! if (!(lii = PyMem_New(listiterinfo_T, 1))) - { -! PyErr_NoMemory(); -! return NULL; - } -! -! list_add_watch(l, &lii->lw); -! lii->lw.lw_item = l->lv_first; -! lii->list = l; -! -! return IterNew(lii, -! (destructorfun) ListIterDestruct, (nextfun) ListIterNext, -! NULL, NULL); -! } -! -! static int -! ListAssItem(ListObject *self, Py_ssize_t index, PyObject *obj) -! { -! typval_T tv; -! list_T *l = self->list; -! listitem_T *li; -! Py_ssize_t length = ListLength(self); -! -! if (l->lv_lock) - { -! RAISE_LOCKED_LIST; -! return -1; - } -! if (index > length || (index == length && obj == NULL)) - { -! PyErr_SET_STRING(PyExc_IndexError, N_("list index out of range")); -! return -1; -! } - -! if (obj == NULL) - { -! li = list_find(l, (long) index); -! list_remove(l, li, li); -! clear_tv(&li->li_tv); -! vim_free(li); -! return 0; - } - -! if (ConvertFromPyObject(obj, &tv) == -1) -! return -1; -! -! if (index == length) - { -! if (list_append_tv(l, &tv) == FAIL) -! { -! clear_tv(&tv); -! PyErr_SET_VIM(N_("failed to add item to list")); -! return -1; -! } - } -! else - { -! li = list_find(l, (long) index); -! clear_tv(&li->li_tv); -! copy_tv(&tv, &li->li_tv); -! clear_tv(&tv); - } -- return 0; - } - - static int -! ListAssSlice(ListObject *self, Py_ssize_t first, Py_ssize_t last, PyObject *obj) - { -- PyInt size = ListLength(self); - PyObject *iterator; - PyObject *item; - listitem_T *li; - listitem_T *next; - typval_T v; - list_T *l = self->list; - PyInt i; - - if (l->lv_lock) - { ---- 2272,2381 ---- - return ConvertToPyObject(&li->li_tv); - } - - static PyObject * -! ListSlice(ListObject *self, Py_ssize_t first, Py_ssize_t step, -! Py_ssize_t slicelen) - { - PyInt i; - PyObject *list; - -! if (step == 0) -! { -! PyErr_SET_STRING(PyExc_ValueError, N_("slice step cannot be zero")); -! return NULL; -! } - -! list = PyList_New(slicelen); - if (list == NULL) - return NULL; - -! for (i = 0; i < slicelen; ++i) - { -! PyObject *item; -! -! item = ListIndex(self, first + i*step); - if (item == NULL) - { - Py_DECREF(list); - return NULL; - } - -! PyList_SET_ITEM(list, i, item); - } - - return list; - } - - static PyObject * -! ListItem(ListObject *self, PyObject* idx) - { -! #if PY_MAJOR_VERSION < 3 -! if (PyInt_Check(idx)) - { -! long _idx = PyInt_AsLong(idx); -! return ListIndex(self, _idx); - } -! else -! #endif -! if (PyLong_Check(idx)) - { -! long _idx = PyLong_AsLong(idx); -! return ListIndex(self, _idx); - } -! else if (PySlice_Check(idx)) - { -! Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx(idx, ListLength(self), -! &start, &stop, &step, &slicelen) < 0) -! return NULL; -! return ListSlice(self, start, step, slicelen); -! } -! else - { -! RAISE_INVALID_INDEX_TYPE(idx); -! return NULL; - } -+ } - -! static void -! list_restore(Py_ssize_t numadded, Py_ssize_t numreplaced, Py_ssize_t slicelen, -! list_T *l, listitem_T **lis, listitem_T *lastaddedli) -! { -! while (numreplaced--) - { -! list_insert(l, lis[numreplaced], lis[slicelen + numreplaced]); -! listitem_remove(l, lis[slicelen + numreplaced]); - } -! while (numadded--) - { -! listitem_T *next; -! -! next = lastaddedli->li_prev; -! listitem_remove(l, lastaddedli); -! lastaddedli = next; - } - } - - static int -! ListAssSlice(ListObject *self, Py_ssize_t first, -! Py_ssize_t step, Py_ssize_t slicelen, PyObject *obj) - { - PyObject *iterator; - PyObject *item; - listitem_T *li; -+ listitem_T *lastaddedli = NULL; - listitem_T *next; - typval_T v; - list_T *l = self->list; - PyInt i; -+ PyInt j; -+ PyInt numreplaced = 0; -+ PyInt numadded = 0; -+ PyInt size; -+ listitem_T **lis; -+ -+ size = ListLength(self); - - if (l->lv_lock) - { -*************** -*** 2438,2444 **** - return -1; - } - -! PROC_RANGE - - if (first == size) - li = NULL; ---- 2383,2424 ---- - return -1; - } - -! if (step == 0) -! { -! PyErr_SET_STRING(PyExc_ValueError, N_("slice step cannot be zero")); -! return -1; -! } -! -! if (step != 1 && slicelen == 0) -! { -! /* Nothing to do. Only error out if obj has some items. */ -! int ret = 0; -! -! if (obj == NULL) -! return 0; -! -! if (!(iterator = PyObject_GetIter(obj))) -! return -1; -! -! if ((item = PyIter_Next(iterator))) -! { -! PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %d " -! "to extended slice"), 0); -! Py_DECREF(item); -! ret = -1; -! } -! Py_DECREF(iterator); -! return ret; -! } -! -! if (obj != NULL) -! /* XXX May allocate zero bytes. */ -! if (!(lis = PyMem_New(listitem_T *, slicelen * 2))) -! { -! PyErr_NoMemory(); -! return -1; -! } - - if (first == size) - li = NULL; -*************** -*** 2449,2465 **** - { - PyErr_VIM_FORMAT(N_("internal error: no vim list item %d"), - (int)first); - return -1; - } -! if (last > first) - { -! i = last - first; -! while (i-- && li != NULL) -! { -! next = li->li_next; - listitem_remove(l, li); -! li = next; -! } - } - } - ---- 2429,2461 ---- - { - PyErr_VIM_FORMAT(N_("internal error: no vim list item %d"), - (int)first); -+ if (obj != NULL) -+ PyMem_Free(lis); - return -1; - } -! i = slicelen; -! while (i-- && li != NULL) - { -! j = step; -! next = li; -! if (step > 0) -! while (next != NULL && ((next = next->li_next) != NULL) && --j); -! else -! while (next != NULL && ((next = next->li_prev) != NULL) && ++j); -! -! if (obj == NULL) - listitem_remove(l, li); -! else -! lis[slicelen - i - 1] = li; -! -! li = next; -! } -! if (li == NULL && i != -1) -! { -! PyErr_SET_VIM(N_("internal error: not enough list items")); -! if (obj != NULL) -! PyMem_Free(lis); -! return -1; - } - } - -*************** -*** 2467,2499 **** - return 0; - - if (!(iterator = PyObject_GetIter(obj))) - return -1; - - while ((item = PyIter_Next(iterator))) - { - if (ConvertFromPyObject(item, &v) == -1) - { - Py_DECREF(iterator); - Py_DECREF(item); - return -1; - } - Py_DECREF(item); -! if (list_insert_tv(l, &v, li) == FAIL) - { - clear_tv(&v); - PyErr_SET_VIM(N_("internal error: failed to add item to list")); - return -1; - } - clear_tv(&v); - } - Py_DECREF(iterator); - - if (PyErr_Occurred()) - return -1; - - return 0; - } - - static PyObject * - ListConcatInPlace(ListObject *self, PyObject *obj) - { ---- 2463,2634 ---- - return 0; - - if (!(iterator = PyObject_GetIter(obj))) -+ { -+ PyMem_Free(lis); - return -1; -+ } - -+ i = 0; - while ((item = PyIter_Next(iterator))) - { - if (ConvertFromPyObject(item, &v) == -1) - { - Py_DECREF(iterator); - Py_DECREF(item); -+ PyMem_Free(lis); - return -1; - } - Py_DECREF(item); -! if (list_insert_tv(l, &v, numreplaced < slicelen -! ? lis[numreplaced] -! : li) == FAIL) - { - clear_tv(&v); - PyErr_SET_VIM(N_("internal error: failed to add item to list")); -+ list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); -+ PyMem_Free(lis); - return -1; - } -+ if (numreplaced < slicelen) -+ { -+ lis[slicelen + numreplaced] = lis[numreplaced]->li_prev; -+ list_remove(l, lis[numreplaced], lis[numreplaced]); -+ numreplaced++; -+ } -+ else -+ { -+ if (li) -+ lastaddedli = li->li_prev; -+ else -+ lastaddedli = l->lv_last; -+ numadded++; -+ } - clear_tv(&v); -+ if (step != 1 && i >= slicelen) -+ { -+ Py_DECREF(iterator); -+ PyErr_FORMAT(PyExc_ValueError, -+ N_("attempt to assign sequence of size greater then %d " -+ "to extended slice"), slicelen); -+ list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); -+ PyMem_Free(lis); -+ return -1; -+ } -+ ++i; - } - Py_DECREF(iterator); - -+ if (step != 1 && i != slicelen) -+ { -+ PyErr_FORMAT2(PyExc_ValueError, -+ N_("attempt to assign sequence of size %d to extended slice " -+ "of size %d"), i, slicelen); -+ list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); -+ PyMem_Free(lis); -+ return -1; -+ } -+ - if (PyErr_Occurred()) -+ { -+ list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); -+ PyMem_Free(lis); - return -1; -+ } -+ -+ for (i = 0; i < numreplaced; i++) -+ listitem_free(lis[i]); -+ if (step == 1) -+ for (i = numreplaced; i < slicelen; i++) -+ listitem_remove(l, lis[i]); -+ -+ PyMem_Free(lis); - - return 0; - } - -+ static int -+ ListAssIndex(ListObject *self, Py_ssize_t index, PyObject *obj) -+ { -+ typval_T tv; -+ list_T *l = self->list; -+ listitem_T *li; -+ Py_ssize_t length = ListLength(self); -+ -+ if (l->lv_lock) -+ { -+ RAISE_LOCKED_LIST; -+ return -1; -+ } -+ if (index > length || (index == length && obj == NULL)) -+ { -+ PyErr_SET_STRING(PyExc_IndexError, N_("list index out of range")); -+ return -1; -+ } -+ -+ if (obj == NULL) -+ { -+ li = list_find(l, (long) index); -+ list_remove(l, li, li); -+ clear_tv(&li->li_tv); -+ vim_free(li); -+ return 0; -+ } -+ -+ if (ConvertFromPyObject(obj, &tv) == -1) -+ return -1; -+ -+ if (index == length) -+ { -+ if (list_append_tv(l, &tv) == FAIL) -+ { -+ clear_tv(&tv); -+ PyErr_SET_VIM(N_("failed to add item to list")); -+ return -1; -+ } -+ } -+ else -+ { -+ li = list_find(l, (long) index); -+ clear_tv(&li->li_tv); -+ copy_tv(&tv, &li->li_tv); -+ clear_tv(&tv); -+ } -+ return 0; -+ } -+ -+ static Py_ssize_t -+ ListAssItem(ListObject *self, PyObject *idx, PyObject *obj) -+ { -+ #if PY_MAJOR_VERSION < 3 -+ if (PyInt_Check(idx)) -+ { -+ long _idx = PyInt_AsLong(idx); -+ return ListAssIndex(self, _idx, obj); -+ } -+ else -+ #endif -+ if (PyLong_Check(idx)) -+ { -+ long _idx = PyLong_AsLong(idx); -+ return ListAssIndex(self, _idx, obj); -+ } -+ else if (PySlice_Check(idx)) -+ { -+ Py_ssize_t start, stop, step, slicelen; -+ -+ if (PySlice_GetIndicesEx(idx, ListLength(self), -+ &start, &stop, &step, &slicelen) < 0) -+ return -1; -+ return ListAssSlice(self, start, step, slicelen, -+ obj); -+ } -+ else -+ { -+ RAISE_INVALID_INDEX_TYPE(idx); -+ return -1; -+ } -+ } -+ - static PyObject * - ListConcatInPlace(ListObject *self, PyObject *obj) - { -*************** -*** 2520,2525 **** ---- 2655,2710 ---- - return (PyObject *)(self); - } - -+ typedef struct -+ { -+ listwatch_T lw; -+ list_T *list; -+ } listiterinfo_T; -+ -+ static void -+ ListIterDestruct(listiterinfo_T *lii) -+ { -+ list_rem_watch(lii->list, &lii->lw); -+ PyMem_Free(lii); -+ } -+ -+ static PyObject * -+ ListIterNext(listiterinfo_T **lii) -+ { -+ PyObject *ret; -+ -+ if (!((*lii)->lw.lw_item)) -+ return NULL; -+ -+ if (!(ret = ConvertToPyObject(&((*lii)->lw.lw_item->li_tv)))) -+ return NULL; -+ -+ (*lii)->lw.lw_item = (*lii)->lw.lw_item->li_next; -+ -+ return ret; -+ } -+ -+ static PyObject * -+ ListIter(ListObject *self) -+ { -+ listiterinfo_T *lii; -+ list_T *l = self->list; -+ -+ if (!(lii = PyMem_New(listiterinfo_T, 1))) -+ { -+ PyErr_NoMemory(); -+ return NULL; -+ } -+ -+ list_add_watch(l, &lii->lw); -+ lii->lw.lw_item = l->lv_first; -+ lii->list = l; -+ -+ return IterNew(lii, -+ (destructorfun) ListIterDestruct, (nextfun) ListIterNext, -+ NULL, NULL); -+ } -+ - static char *ListAttrs[] = { - "locked", - NULL -*************** -*** 2567,2572 **** ---- 2752,2776 ---- - } - } - -+ static PySequenceMethods ListAsSeq = { -+ (lenfunc) ListLength, /* sq_length, len(x) */ -+ (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */ -+ 0, /* RangeRepeat, sq_repeat, x*n */ -+ (PyIntArgFunc) ListIndex, /* sq_item, x[i] */ -+ 0, /* was_sq_slice, x[i:j] */ -+ (PyIntObjArgProc) ListAssIndex, /* sq_as_item, x[i]=v */ -+ 0, /* was_sq_ass_slice, x[i:j]=v */ -+ 0, /* sq_contains */ -+ (binaryfunc) ListConcatInPlace,/* sq_inplace_concat */ -+ 0, /* sq_inplace_repeat */ -+ }; -+ -+ static PyMappingMethods ListAsMapping = { -+ /* mp_length */ (lenfunc) ListLength, -+ /* mp_subscript */ (binaryfunc) ListItem, -+ /* mp_ass_subscript */ (objobjargproc) ListAssItem, -+ }; -+ - static struct PyMethodDef ListMethods[] = { - {"extend", (PyCFunction)ListConcatInPlace, METH_O, ""}, - {"__dir__", (PyCFunction)ListDir, METH_NOARGS, ""}, -*** ../vim-7.4.150/src/if_python3.c 2013-11-03 00:28:20.000000000 +0100 ---- src/if_python3.c 2014-01-14 16:32:40.000000000 +0100 -*************** -*** 97,102 **** ---- 97,105 ---- - #define Py_ssize_t_fmt "n" - #define Py_bytes_fmt "y" - -+ #define PyIntArgFunc ssizeargfunc -+ #define PyIntObjArgProc ssizeobjargproc -+ - #if defined(DYNAMIC_PYTHON3) || defined(PROTO) - - # ifndef WIN3264 -*************** -*** 292,298 **** - static int (*py3_PyMapping_Check)(PyObject *); - static PyObject* (*py3_PyMapping_Keys)(PyObject *); - static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length, -! Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength); - static PyObject* (*py3_PyErr_NoMemory)(void); - static void (*py3_Py_Finalize)(void); - static void (*py3_PyErr_SetString)(PyObject *, const char *); ---- 295,302 ---- - static int (*py3_PyMapping_Check)(PyObject *); - static PyObject* (*py3_PyMapping_Keys)(PyObject *); - static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length, -! Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, -! Py_ssize_t *slicelen); - static PyObject* (*py3_PyErr_NoMemory)(void); - static void (*py3_Py_Finalize)(void); - static void (*py3_PyErr_SetString)(PyObject *, const char *); -*************** -*** 1478,1553 **** - /* List object - Definitions - */ - -- static PySequenceMethods ListAsSeq = { -- (lenfunc) ListLength, /* sq_length, len(x) */ -- (binaryfunc) 0, /* RangeConcat, sq_concat, x+y */ -- (ssizeargfunc) 0, /* RangeRepeat, sq_repeat, x*n */ -- (ssizeargfunc) ListItem, /* sq_item, x[i] */ -- (void *) 0, /* was_sq_slice, x[i:j] */ -- (ssizeobjargproc) ListAssItem, /* sq_as_item, x[i]=v */ -- (void *) 0, /* was_sq_ass_slice, x[i:j]=v */ -- 0, /* sq_contains */ -- (binaryfunc) ListConcatInPlace,/* sq_inplace_concat */ -- 0, /* sq_inplace_repeat */ -- }; -- -- static PyObject *ListSubscript(PyObject *, PyObject *); -- static Py_ssize_t ListAsSubscript(PyObject *, PyObject *, PyObject *); -- -- static PyMappingMethods ListAsMapping = { -- /* mp_length */ (lenfunc) ListLength, -- /* mp_subscript */ (binaryfunc) ListSubscript, -- /* mp_ass_subscript */ (objobjargproc) ListAsSubscript, -- }; -- -- static PyObject * -- ListSubscript(PyObject *self, PyObject* idx) -- { -- if (PyLong_Check(idx)) -- { -- long _idx = PyLong_AsLong(idx); -- return ListItem((ListObject *)(self), _idx); -- } -- else if (PySlice_Check(idx)) -- { -- Py_ssize_t start, stop, step, slicelen; -- -- if (PySlice_GetIndicesEx(idx, ListLength((ListObject *)(self)), -- &start, &stop, &step, &slicelen) < 0) -- return NULL; -- return ListSlice((ListObject *)(self), start, stop); -- } -- else -- { -- RAISE_INVALID_INDEX_TYPE(idx); -- return NULL; -- } -- } -- -- static Py_ssize_t -- ListAsSubscript(PyObject *self, PyObject *idx, PyObject *obj) -- { -- if (PyLong_Check(idx)) -- { -- long _idx = PyLong_AsLong(idx); -- return ListAssItem((ListObject *)(self), _idx, obj); -- } -- else if (PySlice_Check(idx)) -- { -- Py_ssize_t start, stop, step, slicelen; -- -- if (PySlice_GetIndicesEx(idx, ListLength((ListObject *)(self)), -- &start, &stop, &step, &slicelen) < 0) -- return -1; -- return ListAssSlice((ListObject *)(self), start, stop, obj); -- } -- else -- { -- RAISE_INVALID_INDEX_TYPE(idx); -- return -1; -- } -- } -- - static PyObject * - ListGetattro(PyObject *self, PyObject *nameobj) - { ---- 1482,1487 ---- -*** ../vim-7.4.150/src/if_python.c 2013-11-03 00:28:20.000000000 +0100 ---- src/if_python.c 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 196,201 **** ---- 196,202 ---- - # define PyTuple_Size dll_PyTuple_Size - # define PyTuple_GetItem dll_PyTuple_GetItem - # define PyTuple_Type (*dll_PyTuple_Type) -+ # define PySlice_GetIndicesEx dll_PySlice_GetIndicesEx - # define PyImport_ImportModule dll_PyImport_ImportModule - # define PyDict_New dll_PyDict_New - # define PyDict_GetItemString dll_PyDict_GetItemString -*************** -*** 241,246 **** ---- 242,248 ---- - # define PySys_GetObject dll_PySys_GetObject - # define PySys_SetArgv dll_PySys_SetArgv - # define PyType_Type (*dll_PyType_Type) -+ # define PySlice_Type (*dll_PySlice_Type) - # define PyType_Ready (*dll_PyType_Ready) - # define PyType_GenericAlloc dll_PyType_GenericAlloc - # define Py_BuildValue dll_Py_BuildValue -*************** -*** 341,346 **** ---- 343,351 ---- - static PyInt(*dll_PyTuple_Size)(PyObject *); - static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt); - static PyTypeObject* dll_PyTuple_Type; -+ static int (*dll_PySlice_GetIndicesEx)(PyObject *r, PyInt length, -+ PyInt *start, PyInt *stop, PyInt *step, -+ PyInt *slicelen); - static PyObject*(*dll_PyImport_ImportModule)(const char *); - static PyObject*(*dll_PyDict_New)(void); - static PyObject*(*dll_PyDict_GetItemString)(PyObject *, const char *); -*************** -*** 382,387 **** ---- 387,393 ---- - static PyObject *(*dll_PySys_GetObject)(char *); - static int(*dll_PySys_SetArgv)(int, char **); - static PyTypeObject* dll_PyType_Type; -+ static PyTypeObject* dll_PySlice_Type; - static int (*dll_PyType_Ready)(PyTypeObject *type); - static PyObject* (*dll_PyType_GenericAlloc)(PyTypeObject *type, PyInt nitems); - static PyObject*(*dll_Py_BuildValue)(char *, ...); -*************** -*** 521,526 **** ---- 527,533 ---- - {"PyTuple_GetItem", (PYTHON_PROC*)&dll_PyTuple_GetItem}, - {"PyTuple_Size", (PYTHON_PROC*)&dll_PyTuple_Size}, - {"PyTuple_Type", (PYTHON_PROC*)&dll_PyTuple_Type}, -+ {"PySlice_GetIndicesEx", (PYTHON_PROC*)&dll_PySlice_GetIndicesEx}, - {"PyImport_ImportModule", (PYTHON_PROC*)&dll_PyImport_ImportModule}, - {"PyDict_GetItemString", (PYTHON_PROC*)&dll_PyDict_GetItemString}, - {"PyDict_Next", (PYTHON_PROC*)&dll_PyDict_Next}, -*************** -*** 562,567 **** ---- 569,575 ---- - {"PySys_GetObject", (PYTHON_PROC*)&dll_PySys_GetObject}, - {"PySys_SetArgv", (PYTHON_PROC*)&dll_PySys_SetArgv}, - {"PyType_Type", (PYTHON_PROC*)&dll_PyType_Type}, -+ {"PySlice_Type", (PYTHON_PROC*)&dll_PySlice_Type}, - {"PyType_Ready", (PYTHON_PROC*)&dll_PyType_Ready}, - {"PyType_GenericAlloc", (PYTHON_PROC*)&dll_PyType_GenericAlloc}, - {"Py_FindMethod", (PYTHON_PROC*)&dll_Py_FindMethod}, -*************** -*** 1472,1492 **** - return Py_FindMethod(DictionaryMethods, self, name); - } - -- static PySequenceMethods ListAsSeq = { -- (PyInquiry) ListLength, -- (binaryfunc) 0, -- (PyIntArgFunc) 0, -- (PyIntArgFunc) ListItem, -- (PyIntIntArgFunc) ListSlice, -- (PyIntObjArgProc) ListAssItem, -- (PyIntIntObjArgProc) ListAssSlice, -- (objobjproc) 0, -- #if PY_MAJOR_VERSION >= 2 -- (binaryfunc) ListConcatInPlace, -- 0, -- #endif -- }; -- - static PyObject * - ListGetattr(PyObject *self, char *name) - { ---- 1480,1485 ---- -*** ../vim-7.4.150/src/proto/eval.pro 2013-08-10 13:37:09.000000000 +0200 ---- src/proto/eval.pro 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 60,65 **** ---- 60,66 ---- - int list_append_string __ARGS((list_T *l, char_u *str, int len)); - int list_insert_tv __ARGS((list_T *l, typval_T *tv, listitem_T *item)); - void list_remove __ARGS((list_T *l, listitem_T *item, listitem_T *item2)); -+ void list_insert __ARGS((list_T *l, listitem_T *ni, listitem_T *item)); - int garbage_collect __ARGS((void)); - void set_ref_in_ht __ARGS((hashtab_T *ht, int copyID)); - void set_ref_in_list __ARGS((list_T *l, int copyID)); -*** ../vim-7.4.150/src/testdir/test86.in 2013-11-28 17:04:38.000000000 +0100 ---- src/testdir/test86.in 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 135,140 **** ---- 135,152 ---- - :py l=vim.bindeval('l') - :py del l[-6:2] - :$put =string(l) -+ :let l = [0, 1, 2, 3] -+ :py l=vim.bindeval('l') -+ :py del l[::2] -+ :$put =string(l) -+ :let l = [0, 1, 2, 3] -+ :py l=vim.bindeval('l') -+ :py del l[3:0:-2] -+ :$put =string(l) -+ :let l = [0, 1, 2, 3] -+ :py l=vim.bindeval('l') -+ :py del l[2:4:-2] -+ :$put =string(l) - :" - :" Slice assignment to a list - :let l = [0, 1, 2, 3] -*************** -*** 169,174 **** ---- 181,206 ---- - :py l=vim.bindeval('l') - :py l[0:0]=['h'] - :$put =string(l) -+ :let l = range(8) -+ :py l=vim.bindeval('l') -+ :py l[2:6:2] = [10, 20] -+ :$put =string(l) -+ :let l = range(8) -+ :py l=vim.bindeval('l') -+ :py l[6:2:-2] = [10, 20] -+ :$put =string(l) -+ :let l = range(8) -+ :py l=vim.bindeval('l') -+ :py l[6:2] = () -+ :$put =string(l) -+ :let l = range(8) -+ :py l=vim.bindeval('l') -+ :py l[6:2:1] = () -+ :$put =string(l) -+ :let l = range(8) -+ :py l=vim.bindeval('l') -+ :py l[2:2:1] = () -+ :$put =string(l) - :" - :" Locked variables - :let l = [0, 1, 2, 3] -*************** -*** 390,395 **** ---- 422,434 ---- - :$put =string(pyeval('l')) - :py l = ll[-10:10] - :$put =string(pyeval('l')) -+ :py l = ll[4:2:-1] -+ :$put =string(pyeval('l')) -+ :py l = ll[::2] -+ :$put =string(pyeval('l')) -+ :py l = ll[4:2:1] -+ :$put =string(pyeval('l')) -+ :py del l - :" - :" Vars - :let g:foo = 'bac' -*************** -*** 907,912 **** ---- 946,952 ---- - l = vim.List() - ll = vim.List('abcE') - ll.locked = True -+ nel = vim.List('abcO') - f = vim.Function('string') - fd = vim.Function('F') - fdel = vim.Function('D') -*************** -*** 994,999 **** ---- 1034,1053 ---- - def next(self): - raise NotImplementedError('next') - -+ class FailingIterNextN(object): -+ def __init__(self, n): -+ self.n = n -+ -+ def __iter__(self): -+ return self -+ -+ def next(self): -+ if self.n: -+ self.n -= 1 -+ return 1 -+ else: -+ raise NotImplementedError('next N') -+ - class FailingMappingKey(object): - def __getitem__(self, item): - raise NotImplementedError('getitem:mappingkey') -*************** -*** 1098,1103 **** ---- 1152,1158 ---- - cb.append(">>> iter") - ee('d.update(FailingMapping())') - ee('d.update([FailingIterNext()])') -+ ee('d.update([FailingIterNextN(1)])') - iter_test('d.update(%s)') - convertfrompyobject_test('d.update(%s)') - stringtochars_test('d.update(((%s, 0),))') -*************** -*** 1120,1125 **** ---- 1175,1188 ---- - cb.append(">> ListAssSlice") - ee('ll[1:100] = "abcJ"') - iter_test('l[:] = %s') -+ ee('nel[1:10:2] = "abcK"') -+ cb.append(repr(tuple(nel))) -+ ee('nel[1:10:2] = "a"') -+ cb.append(repr(tuple(nel))) -+ ee('nel[1:1:-1] = "a"') -+ cb.append(repr(tuple(nel))) -+ ee('nel[:] = FailingIterNextN(2)') -+ cb.append(repr(tuple(nel))) - convertfrompyobject_test('l[:] = [%s]') - cb.append(">> ListConcatInPlace") - iter_test('l.extend(%s)') -*************** -*** 1201,1206 **** ---- 1264,1270 ---- - del dl - del l - del ll -+ del nel - del f - del fd - del fdel -*************** -*** 1214,1219 **** ---- 1278,1284 ---- - del FailingTrue - del FailingIter - del FailingIterNext -+ del FailingIterNextN - del FailingMapping - del FailingMappingKey - del FailingList -*** ../vim-7.4.150/src/testdir/test86.ok 2013-11-28 17:04:38.000000000 +0100 ---- src/testdir/test86.ok 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 41,46 **** ---- 41,49 ---- - [2, 3] - [2, 3] - [2, 3] -+ [1, 3] -+ [0, 2] -+ [0, 1, 2, 3] - ['a', 0, 1, 2, 3] - [0, 'b', 2, 3] - [0, 1, 'c'] -*************** -*** 49,54 **** ---- 52,62 ---- - ['f', 2, 3] - [0, 1, 'g', 2, 3] - ['h'] -+ [0, 1, 10, 3, 20, 5, 6, 7] -+ [0, 1, 2, 3, 20, 5, 10, 7] -+ [0, 1, 2, 3, 4, 5, 6, 7] -+ [0, 1, 2, 3, 4, 5, 6, 7] -+ [0, 1, 2, 3, 4, 5, 6, 7] - [0, 1, 2, 3] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}] -*************** -*** 96,101 **** ---- 104,112 ---- - [0, 1, 2, 3, 4, 5] - [0, 1, 2, 3, 4, 5] - [0, 1, 2, 3, 4, 5] -+ [4, 3] -+ [0, 2, 4] -+ [] - Abc - bac - def -*************** -*** 599,604 **** ---- 610,616 ---- - >>> iter - d.update(FailingMapping()):NotImplementedError:('keys',) - d.update([FailingIterNext()]):NotImplementedError:('next',) -+ d.update([FailingIterNextN(1)]):NotImplementedError:('next N',) - >>> Testing *Iter* using d.update(%s) - d.update(FailingIter()):NotImplementedError:('iter',) - d.update(FailingIterNext()):NotImplementedError:('next',) -*************** -*** 829,834 **** ---- 841,854 ---- - l[:] = FailingIter():NotImplementedError:('iter',) - l[:] = FailingIterNext():NotImplementedError:('next',) - <<< Finished -+ nel[1:10:2] = "abcK":ValueError:('attempt to assign sequence of size greater then 2 to extended slice',) -+ ('a', 'b', 'c', 'O') -+ nel[1:10:2] = "a":ValueError:('attempt to assign sequence of size 1 to extended slice of size 2',) -+ ('a', 'b', 'c', 'O') -+ nel[1:1:-1] = "a":ValueError:('attempt to assign sequence of size greater then 0 to extended slice',) -+ ('a', 'b', 'c', 'O') -+ nel[:] = FailingIterNextN(2):NotImplementedError:('next N',) -+ ('a', 'b', 'c', 'O') - >>> Testing StringToChars using l[:] = [{%s : 1}] - l[:] = [{1 : 1}]:TypeError:('expected str() or unicode() instance, but got int',) - l[:] = [{u"\0" : 1}]:TypeError:('expected string without null bytes',) -*** ../vim-7.4.150/src/testdir/test87.in 2013-11-28 17:04:38.000000000 +0100 ---- src/testdir/test87.in 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 128,133 **** ---- 128,145 ---- - :py3 l=vim.bindeval('l') - :py3 del l[-6:2] - :$put =string(l) -+ :let l = [0, 1, 2, 3] -+ :py3 l=vim.bindeval('l') -+ :py3 del l[::2] -+ :$put =string(l) -+ :let l = [0, 1, 2, 3] -+ :py3 l=vim.bindeval('l') -+ :py3 del l[3:0:-2] -+ :$put =string(l) -+ :let l = [0, 1, 2, 3] -+ :py3 l=vim.bindeval('l') -+ :py3 del l[2:4:-2] -+ :$put =string(l) - :" - :" Slice assignment to a list - :let l = [0, 1, 2, 3] -*************** -*** 162,167 **** ---- 174,199 ---- - :py3 l=vim.bindeval('l') - :py3 l[0:0]=['h'] - :$put =string(l) -+ :let l = range(8) -+ :py3 l=vim.bindeval('l') -+ :py3 l[2:6:2] = [10, 20] -+ :$put =string(l) -+ :let l = range(8) -+ :py3 l=vim.bindeval('l') -+ :py3 l[6:2:-2] = [10, 20] -+ :$put =string(l) -+ :let l = range(8) -+ :py3 l=vim.bindeval('l') -+ :py3 l[6:2] = () -+ :$put =string(l) -+ :let l = range(8) -+ :py3 l=vim.bindeval('l') -+ :py3 l[6:2:1] = () -+ :$put =string(l) -+ :let l = range(8) -+ :py3 l=vim.bindeval('l') -+ :py3 l[2:2:1] = () -+ :$put =string(l) - :" - :" Locked variables - :let l = [0, 1, 2, 3] -*************** -*** 363,368 **** ---- 395,432 ---- - :py3 del trace_main - :$put =string(l) - :" -+ :" Slice -+ :py3 ll = vim.bindeval('[0, 1, 2, 3, 4, 5]') -+ :py3 l = ll[:4] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[2:] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[:-4] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[-2:] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[2:4] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[4:2] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[-4:-2] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[-2:-4] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[:] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[0:6] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[-10:10] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[4:2:-1] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[::2] -+ :$put =string(py3eval('l')) -+ :py3 l = ll[4:2:1] -+ :$put =string(py3eval('l')) -+ :py3 del l -+ :" - :" Vars - :let g:foo = 'bac' - :let w:abc3 = 'def' -*************** -*** 859,864 **** ---- 923,929 ---- - l = vim.List() - ll = vim.List('abcE') - ll.locked = True -+ nel = vim.List('abcO') - f = vim.Function('string') - fd = vim.Function('F') - fdel = vim.Function('D') -*************** -*** 946,951 **** ---- 1011,1030 ---- - def __next__(self): - raise NotImplementedError('next') - -+ class FailingIterNextN(object): -+ def __init__(self, n): -+ self.n = n -+ -+ def __iter__(self): -+ return self -+ -+ def __next__(self): -+ if self.n: -+ self.n -= 1 -+ return 1 -+ else: -+ raise NotImplementedError('next N') -+ - class FailingMappingKey(object): - def __getitem__(self, item): - raise NotImplementedError('getitem:mappingkey') -*************** -*** 1050,1055 **** ---- 1129,1135 ---- - cb.append(">>> iter") - ee('d.update(FailingMapping())') - ee('d.update([FailingIterNext()])') -+ ee('d.update([FailingIterNextN(1)])') - iter_test('d.update(%s)') - convertfrompyobject_test('d.update(%s)') - stringtochars_test('d.update(((%s, 0),))') -*************** -*** 1072,1077 **** ---- 1152,1165 ---- - cb.append(">> ListAssSlice") - ee('ll[1:100] = "abcJ"') - iter_test('l[:] = %s') -+ ee('nel[1:10:2] = "abcK"') -+ cb.append(repr(tuple(nel))) -+ ee('nel[1:10:2] = "a"') -+ cb.append(repr(tuple(nel))) -+ ee('nel[1:1:-1] = "a"') -+ cb.append(repr(tuple(nel))) -+ ee('nel[:] = FailingIterNextN(2)') -+ cb.append(repr(tuple(nel))) - convertfrompyobject_test('l[:] = [%s]') - cb.append(">> ListConcatInPlace") - iter_test('l.extend(%s)') -*************** -*** 1153,1158 **** ---- 1241,1247 ---- - del dl - del l - del ll -+ del nel - del f - del fd - del fdel -*************** -*** 1166,1171 **** ---- 1255,1261 ---- - del FailingTrue - del FailingIter - del FailingIterNext -+ del FailingIterNextN - del FailingMapping - del FailingMappingKey - del FailingList -*** ../vim-7.4.150/src/testdir/test87.ok 2013-11-28 17:04:38.000000000 +0100 ---- src/testdir/test87.ok 2014-01-14 16:24:49.000000000 +0100 -*************** -*** 41,46 **** ---- 41,49 ---- - [2, 3] - [2, 3] - [2, 3] -+ [1, 3] -+ [0, 2] -+ [0, 1, 2, 3] - ['a', 0, 1, 2, 3] - [0, 'b', 2, 3] - [0, 1, 'c'] -*************** -*** 49,54 **** ---- 52,62 ---- - ['f', 2, 3] - [0, 1, 'g', 2, 3] - ['h'] -+ [0, 1, 10, 3, 20, 5, 6, 7] -+ [0, 1, 2, 3, 20, 5, 10, 7] -+ [0, 1, 2, 3, 4, 5, 6, 7] -+ [0, 1, 2, 3, 4, 5, 6, 7] -+ [0, 1, 2, 3, 4, 5, 6, 7] - [0, 1, 2, 3] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd'] - [function('New'), function('DictNew'), 'NewStart', 1, 2, 3, 'NewEnd', 'DictNewStart', 1, 2, 3, 'DictNewEnd', {'a': 'b'}] -*************** -*** 85,90 **** ---- 93,112 ---- - vim: Vim(let):E859: - [1] - [1, 10, 11, 10, 11, 10, 11, 10, 11, 10, 11, 10, 1] -+ [0, 1, 2, 3] -+ [2, 3, 4, 5] -+ [0, 1] -+ [4, 5] -+ [2, 3] -+ [] -+ [2, 3] -+ [] -+ [0, 1, 2, 3, 4, 5] -+ [0, 1, 2, 3, 4, 5] -+ [0, 1, 2, 3, 4, 5] -+ [4, 3] -+ [0, 2, 4] -+ [] - Abc - bac - def -*************** -*** 588,593 **** ---- 610,616 ---- - >>> iter - d.update(FailingMapping()):(, NotImplementedError('keys',)) - d.update([FailingIterNext()]):(, NotImplementedError('next',)) -+ d.update([FailingIterNextN(1)]):(, NotImplementedError('next N',)) - >>> Testing *Iter* using d.update(%s) - d.update(FailingIter()):(, NotImplementedError('iter',)) - d.update(FailingIterNext()):(, NotImplementedError('next',)) -*************** -*** 818,823 **** ---- 841,854 ---- - l[:] = FailingIter():(, NotImplementedError('iter',)) - l[:] = FailingIterNext():(, NotImplementedError('next',)) - <<< Finished -+ nel[1:10:2] = "abcK":(, ValueError('attempt to assign sequence of size greater then 2 to extended slice',)) -+ (b'a', b'b', b'c', b'O') -+ nel[1:10:2] = "a":(, ValueError('attempt to assign sequence of size 1 to extended slice of size 2',)) -+ (b'a', b'b', b'c', b'O') -+ nel[1:1:-1] = "a":(, ValueError('attempt to assign sequence of size greater then 0 to extended slice',)) -+ (b'a', b'b', b'c', b'O') -+ nel[:] = FailingIterNextN(2):(, NotImplementedError('next N',)) -+ (b'a', b'b', b'c', b'O') - >>> Testing StringToChars using l[:] = [{%s : 1}] - l[:] = [{1 : 1}]:(, TypeError('expected bytes() or str() instance, but got int',)) - l[:] = [{b"\0" : 1}]:(, TypeError('expected bytes with no null',)) -*** ../vim-7.4.150/src/version.c 2014-01-14 15:53:47.000000000 +0100 ---- src/version.c 2014-01-14 16:27:01.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 151, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -159. You get excited whenever discussing your hard drive. - - /// 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 /// diff --git a/7.4.152 b/7.4.152 deleted file mode 100644 index 6e54ddb9..00000000 --- a/7.4.152 +++ /dev/null @@ -1,708 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.152 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.152 -Problem: Python: Cannot iterate over options. -Solution: Add options iterator. (ZyX) -Files: src/if_py_both.h, src/option.c, src/proto/option.pro, - src/testdir/test86.in, src/testdir/test86.ok, - src/testdir/test87.in, src/testdir/test87.ok, src/vim.h - - -*** ../vim-7.4.151/src/if_py_both.h 2014-01-14 16:36:40.000000000 +0100 ---- src/if_py_both.h 2014-01-14 16:51:30.000000000 +0100 -*************** -*** 2949,2958 **** - typedef struct - { - PyObject_HEAD -! int opt_type; -! void *from; -! checkfun Check; -! PyObject *fromObj; - } OptionsObject; - - static int ---- 2949,2958 ---- - typedef struct - { - PyObject_HEAD -! int opt_type; -! void *from; -! checkfun Check; -! PyObject *fromObj; - } OptionsObject; - - static int -*************** -*** 3072,3077 **** ---- 3072,3140 ---- - } - - static int -+ OptionsContains(OptionsObject *self, PyObject *keyObject) -+ { -+ char_u *key; -+ PyObject *todecref; -+ -+ if (!(key = StringToChars(keyObject, &todecref))) -+ return -1; -+ -+ if (*key == NUL) -+ { -+ Py_XDECREF(todecref); -+ return 0; -+ } -+ -+ if (get_option_value_strict(key, NULL, NULL, self->opt_type, NULL)) -+ { -+ Py_XDECREF(todecref); -+ return 1; -+ } -+ else -+ { -+ Py_XDECREF(todecref); -+ return 0; -+ } -+ } -+ -+ typedef struct -+ { -+ void *lastoption; -+ int opt_type; -+ } optiterinfo_T; -+ -+ static PyObject * -+ OptionsIterNext(optiterinfo_T **oii) -+ { -+ char_u *name; -+ -+ if ((name = option_iter_next(&((*oii)->lastoption), (*oii)->opt_type))) -+ return PyString_FromString((char *)name); -+ -+ return NULL; -+ } -+ -+ static PyObject * -+ OptionsIter(OptionsObject *self) -+ { -+ optiterinfo_T *oii; -+ -+ if (!(oii = PyMem_New(optiterinfo_T, 1))) -+ { -+ PyErr_NoMemory(); -+ return NULL; -+ } -+ -+ oii->opt_type = self->opt_type; -+ oii->lastoption = NULL; -+ -+ return IterNew(oii, -+ (destructorfun) PyMem_Free, (nextfun) OptionsIterNext, -+ NULL, NULL); -+ } -+ -+ static int - set_option_value_err(char_u *key, int numval, char_u *stringval, int opt_flags) - { - char_u *errmsg; -*************** -*** 3231,3236 **** ---- 3294,3312 ---- - return ret; - } - -+ static PySequenceMethods OptionsAsSeq = { -+ 0, /* sq_length */ -+ 0, /* sq_concat */ -+ 0, /* sq_repeat */ -+ 0, /* sq_item */ -+ 0, /* sq_slice */ -+ 0, /* sq_ass_item */ -+ 0, /* sq_ass_slice */ -+ (objobjproc) OptionsContains, /* sq_contains */ -+ 0, /* sq_inplace_concat */ -+ 0, /* sq_inplace_repeat */ -+ }; -+ - static PyMappingMethods OptionsAsMapping = { - (lenfunc) NULL, - (binaryfunc) OptionsItem, -*************** -*** 6121,6128 **** ---- 6197,6206 ---- - vim_memset(&OptionsType, 0, sizeof(OptionsType)); - OptionsType.tp_name = "vim.options"; - OptionsType.tp_basicsize = sizeof(OptionsObject); -+ OptionsType.tp_as_sequence = &OptionsAsSeq; - OptionsType.tp_flags = Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC; - OptionsType.tp_doc = "object for manipulating options"; -+ OptionsType.tp_iter = (getiterfunc)OptionsIter; - OptionsType.tp_as_mapping = &OptionsAsMapping; - OptionsType.tp_dealloc = (destructor)OptionsDestructor; - OptionsType.tp_traverse = (traverseproc)OptionsTraverse; -*** ../vim-7.4.151/src/option.c 2013-11-12 04:43:57.000000000 +0100 ---- src/option.c 2014-01-14 16:50:52.000000000 +0100 -*************** -*** 8861,8867 **** - } - #endif - -! #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) - /* - * Returns the option attributes and its value. Unlike the above function it - * will return either global value or local value of the option depending on ---- 8861,8867 ---- - } - #endif - -! #if defined(FEAT_PYTHON) || defined(FEAT_PYTHON3) || defined(PROTO) - /* - * Returns the option attributes and its value. Unlike the above function it - * will return either global value or local value of the option depending on -*************** -*** 8874,8880 **** - * opt_type). Uses - * - * Returned flags: -! * 0 hidden or unknown option - * see SOPT_* in vim.h for other flags - * - * Possible opt_type values: see SREQ_* in vim.h ---- 8874,8881 ---- - * opt_type). Uses - * - * Returned flags: -! * 0 hidden or unknown option, also option that does not have requested -! * type (see SREQ_* in vim.h) - * see SOPT_* in vim.h for other flags - * - * Possible opt_type values: see SREQ_* in vim.h -*************** -*** 8997,9002 **** ---- 8998,9065 ---- - - return r; - } -+ -+ /* -+ * Iterate over options. First argument is a pointer to a pointer to a structure -+ * inside options[] array, second is option type like in the above function. -+ * -+ * If first argument points to NULL it is assumed that iteration just started -+ * and caller needs the very first value. -+ * If first argument points to the end marker function returns NULL and sets -+ * first argument to NULL. -+ * -+ * Returns full option name for current option on each call. -+ */ -+ char_u * -+ option_iter_next(option, opt_type) -+ void **option; -+ int opt_type; -+ { -+ struct vimoption *ret = NULL; -+ do -+ { -+ if (*option == NULL) -+ *option = (void *) options; -+ else if (((struct vimoption *) (*option))->fullname == NULL) -+ { -+ *option = NULL; -+ return NULL; -+ } -+ else -+ *option = (void *) (((struct vimoption *) (*option)) + 1); -+ -+ ret = ((struct vimoption *) (*option)); -+ -+ /* Hidden option */ -+ if (ret->var == NULL) -+ { -+ ret = NULL; -+ continue; -+ } -+ -+ switch (opt_type) -+ { -+ case SREQ_GLOBAL: -+ if (!(ret->indir == PV_NONE || ret->indir & PV_BOTH)) -+ ret = NULL; -+ break; -+ case SREQ_BUF: -+ if (!(ret->indir & PV_BUF)) -+ ret = NULL; -+ break; -+ case SREQ_WIN: -+ if (!(ret->indir & PV_WIN)) -+ ret = NULL; -+ break; -+ default: -+ EMSG2(_(e_intern2), "option_iter_next()"); -+ return NULL; -+ } -+ } -+ while (ret == NULL); -+ -+ return (char_u *)ret->fullname; -+ } - #endif - - /* -*** ../vim-7.4.151/src/proto/option.pro 2013-11-05 07:12:59.000000000 +0100 ---- src/proto/option.pro 2014-01-14 16:51:41.000000000 +0100 -*************** -*** 23,28 **** ---- 23,29 ---- - char_u *check_stl_option __ARGS((char_u *s)); - int get_option_value __ARGS((char_u *name, long *numval, char_u **stringval, int opt_flags)); - int get_option_value_strict __ARGS((char_u *name, long *numval, char_u **stringval, int opt_type, void *from)); -+ char_u *option_iter_next __ARGS((void **option, int opt_type)); - char_u *set_option_value __ARGS((char_u *name, long number, char_u *string, int opt_flags)); - char_u *get_term_code __ARGS((char_u *tname)); - char_u *get_highlight_default __ARGS((void)); -*** ../vim-7.4.151/src/testdir/test86.in 2014-01-14 16:36:40.000000000 +0100 ---- src/testdir/test86.in 2014-01-14 16:49:10.000000000 +0100 -*************** -*** 506,511 **** ---- 506,516 ---- - :py bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options - :py bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options - :py bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options -+ :$put ='wopts iters equal: '.pyeval('list(wopts1) == list(wopts2)') -+ :$put ='bopts iters equal: '.pyeval('list(bopts1) == list(bopts2)') -+ :py gset=set(iter(gopts1)) -+ :py wset=set(iter(wopts1)) -+ :py bset=set(iter(bopts1)) - :set path=.,..,, - :let lst=[] - :let lst+=[['paste', 1, 0, 1, 2, 1, 1, 0 ]] -*************** -*** 536,541 **** ---- 541,548 ---- - : py oval3=bool(oval3) - : endif - : put ='>>> '.oname -+ : $put =' g/w/b:'.pyeval('oname in gset').'/'.pyeval('oname in wset').'/'.pyeval('oname in bset') -+ : $put =' g/w/b (in):'.pyeval('oname in gopts1').'/'.pyeval('oname in wopts1').'/'.pyeval('oname in bopts1') - : for v in ['gopts1', 'wopts1', 'bopts1'] - : try - : put =' p/'.v.': '.Ev('repr('.v.'['''.oname.'''])') -*************** -*** 1122,1127 **** ---- 1129,1141 ---- - ee('import failing') - vim.options['rtp'] = old_rtp - del old_rtp -+ cb.append("> Options") -+ cb.append(">> OptionsItem") -+ ee('vim.options["abcQ"]') -+ ee('vim.options[""]') -+ stringtochars_test('vim.options[%s]') -+ cb.append(">> OptionsContains") -+ stringtochars_test('%s in vim.options') - cb.append("> Dictionary") - cb.append(">> DictionaryConstructor") - ee('vim.Dictionary("abcI")') -*** ../vim-7.4.151/src/testdir/test86.ok 2014-01-14 16:36:40.000000000 +0100 ---- src/testdir/test86.ok 2014-01-14 16:49:10.000000000 +0100 -*************** -*** 112,118 **** ---- 112,122 ---- - def - bar - jkl -+ wopts iters equal: 1 -+ bopts iters equal: 1 - >>> paste -+ g/w/b:1/0/0 -+ g/w/b (in):1/0/0 - p/gopts1: False - p/wopts1! KeyError - inv: 2! KeyError -*************** -*** 133,138 **** ---- 137,144 ---- - W: 1:1 2:1 3:1 4:1 - B: 1:1 2:1 3:1 4:1 - >>> previewheight -+ g/w/b:1/0/0 -+ g/w/b (in):1/0/0 - p/gopts1: 12 - inv: 'a'! TypeError - p/wopts1! KeyError -*************** -*** 154,159 **** ---- 160,167 ---- - W: 1:5 2:5 3:5 4:5 - B: 1:5 2:5 3:5 4:5 - >>> operatorfunc -+ g/w/b:1/0/0 -+ g/w/b (in):1/0/0 - p/gopts1: '' - inv: 2! TypeError - p/wopts1! KeyError -*************** -*** 175,180 **** ---- 183,190 ---- - W: 1:'A' 2:'A' 3:'A' 4:'A' - B: 1:'A' 2:'A' 3:'A' 4:'A' - >>> number -+ g/w/b:0/1/0 -+ g/w/b (in):0/1/0 - p/gopts1! KeyError - inv: 0! KeyError - gopts1! KeyError -*************** -*** 193,198 **** ---- 203,210 ---- - W: 1:1 2:1 3:0 4:0 - B: 1:1 2:1 3:0 4:0 - >>> numberwidth -+ g/w/b:0/1/0 -+ g/w/b (in):0/1/0 - p/gopts1! KeyError - inv: -100! KeyError - gopts1! KeyError -*************** -*** 212,217 **** ---- 224,231 ---- - W: 1:3 2:5 3:2 4:8 - B: 1:3 2:5 3:2 4:8 - >>> colorcolumn -+ g/w/b:0/1/0 -+ g/w/b (in):0/1/0 - p/gopts1! KeyError - inv: 'abc4'! KeyError - gopts1! KeyError -*************** -*** 231,236 **** ---- 245,252 ---- - W: 1:'+2' 2:'+3' 3:'+1' 4:'' - B: 1:'+2' 2:'+3' 3:'+1' 4:'' - >>> statusline -+ g/w/b:1/1/0 -+ g/w/b (in):1/1/0 - p/gopts1: '' - inv: 0! TypeError - p/wopts1: None -*************** -*** 248,253 **** ---- 264,271 ---- - W: 1:'2' 2:'1' 3:'1' 4:'1' - B: 1:'2' 2:'1' 3:'1' 4:'1' - >>> autoindent -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 2! KeyError - gopts1! KeyError -*************** -*** 266,271 **** ---- 284,291 ---- - W: 1:0 2:1 3:0 4:1 - B: 1:0 2:1 3:0 4:1 - >>> shiftwidth -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 3! KeyError - gopts1! KeyError -*************** -*** 284,289 **** ---- 304,311 ---- - W: 1:0 2:2 3:8 4:1 - B: 1:0 2:2 3:8 4:1 - >>> omnifunc -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 1! KeyError - gopts1! KeyError -*************** -*** 303,308 **** ---- 325,332 ---- - W: 1:'A' 2:'B' 3:'' 4:'C' - B: 1:'A' 2:'B' 3:'' 4:'C' - >>> preserveindent -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 2! KeyError - gopts1! KeyError -*************** -*** 321,326 **** ---- 345,352 ---- - W: 1:0 2:1 3:0 4:1 - B: 1:0 2:1 3:0 4:1 - >>> path -+ g/w/b:1/0/1 -+ g/w/b (in):1/0/1 - p/gopts1: '.,..,,' - inv: 0! TypeError - p/wopts1! KeyError -*************** -*** 509,514 **** ---- 535,555 ---- - import xxx_no_such_module_xxx:ImportError:('No module named xxx_no_such_module_xxx',) - import failing_import:ImportError:('No module named failing_import',) - import failing:NotImplementedError:() -+ > Options -+ >> OptionsItem -+ vim.options["abcQ"]:KeyError:('abcQ',) -+ vim.options[""]:ValueError:('empty keys are not allowed',) -+ >>> Testing StringToChars using vim.options[%s] -+ vim.options[1]:TypeError:('expected str() or unicode() instance, but got int',) -+ vim.options[u"\0"]:TypeError:('expected string without null bytes',) -+ vim.options["\0"]:TypeError:('expected string without null bytes',) -+ <<< Finished -+ >> OptionsContains -+ >>> Testing StringToChars using %s in vim.options -+ 1 in vim.options:TypeError:('expected str() or unicode() instance, but got int',) -+ u"\0" in vim.options:TypeError:('expected string without null bytes',) -+ "\0" in vim.options:TypeError:('expected string without null bytes',) -+ <<< Finished - > Dictionary - >> DictionaryConstructor - vim.Dictionary("abcI"):ValueError:('expected sequence element of size 2, but got sequence of size 1',) -*** ../vim-7.4.151/src/testdir/test87.in 2014-01-14 16:36:40.000000000 +0100 ---- src/testdir/test87.in 2014-01-14 16:49:10.000000000 +0100 -*************** -*** 503,508 **** ---- 503,513 ---- - :py3 bopts1=vim.buffers[vim.bindeval("g:bufs")[2]].options - :py3 bopts2=vim.buffers[vim.bindeval("g:bufs")[1]].options - :py3 bopts3=vim.buffers[vim.bindeval("g:bufs")[0]].options -+ :$put ='wopts iters equal: '.py3eval('list(wopts1) == list(wopts2)') -+ :$put ='bopts iters equal: '.py3eval('list(bopts1) == list(bopts2)') -+ :py3 gset=set(iter(gopts1)) -+ :py3 wset=set(iter(wopts1)) -+ :py3 bset=set(iter(bopts1)) - :set path=.,..,, - :let lst=[] - :let lst+=[['paste', 1, 0, 1, 2, 1, 1, 0 ]] -*************** -*** 533,538 **** ---- 538,545 ---- - : py3 oval3=bool(oval3) - : endif - : put ='>>> '.oname -+ : $put =' g/w/b:'.py3eval('oname in gset').'/'.py3eval('oname in wset').'/'.py3eval('oname in bset') -+ : $put =' g/w/b (in):'.py3eval('oname in gopts1').'/'.py3eval('oname in wopts1').'/'.py3eval('oname in bopts1') - : for v in ['gopts1', 'wopts1', 'bopts1'] - : try - : put =' p/'.v.': '.Ev('repr('.v.'['''.oname.'''])') -*************** -*** 1099,1104 **** ---- 1106,1118 ---- - ee('import failing') - vim.options['rtp'] = old_rtp - del old_rtp -+ cb.append("> Options") -+ cb.append(">> OptionsItem") -+ ee('vim.options["abcQ"]') -+ ee('vim.options[""]') -+ stringtochars_test('vim.options[%s]') -+ cb.append(">> OptionsContains") -+ stringtochars_test('%s in vim.options') - cb.append("> Dictionary") - cb.append(">> DictionaryConstructor") - ee('vim.Dictionary("abcI")') -*** ../vim-7.4.151/src/testdir/test87.ok 2014-01-14 16:36:40.000000000 +0100 ---- src/testdir/test87.ok 2014-01-14 16:49:10.000000000 +0100 -*************** -*** 112,118 **** ---- 112,122 ---- - def - bar - jkl -+ wopts iters equal: 1 -+ bopts iters equal: 1 - >>> paste -+ g/w/b:1/0/0 -+ g/w/b (in):1/0/0 - p/gopts1: False - p/wopts1! KeyError - inv: 2! KeyError -*************** -*** 133,138 **** ---- 137,144 ---- - W: 1:1 2:1 3:1 4:1 - B: 1:1 2:1 3:1 4:1 - >>> previewheight -+ g/w/b:1/0/0 -+ g/w/b (in):1/0/0 - p/gopts1: 12 - inv: 'a'! TypeError - p/wopts1! KeyError -*************** -*** 154,159 **** ---- 160,167 ---- - W: 1:5 2:5 3:5 4:5 - B: 1:5 2:5 3:5 4:5 - >>> operatorfunc -+ g/w/b:1/0/0 -+ g/w/b (in):1/0/0 - p/gopts1: b'' - inv: 2! TypeError - p/wopts1! KeyError -*************** -*** 175,180 **** ---- 183,190 ---- - W: 1:'A' 2:'A' 3:'A' 4:'A' - B: 1:'A' 2:'A' 3:'A' 4:'A' - >>> number -+ g/w/b:0/1/0 -+ g/w/b (in):0/1/0 - p/gopts1! KeyError - inv: 0! KeyError - gopts1! KeyError -*************** -*** 193,198 **** ---- 203,210 ---- - W: 1:1 2:1 3:0 4:0 - B: 1:1 2:1 3:0 4:0 - >>> numberwidth -+ g/w/b:0/1/0 -+ g/w/b (in):0/1/0 - p/gopts1! KeyError - inv: -100! KeyError - gopts1! KeyError -*************** -*** 212,217 **** ---- 224,231 ---- - W: 1:3 2:5 3:2 4:8 - B: 1:3 2:5 3:2 4:8 - >>> colorcolumn -+ g/w/b:0/1/0 -+ g/w/b (in):0/1/0 - p/gopts1! KeyError - inv: 'abc4'! KeyError - gopts1! KeyError -*************** -*** 231,236 **** ---- 245,252 ---- - W: 1:'+2' 2:'+3' 3:'+1' 4:'' - B: 1:'+2' 2:'+3' 3:'+1' 4:'' - >>> statusline -+ g/w/b:1/1/0 -+ g/w/b (in):1/1/0 - p/gopts1: b'' - inv: 0! TypeError - p/wopts1: None -*************** -*** 248,253 **** ---- 264,271 ---- - W: 1:'2' 2:'1' 3:'1' 4:'1' - B: 1:'2' 2:'1' 3:'1' 4:'1' - >>> autoindent -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 2! KeyError - gopts1! KeyError -*************** -*** 266,271 **** ---- 284,291 ---- - W: 1:0 2:1 3:0 4:1 - B: 1:0 2:1 3:0 4:1 - >>> shiftwidth -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 3! KeyError - gopts1! KeyError -*************** -*** 284,289 **** ---- 304,311 ---- - W: 1:0 2:2 3:8 4:1 - B: 1:0 2:2 3:8 4:1 - >>> omnifunc -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 1! KeyError - gopts1! KeyError -*************** -*** 303,308 **** ---- 325,332 ---- - W: 1:'A' 2:'B' 3:'' 4:'C' - B: 1:'A' 2:'B' 3:'' 4:'C' - >>> preserveindent -+ g/w/b:0/0/1 -+ g/w/b (in):0/0/1 - p/gopts1! KeyError - inv: 2! KeyError - gopts1! KeyError -*************** -*** 321,326 **** ---- 345,352 ---- - W: 1:0 2:1 3:0 4:1 - B: 1:0 2:1 3:0 4:1 - >>> path -+ g/w/b:1/0/1 -+ g/w/b (in):1/0/1 - p/gopts1: b'.,..,,' - inv: 0! TypeError - p/wopts1! KeyError -*************** -*** 509,514 **** ---- 535,555 ---- - import xxx_no_such_module_xxx:(, ImportError('No module named xxx_no_such_module_xxx',)) - import failing_import:(, ImportError('No module named failing_import',)) - import failing:(, NotImplementedError()) -+ > Options -+ >> OptionsItem -+ vim.options["abcQ"]:(, KeyError('abcQ',)) -+ vim.options[""]:(, ValueError('empty keys are not allowed',)) -+ >>> Testing StringToChars using vim.options[%s] -+ vim.options[1]:(, TypeError('expected bytes() or str() instance, but got int',)) -+ vim.options[b"\0"]:(, TypeError('expected bytes with no null',)) -+ vim.options["\0"]:(, TypeError('expected bytes with no null',)) -+ <<< Finished -+ >> OptionsContains -+ >>> Testing StringToChars using %s in vim.options -+ 1 in vim.options:(, TypeError('expected bytes() or str() instance, but got int',)) -+ b"\0" in vim.options:(, TypeError('expected bytes with no null',)) -+ "\0" in vim.options:(, TypeError('expected bytes with no null',)) -+ <<< Finished - > Dictionary - >> DictionaryConstructor - vim.Dictionary("abcI"):(, ValueError('expected sequence element of size 2, but got sequence of size 1',)) -*** ../vim-7.4.151/src/vim.h 2013-11-09 03:31:45.000000000 +0100 ---- src/vim.h 2014-01-14 16:49:10.000000000 +0100 -*************** -*** 2249,2254 **** ---- 2249,2255 ---- - #define SOPT_BUF 0x20 /* Option has buffer-local value */ - #define SOPT_UNSET 0x40 /* Option does not have local value set */ - -+ /* Option types for various functions in option.c */ - #define SREQ_GLOBAL 0 /* Request global option */ - #define SREQ_WIN 1 /* Request window-local option */ - #define SREQ_BUF 2 /* Request buffer-local option */ -*** ../vim-7.4.151/src/version.c 2014-01-14 16:36:40.000000000 +0100 ---- src/version.c 2014-01-14 16:43:58.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 152, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -160. You get in the elevator and double-click the button for the floor - you want. - - /// 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 /// diff --git a/7.4.153 b/7.4.153 deleted file mode 100644 index 73881b5d..00000000 --- a/7.4.153 +++ /dev/null @@ -1,176 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.153 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.153 -Problem: Compiler warning for pointer type. -Solution: Add type cast. -Files: src/if_py_both.h, src/if_python.c, src/if_python3.c - - -*** ../vim-7.4.152/src/if_py_both.h 2014-01-14 16:54:53.000000000 +0100 ---- src/if_py_both.h 2014-01-14 18:54:47.000000000 +0100 -*************** -*** 2326,2332 **** - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx(idx, ListLength(self), - &start, &stop, &step, &slicelen) < 0) - return NULL; - return ListSlice(self, start, step, slicelen); ---- 2326,2332 ---- - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx((PySliceObject *)idx, ListLength(self), - &start, &stop, &step, &slicelen) < 0) - return NULL; - return ListSlice(self, start, step, slicelen); -*************** -*** 2616,2622 **** - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx(idx, ListLength(self), - &start, &stop, &step, &slicelen) < 0) - return -1; - return ListAssSlice(self, start, step, slicelen, ---- 2616,2622 ---- - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx((PySliceObject *)idx, ListLength(self), - &start, &stop, &step, &slicelen) < 0) - return -1; - return ListAssSlice(self, start, step, slicelen, -*** ../vim-7.4.152/src/if_python.c 2014-01-14 16:36:40.000000000 +0100 ---- src/if_python.c 2014-01-14 18:56:41.000000000 +0100 -*************** -*** 343,349 **** - static PyInt(*dll_PyTuple_Size)(PyObject *); - static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt); - static PyTypeObject* dll_PyTuple_Type; -! static int (*dll_PySlice_GetIndicesEx)(PyObject *r, PyInt length, - PyInt *start, PyInt *stop, PyInt *step, - PyInt *slicelen); - static PyObject*(*dll_PyImport_ImportModule)(const char *); ---- 343,349 ---- - static PyInt(*dll_PyTuple_Size)(PyObject *); - static PyObject*(*dll_PyTuple_GetItem)(PyObject *, PyInt); - static PyTypeObject* dll_PyTuple_Type; -! static int (*dll_PySlice_GetIndicesEx)(PySliceObject *r, PyInt length, - PyInt *start, PyInt *stop, PyInt *step, - PyInt *slicelen); - static PyObject*(*dll_PyImport_ImportModule)(const char *); -*** ../vim-7.4.152/src/if_python3.c 2014-01-14 16:36:40.000000000 +0100 ---- src/if_python3.c 2014-01-14 18:58:19.000000000 +0100 -*************** -*** 294,300 **** - static PyObject* (*py3_PyTuple_GetItem)(PyObject *, Py_ssize_t); - static int (*py3_PyMapping_Check)(PyObject *); - static PyObject* (*py3_PyMapping_Keys)(PyObject *); -! static int (*py3_PySlice_GetIndicesEx)(PyObject *r, Py_ssize_t length, - Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, - Py_ssize_t *slicelen); - static PyObject* (*py3_PyErr_NoMemory)(void); ---- 294,300 ---- - static PyObject* (*py3_PyTuple_GetItem)(PyObject *, Py_ssize_t); - static int (*py3_PyMapping_Check)(PyObject *); - static PyObject* (*py3_PyMapping_Keys)(PyObject *); -! static int (*py3_PySlice_GetIndicesEx)(PySliceObject *r, Py_ssize_t length, - Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, - Py_ssize_t *slicelen); - static PyObject* (*py3_PyErr_NoMemory)(void); -*************** -*** 1190,1196 **** - if (CheckBuffer((BufferObject *) self)) - return NULL; - -! if (PySlice_GetIndicesEx((PyObject *)idx, - (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, - &start, &stop, - &step, &slicelen) < 0) ---- 1190,1196 ---- - if (CheckBuffer((BufferObject *) self)) - return NULL; - -! if (PySlice_GetIndicesEx((PySliceObject *)idx, - (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, - &start, &stop, - &step, &slicelen) < 0) -*************** -*** 1222,1228 **** - if (CheckBuffer((BufferObject *) self)) - return -1; - -! if (PySlice_GetIndicesEx((PyObject *)idx, - (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, - &start, &stop, - &step, &slicelen) < 0) ---- 1222,1228 ---- - if (CheckBuffer((BufferObject *) self)) - return -1; - -! if (PySlice_GetIndicesEx((PySliceObject *)idx, - (Py_ssize_t)((BufferObject *)(self))->buf->b_ml.ml_line_count, - &start, &stop, - &step, &slicelen) < 0) -*************** -*** 1306,1312 **** - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx((PyObject *)idx, - ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1, - &start, &stop, - &step, &slicelen) < 0) ---- 1306,1312 ---- - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx((PySliceObject *)idx, - ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1, - &start, &stop, - &step, &slicelen) < 0) -*************** -*** 1333,1339 **** - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx((PyObject *)idx, - ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1, - &start, &stop, - &step, &slicelen) < 0) ---- 1333,1339 ---- - { - Py_ssize_t start, stop, step, slicelen; - -! if (PySlice_GetIndicesEx((PySliceObject *)idx, - ((RangeObject *)(self))->end-((RangeObject *)(self))->start+1, - &start, &stop, - &step, &slicelen) < 0) -*** ../vim-7.4.152/src/version.c 2014-01-14 16:54:53.000000000 +0100 ---- src/version.c 2014-01-14 18:54:01.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 153, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -161. You get up before the sun rises to check your e-mail, and you - find yourself in the very same chair long after the sun has set. - - /// 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 /// diff --git a/7.4.154 b/7.4.154 deleted file mode 100644 index db5ae62d..00000000 --- a/7.4.154 +++ /dev/null @@ -1,153 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.154 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.154 (after 7.4.149) -Problem: Still a problem with auto-loading. -Solution: Pass no_autoload to deref_func_name(). (Yukihiro Nakadaira) -Files: src/eval.c - - -*** ../vim-7.4.153/src/eval.c 2014-01-14 16:36:40.000000000 +0100 ---- src/eval.c 2014-01-14 19:40:36.000000000 +0100 -*************** -*** 447,453 **** - #endif - static int get_env_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); - static int find_internal_func __ARGS((char_u *name)); -! static char_u *deref_func_name __ARGS((char_u *name, int *lenp)); - static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); - static int call_func __ARGS((char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); - static void emsg_funcname __ARGS((char *ermsg, char_u *name)); ---- 447,453 ---- - #endif - static int get_env_tv __ARGS((char_u **arg, typval_T *rettv, int evaluate)); - static int find_internal_func __ARGS((char_u *name)); -! static char_u *deref_func_name __ARGS((char_u *name, int *lenp, int no_autoload)); - static int get_func_tv __ARGS((char_u *name, int len, typval_T *rettv, char_u **arg, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); - static int call_func __ARGS((char_u *funcname, int len, typval_T *rettv, int argcount, typval_T *argvars, linenr_T firstline, linenr_T lastline, int *doesrange, int evaluate, dict_T *selfdict)); - static void emsg_funcname __ARGS((char *ermsg, char_u *name)); -*************** -*** 3432,3438 **** - - /* If it is the name of a variable of type VAR_FUNC use its contents. */ - len = (int)STRLEN(tofree); -! name = deref_func_name(tofree, &len); - - /* Skip white space to allow ":call func ()". Not good, but required for - * backward compatibility. */ ---- 3432,3438 ---- - - /* If it is the name of a variable of type VAR_FUNC use its contents. */ - len = (int)STRLEN(tofree); -! name = deref_func_name(tofree, &len, FALSE); - - /* Skip white space to allow ":call func ()". Not good, but required for - * backward compatibility. */ -*************** -*** 5159,5165 **** - { - /* If "s" is the name of a variable of type VAR_FUNC - * use its contents. */ -! s = deref_func_name(s, &len); - - /* Invoke the function. */ - ret = get_func_tv(s, len, rettv, arg, ---- 5159,5165 ---- - { - /* If "s" is the name of a variable of type VAR_FUNC - * use its contents. */ -! s = deref_func_name(s, &len, FALSE); - - /* Invoke the function. */ - ret = get_func_tv(s, len, rettv, arg, -*************** -*** 8291,8306 **** - * name it contains, otherwise return "name". - */ - static char_u * -! deref_func_name(name, lenp) - char_u *name; - int *lenp; - { - dictitem_T *v; - int cc; - - cc = name[*lenp]; - name[*lenp] = NUL; -! v = find_var(name, NULL, FALSE); - name[*lenp] = cc; - if (v != NULL && v->di_tv.v_type == VAR_FUNC) - { ---- 8291,8307 ---- - * name it contains, otherwise return "name". - */ - static char_u * -! deref_func_name(name, lenp, no_autoload) - char_u *name; - int *lenp; -+ int no_autoload; - { - dictitem_T *v; - int cc; - - cc = name[*lenp]; - name[*lenp] = NUL; -! v = find_var(name, NULL, no_autoload); - name[*lenp] = cc; - if (v != NULL && v->di_tv.v_type == VAR_FUNC) - { -*************** -*** 21947,21960 **** - if (lv.ll_exp_name != NULL) - { - len = (int)STRLEN(lv.ll_exp_name); -! name = deref_func_name(lv.ll_exp_name, &len); - if (name == lv.ll_exp_name) - name = NULL; - } - else - { - len = (int)(end - *pp); -! name = deref_func_name(*pp, &len); - if (name == *pp) - name = NULL; - } ---- 21948,21961 ---- - if (lv.ll_exp_name != NULL) - { - len = (int)STRLEN(lv.ll_exp_name); -! name = deref_func_name(lv.ll_exp_name, &len, flags & TFN_NO_AUTOLOAD); - if (name == lv.ll_exp_name) - name = NULL; - } - else - { - len = (int)(end - *pp); -! name = deref_func_name(*pp, &len, flags & TFN_NO_AUTOLOAD); - if (name == *pp) - name = NULL; - } -*** ../vim-7.4.153/src/version.c 2014-01-14 19:35:49.000000000 +0100 ---- src/version.c 2014-01-14 19:42:05.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 154, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -162. You go outside and look for a brightness knob to turn down the sun. - - /// 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 /// diff --git a/7.4.155 b/7.4.155 deleted file mode 100644 index e2b26bde..00000000 --- a/7.4.155 +++ /dev/null @@ -1,83 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.155 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.155 -Problem: ":keeppatterns /pat" does not keep search pattern offset. -Solution: Restore the offset after doing the search. -Files: src/search.c, src/testdir/test14.in, src/testdir/test14.ok - - -*** ../vim-7.4.154/src/search.c 2014-01-14 15:53:47.000000000 +0100 ---- src/search.c 2014-01-14 21:27:32.000000000 +0100 -*************** -*** 1437,1443 **** - curwin->w_set_curswant = TRUE; - - end_do_search: -! if (options & SEARCH_KEEP) - spats[0].off = old_off; - vim_free(strcopy); - ---- 1437,1443 ---- - curwin->w_set_curswant = TRUE; - - end_do_search: -! if ((options & SEARCH_KEEP) || cmdmod.keeppatterns) - spats[0].off = old_off; - vim_free(strcopy); - -*** ../vim-7.4.154/src/testdir/test14.in 2014-01-14 15:53:47.000000000 +0100 ---- src/testdir/test14.in 2014-01-14 21:13:39.000000000 +0100 -*************** -*** 56,62 **** - :$put =@/ - /^substitute - Y:$put =@0 -! :/^search()/,$w >>test.out - :qa! - ENDTEST - ---- 56,65 ---- - :$put =@/ - /^substitute - Y:$put =@0 -! /bar /e -! :$put =@0 -! -:keeppatterns /xyz -! 0dn:/^search()/,$w >>test.out - :qa! - ENDTEST - -*** ../vim-7.4.154/src/testdir/test14.ok 2014-01-14 15:53:47.000000000 +0100 ---- src/testdir/test14.ok 2014-01-14 21:16:23.000000000 +0100 -*************** -*** 23,25 **** ---- 23,26 ---- - foo - ^substitute - substitute bar xyz -+ xyz -*** ../vim-7.4.154/src/version.c 2014-01-14 19:44:30.000000000 +0100 ---- src/version.c 2014-01-14 21:28:24.000000000 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 155, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -164. You got out to buy software, instead of going out for a beer. - - /// 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 /// diff --git a/7.4.156 b/7.4.156 deleted file mode 100644 index a1a272c5..00000000 --- a/7.4.156 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.156 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.156 -Problem: Test file missing from distribution. -Solution: Add new directory to file list. -Files: Filelist - - -*** ../vim-7.4.155/Filelist 2013-07-13 15:23:38.000000000 +0200 ---- Filelist 2014-01-23 14:23:38.639298979 +0100 -*************** -*** 80,85 **** ---- 80,86 ---- - src/main.aap \ - src/testdir/main.aap \ - src/testdir/*.in \ -+ src/testdir/sautest/autoload/*.vim \ - src/testdir/test[0-9]*.ok \ - src/testdir/test49.vim \ - src/testdir/test60.vim \ -*** ../vim-7.4.155/src/version.c 2014-01-14 21:31:30.000000000 +0100 ---- src/version.c 2014-01-23 14:24:18.475300074 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 156, - /**/ - --- -Some of the well known MS-Windows errors: - ETIME Wrong time, wait a little while - ECRASH Try again... - EDETECT Unable to detect errors - EOVER You lost! Play another game? - ENOCLUE Eh, what did you want? - - /// 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 /// diff --git a/7.4.157 b/7.4.157 deleted file mode 100644 index 9ec2bd06..00000000 --- a/7.4.157 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.157 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.157 -Problem: Error number used twice. (Yukihiro Nakadaira) -Solution: Change the one not referred in the docs. -Files: src/undo.c - - -*** ../vim-7.4.156/src/undo.c 2013-11-07 03:04:06.000000000 +0100 ---- src/undo.c 2014-01-23 18:07:33.395668196 +0100 -*************** -*** 409,415 **** - { - /* This happens when the FileChangedRO autocommand changes the - * file in a way it becomes shorter. */ -! EMSG(_("E834: Line count changed unexpectedly")); - return FAIL; - } - #endif ---- 409,415 ---- - { - /* This happens when the FileChangedRO autocommand changes the - * file in a way it becomes shorter. */ -! EMSG(_("E881: Line count changed unexpectedly")); - return FAIL; - } - #endif -*** ../vim-7.4.156/src/version.c 2014-01-23 14:26:18.815303381 +0100 ---- src/version.c 2014-01-23 18:10:47.551673532 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 157, - /**/ - - --- -hundred-and-one symptoms of being an internet addict: -201. When somebody asks you where you are, you tell them in which chat room. - - /// 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 /// diff --git a/7.4.158 b/7.4.158 deleted file mode 100644 index d5291d3e..00000000 --- a/7.4.158 +++ /dev/null @@ -1,140 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.158 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.158 (after 7.4.045) -Problem: Pattern containing \zs is not handled correctly by substitute(). -Solution: Change how an empty match is skipped. (Yukihiro Nakadaira) -Files: src/eval.c, src/testdir/test80.in, src/testdir/test80.ok - - -*** ../vim-7.4.157/src/eval.c 2014-01-14 19:44:30.000000000 +0100 ---- src/eval.c 2014-01-23 19:25:23.199796533 +0100 -*************** -*** 24365,24371 **** - garray_T ga; - char_u *ret; - char_u *save_cpo; -! int zero_width; - - /* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */ - save_cpo = p_cpo; ---- 24365,24371 ---- - garray_T ga; - char_u *ret; - char_u *save_cpo; -! char_u *zero_width = NULL; - - /* Make 'cpoptions' empty, so that the 'l' flag doesn't work here */ - save_cpo = p_cpo; -*************** -*** 24382,24387 **** ---- 24382,24400 ---- - tail = str; - while (vim_regexec_nl(®match, str, (colnr_T)(tail - str))) - { -+ /* Skip empty match except for first match. */ -+ if (regmatch.startp[0] == regmatch.endp[0]) -+ { -+ if (zero_width == regmatch.startp[0]) -+ { -+ /* avoid getting stuck on a match with an empty string */ -+ *((char_u *)ga.ga_data + ga.ga_len) = *tail++; -+ ++ga.ga_len; -+ continue; -+ } -+ zero_width = regmatch.startp[0]; -+ } -+ - /* - * Get some space for a temporary buffer to do the substitution - * into. It will contain: -*************** -*** 24404,24420 **** - (void)vim_regsub(®match, sub, (char_u *)ga.ga_data - + ga.ga_len + i, TRUE, TRUE, FALSE); - ga.ga_len += i + sublen - 1; -- zero_width = (tail == regmatch.endp[0] -- || regmatch.startp[0] == regmatch.endp[0]); - tail = regmatch.endp[0]; - if (*tail == NUL) - break; -- if (zero_width) -- { -- /* avoid getting stuck on a match with an empty string */ -- *((char_u *)ga.ga_data + ga.ga_len) = *tail++; -- ++ga.ga_len; -- } - if (!do_all) - break; - } ---- 24417,24425 ---- -*** ../vim-7.4.157/src/testdir/test80.in 2013-09-29 21:11:00.000000000 +0200 ---- src/testdir/test80.in 2014-01-23 19:24:30.487795084 +0100 -*************** -*** 176,181 **** ---- 176,198 ---- - TEST_10: - - STARTTEST -+ :set magic& -+ :set cpo& -+ :$put =\"\n\nTEST_10:\" -+ :let y = substitute('123', '\zs', 'a', 'g') | $put =y -+ :let y = substitute('123', '\zs.', 'a', 'g') | $put =y -+ :let y = substitute('123', '.\zs', 'a', 'g') | $put =y -+ :let y = substitute('123', '\ze', 'a', 'g') | $put =y -+ :let y = substitute('123', '\ze.', 'a', 'g') | $put =y -+ :let y = substitute('123', '.\ze', 'a', 'g') | $put =y -+ :let y = substitute('123', '1\|\ze', 'a', 'g') | $put =y -+ :let y = substitute('123', '1\zs\|[23]', 'a', 'g') | $put =y -+ /^TEST_11 -+ ENDTEST -+ -+ TEST_11: -+ -+ STARTTEST - :/^Results/,$wq! test.out - ENDTEST - -*** ../vim-7.4.157/src/testdir/test80.ok 2013-09-29 21:11:00.000000000 +0200 ---- src/testdir/test80.ok 2014-01-23 19:24:35.691795227 +0100 -*************** -*** 115,117 **** ---- 115,128 ---- - - TEST_9: - XXx -+ -+ -+ TEST_10: -+ a1a2a3a -+ aaa -+ 1a2a3a -+ a1a2a3a -+ a1a2a3 -+ aaa -+ aa2a3a -+ 1aaa -*** ../vim-7.4.157/src/version.c 2014-01-23 18:12:44.695676751 +0100 ---- src/version.c 2014-01-23 19:27:21.611799787 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 158, - /**/ - --- -$ echo pizza > /dev/oven - - /// 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 /// diff --git a/7.4.159 b/7.4.159 deleted file mode 100644 index be89abeb..00000000 --- a/7.4.159 +++ /dev/null @@ -1,116 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.159 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.159 -Problem: Completion hangs when scanning the current buffer after doing - keywords. (Christian Brabandt) -Solution: Set the first match position when starting to scan the current - buffer. -Files: src/edit.c - - -*** ../vim-7.4.158/src/edit.c 2014-01-14 12:16:57.000000000 +0100 ---- src/edit.c 2014-01-23 22:42:20.964121311 +0100 -*************** -*** 4180,4185 **** ---- 4180,4186 ---- - char_u *dict = NULL; - int dict_f = 0; - compl_T *old_match; -+ int set_match_pos; - - if (!compl_started) - { -*************** -*** 4198,4203 **** ---- 4199,4205 ---- - for (;;) - { - found_new_match = FAIL; -+ set_match_pos = FALSE; - - /* For ^N/^P pick a new entry from e_cpt if compl_started is off, - * or if found_all says this entry is done. For ^X^L only use the -*************** -*** 4217,4222 **** ---- 4219,4228 ---- - dec(&first_match_pos); - last_match_pos = first_match_pos; - type = 0; -+ -+ /* Remember the first match so that the loop stops when we -+ * wrap and come back there a second time. */ -+ set_match_pos = TRUE; - } - else if (vim_strchr((char_u *)"buwU", *e_cpt) != NULL - && (ins_buf = ins_compl_next_buf(ins_buf, *e_cpt)) != curbuf) -*************** -*** 4381,4387 **** - if (ins_buf->b_p_inf) - p_scs = FALSE; - -! /* buffers other than curbuf are scanned from the beginning or the - * end but never from the middle, thus setting nowrapscan in this - * buffers is a good idea, on the other hand, we always set - * wrapscan for curbuf to avoid missing matches -- Acevedo,Webb */ ---- 4387,4393 ---- - if (ins_buf->b_p_inf) - p_scs = FALSE; - -! /* Buffers other than curbuf are scanned from the beginning or the - * end but never from the middle, thus setting nowrapscan in this - * buffers is a good idea, on the other hand, we always set - * wrapscan for curbuf to avoid missing matches -- Acevedo,Webb */ -*************** -*** 4408,4419 **** - compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, - RE_LAST, (linenr_T)0, NULL); - --msg_silent; -! if (!compl_started) - { - /* set "compl_started" even on fail */ - compl_started = TRUE; - first_match_pos = *pos; - last_match_pos = *pos; - } - else if (first_match_pos.lnum == last_match_pos.lnum - && first_match_pos.col == last_match_pos.col) ---- 4414,4426 ---- - compl_pattern, 1L, SEARCH_KEEP + SEARCH_NFMSG, - RE_LAST, (linenr_T)0, NULL); - --msg_silent; -! if (!compl_started || set_match_pos) - { - /* set "compl_started" even on fail */ - compl_started = TRUE; - first_match_pos = *pos; - last_match_pos = *pos; -+ set_match_pos = FALSE; - } - else if (first_match_pos.lnum == last_match_pos.lnum - && first_match_pos.col == last_match_pos.col) -*** ../vim-7.4.158/src/version.c 2014-01-23 20:09:29.523869260 +0100 ---- src/version.c 2014-01-23 22:44:40.908125157 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 159, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -205. You're constantly yelling at your spouse, family, roommate, whatever, - for using the phone for stupid things...like talking. - - /// 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 /// diff --git a/7.4.160 b/7.4.160 deleted file mode 100644 index 41b0043e..00000000 --- a/7.4.160 +++ /dev/null @@ -1,66 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.160 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.160 -Problem: Win32: Crash when executing external command. -Solution: Only close the handle when it was created. (Yasuhiro Matsumoto) -Files: src/os_win32.c - - -*** ../vim-7.4.159/src/os_win32.c 2014-01-12 13:24:46.000000000 +0100 ---- src/os_win32.c 2014-01-24 19:54:35.778219160 +0100 -*************** -*** 4627,4632 **** ---- 4627,4633 ---- - DWORD flags = CREATE_NEW_CONSOLE; - char_u *p; - -+ ZeroMemory(&si, sizeof(si)); - si.cb = sizeof(si); - si.lpReserved = NULL; - si.lpDesktop = NULL; -*************** -*** 4723,4731 **** - if (newcmd != cmdbase) - vim_free(newcmd); - -! if (si.hStdInput != NULL) - { -! /* Close the handle to \\.\NUL */ - CloseHandle(si.hStdInput); - } - /* Close the handles to the subprocess, so that it goes away */ ---- 4724,4732 ---- - if (newcmd != cmdbase) - vim_free(newcmd); - -! if (si.dwFlags == STARTF_USESTDHANDLES && si.hStdInput != NULL) - { -! /* Close the handle to \\.\NUL created above. */ - CloseHandle(si.hStdInput); - } - /* Close the handles to the subprocess, so that it goes away */ -*** ../vim-7.4.159/src/version.c 2014-01-23 22:45:54.608127182 +0100 ---- src/version.c 2014-01-24 19:52:46.946216170 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 160, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -209. Your house stinks because you haven't cleaned it in a week. - - /// 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 /// diff --git a/7.4.161 b/7.4.161 deleted file mode 100644 index 0487264c..00000000 --- a/7.4.161 +++ /dev/null @@ -1,75 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.161 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.161 -Problem: Crash in Python exception handling. -Solution: Only use exception variables if did_throw is set. (ZyX) -Files: if_py_both.h - - -*** ../vim-7.4.160/src/if_py_both.h 2014-01-14 19:35:49.000000000 +0100 ---- src/if_py_both.h 2014-01-31 14:46:20.455526607 +0100 -*************** -*** 564,573 **** - /* Keyboard interrupt should be preferred over anything else */ - if (got_int) - { -! if (current_exception != NULL) - discard_current_exception(); -- else -- need_rethrow = did_throw = FALSE; - got_int = FALSE; - PyErr_SetNone(PyExc_KeyboardInterrupt); - return -1; ---- 564,571 ---- - /* Keyboard interrupt should be preferred over anything else */ - if (got_int) - { -! if (did_throw) - discard_current_exception(); - got_int = FALSE; - PyErr_SetNone(PyExc_KeyboardInterrupt); - return -1; -*************** -*** 599,608 **** - /* Python exception is preferred over vim one; unlikely to occur though */ - else if (PyErr_Occurred()) - { -! if (current_exception != NULL) -! discard_current_exception(); -! else -! need_rethrow = did_throw = FALSE; - return -1; - } - /* Finally transform VimL exception to python one */ ---- 597,603 ---- - /* Python exception is preferred over vim one; unlikely to occur though */ - else if (PyErr_Occurred()) - { -! discard_current_exception(); - return -1; - } - /* Finally transform VimL exception to python one */ -*** ../vim-7.4.160/src/version.c 2014-01-24 19:55:33.078220735 +0100 ---- src/version.c 2014-01-31 14:46:39.127526894 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 161, - /**/ - --- -Eagles may soar, but weasels don't get sucked into jet engines. - - /// 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 /// diff --git a/7.4.162 b/7.4.162 deleted file mode 100644 index 0687e882..00000000 --- a/7.4.162 +++ /dev/null @@ -1,45 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.162 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.162 -Problem: Running tests in shadow dir doesn't work. -Solution: Add testdir/sautest to the shadow target. (James McCoy) -Files: src/Makefile - - -*** ../vim-7.4.161/src/Makefile 2013-11-07 03:25:51.000000000 +0100 ---- src/Makefile 2014-02-05 12:34:00.214024436 +0100 -*************** -*** 2381,2386 **** ---- 2381,2387 ---- - ../../testdir/*.in \ - ../../testdir/*.vim \ - ../../testdir/python* \ -+ ../../testdir/sautest \ - ../../testdir/test83-tags? \ - ../../testdir/*.ok . - -*** ../vim-7.4.161/src/version.c 2014-01-31 14:53:59.715533645 +0100 ---- src/version.c 2014-02-05 12:34:19.766024736 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 162, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -263. You have more e-mail addresses than shorts. - - /// 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 /// diff --git a/7.4.163 b/7.4.163 deleted file mode 100644 index b04e91d7..00000000 --- a/7.4.163 +++ /dev/null @@ -1,75 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.163 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.163 (after 7.4.142) -Problem: MS-Windows input doesn't work properly on Windows 7 and earlier. -Solution: Add a check for Windows 8. (Yasuhiro Matsumoto) -Files: src/os_win32.c - - -*** ../vim-7.4.162/src/os_win32.c 2014-01-24 19:55:33.078220735 +0100 ---- src/os_win32.c 2014-02-05 13:33:03.758078734 +0100 -*************** -*** 232,237 **** ---- 232,239 ---- - - static char_u *exe_path = NULL; - -+ static BOOL win8_or_later = FALSE; -+ - /* - * Version of ReadConsoleInput() that works with IME. - * Works around problems on Windows 8. -*************** -*** 252,257 **** ---- 254,266 ---- - static DWORD s_dwMax = 0; - DWORD dwEvents; - -+ if (!win8_or_later) -+ { -+ if (nLength == -1) -+ return PeekConsoleInput(hInput, lpBuffer, 1, lpEvents); -+ return ReadConsoleInput(hInput, lpBuffer, 1, &dwEvents); -+ } -+ - if (s_dwMax == 0) - { - if (nLength == -1) -*************** -*** 617,622 **** ---- 626,635 ---- - - g_PlatformId = ovi.dwPlatformId; - -+ if ((ovi.dwMajorVersion == 6 && ovi.dwMinorVersion >= 2) -+ || ovi.dwMajorVersion > 6) -+ win8_or_later = TRUE; -+ - #ifdef HAVE_ACL - /* - * Load the ADVAPI runtime if we are on anything -*** ../vim-7.4.162/src/version.c 2014-02-05 12:36:36.622026833 +0100 ---- src/version.c 2014-02-05 13:31:31.618077322 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 163, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -266. You hear most of your jokes via e-mail instead of in person. - - /// 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 /// diff --git a/7.4.164 b/7.4.164 deleted file mode 100644 index b35debad..00000000 --- a/7.4.164 +++ /dev/null @@ -1,78 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.164 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.164 (after 7.4.163) -Problem: Problem with event handling on Windows 8. -Solution: Ignore duplicate WINDOW_BUFFER_SIZE_EVENTs. (Nobuhiro Takasaki) -Files: src/os_win32.c - - -*** ../vim-7.4.163/src/os_win32.c 2014-02-05 13:36:50.846082213 +0100 ---- src/os_win32.c 2014-02-05 14:01:13.350104623 +0100 -*************** -*** 253,258 **** ---- 253,261 ---- - static DWORD s_dwIndex = 0; - static DWORD s_dwMax = 0; - DWORD dwEvents; -+ int head; -+ int tail; -+ int i; - - if (!win8_or_later) - { -*************** -*** 274,280 **** ---- 277,305 ---- - *lpEvents = 0; - return TRUE; - } -+ -+ if (s_dwMax > 1) -+ { -+ head = 0; -+ tail = s_dwMax - 1; -+ while (head != tail) -+ { -+ if (s_irCache[head].EventType == WINDOW_BUFFER_SIZE_EVENT -+ && s_irCache[head + 1].EventType -+ == WINDOW_BUFFER_SIZE_EVENT) -+ { -+ /* Remove duplicate event to avoid flicker. */ -+ for (i = head; i < tail; ++i) -+ s_irCache[i] = s_irCache[i + 1]; -+ --tail; -+ continue; -+ } -+ head++; -+ } -+ s_dwMax = tail + 1; -+ } - } -+ - *lpBuffer = s_irCache[s_dwIndex]; - if (nLength != -1 && ++s_dwIndex >= s_dwMax) - s_dwMax = 0; -*** ../vim-7.4.163/src/version.c 2014-02-05 13:36:50.850082213 +0100 ---- src/version.c 2014-02-05 13:54:15.570098222 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 164, - /**/ - --- -XML is a nice language for computers. Not for humans. - - /// 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 /// diff --git a/7.4.165 b/7.4.165 deleted file mode 100644 index ab42f730..00000000 --- a/7.4.165 +++ /dev/null @@ -1,71 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.165 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.165 -Problem: By default, after closing a buffer changes can't be undone. -Solution: In the example vimrc file set 'undofile'. -Files: runtime/vimrc_example.vim - - -*** ../vim-7.4.164/runtime/vimrc_example.vim 2011-04-15 20:58:36.000000000 +0200 ---- runtime/vimrc_example.vim 2014-02-05 21:59:40.534544501 +0100 -*************** -*** 1,7 **** - " An example for a vimrc file. - " - " Maintainer: Bram Moolenaar -! " Last change: 2011 Apr 15 - " - " To use it, copy it to - " for Unix and OS/2: ~/.vimrc ---- 1,7 ---- - " An example for a vimrc file. - " - " Maintainer: Bram Moolenaar -! " Last change: 2014 Feb 05 - " - " To use it, copy it to - " for Unix and OS/2: ~/.vimrc -*************** -*** 24,30 **** - if has("vms") - set nobackup " do not keep a backup file, use versions instead - else -! set backup " keep a backup file - endif - set history=50 " keep 50 lines of command line history - set ruler " show the cursor position all the time ---- 24,31 ---- - if has("vms") - set nobackup " do not keep a backup file, use versions instead - else -! set backup " keep a backup file (restore to previous version) -! set undofile " keep an undo file (undo changes after closing) - endif - set history=50 " keep 50 lines of command line history - set ruler " show the cursor position all the time -*** ../vim-7.4.164/src/version.c 2014-02-05 14:02:23.590105699 +0100 ---- src/version.c 2014-02-05 21:59:47.774544612 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 165, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -269. You wonder how you can make your dustbin produce Sesame Street's - Oscar's the Garbage Monster song when you empty it. - - /// 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 /// diff --git a/7.4.166 b/7.4.166 deleted file mode 100644 index 16f51b42..00000000 --- a/7.4.166 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.166 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.166 -Problem: Auto-loading a function for code that won't be executed. -Solution: Do not auto-load when evaluation is off. (Yasuhiro Matsumoto) -Files: src/eval.c - - -*** ../vim-7.4.165/src/eval.c 2014-01-23 20:09:29.523869260 +0100 ---- src/eval.c 2014-02-05 22:04:21.110548800 +0100 -*************** -*** 5159,5165 **** - { - /* If "s" is the name of a variable of type VAR_FUNC - * use its contents. */ -! s = deref_func_name(s, &len, FALSE); - - /* Invoke the function. */ - ret = get_func_tv(s, len, rettv, arg, ---- 5159,5165 ---- - { - /* If "s" is the name of a variable of type VAR_FUNC - * use its contents. */ -! s = deref_func_name(s, &len, !evaluate); - - /* Invoke the function. */ - ret = get_func_tv(s, len, rettv, arg, -*** ../vim-7.4.165/src/version.c 2014-02-05 22:01:56.690546587 +0100 ---- src/version.c 2014-02-05 22:06:18.610550600 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 166, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -270. You are subscribed to a mailing list for every piece of software - you use. - - /// 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 /// diff --git a/7.4.167 b/7.4.167 deleted file mode 100644 index c3ad0740..00000000 --- a/7.4.167 +++ /dev/null @@ -1,195 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.167 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.167 (after 7.4.149) -Problem: Fixes are not tested. -Solution: Add a test for not autoloading on assignment. (Yukihiro Nakadaira) -Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, - src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, - src/testdir/Make_vms.mms, src/testdir/Makefile, - src/testdir/sautest/autoload/Test104.vim, src/testdir/test104.in, - src/testdir/test104.ok - - -*** ../vim-7.4.166/src/testdir/Make_amiga.mak 2013-11-21 14:21:25.000000000 +0100 ---- src/testdir/Make_amiga.mak 2014-02-05 22:16:46.654560224 +0100 -*************** -*** 34,40 **** - 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 test100.out test101.out test102.out test103.out - - .SUFFIXES: .in .out - ---- 34,41 ---- - 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 test100.out test101.out test102.out test103.out \ -! test104.out - - .SUFFIXES: .in .out - -*************** -*** 154,156 **** ---- 155,158 ---- - test101.out: test101.in - test102.out: test102.in - test103.out: test103.in -+ test104.out: test104.in -*** ../vim-7.4.166/src/testdir/Make_dos.mak 2013-11-21 14:21:25.000000000 +0100 ---- src/testdir/Make_dos.mak 2014-02-05 22:16:46.654560224 +0100 -*************** -*** 33,39 **** - 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 \ -! test100.out test101.out test102.out test103.out - - SCRIPTS32 = test50.out test70.out - ---- 33,39 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.166/src/testdir/Make_ming.mak 2014-01-06 15:51:46.000000000 +0100 ---- src/testdir/Make_ming.mak 2014-02-05 22:16:46.654560224 +0100 -*************** -*** 53,59 **** - 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 \ -! test100.out test101.out test102.out test103.out - - SCRIPTS32 = test50.out test70.out - ---- 53,59 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.166/src/testdir/Make_os2.mak 2013-11-21 14:21:25.000000000 +0100 ---- src/testdir/Make_os2.mak 2014-02-05 22:16:46.654560224 +0100 -*************** -*** 35,41 **** - 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 \ -! test100.out test101.out test102.out test103.out - - .SUFFIXES: .in .out - ---- 35,41 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.166/src/testdir/Make_vms.mms 2013-11-21 14:21:25.000000000 +0100 ---- src/testdir/Make_vms.mms 2014-02-05 22:16:46.658560224 +0100 -*************** -*** 79,85 **** - 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 \ -! test100.out test101.out test102.out test103.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 79,85 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.166/src/testdir/Makefile 2013-11-21 14:21:25.000000000 +0100 ---- src/testdir/Makefile 2014-02-05 22:16:46.658560224 +0100 -*************** -*** 30,36 **** - 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 test100.out test101.out test102.out test103.out - - SCRIPTS_GUI = test16.out - ---- 30,37 ---- - 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 test100.out test101.out test102.out test103.out \ -! test104.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.166/src/testdir/sautest/autoload/Test104.vim 2014-02-05 22:25:12.050567968 +0100 ---- src/testdir/sautest/autoload/Test104.vim 2014-02-05 22:16:46.658560224 +0100 -*************** -*** 0 **** ---- 1 ---- -+ let Test104#numvar = 123 -*** ../vim-7.4.166/src/testdir/test104.in 2014-02-05 22:25:12.062567968 +0100 ---- src/testdir/test104.in 2014-02-05 22:24:07.706566982 +0100 -*************** -*** 0 **** ---- 1,16 ---- -+ Tests for autoload. vim: set ft=vim ts=8 : -+ -+ STARTTEST -+ :so small.vim -+ :set runtimepath+=./sautest -+ :" Test to not autoload when assigning. It causes internal error. -+ :try -+ : let Test104#numvar = function('tr') -+ : $put ='OK: ' . string(Test104#numvar) -+ :catch -+ : $put ='FAIL: ' . v:exception -+ :endtry -+ :/^Results/,$wq! test.out -+ ENDTEST -+ -+ Results of test104: -*** ../vim-7.4.166/src/testdir/test104.ok 2014-02-05 22:25:12.070567968 +0100 ---- src/testdir/test104.ok 2014-02-05 22:16:46.658560224 +0100 -*************** -*** 0 **** ---- 1,2 ---- -+ Results of test104: -+ OK: function('tr') -*** ../vim-7.4.166/src/version.c 2014-02-05 22:13:02.366556787 +0100 ---- src/version.c 2014-02-05 22:18:05.506561432 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 167, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -271. You collect hilarious signatures from all 250 mailing lists you - are subscribed to. - - /// 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 /// diff --git a/7.4.168 b/7.4.168 deleted file mode 100644 index ac57dc49..00000000 --- a/7.4.168 +++ /dev/null @@ -1,91 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.168 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.168 -Problem: Can't compile with Ruby 2.1.0. -Solution: Add support for new GC. (Kohei Suzuki) -Files: src/if_ruby.c - - -*** ../vim-7.4.167/src/if_ruby.c 2013-05-20 12:47:48.000000000 +0200 ---- src/if_ruby.c 2014-02-05 22:35:17.378577243 +0100 -*************** -*** 96,101 **** ---- 96,107 ---- - # define rb_num2int rb_num2int_stub - #endif - -+ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 21 -+ /* Ruby 2.1 adds new GC called RGenGC and RARRAY_PTR uses -+ * rb_gc_writebarrier_unprotect_promoted if USE_RGENGC */ -+ # define rb_gc_writebarrier_unprotect_promoted rb_gc_writebarrier_unprotect_promoted_stub -+ # endif -+ - #include - #ifdef RUBY19_OR_LATER - # include -*************** -*** 373,378 **** ---- 379,388 ---- - static void* (*ruby_process_options)(int, char**); - # endif - -+ # if defined(USE_RGENGC) && USE_RGENGC -+ static void (*dll_rb_gc_writebarrier_unprotect_promoted)(VALUE); -+ # endif -+ - # if defined(RUBY19_OR_LATER) && !defined(PROTO) - SIGNED_VALUE rb_num2long_stub(VALUE x) - { -*************** -*** 406,411 **** ---- 416,428 ---- - # endif - # endif - -+ # if defined(USE_RGENGC) && USE_RGENGC -+ void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj) -+ { -+ return dll_rb_gc_writebarrier_unprotect_promoted(obj); -+ } -+ # endif -+ - static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */ - - /* -*************** -*** 521,526 **** ---- 538,546 ---- - # endif - {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, - # endif -+ # if defined(USE_RGENGC) && USE_RGENGC -+ {"rb_gc_writebarrier_unprotect_promoted", (RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect_promoted}, -+ # endif - {"", NULL}, - }; - -*** ../vim-7.4.167/src/version.c 2014-02-05 22:25:29.982568243 +0100 ---- src/version.c 2014-02-05 22:36:14.010578111 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 168, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -10E. You start counting in hex. - - /// 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 /// diff --git a/7.4.169 b/7.4.169 deleted file mode 100644 index bfb4c16f..00000000 --- a/7.4.169 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.169 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.169 -Problem: ":sleep" puts cursor in the wrong column. (Liang Li) -Solution: Add the window offset. (Christian Brabandt) -Files: src/ex_docmd.c - - -*** ../vim-7.4.168/src/ex_docmd.c 2014-01-10 15:53:09.000000000 +0100 ---- src/ex_docmd.c 2014-02-05 22:45:39.318586773 +0100 -*************** -*** 8371,8377 **** - { - n = W_WINROW(curwin) + curwin->w_wrow - msg_scrolled; - if (n >= 0) -! windgoto((int)n, curwin->w_wcol); - } - - len = eap->line2; ---- 8371,8377 ---- - { - n = W_WINROW(curwin) + curwin->w_wrow - msg_scrolled; - if (n >= 0) -! windgoto((int)n, W_WINCOL(curwin) + curwin->w_wcol); - } - - len = eap->line2; -*** ../vim-7.4.168/src/version.c 2014-02-05 22:41:11.430582669 +0100 ---- src/version.c 2014-02-05 22:44:51.458586040 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 169, - /**/ - --- -ARTHUR: This new learning amazes me, Sir Bedevere. Explain again how sheep's - bladders may be employed to prevent earthquakes. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.170 b/7.4.170 deleted file mode 100644 index 17de640b..00000000 --- a/7.4.170 +++ /dev/null @@ -1,90 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.170 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.170 -Problem: Some help tags don't work with ":help". (Tim Chase) -Solution: Add exceptions. -Files: src/ex_cmds.c - - -*** ../vim-7.4.169/src/ex_cmds.c 2013-11-09 03:31:45.000000000 +0100 ---- src/ex_cmds.c 2014-02-11 12:10:43.905946437 +0100 -*************** -*** 5936,5949 **** - "?", ":?", "?", "g?", "g?g?", "g??", "z?", - "/\\?", "/\\z(\\)", "\\=", ":s\\=", - "[count]", "[quotex]", "[range]", -! "[pattern]", "\\|", "\\%$"}; - static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star", - "/star", "/\\\\star", "quotestar", "starstar", - "cpo-star", "/\\\\(\\\\)", "/\\\\%(\\\\)", - "?", ":?", "?", "g?", "g?g?", "g??", "z?", - "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", - "\\[count]", "\\[quotex]", "\\[range]", -! "\\[pattern]", "\\\\bar", "/\\\\%\\$"}; - int flags; - - d = IObuff; /* assume IObuff is long enough! */ ---- 5936,5953 ---- - "?", ":?", "?", "g?", "g?g?", "g??", "z?", - "/\\?", "/\\z(\\)", "\\=", ":s\\=", - "[count]", "[quotex]", "[range]", -! "[pattern]", "\\|", "\\%$", -! "s/\\~", "s/\\U", "s/\\L", -! "s/\\1", "s/\\2", "s/\\3", "s/\\9"}; - static char *(rtable[]) = {"star", "gstar", "[star", "]star", ":star", - "/star", "/\\\\star", "quotestar", "starstar", - "cpo-star", "/\\\\(\\\\)", "/\\\\%(\\\\)", - "?", ":?", "?", "g?", "g?g?", "g??", "z?", - "/\\\\?", "/\\\\z(\\\\)", "\\\\=", ":s\\\\=", - "\\[count]", "\\[quotex]", "\\[range]", -! "\\[pattern]", "\\\\bar", "/\\\\%\\$", -! "s/\\\\\\~", "s/\\\\U", "s/\\\\L", -! "s/\\\\1", "s/\\\\2", "s/\\\\3", "s/\\\\9"}; - int flags; - - d = IObuff; /* assume IObuff is long enough! */ -*************** -*** 5982,5988 **** - /* Replace: - * "[:...:]" with "\[:...:]" - * "[++...]" with "\[++...]" -! * "\{" with "\\{" - */ - if ((arg[0] == '[' && (arg[1] == ':' - || (arg[1] == '+' && arg[2] == '+'))) ---- 5986,5992 ---- - /* Replace: - * "[:...:]" with "\[:...:]" - * "[++...]" with "\[++...]" -! * "\{" with "\\{" -- matching "} \}" - */ - if ((arg[0] == '[' && (arg[1] == ':' - || (arg[1] == '+' && arg[2] == '+'))) -*** ../vim-7.4.169/src/version.c 2014-02-05 22:46:49.062587842 +0100 ---- src/version.c 2014-02-11 11:41:50.433919875 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 170, - /**/ - --- - GALAHAD turns back. We see from his POV the lovely ZOOT standing by him - smiling enchantingly and a number of equally delectable GIRLIES draped - around in the seductively poulticed room. They look at him smilingly and - wave. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.171 b/7.4.171 deleted file mode 100644 index cfd39069..00000000 --- a/7.4.171 +++ /dev/null @@ -1,841 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.171 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.171 -Problem: Redo does not set v:count and v:count1. -Solution: Use a separate buffer for redo, so that we can set the counts when - performing redo. -Files: src/getchar.c, src/globals.h, src/normal.c, src/proto/getchar.pro, - src/structs.h - - -*** ../vim-7.4.170/src/getchar.c 2013-06-29 13:43:27.000000000 +0200 ---- src/getchar.c 2014-02-11 14:54:46.830097259 +0100 -*************** -*** 40,52 **** - - #define MINIMAL_SIZE 20 /* minimal size for b_str */ - -! static struct buffheader redobuff = {{NULL, {NUL}}, NULL, 0, 0}; -! static struct buffheader old_redobuff = {{NULL, {NUL}}, NULL, 0, 0}; - #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO) -! static struct buffheader save_redobuff = {{NULL, {NUL}}, NULL, 0, 0}; -! static struct buffheader save_old_redobuff = {{NULL, {NUL}}, NULL, 0, 0}; - #endif -! static struct buffheader recordbuff = {{NULL, {NUL}}, NULL, 0, 0}; - - static int typeahead_char = 0; /* typeahead char that's not flushed */ - ---- 40,52 ---- - - #define MINIMAL_SIZE 20 /* minimal size for b_str */ - -! static buffheader_T redobuff = {{NULL, {NUL}}, NULL, 0, 0}; -! static buffheader_T old_redobuff = {{NULL, {NUL}}, NULL, 0, 0}; - #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO) -! static buffheader_T save_redobuff = {{NULL, {NUL}}, NULL, 0, 0}; -! static buffheader_T save_old_redobuff = {{NULL, {NUL}}, NULL, 0, 0}; - #endif -! static buffheader_T recordbuff = {{NULL, {NUL}}, NULL, 0, 0}; - - static int typeahead_char = 0; /* typeahead char that's not flushed */ - -*************** -*** 112,122 **** - - static int last_recorded_len = 0; /* number of last recorded chars */ - -! static char_u *get_buffcont __ARGS((struct buffheader *, int)); -! static void add_buff __ARGS((struct buffheader *, char_u *, long n)); -! static void add_num_buff __ARGS((struct buffheader *, long)); -! static void add_char_buff __ARGS((struct buffheader *, int)); -! static int read_stuff __ARGS((int advance)); - static void start_stuff __ARGS((void)); - static int read_redo __ARGS((int, int)); - static void copy_redo __ARGS((int)); ---- 112,123 ---- - - static int last_recorded_len = 0; /* number of last recorded chars */ - -! static char_u *get_buffcont __ARGS((buffheader_T *, int)); -! static void add_buff __ARGS((buffheader_T *, char_u *, long n)); -! static void add_num_buff __ARGS((buffheader_T *, long)); -! static void add_char_buff __ARGS((buffheader_T *, int)); -! static int read_readbuffers __ARGS((int advance)); -! static int read_readbuf __ARGS((buffheader_T *buf, int advance)); - static void start_stuff __ARGS((void)); - static int read_redo __ARGS((int, int)); - static void copy_redo __ARGS((int)); -*************** -*** 137,145 **** - */ - void - free_buff(buf) -! struct buffheader *buf; - { -! struct buffblock *p, *np; - - for (p = buf->bh_first.b_next; p != NULL; p = np) - { ---- 138,146 ---- - */ - void - free_buff(buf) -! buffheader_T *buf; - { -! buffblock_T *p, *np; - - for (p = buf->bh_first.b_next; p != NULL; p = np) - { -*************** -*** 155,168 **** - */ - static char_u * - get_buffcont(buffer, dozero) -! struct buffheader *buffer; - int dozero; /* count == zero is not an error */ - { - long_u count = 0; - char_u *p = NULL; - char_u *p2; - char_u *str; -! struct buffblock *bp; - - /* compute the total length of the string */ - for (bp = buffer->bh_first.b_next; bp != NULL; bp = bp->b_next) ---- 156,169 ---- - */ - static char_u * - get_buffcont(buffer, dozero) -! buffheader_T *buffer; - int dozero; /* count == zero is not an error */ - { - long_u count = 0; - char_u *p = NULL; - char_u *p2; - char_u *str; -! buffblock_T *bp; - - /* compute the total length of the string */ - for (bp = buffer->bh_first.b_next; bp != NULL; bp = bp->b_next) -*************** -*** 230,240 **** - */ - static void - add_buff(buf, s, slen) -! struct buffheader *buf; - char_u *s; - long slen; /* length of "s" or -1 */ - { -! struct buffblock *p; - long_u len; - - if (slen < 0) ---- 231,241 ---- - */ - static void - add_buff(buf, s, slen) -! buffheader_T *buf; - char_u *s; - long slen; /* length of "s" or -1 */ - { -! buffblock_T *p; - long_u len; - - if (slen < 0) -*************** -*** 270,276 **** - len = MINIMAL_SIZE; - else - len = slen; -! p = (struct buffblock *)lalloc((long_u)(sizeof(struct buffblock) + len), - TRUE); - if (p == NULL) - return; /* no space, just forget it */ ---- 271,277 ---- - len = MINIMAL_SIZE; - else - len = slen; -! p = (buffblock_T *)lalloc((long_u)(sizeof(buffblock_T) + len), - TRUE); - if (p == NULL) - return; /* no space, just forget it */ -*************** -*** 289,295 **** - */ - static void - add_num_buff(buf, n) -! struct buffheader *buf; - long n; - { - char_u number[32]; ---- 290,296 ---- - */ - static void - add_num_buff(buf, n) -! buffheader_T *buf; - long n; - { - char_u number[32]; -*************** -*** 304,310 **** - */ - static void - add_char_buff(buf, c) -! struct buffheader *buf; - int c; - { - #ifdef FEAT_MBYTE ---- 305,311 ---- - */ - static void - add_char_buff(buf, c) -! buffheader_T *buf; - int c; - { - #ifdef FEAT_MBYTE -*************** -*** 354,399 **** - #endif - } - - /* -! * Get one byte from the stuff buffer. - * If advance == TRUE go to the next char. - * No translation is done K_SPECIAL and CSI are escaped. - */ - static int -! read_stuff(advance) - int advance; - { -! char_u c; -! struct buffblock *curr; - -! if (stuffbuff.bh_first.b_next == NULL) /* buffer is empty */ - return NUL; - -! curr = stuffbuff.bh_first.b_next; -! c = curr->b_str[stuffbuff.bh_index]; - - if (advance) - { -! if (curr->b_str[++stuffbuff.bh_index] == NUL) - { -! stuffbuff.bh_first.b_next = curr->b_next; - vim_free(curr); -! stuffbuff.bh_index = 0; - } - } - return c; - } - - /* -! * Prepare the stuff buffer for reading (if it contains something). - */ - static void - start_stuff() - { -! if (stuffbuff.bh_first.b_next != NULL) - { -! stuffbuff.bh_curr = &(stuffbuff.bh_first); -! stuffbuff.bh_space = 0; - } - } - ---- 355,425 ---- - #endif - } - -+ /* First read ahead buffer. Used for translated commands. */ -+ static buffheader_T readbuf1 = {{NULL, {NUL}}, NULL, 0, 0}; -+ -+ /* Second read ahead buffer. Used for redo. */ -+ static buffheader_T readbuf2 = {{NULL, {NUL}}, NULL, 0, 0}; -+ - /* -! * Get one byte from the read buffers. Use readbuf1 one first, use readbuf2 -! * if that one is empty. - * If advance == TRUE go to the next char. - * No translation is done K_SPECIAL and CSI are escaped. - */ - static int -! read_readbuffers(advance) - int advance; - { -! int c; -! -! c = read_readbuf(&readbuf1, advance); -! if (c == NUL) -! c = read_readbuf(&readbuf2, advance); -! return c; -! } -! -! static int -! read_readbuf(buf, advance) -! buffheader_T *buf; -! int advance; -! { -! char_u c; -! buffblock_T *curr; - -! if (buf->bh_first.b_next == NULL) /* buffer is empty */ - return NUL; - -! curr = buf->bh_first.b_next; -! c = curr->b_str[buf->bh_index]; - - if (advance) - { -! if (curr->b_str[++buf->bh_index] == NUL) - { -! buf->bh_first.b_next = curr->b_next; - vim_free(curr); -! buf->bh_index = 0; - } - } - return c; - } - - /* -! * Prepare the read buffers for reading (if they contains something). - */ - static void - start_stuff() - { -! if (readbuf1.bh_first.b_next != NULL) - { -! readbuf1.bh_curr = &(readbuf1.bh_first); -! readbuf1.bh_space = 0; -! } -! if (readbuf2.bh_first.b_next != NULL) -! { -! readbuf2.bh_curr = &(readbuf2.bh_first); -! readbuf2.bh_space = 0; - } - } - -*************** -*** 403,409 **** - int - stuff_empty() - { -! return (stuffbuff.bh_first.b_next == NULL); - } - - /* ---- 429,446 ---- - int - stuff_empty() - { -! return (readbuf1.bh_first.b_next == NULL -! && readbuf2.bh_first.b_next == NULL); -! } -! -! /* -! * Return TRUE if readbuf1 is empty. There may still be redo characters in -! * redbuf2. -! */ -! int -! readbuf1_empty() -! { -! return (readbuf1.bh_first.b_next == NULL); - } - - /* -*************** -*** 428,434 **** - init_typebuf(); - - start_stuff(); -! while (read_stuff(TRUE) != NUL) - ; - - if (flush_typeahead) /* remove all typeahead */ ---- 465,471 ---- - init_typebuf(); - - start_stuff(); -! while (read_readbuffers(TRUE) != NUL) - ; - - if (flush_typeahead) /* remove all typeahead */ -*************** -*** 483,489 **** - redobuff = old_redobuff; - old_redobuff.bh_first.b_next = NULL; - start_stuff(); -! while (read_stuff(TRUE) != NUL) - ; - } - } ---- 520,526 ---- - redobuff = old_redobuff; - old_redobuff.bh_first.b_next = NULL; - start_stuff(); -! while (read_readbuffers(TRUE) != NUL) - ; - } - } -*************** -*** 638,644 **** - stuffReadbuff(s) - char_u *s; - { -! add_buff(&stuffbuff, s, -1L); - } - - void ---- 675,681 ---- - stuffReadbuff(s) - char_u *s; - { -! add_buff(&readbuf1, s, -1L); - } - - void -*************** -*** 646,652 **** - char_u *s; - long len; - { -! add_buff(&stuffbuff, s, len); - } - - #if defined(FEAT_EVAL) || defined(PROTO) ---- 683,689 ---- - char_u *s; - long len; - { -! add_buff(&readbuf1, s, len); - } - - #if defined(FEAT_EVAL) || defined(PROTO) -*************** -*** 692,698 **** - stuffcharReadbuff(c) - int c; - { -! add_char_buff(&stuffbuff, c); - } - - /* ---- 729,735 ---- - stuffcharReadbuff(c) - int c; - { -! add_char_buff(&readbuf1, c); - } - - /* -*************** -*** 702,708 **** - stuffnumReadbuff(n) - long n; - { -! add_num_buff(&stuffbuff, n); - } - - /* ---- 739,745 ---- - stuffnumReadbuff(n) - long n; - { -! add_num_buff(&readbuf1, n); - } - - /* -*************** -*** 718,730 **** - int init; - int old_redo; - { -! static struct buffblock *bp; -! static char_u *p; -! int c; - #ifdef FEAT_MBYTE -! int n; -! char_u buf[MB_MAXBYTES + 1]; -! int i; - #endif - - if (init) ---- 755,767 ---- - int init; - int old_redo; - { -! static buffblock_T *bp; -! static char_u *p; -! int c; - #ifdef FEAT_MBYTE -! int n; -! char_u buf[MB_MAXBYTES + 1]; -! int i; - #endif - - if (init) -*************** -*** 795,805 **** - int c; - - while ((c = read_redo(FALSE, old_redo)) != NUL) -! stuffcharReadbuff(c); - } - - /* -! * Stuff the redo buffer into the stuffbuff. - * Insert the redo count into the command. - * If "old_redo" is TRUE, the last but one command is repeated - * instead of the last command (inserting text). This is used for ---- 832,842 ---- - int c; - - while ((c = read_redo(FALSE, old_redo)) != NUL) -! add_char_buff(&readbuf2, c); - } - - /* -! * Stuff the redo buffer into readbuf2. - * Insert the redo count into the command. - * If "old_redo" is TRUE, the last but one command is repeated - * instead of the last command (inserting text). This is used for -*************** -*** 823,835 **** - /* copy the buffer name, if present */ - if (c == '"') - { -! add_buff(&stuffbuff, (char_u *)"\"", 1L); - c = read_redo(FALSE, old_redo); - - /* if a numbered buffer is used, increment the number */ - if (c >= '1' && c < '9') - ++c; -! add_char_buff(&stuffbuff, c); - c = read_redo(FALSE, old_redo); - } - ---- 860,872 ---- - /* copy the buffer name, if present */ - if (c == '"') - { -! add_buff(&readbuf2, (char_u *)"\"", 1L); - c = read_redo(FALSE, old_redo); - - /* if a numbered buffer is used, increment the number */ - if (c >= '1' && c < '9') - ++c; -! add_char_buff(&readbuf2, c); - c = read_redo(FALSE, old_redo); - } - -*************** -*** 850,867 **** - { - while (VIM_ISDIGIT(c)) /* skip "old" count */ - c = read_redo(FALSE, old_redo); -! add_num_buff(&stuffbuff, count); - } - - /* copy from the redo buffer into the stuff buffer */ -! add_char_buff(&stuffbuff, c); - copy_redo(old_redo); - return OK; - } - - /* - * Repeat the last insert (R, o, O, a, A, i or I command) by stuffing -! * the redo buffer into the stuffbuff. - * return FAIL for failure, OK otherwise - */ - int ---- 887,904 ---- - { - while (VIM_ISDIGIT(c)) /* skip "old" count */ - c = read_redo(FALSE, old_redo); -! add_num_buff(&readbuf2, count); - } - - /* copy from the redo buffer into the stuff buffer */ -! add_char_buff(&readbuf2, c); - copy_redo(old_redo); - return OK; - } - - /* - * Repeat the last insert (R, o, O, a, A, i or I command) by stuffing -! * the redo buffer into readbuf2. - * return FAIL for failure, OK otherwise - */ - int -*************** -*** 879,885 **** - if (vim_strchr((char_u *)"AaIiRrOo", c) != NULL) - { - if (c == 'O' || c == 'o') -! stuffReadbuff(NL_STR); - break; - } - } ---- 916,922 ---- - if (vim_strchr((char_u *)"AaIiRrOo", c) != NULL) - { - if (c == 'O' || c == 'o') -! add_buff(&readbuf2, NL_STR, -1L); - break; - } - } -*************** -*** 1360,1367 **** - tp->old_mod_mask = old_mod_mask; - old_char = -1; - -! tp->save_stuffbuff = stuffbuff; -! stuffbuff.bh_first.b_next = NULL; - # ifdef USE_INPUT_BUF - tp->save_inputbuf = get_input_buf(); - # endif ---- 1397,1406 ---- - tp->old_mod_mask = old_mod_mask; - old_char = -1; - -! tp->save_readbuf1 = readbuf1; -! readbuf1.bh_first.b_next = NULL; -! tp->save_readbuf2 = readbuf2; -! readbuf2.bh_first.b_next = NULL; - # ifdef USE_INPUT_BUF - tp->save_inputbuf = get_input_buf(); - # endif -*************** -*** 1384,1391 **** - old_char = tp->old_char; - old_mod_mask = tp->old_mod_mask; - -! free_buff(&stuffbuff); -! stuffbuff = tp->save_stuffbuff; - # ifdef USE_INPUT_BUF - set_input_buf(tp->save_inputbuf); - # endif ---- 1423,1432 ---- - old_char = tp->old_char; - old_mod_mask = tp->old_mod_mask; - -! free_buff(&readbuf1); -! readbuf1 = tp->save_readbuf1; -! free_buff(&readbuf2); -! readbuf2 = tp->save_readbuf2; - # ifdef USE_INPUT_BUF - set_input_buf(tp->save_inputbuf); - # endif -*************** -*** 1992,1998 **** - typeahead_char = 0; - } - else -! c = read_stuff(advance); - if (c != NUL && !got_int) - { - if (advance) ---- 2033,2039 ---- - typeahead_char = 0; - } - else -! c = read_readbuffers(advance); - if (c != NUL && !got_int) - { - if (advance) -*** ../vim-7.4.170/src/globals.h 2013-11-09 03:31:45.000000000 +0100 ---- src/globals.h 2014-02-11 14:17:44.070063200 +0100 -*************** -*** 979,989 **** - EXTERN int readonlymode INIT(= FALSE); /* Set to TRUE for "view" */ - EXTERN int recoverymode INIT(= FALSE); /* Set to TRUE for "-r" option */ - -- EXTERN struct buffheader stuffbuff /* stuff buffer */ -- #ifdef DO_INIT -- = {{NULL, {NUL}}, NULL, 0, 0} -- #endif -- ; - EXTERN typebuf_T typebuf /* typeahead buffer */ - #ifdef DO_INIT - = {NULL, NULL, 0, 0, 0, 0, 0, 0, 0} ---- 979,984 ---- -*** ../vim-7.4.170/src/normal.c 2014-01-14 13:18:53.000000000 +0100 ---- src/normal.c 2014-02-11 14:53:54.246096453 +0100 -*************** -*** 655,662 **** - #ifdef FEAT_EVAL - /* Set v:count here, when called from main() and not a stuffed - * command, so that v:count can be used in an expression mapping -! * when there is no count. */ -! if (toplevel && stuff_empty()) - set_vcount_ca(&ca, &set_prevcount); - #endif - ---- 655,662 ---- - #ifdef FEAT_EVAL - /* Set v:count here, when called from main() and not a stuffed - * command, so that v:count can be used in an expression mapping -! * when there is no count. Do set it for redo. */ -! if (toplevel && readbuf1_empty()) - set_vcount_ca(&ca, &set_prevcount); - #endif - -*************** -*** 736,743 **** - #ifdef FEAT_EVAL - /* Set v:count here, when called from main() and not a stuffed - * command, so that v:count can be used in an expression mapping -! * right after the count. */ -! if (toplevel && stuff_empty()) - set_vcount_ca(&ca, &set_prevcount); - #endif - if (ctrl_w) ---- 736,743 ---- - #ifdef FEAT_EVAL - /* Set v:count here, when called from main() and not a stuffed - * command, so that v:count can be used in an expression mapping -! * right after the count. Do set it for redo. */ -! if (toplevel && readbuf1_empty()) - set_vcount_ca(&ca, &set_prevcount); - #endif - if (ctrl_w) -*************** -*** 819,826 **** - #ifdef FEAT_EVAL - /* - * Only set v:count when called from main() and not a stuffed command. - */ -! if (toplevel && stuff_empty()) - set_vcount(ca.count0, ca.count1, set_prevcount); - #endif - ---- 819,827 ---- - #ifdef FEAT_EVAL - /* - * Only set v:count when called from main() and not a stuffed command. -+ * Do set it for redo. - */ -! if (toplevel && readbuf1_empty()) - set_vcount(ca.count0, ca.count1, set_prevcount); - #endif - -*** ../vim-7.4.170/src/proto/getchar.pro 2013-08-10 13:37:12.000000000 +0200 ---- src/proto/getchar.pro 2014-02-11 14:55:14.806097687 +0100 -*************** -*** 1,8 **** - /* getchar.c */ -! void free_buff __ARGS((struct buffheader *buf)); - char_u *get_recorded __ARGS((void)); - char_u *get_inserted __ARGS((void)); - int stuff_empty __ARGS((void)); - void typeahead_noflush __ARGS((int c)); - void flush_buffers __ARGS((int flush_typeahead)); - void ResetRedobuff __ARGS((void)); ---- 1,9 ---- - /* getchar.c */ -! void free_buff __ARGS((buffheader_T *buf)); - char_u *get_recorded __ARGS((void)); - char_u *get_inserted __ARGS((void)); - int stuff_empty __ARGS((void)); -+ int readbuf1_empty __ARGS((void)); - void typeahead_noflush __ARGS((int c)); - void flush_buffers __ARGS((int flush_typeahead)); - void ResetRedobuff __ARGS((void)); -*** ../vim-7.4.170/src/structs.h 2013-11-12 04:43:57.000000000 +0100 ---- src/structs.h 2014-02-11 14:35:43.606079741 +0100 -*************** -*** 471,483 **** - blocknr_T nt_new_bnum; /* new, positive, number */ - }; - - /* - * structure used to store one block of the stuff/redo/recording buffers - */ - struct buffblock - { -! struct buffblock *b_next; /* pointer to next buffblock */ -! char_u b_str[1]; /* contents (actually longer) */ - }; - - /* ---- 471,487 ---- - blocknr_T nt_new_bnum; /* new, positive, number */ - }; - -+ -+ typedef struct buffblock buffblock_T; -+ typedef struct buffheader buffheader_T; -+ - /* - * structure used to store one block of the stuff/redo/recording buffers - */ - struct buffblock - { -! buffblock_T *b_next; /* pointer to next buffblock */ -! char_u b_str[1]; /* contents (actually longer) */ - }; - - /* -*************** -*** 485,494 **** - */ - struct buffheader - { -! struct buffblock bh_first; /* first (dummy) block of list */ -! struct buffblock *bh_curr; /* buffblock for appending */ -! int bh_index; /* index for reading */ -! int bh_space; /* space in bh_curr for appending */ - }; - - /* ---- 489,498 ---- - */ - struct buffheader - { -! buffblock_T bh_first; /* first (dummy) block of list */ -! buffblock_T *bh_curr; /* buffblock for appending */ -! int bh_index; /* index for reading */ -! int bh_space; /* space in bh_curr for appending */ - }; - - /* -*************** -*** 964,970 **** - int typebuf_valid; /* TRUE when save_typebuf valid */ - int old_char; - int old_mod_mask; -! struct buffheader save_stuffbuff; - #ifdef USE_INPUT_BUF - char_u *save_inputbuf; - #endif ---- 968,975 ---- - int typebuf_valid; /* TRUE when save_typebuf valid */ - int old_char; - int old_mod_mask; -! buffheader_T save_readbuf1; -! buffheader_T save_readbuf2; - #ifdef USE_INPUT_BUF - char_u *save_inputbuf; - #endif -*** ../vim-7.4.170/src/version.c 2014-02-11 12:15:39.781950970 +0100 ---- src/version.c 2014-02-11 15:05:17.306106920 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 171, - /**/ - --- -Linux is just like a wigwam: no Windows, no Gates and an Apache inside. - - /// 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 /// diff --git a/7.4.172 b/7.4.172 deleted file mode 100644 index 8ad9fca2..00000000 --- a/7.4.172 +++ /dev/null @@ -1,346 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.172 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.172 -Problem: The blowfish code mentions output feedback, but the code is - actually doing cipher feedback. -Solution: Adjust names and comments. -Files: src/blowfish.c, src/fileio.c, src/proto/blowfish.pro, - src/memline.c - - -*** ../vim-7.4.171/src/blowfish.c 2010-12-17 19:58:18.000000000 +0100 ---- src/blowfish.c 2014-02-11 15:18:12.882118804 +0100 -*************** -*** 6,12 **** - * Do ":help credits" in Vim to see a list of people who contributed. - * See README.txt for an overview of the Vim source code. - * -! * Blowfish encryption for Vim; in Blowfish output feedback mode. - * Contributed by Mohsin Ahmed, http://www.cs.albany.edu/~mosh - * Based on http://www.schneier.com/blowfish.html by Bruce Schneier. - */ ---- 6,12 ---- - * Do ":help credits" in Vim to see a list of people who contributed. - * See README.txt for an overview of the Vim source code. - * -! * Blowfish encryption for Vim; in Blowfish cipher feedback mode. - * Contributed by Mohsin Ahmed, http://www.cs.albany.edu/~mosh - * Based on http://www.schneier.com/blowfish.html by Bruce Schneier. - */ -*************** -*** 19,25 **** - - #define BF_BLOCK 8 - #define BF_BLOCK_MASK 7 -! #define BF_OFB_LEN (8*(BF_BLOCK)) - - typedef union { - UINT32_T ul[2]; ---- 19,25 ---- - - #define BF_BLOCK 8 - #define BF_BLOCK_MASK 7 -! #define BF_CFB_LEN (8*(BF_BLOCK)) - - typedef union { - UINT32_T ul[2]; -*************** -*** 554,595 **** - return err > 0 ? FAIL : OK; - } - -! /* Output feedback mode. */ - static int randbyte_offset = 0; - static int update_offset = 0; -! static char_u ofb_buffer[BF_OFB_LEN]; /* 64 bytes */ - - /* - * Initialize with seed "iv[iv_len]". - */ - void -! bf_ofb_init(iv, iv_len) - char_u *iv; - int iv_len; - { - int i, mi; - - randbyte_offset = update_offset = 0; -! vim_memset(ofb_buffer, 0, BF_OFB_LEN); - if (iv_len > 0) - { -! mi = iv_len > BF_OFB_LEN ? iv_len : BF_OFB_LEN; - for (i = 0; i < mi; i++) -! ofb_buffer[i % BF_OFB_LEN] ^= iv[i % iv_len]; - } - } - -! #define BF_OFB_UPDATE(c) { \ -! ofb_buffer[update_offset] ^= (char_u)c; \ -! if (++update_offset == BF_OFB_LEN) \ - update_offset = 0; \ - } - - #define BF_RANBYTE(t) { \ - if ((randbyte_offset & BF_BLOCK_MASK) == 0) \ -! bf_e_cblock(&ofb_buffer[randbyte_offset]); \ -! t = ofb_buffer[randbyte_offset]; \ -! if (++randbyte_offset == BF_OFB_LEN) \ - randbyte_offset = 0; \ - } - ---- 554,595 ---- - return err > 0 ? FAIL : OK; - } - -! /* Cipher feedback mode. */ - static int randbyte_offset = 0; - static int update_offset = 0; -! static char_u cfb_buffer[BF_CFB_LEN]; /* 64 bytes */ - - /* - * Initialize with seed "iv[iv_len]". - */ - void -! bf_cfb_init(iv, iv_len) - char_u *iv; - int iv_len; - { - int i, mi; - - randbyte_offset = update_offset = 0; -! vim_memset(cfb_buffer, 0, BF_CFB_LEN); - if (iv_len > 0) - { -! mi = iv_len > BF_CFB_LEN ? iv_len : BF_CFB_LEN; - for (i = 0; i < mi; i++) -! cfb_buffer[i % BF_CFB_LEN] ^= iv[i % iv_len]; - } - } - -! #define BF_CFB_UPDATE(c) { \ -! cfb_buffer[update_offset] ^= (char_u)c; \ -! if (++update_offset == BF_CFB_LEN) \ - update_offset = 0; \ - } - - #define BF_RANBYTE(t) { \ - if ((randbyte_offset & BF_BLOCK_MASK) == 0) \ -! bf_e_cblock(&cfb_buffer[randbyte_offset]); \ -! t = cfb_buffer[randbyte_offset]; \ -! if (++randbyte_offset == BF_CFB_LEN) \ - randbyte_offset = 0; \ - } - -*************** -*** 610,616 **** - { - ztemp = from[i]; - BF_RANBYTE(t); -! BF_OFB_UPDATE(ztemp); - to[i] = t ^ ztemp; - } - } ---- 610,616 ---- - { - ztemp = from[i]; - BF_RANBYTE(t); -! BF_CFB_UPDATE(ztemp); - to[i] = t ^ ztemp; - } - } -*************** -*** 630,636 **** - { - BF_RANBYTE(t); - *p ^= t; -! BF_OFB_UPDATE(*p); - } - } - ---- 630,636 ---- - { - BF_RANBYTE(t); - *p ^= t; -! BF_CFB_UPDATE(*p); - } - } - -*************** -*** 646,658 **** - - for (p = passwd; *p != NUL; ++p) - { -! BF_OFB_UPDATE(*p); - } - } - - static int save_randbyte_offset; - static int save_update_offset; -! static char_u save_ofb_buffer[BF_OFB_LEN]; - static UINT32_T save_pax[18]; - static UINT32_T save_sbx[4][256]; - ---- 646,658 ---- - - for (p = passwd; *p != NUL; ++p) - { -! BF_CFB_UPDATE(*p); - } - } - - static int save_randbyte_offset; - static int save_update_offset; -! static char_u save_cfb_buffer[BF_CFB_LEN]; - static UINT32_T save_pax[18]; - static UINT32_T save_sbx[4][256]; - -*************** -*** 665,671 **** - { - save_randbyte_offset = randbyte_offset; - save_update_offset = update_offset; -! mch_memmove(save_ofb_buffer, ofb_buffer, BF_OFB_LEN); - mch_memmove(save_pax, pax, 4 * 18); - mch_memmove(save_sbx, sbx, 4 * 4 * 256); - } ---- 665,671 ---- - { - save_randbyte_offset = randbyte_offset; - save_update_offset = update_offset; -! mch_memmove(save_cfb_buffer, cfb_buffer, BF_CFB_LEN); - mch_memmove(save_pax, pax, 4 * 18); - mch_memmove(save_sbx, sbx, 4 * 4 * 256); - } -*************** -*** 679,685 **** - { - randbyte_offset = save_randbyte_offset; - update_offset = save_update_offset; -! mch_memmove(ofb_buffer, save_ofb_buffer, BF_OFB_LEN); - mch_memmove(pax, save_pax, 4 * 18); - mch_memmove(sbx, save_sbx, 4 * 4 * 256); - } ---- 679,685 ---- - { - randbyte_offset = save_randbyte_offset; - update_offset = save_update_offset; -! mch_memmove(cfb_buffer, save_cfb_buffer, BF_CFB_LEN); - mch_memmove(pax, save_pax, 4 * 18); - mch_memmove(sbx, save_sbx, 4 * 4 * 256); - } -*** ../vim-7.4.171/src/fileio.c 2013-11-28 18:53:47.000000000 +0100 ---- src/fileio.c 2014-02-11 15:16:57.546117649 +0100 -*************** -*** 2973,2979 **** - else - { - bf_key_init(cryptkey, ptr + CRYPT_MAGIC_LEN, salt_len); -! bf_ofb_init(ptr + CRYPT_MAGIC_LEN + salt_len, seed_len); - } - - /* Remove magic number from the text */ ---- 2973,2979 ---- - else - { - bf_key_init(cryptkey, ptr + CRYPT_MAGIC_LEN, salt_len); -! bf_cfb_init(ptr + CRYPT_MAGIC_LEN + salt_len, seed_len); - } - - /* Remove magic number from the text */ -*************** -*** 3025,3031 **** - if (fread(buffer, salt_len + seed_len, 1, fp) != 1) - return FAIL; - bf_key_init(curbuf->b_p_key, buffer, salt_len); -! bf_ofb_init(buffer + salt_len, seed_len); - } - return OK; - } ---- 3025,3031 ---- - if (fread(buffer, salt_len + seed_len, 1, fp) != 1) - return FAIL; - bf_key_init(curbuf->b_p_key, buffer, salt_len); -! bf_cfb_init(buffer + salt_len, seed_len); - } - return OK; - } -*************** -*** 3064,3070 **** - seed = salt + salt_len; - sha2_seed(salt, salt_len, seed, seed_len); - bf_key_init(buf->b_p_key, salt, salt_len); -! bf_ofb_init(seed, seed_len); - } - } - *lenp = CRYPT_MAGIC_LEN + salt_len + seed_len; ---- 3064,3070 ---- - seed = salt + salt_len; - sha2_seed(salt, salt_len, seed, seed_len); - bf_key_init(buf->b_p_key, salt, salt_len); -! bf_cfb_init(seed, seed_len); - } - } - *lenp = CRYPT_MAGIC_LEN + salt_len + seed_len; -*** ../vim-7.4.171/src/proto/blowfish.pro 2013-08-10 13:37:06.000000000 +0200 ---- src/proto/blowfish.pro 2014-02-11 15:18:20.382118919 +0100 -*************** -*** 1,6 **** - /* blowfish.c */ - void bf_key_init __ARGS((char_u *password, char_u *salt, int salt_len)); -! void bf_ofb_init __ARGS((char_u *iv, int iv_len)); - void bf_crypt_encode __ARGS((char_u *from, size_t len, char_u *to)); - void bf_crypt_decode __ARGS((char_u *ptr, long len)); - void bf_crypt_init_keys __ARGS((char_u *passwd)); ---- 1,6 ---- - /* blowfish.c */ - void bf_key_init __ARGS((char_u *password, char_u *salt, int salt_len)); -! void bf_cfb_init __ARGS((char_u *iv, int iv_len)); - void bf_crypt_encode __ARGS((char_u *from, size_t len, char_u *to)); - void bf_crypt_decode __ARGS((char_u *ptr, long len)); - void bf_crypt_init_keys __ARGS((char_u *passwd)); -*** ../vim-7.4.171/src/memline.c 2013-11-28 17:41:41.000000000 +0100 ---- src/memline.c 2014-02-11 15:17:02.190117720 +0100 -*************** -*** 4914,4920 **** - * block for the salt. */ - vim_snprintf((char *)salt, sizeof(salt), "%ld", (long)offset); - bf_key_init(key, salt, (int)STRLEN(salt)); -! bf_ofb_init(seed, MF_SEED_LEN); - } - } - ---- 4914,4920 ---- - * block for the salt. */ - vim_snprintf((char *)salt, sizeof(salt), "%ld", (long)offset); - bf_key_init(key, salt, (int)STRLEN(salt)); -! bf_cfb_init(seed, MF_SEED_LEN); - } - } - -*** ../vim-7.4.171/src/version.c 2014-02-11 15:10:38.138111836 +0100 ---- src/version.c 2014-02-11 15:16:01.206116786 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 172, - /**/ - --- -GALAHAD: No look, really, this isn't nescess ... -PIGLET: We must examine you. -GALAHAD: There's nothing wrong with ... that. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.173 b/7.4.173 deleted file mode 100644 index 1756bdcd..00000000 --- a/7.4.173 +++ /dev/null @@ -1,61 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.173 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.173 -Problem: When using scrollbind the cursor can end up below the last line. - (mvxxc) -Solution: Reset w_botfill when scrolling up. (Christian Brabandt) -Files: src/move.c - - -*** ../vim-7.4.172/src/move.c 2012-11-28 18:15:42.000000000 +0100 ---- src/move.c 2014-02-11 15:39:24.758138292 +0100 -*************** -*** 2101,2106 **** ---- 2101,2107 ---- - int used; - lineoff_T loff; - lineoff_T boff; -+ linenr_T old_topline = curwin->w_topline; - - loff.lnum = boff.lnum = curwin->w_cursor.lnum; - #ifdef FEAT_FOLDING -*************** -*** 2156,2161 **** ---- 2157,2164 ---- - curwin->w_topline = topline; - #ifdef FEAT_DIFF - curwin->w_topfill = topfill; -+ if (old_topline > curwin->w_topline + curwin->w_height) -+ curwin->w_botfill = FALSE; - check_topfill(curwin, FALSE); - #endif - curwin->w_valid &= ~(VALID_WROW|VALID_CROW|VALID_BOTLINE|VALID_BOTLINE_AP); -*** ../vim-7.4.172/src/version.c 2014-02-11 15:23:27.942123631 +0100 ---- src/version.c 2014-02-11 15:38:34.562137523 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 173, - /**/ - --- - GALAHAD hurries to the door and pushes through it. As he leaves the room - we CUT TO the reverse to show that he is now in a room full of bathing - and romping GIRLIES, all innocent, wide-eyed and beautiful. They smile - enchantingly at him as he tries to keep walking without being diverted by - the lovely sights assaulting his eyeballs. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.174 b/7.4.174 deleted file mode 100644 index 827e65cd..00000000 --- a/7.4.174 +++ /dev/null @@ -1,94 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.174 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.174 -Problem: Compiler warnings for Python interface. (Tony Mechelynck) -Solution: Add type casts, initialize variable. -Files: src/if_py_both.h - - -*** ../vim-7.4.173/src/if_py_both.h 2014-01-31 14:53:59.715533645 +0100 ---- src/if_py_both.h 2014-02-11 15:57:30.678154932 +0100 -*************** -*** 2368,2374 **** - PyInt numreplaced = 0; - PyInt numadded = 0; - PyInt size; -! listitem_T **lis; - - size = ListLength(self); - ---- 2368,2374 ---- - PyInt numreplaced = 0; - PyInt numadded = 0; - PyInt size; -! listitem_T **lis = NULL; - - size = ListLength(self); - -*************** -*** 2503,2510 **** - { - Py_DECREF(iterator); - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %d " -! "to extended slice"), slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; ---- 2503,2510 ---- - { - Py_DECREF(iterator); - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %ld " -! "to extended slice"), (long)slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; -*************** -*** 2516,2523 **** - if (step != 1 && i != slicelen) - { - PyErr_FORMAT2(PyExc_ValueError, -! N_("attempt to assign sequence of size %d to extended slice " -! "of size %d"), i, slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; ---- 2516,2523 ---- - if (step != 1 && i != slicelen) - { - PyErr_FORMAT2(PyExc_ValueError, -! N_("attempt to assign sequence of size %ld to extended slice " -! "of size %ld"), (long)i, (long)slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; -*** ../vim-7.4.173/src/version.c 2014-02-11 15:47:41.382145902 +0100 ---- src/version.c 2014-02-11 15:59:04.646156372 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 174, - /**/ - --- -DINGO: You must spank her well and after you have spanked her you - may deal with her as you like and then ... spank me. -AMAZING: And spank me! -STUNNER: And me. -LOVELY: And me. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.175 b/7.4.175 deleted file mode 100644 index 99ca3903..00000000 --- a/7.4.175 +++ /dev/null @@ -1,180 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.175 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.175 -Problem: When a wide library function fails, falling back to the non-wide - function may do the wrong thing. -Solution: Check the platform, when the wide function is supported don't fall - back to the non-wide function. (Ken Takata) -Files: src/os_mswin.c, src/os_win32.c - - -*** ../vim-7.4.174/src/os_mswin.c 2014-01-14 12:18:41.000000000 +0100 ---- src/os_mswin.c 2014-02-11 17:02:03.002214267 +0100 -*************** -*** 648,654 **** - { - n = wstat_symlink_aware(wp, (struct _stat *)stp); - vim_free(wp); -! if (n >= 0) - return n; - /* Retry with non-wide function (for Windows 98). Can't use - * GetLastError() here and it's unclear what errno gets set to if ---- 648,654 ---- - { - n = wstat_symlink_aware(wp, (struct _stat *)stp); - vim_free(wp); -! if (n >= 0 || g_PlatformId == VER_PLATFORM_WIN32_NT) - return n; - /* Retry with non-wide function (for Windows 98). Can't use - * GetLastError() here and it's unclear what errno gets set to if -*************** -*** 815,822 **** - { - n = _wchdir(p); - vim_free(p); -! if (n == 0) -! return 0; - /* Retry with non-wide function (for Windows 98). */ - } - } ---- 815,822 ---- - { - n = _wchdir(p); - vim_free(p); -! if (n == 0 || g_PlatformId == VER_PLATFORM_WIN32_NT) -! return n; - /* Retry with non-wide function (for Windows 98). */ - } - } -*************** -*** 1942,1949 **** - - shortcut_errorw: - vim_free(p); -! if (hr == S_OK) -! goto shortcut_end; - } - } - /* Retry with non-wide function (for Windows 98). */ ---- 1942,1948 ---- - - shortcut_errorw: - vim_free(p); -! goto shortcut_end; - } - } - /* Retry with non-wide function (for Windows 98). */ -*** ../vim-7.4.174/src/os_win32.c 2014-02-05 14:02:23.590105699 +0100 ---- src/os_win32.c 2014-02-11 16:59:26.810211874 +0100 -*************** -*** 2877,2882 **** ---- 2877,2884 ---- - return OK; - } - } -+ else if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) -+ return FAIL; - /* Retry with non-wide function (for Windows 98). */ - } - #endif -*************** -*** 2917,2922 **** ---- 2919,2926 ---- - return; - } - } -+ else if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) -+ return; - /* Retry with non-wide function (for Windows 98). */ - } - #endif -*************** -*** 2966,2971 **** ---- 2970,2977 ---- - return OK; - } - } -+ else if (GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) -+ return FAIL; - /* Retry with non-wide function (for Windows 98). */ - } - #endif -*************** -*** 3006,3012 **** - { - n = _wchmod(p, perm); - vim_free(p); -! if (n == -1 && GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) - return FAIL; - /* Retry with non-wide function (for Windows 98). */ - } ---- 3012,3018 ---- - { - n = _wchmod(p, perm); - vim_free(p); -! if (n == -1 && g_PlatformId == VER_PLATFORM_WIN32_NT) - return FAIL; - /* Retry with non-wide function (for Windows 98). */ - } -*************** -*** 6048,6054 **** - { - f = _wopen(wn, flags, mode); - vim_free(wn); -! if (f >= 0) - return f; - /* Retry with non-wide function (for Windows 98). Can't use - * GetLastError() here and it's unclear what errno gets set to if ---- 6054,6060 ---- - { - f = _wopen(wn, flags, mode); - vim_free(wn); -! if (f >= 0 || g_PlatformId == VER_PLATFORM_WIN32_NT) - return f; - /* Retry with non-wide function (for Windows 98). Can't use - * GetLastError() here and it's unclear what errno gets set to if -*************** -*** 6099,6105 **** - _set_fmode(oldMode); - # endif - -! if (f != NULL) - return f; - /* Retry with non-wide function (for Windows 98). Can't use - * GetLastError() here and it's unclear what errno gets set to if ---- 6105,6111 ---- - _set_fmode(oldMode); - # endif - -! if (f != NULL || g_PlatformId == VER_PLATFORM_WIN32_NT) - return f; - /* Retry with non-wide function (for Windows 98). Can't use - * GetLastError() here and it's unclear what errno gets set to if -*** ../vim-7.4.174/src/version.c 2014-02-11 16:00:31.198157698 +0100 ---- src/version.c 2014-02-11 16:33:10.002187713 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 175, - /**/ - --- -DINGO: And after the spanking ... the oral sex. -GALAHAD: Oh, dear! Well, I... -GIRLS: The oral sex ... The oral sex. -GALAHAD: Well, I suppose I could stay a BIT longer. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.176 b/7.4.176 deleted file mode 100644 index ccde6b68..00000000 --- a/7.4.176 +++ /dev/null @@ -1,91 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.176 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.176 -Problem: Dictionary.update() thows an error when used without arguments. - Python programmers don't expect that. -Solution: Make Dictionary.update() without arguments do nothing. (ZyX) -Files: src/if_py_both.h, src/testdir/test86.in, src/testdir/test87.in - - -*** ../vim-7.4.175/src/if_py_both.h 2014-02-11 16:00:31.198157698 +0100 ---- src/if_py_both.h 2014-02-11 18:41:12.774305435 +0100 -*************** -*** 1918,1928 **** - } - else - { -! PyObject *obj; - -! if (!PyArg_ParseTuple(args, "O", &obj)) - return NULL; - - if (PyObject_HasAttrString(obj, "keys")) - return DictionaryUpdate(self, NULL, obj); - else ---- 1919,1935 ---- - } - else - { -! PyObject *obj = NULL; - -! if (!PyArg_ParseTuple(args, "|O", &obj)) - return NULL; - -+ if (obj == NULL) -+ { -+ Py_INCREF(Py_None); -+ return Py_None; -+ } -+ - if (PyObject_HasAttrString(obj, "keys")) - return DictionaryUpdate(self, NULL, obj); - else -*** ../vim-7.4.175/src/testdir/test86.in 2014-01-14 16:54:53.000000000 +0100 ---- src/testdir/test86.in 2014-02-11 17:25:08.414235496 +0100 -*************** -*** 39,44 **** ---- 39,45 ---- - py << EOF - d=vim.bindeval('d') - d['1']='asd' -+ d.update() # Must not do anything, including throwing errors - d.update(b=[1, 2, f]) - d.update((('-1', {'a': 1}),)) - d.update({'0': -1}) -*** ../vim-7.4.175/src/testdir/test87.in 2014-01-14 16:54:53.000000000 +0100 ---- src/testdir/test87.in 2014-02-11 17:25:12.602235560 +0100 -*************** -*** 33,38 **** ---- 33,39 ---- - py3 << EOF - d=vim.bindeval('d') - d['1']='asd' -+ d.update() # Must not do anything, including throwing errors - d.update(b=[1, 2, f]) - d.update((('-1', {'a': 1}),)) - d.update({'0': -1}) -*** ../vim-7.4.175/src/version.c 2014-02-11 17:05:57.282217857 +0100 ---- src/version.c 2014-02-11 18:46:37.518310411 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 176, - /**/ - --- -"Intelligence has much less practical application than you'd think." - -- Scott Adams, Dilbert. - - /// 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 /// diff --git a/7.4.177 b/7.4.177 deleted file mode 100644 index b943a190..00000000 --- a/7.4.177 +++ /dev/null @@ -1,48 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.177 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.177 -Problem: Compiler warning for unused variable. (Tony Mechelynck) -Solution: Add #ifdef. -Files: src/move.c - - -*** ../vim-7.4.176/src/move.c 2014-02-11 15:47:41.382145902 +0100 ---- src/move.c 2014-02-11 18:13:57.378280376 +0100 -*************** -*** 2101,2107 **** ---- 2101,2109 ---- - int used; - lineoff_T loff; - lineoff_T boff; -+ #ifdef FEAT_DIFF - linenr_T old_topline = curwin->w_topline; -+ #endif - - loff.lnum = boff.lnum = curwin->w_cursor.lnum; - #ifdef FEAT_FOLDING -*** ../vim-7.4.176/src/version.c 2014-02-11 18:47:18.682311042 +0100 ---- src/version.c 2014-02-11 18:57:55.110320794 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 177, - /**/ - --- -The psychic said, "God bless you." I said, "I didn't sneeze." She -looked deep into my eyes and said, "You will, eventually." And, damn -if she wasn't right. Two days later, I sneezed. --Ellen Degeneres - - /// 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 /// diff --git a/7.4.178 b/7.4.178 deleted file mode 100644 index 36e2eece..00000000 --- a/7.4.178 +++ /dev/null @@ -1,62 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.178 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.178 -Problem: The J command does not update '[ and '] marks. (William Gardner) -Solution: Set the marks. (Christian Brabandt) -Files: src/ops.c - - -*** ../vim-7.4.177/src/ops.c 2014-01-14 12:33:32.000000000 +0100 ---- src/ops.c 2014-02-11 19:22:46.538343647 +0100 -*************** -*** 4452,4457 **** ---- 4452,4463 ---- - for (t = 0; t < count; ++t) - { - curr = curr_start = ml_get((linenr_T)(curwin->w_cursor.lnum + t)); -+ if (t == 0) -+ { -+ /* Set the '[ mark. */ -+ curwin->w_buffer->b_op_start.lnum = curwin->w_cursor.lnum; -+ curwin->w_buffer->b_op_start.col = (colnr_T)STRLEN(curr); -+ } - #if defined(FEAT_COMMENTS) || defined(PROTO) - if (remove_comments) - { -*************** -*** 4568,4573 **** ---- 4574,4583 ---- - } - ml_replace(curwin->w_cursor.lnum, newp, FALSE); - -+ /* Set the '] mark. */ -+ curwin->w_buffer->b_op_end.lnum = curwin->w_cursor.lnum; -+ curwin->w_buffer->b_op_end.col = (colnr_T)STRLEN(newp); -+ - /* Only report the change in the first line here, del_lines() will report - * the deleted line. */ - changed_lines(curwin->w_cursor.lnum, currsize, -*** ../vim-7.4.177/src/version.c 2014-02-11 18:58:05.102320947 +0100 ---- src/version.c 2014-02-11 19:23:59.722344768 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 178, - /**/ - --- -Eight Megabytes And Continually Swapping. - - /// 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 /// diff --git a/7.4.179 b/7.4.179 deleted file mode 100644 index 29b366ee..00000000 --- a/7.4.179 +++ /dev/null @@ -1,57 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.179 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.179 -Problem: Warning for type-punned pointer. (Tony Mechelynck) -Solution: Use intermediate variable. -Files: src/if_py_both.h - - -*** ../vim-7.4.178/src/if_py_both.h 2014-02-11 18:47:18.678311042 +0100 ---- src/if_py_both.h 2014-02-11 18:41:12.774305435 +0100 -*************** -*** 1617,1624 **** - } - else if (flags & DICT_FLAG_RETURN_BOOL) - { -! Py_INCREF(Py_True); -! return Py_True; - } - - di = dict_lookup(hi); ---- 1617,1625 ---- - } - else if (flags & DICT_FLAG_RETURN_BOOL) - { -! ret = Py_True; -! Py_INCREF(ret); -! return ret; - } - - di = dict_lookup(hi); -*** ../vim-7.4.178/src/version.c 2014-02-11 19:33:03.358353098 +0100 ---- src/version.c 2014-02-12 22:08:16.795819706 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 179, - /**/ - --- -Luxury. We used to have to get out of the lake at three o'clock in the -morning, clean the lake, eat a handful of hot gravel, go to work at the -mill every day for tuppence a month, come home, and Dad would beat us -around the head and neck with a broken bottle, if we were LUCKY! - - /// 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 /// diff --git a/7.4.180 b/7.4.180 deleted file mode 100644 index 4fa07699..00000000 --- a/7.4.180 +++ /dev/null @@ -1,76 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.180 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.180 (after 7.4.174) -Problem: Older Python versions don't support %ld. -Solution: Use %d instead. (ZyX) -Files: src/if_py_both.h - - -*** ../vim-7.4.179/src/if_py_both.h 2014-02-12 22:08:46.055820155 +0100 ---- src/if_py_both.h 2014-02-15 15:56:44.133904982 +0100 -*************** -*** 2510,2517 **** - { - Py_DECREF(iterator); - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %ld " -! "to extended slice"), (long)slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; ---- 2510,2517 ---- - { - Py_DECREF(iterator); - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %d " -! "to extended slice"), (int) slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; -*************** -*** 2523,2530 **** - if (step != 1 && i != slicelen) - { - PyErr_FORMAT2(PyExc_ValueError, -! N_("attempt to assign sequence of size %ld to extended slice " -! "of size %ld"), (long)i, (long)slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; ---- 2523,2530 ---- - if (step != 1 && i != slicelen) - { - PyErr_FORMAT2(PyExc_ValueError, -! N_("attempt to assign sequence of size %d to extended slice " -! "of size %d"), (int) i, (int) slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); - return -1; -*** ../vim-7.4.179/src/version.c 2014-02-12 22:08:46.059820155 +0100 ---- src/version.c 2014-02-15 15:58:13.877904839 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 180, - /**/ - --- - LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and - hacks him to the floor. Blood. Swashbuckling music (perhaps). - LAUNCELOT races through into the castle screaming. -SECOND SENTRY: Hey! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.181 b/7.4.181 deleted file mode 100644 index 3668d086..00000000 --- a/7.4.181 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.181 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.181 -Problem: When using 'pastetoggle' the status lines are not updated. (Samuel - Ferencik, Jan Christoph Ebersbach) -Solution: Update the status lines. (Nobuhiro Takasaki) -Files: src/getchar.c - - -*** ../vim-7.4.180/src/getchar.c 2014-02-11 15:10:38.130111835 +0100 ---- src/getchar.c 2014-02-15 16:14:34.249903278 +0100 -*************** -*** 406,412 **** - } - - /* -! * Prepare the read buffers for reading (if they contains something). - */ - static void - start_stuff() ---- 406,412 ---- - } - - /* -! * Prepare the read buffers for reading (if they contain something). - */ - static void - start_stuff() -*************** -*** 2302,2307 **** ---- 2302,2311 ---- - msg_row = Rows - 1; - msg_clr_eos(); /* clear ruler */ - } -+ #ifdef FEAT_WINDOWS -+ status_redraw_all(); -+ redraw_statuslines(); -+ #endif - showmode(); - setcursor(); - continue; -*** ../vim-7.4.180/src/version.c 2014-02-15 15:58:55.081904773 +0100 ---- src/version.c 2014-02-15 16:12:22.329903488 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 181, - /**/ - --- -FIRST GUARD: Ah! Now ... we're not allowed to ... - SIR LAUNCELOT runs him through, grabs his spear and stabs the other - guard who collapses in a heap. Hiccoughs quietly. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.182 b/7.4.182 deleted file mode 100644 index 72b41483..00000000 --- a/7.4.182 +++ /dev/null @@ -1,56 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.182 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.182 -Problem: Building with mzscheme and racket does not work. (David Chimay) -Solution: Adjust autoconf. (Sergey Khorev) -Files: src/configure.in, src/auto/configure - - -*** ../vim-7.4.181/src/configure.in 2013-11-21 12:17:46.000000000 +0100 ---- src/configure.in 2014-02-15 16:21:41.705902597 +0100 -*************** -*** 802,810 **** ---- 802,820 ---- - AC_MSG_CHECKING(for mzscheme_base.c) - if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then - MZSCHEME_EXTRA="mzscheme_base.c" -+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" -+ MZSCHEME_MOD="++lib scheme/base" - else - if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then - MZSCHEME_EXTRA="mzscheme_base.c" -+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" -+ MZSCHEME_MOD="++lib scheme/base" -+ else -+ if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then -+ MZSCHEME_EXTRA="mzscheme_base.c" -+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool" -+ MZSCHEME_MOD="" -+ fi - fi - fi - if test "X$MZSCHEME_EXTRA" != "X" ; then -*** ../vim-7.4.181/src/version.c 2014-02-15 16:17:02.213903042 +0100 ---- src/version.c 2014-02-15 16:23:42.505902405 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 182, - /**/ - --- -Overflow on /dev/null, please empty the bit bucket. - - /// 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 /// diff --git a/7.4.183 b/7.4.183 deleted file mode 100644 index f23061cf..00000000 --- a/7.4.183 +++ /dev/null @@ -1,49 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.183 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.183 -Problem: MSVC Visual Studio update not supported. -Solution: Add version number. (Mike William) -Files: src/Make_mvc.mak - - -*** ../vim-7.4.182/src/Make_mvc.mak 2013-12-14 11:50:28.000000000 +0100 ---- src/Make_mvc.mak 2014-02-15 19:25:27.333885042 +0100 -*************** -*** 424,429 **** ---- 424,432 ---- - !if "$(_NMAKE_VER)" == "11.00.60610.1" - MSVCVER = 11.0 - !endif -+ !if "$(_NMAKE_VER)" == "11.00.61030.0" -+ MSVCVER = 11.0 -+ !endif - !if "$(_NMAKE_VER)" == "12.00.21005.1" - MSVCVER = 12.0 - !endif -*** ../vim-7.4.182/src/version.c 2014-02-15 17:18:56.953897128 +0100 ---- src/version.c 2014-02-15 19:31:11.337884494 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 183, - /**/ - --- -FATHER: Did you kill all those guards? -LAUNCELOT: Yes ... I'm very sorry ... -FATHER: They cost fifty pounds each! - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.184 b/7.4.184 deleted file mode 100644 index d6ceb64a..00000000 --- a/7.4.184 +++ /dev/null @@ -1,250 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.184 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.184 -Problem: match() does not work properly with a {count} argument. -Solution: Compute the length once and update it. Quit the loop when at the - end. (Hirohito Higashi) -Files: src/eval.c, src/testdir/test53.in, src/testdir/test53.ok - - -*** ../vim-7.4.183/src/eval.c 2014-02-05 22:13:02.366556787 +0100 ---- src/eval.c 2014-02-22 22:13:26.644906020 +0100 -*************** -*** 8014,8020 **** - {"log10", 1, 1, f_log10}, - #endif - #ifdef FEAT_LUA -! {"luaeval", 1, 2, f_luaeval}, - #endif - {"map", 2, 2, f_map}, - {"maparg", 1, 4, f_maparg}, ---- 8014,8020 ---- - {"log10", 1, 1, f_log10}, - #endif - #ifdef FEAT_LUA -! {"luaeval", 1, 2, f_luaeval}, - #endif - {"map", 2, 2, f_map}, - {"maparg", 1, 4, f_maparg}, -*************** -*** 13905,13910 **** ---- 13905,13911 ---- - int type; - { - char_u *str = NULL; -+ long len = 0; - char_u *expr = NULL; - char_u *pat; - regmatch_T regmatch; -*************** -*** 13944,13950 **** ---- 13945,13954 ---- - li = l->lv_first; - } - else -+ { - expr = str = get_tv_string(&argvars[0]); -+ len = (long)STRLEN(str); -+ } - - pat = get_tv_string_buf_chk(&argvars[1], patbuf); - if (pat == NULL) -*************** -*** 13968,13974 **** - { - if (start < 0) - start = 0; -! if (start > (long)STRLEN(str)) - goto theend; - /* When "count" argument is there ignore matches before "start", - * otherwise skip part of the string. Differs when pattern is "^" ---- 13972,13978 ---- - { - if (start < 0) - start = 0; -! if (start > len) - goto theend; - /* When "count" argument is there ignore matches before "start", - * otherwise skip part of the string. Differs when pattern is "^" -*************** -*** 13976,13982 **** ---- 13980,13989 ---- - if (argvars[3].v_type != VAR_UNKNOWN) - startcol = start; - else -+ { - str += start; -+ len -= start; -+ } - } - - if (argvars[3].v_type != VAR_UNKNOWN) -*************** -*** 14026,14031 **** ---- 14033,14044 ---- - #else - startcol = (colnr_T)(regmatch.startp[0] + 1 - str); - #endif -+ if (startcol > (colnr_T)len -+ || str + startcol <= regmatch.startp[0]) -+ { -+ match = FALSE; -+ break; -+ } - } - } - -*** ../vim-7.4.183/src/testdir/test53.in 2013-10-02 21:54:57.000000000 +0200 ---- src/testdir/test53.in 2014-02-22 22:08:24.260906501 +0100 -*************** -*** 4,9 **** ---- 4,11 ---- - - Also test match() and matchstr() - -+ Also test the gn command and repeating it. -+ - STARTTEST - :so small.vim - /^start:/ -*************** -*** 28,33 **** ---- 30,57 ---- - :put =matchstr(\"abcd\", \".\", 0, -1) " a - :put =match(\"abcd\", \".\", 0, 5) " -1 - :put =match(\"abcd\", \".\", 0, -1) " 0 -+ :put =match('abc', '.', 0, 1) " 0 -+ :put =match('abc', '.', 0, 2) " 1 -+ :put =match('abc', '.', 0, 3) " 2 -+ :put =match('abc', '.', 0, 4) " -1 -+ :put =match('abc', '.', 1, 1) " 1 -+ :put =match('abc', '.', 2, 1) " 2 -+ :put =match('abc', '.', 3, 1) " -1 -+ :put =match('abc', '$', 0, 1) " 3 -+ :put =match('abc', '$', 0, 2) " -1 -+ :put =match('abc', '$', 1, 1) " 3 -+ :put =match('abc', '$', 2, 1) " 3 -+ :put =match('abc', '$', 3, 1) " 3 -+ :put =match('abc', '$', 4, 1) " -1 -+ :put =match('abc', '\zs', 0, 1) " 0 -+ :put =match('abc', '\zs', 0, 2) " 1 -+ :put =match('abc', '\zs', 0, 3) " 2 -+ :put =match('abc', '\zs', 0, 4) " 3 -+ :put =match('abc', '\zs', 0, 5) " -1 -+ :put =match('abc', '\zs', 1, 1) " 1 -+ :put =match('abc', '\zs', 2, 1) " 2 -+ :put =match('abc', '\zs', 3, 1) " 3 -+ :put =match('abc', '\zs', 4, 1) " -1 - /^foobar - gncsearchmatch/one\_s*two\_s - :1 -*************** -*** 49,54 **** ---- 73,84 ---- - :" Make sure there is no other match y uppercase. - /x59 - gggnd -+ :" test repeating dgn -+ /^Johnny -+ ggdgn. -+ :" test repeating gUgn -+ /^Depp -+ gggUgn. - :/^start:/,/^end:/wq! test.out - ENDTEST - -*************** -*** 81,84 **** ---- 111,123 ---- - Y - text - Y -+ --1 -+ Johnny -+ --2 -+ Johnny -+ --3 -+ Depp -+ --4 -+ Depp -+ --5 - end: -*** ../vim-7.4.183/src/testdir/test53.ok 2013-10-02 21:54:57.000000000 +0200 ---- src/testdir/test53.ok 2014-02-22 22:08:24.264906501 +0100 -*************** -*** 18,23 **** ---- 18,45 ---- - a - -1 - 0 -+ 0 -+ 1 -+ 2 -+ -1 -+ 1 -+ 2 -+ -1 -+ 3 -+ -1 -+ 3 -+ 3 -+ 3 -+ -1 -+ 0 -+ 1 -+ 2 -+ 3 -+ -1 -+ 1 -+ 2 -+ 3 -+ -1 - SEARCH: - searchmatch - abcdx | | abcdx -*************** -*** 30,33 **** ---- 52,64 ---- - - text - Y -+ --1 -+ -+ --2 -+ -+ --3 -+ DEPP -+ --4 -+ DEPP -+ --5 - end: -*** ../vim-7.4.183/src/version.c 2014-02-15 19:47:46.685882910 +0100 ---- src/version.c 2014-02-22 22:10:49.604906270 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 184, - /**/ - --- -WOMAN: I didn't know we had a king. I thought we were an autonomous - collective. -DENNIS: You're fooling yourself. We're living in a dictatorship. A - self-perpetuating autocracy in which the working classes-- -WOMAN: Oh there you go, bringing class into it again. -DENNIS: That's what it's all about if only people would-- - The Quest for the Holy Grail (Monty Python) - - /// 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 /// diff --git a/7.4.185 b/7.4.185 deleted file mode 100644 index b326a16d..00000000 --- a/7.4.185 +++ /dev/null @@ -1,64 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.185 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.185 -Problem: Clang gives warnings. -Solution: Adjust how bigness is set. (Dominique Pelle) -Files: src/ex_cmds.c - - -*** ../vim-7.4.184/src/ex_cmds.c 2014-02-11 12:15:39.781950970 +0100 ---- src/ex_cmds.c 2014-02-22 22:25:45.800904843 +0100 -*************** -*** 4099,4110 **** - * 'scroll' */ - if (eap->forceit) - bigness = curwin->w_height; -- else if (firstwin == lastwin) -- bigness = curwin->w_p_scr * 2; - #ifdef FEAT_WINDOWS -! else - bigness = curwin->w_height - 3; - #endif - if (bigness < 1) - bigness = 1; - ---- 4099,4110 ---- - * 'scroll' */ - if (eap->forceit) - bigness = curwin->w_height; - #ifdef FEAT_WINDOWS -! else if (firstwin != lastwin) - bigness = curwin->w_height - 3; - #endif -+ else -+ bigness = curwin->w_p_scr * 2; - if (bigness < 1) - bigness = 1; - -*** ../vim-7.4.184/src/version.c 2014-02-22 22:18:39.536905522 +0100 ---- src/version.c 2014-02-22 22:22:51.912905120 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 185, - /**/ - --- -There are 2 kinds of people in my world: those who know Unix, Perl, Vim, GNU, -Linux, etc, and those who know COBOL. It gets very difficult for me at -parties, not knowing which group to socialise with :-) - Sitaram Chamarty - - /// 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 /// diff --git a/7.4.186 b/7.4.186 deleted file mode 100644 index 84f0a313..00000000 --- a/7.4.186 +++ /dev/null @@ -1,164 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.186 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.186 (after 7.4.085) -Problem: Insert in Visual mode sometimes gives incorrect results. - (Dominique Pelle) -Solution: Remember the original insert start position. (Christian Brabandt, - Dominique Pelle) -Files: src/edit.c, src/globals.h, src/ops.c, src/structs.h - - -*** ../vim-7.4.185/src/edit.c 2014-01-23 22:45:54.608127182 +0100 ---- src/edit.c 2014-02-22 22:43:52.820903112 +0100 -*************** -*** 264,269 **** ---- 264,270 ---- - - static colnr_T Insstart_textlen; /* length of line when insert started */ - static colnr_T Insstart_blank_vcol; /* vcol for first inserted blank */ -+ static int update_Insstart_orig = TRUE; /* set Insstart_orig to Insstart */ - - static char_u *last_insert = NULL; /* the text of the previous insert, - K_SPECIAL and CSI are escaped */ -*************** -*** 340,345 **** ---- 341,349 ---- - * error message */ - check_for_delay(TRUE); - -+ /* set Insstart_orig to Insstart */ -+ update_Insstart_orig = TRUE; -+ - #ifdef HAVE_SANDBOX - /* Don't allow inserting in the sandbox. */ - if (sandbox != 0) -*************** -*** 631,636 **** ---- 635,643 ---- - if (arrow_used) /* don't repeat insert when arrow key used */ - count = 0; - -+ if (update_Insstart_orig) -+ Insstart_orig = Insstart; -+ - if (stop_insert_mode) - { - /* ":stopinsert" used or 'insertmode' reset */ -*************** -*** 6923,6928 **** ---- 6930,6936 ---- - if (end_insert_pos != NULL) - { - curbuf->b_op_start = Insstart; -+ curbuf->b_op_start_orig = Insstart_orig; - curbuf->b_op_end = *end_insert_pos; - } - } -*************** -*** 8257,8262 **** ---- 8265,8271 ---- - - /* Need to reset Insstart, esp. because a BS that joins - * a line to the previous one must save for undo. */ -+ update_Insstart_orig = FALSE; - Insstart = curwin->w_cursor; - break; - -*** ../vim-7.4.185/src/globals.h 2014-02-11 15:10:38.130111835 +0100 ---- src/globals.h 2014-02-22 23:02:01.644901378 +0100 -*************** -*** 752,757 **** ---- 752,763 ---- - */ - EXTERN pos_T Insstart; /* This is where the latest - * insert/append mode started. */ -+ -+ /* This is where the latest insert/append mode started. In contrast to -+ * Insstart, this won't be reset by certain keys and is needed for -+ * op_insert(), to detect correctly where inserting by the user started. */ -+ EXTERN pos_T Insstart_orig; -+ - #ifdef FEAT_VREPLACE - /* - * Stuff for VREPLACE mode. -*** ../vim-7.4.185/src/ops.c 2014-02-11 19:33:03.358353098 +0100 ---- src/ops.c 2014-02-22 22:39:47.588903502 +0100 -*************** -*** 2643,2662 **** - - /* The user may have moved the cursor before inserting something, try - * to adjust the block for that. */ -! if (oap->start.lnum == curbuf->b_op_start.lnum && !bd.is_MAX) - { - if (oap->op_type == OP_INSERT -! && oap->start.col != curbuf->b_op_start.col) - { -! oap->start.col = curbuf->b_op_start.col; - pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) - - oap->start_vcol; - oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd); - } - else if (oap->op_type == OP_APPEND -! && oap->end.col >= curbuf->b_op_start.col) - { -! oap->start.col = curbuf->b_op_start.col; - /* reset pre_textlen to the value of OP_INSERT */ - pre_textlen += bd.textlen; - pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) ---- 2643,2662 ---- - - /* The user may have moved the cursor before inserting something, try - * to adjust the block for that. */ -! if (oap->start.lnum == curbuf->b_op_start_orig.lnum && !bd.is_MAX) - { - if (oap->op_type == OP_INSERT -! && oap->start.col != curbuf->b_op_start_orig.col) - { -! oap->start.col = curbuf->b_op_start_orig.col; - pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) - - oap->start_vcol; - oap->start_vcol = getviscol2(oap->start.col, oap->start.coladd); - } - else if (oap->op_type == OP_APPEND -! && oap->end.col >= curbuf->b_op_start_orig.col) - { -! oap->start.col = curbuf->b_op_start_orig.col; - /* reset pre_textlen to the value of OP_INSERT */ - pre_textlen += bd.textlen; - pre_textlen -= getviscol2(oap->start.col, oap->start.coladd) -*** ../vim-7.4.185/src/structs.h 2014-02-11 15:10:38.138111836 +0100 ---- src/structs.h 2014-02-22 22:39:47.588903502 +0100 -*************** -*** 1449,1454 **** ---- 1449,1455 ---- - * start and end of an operator, also used for '[ and '] - */ - pos_T b_op_start; -+ pos_T b_op_start_orig; /* used for Insstart_orig */ - pos_T b_op_end; - - #ifdef FEAT_VIMINFO -*** ../vim-7.4.185/src/version.c 2014-02-22 22:27:20.772904692 +0100 ---- src/version.c 2014-02-22 22:39:08.932903564 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 186, - /**/ - --- -Individualists unite! - - /// 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 /// diff --git a/7.4.187 b/7.4.187 deleted file mode 100644 index 122056e4..00000000 --- a/7.4.187 +++ /dev/null @@ -1,136 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.187 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.187 -Problem: Delete that crosses line break splits multi-byte character. -Solution: Advance a character instead of a byte. (Cade Foster) -Files: src/normal.c, src/testdir/test69.in, src/testdir/test69.ok - - -*** ../vim-7.4.186/src/normal.c 2014-02-11 15:10:38.134111836 +0100 ---- src/normal.c 2014-02-22 23:41:12.472897635 +0100 -*************** -*** 21,27 **** - static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */ - static linenr_T resel_VIsual_line_count; /* number of lines */ - static colnr_T resel_VIsual_vcol; /* nr of cols or end col */ -! static int VIsual_mode_orig = NUL; /* type of Visual mode, that user entered */ - - static int restart_VIsual_select = 0; - #endif ---- 21,27 ---- - static int resel_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */ - static linenr_T resel_VIsual_line_count; /* number of lines */ - static colnr_T resel_VIsual_vcol; /* nr of cols or end col */ -! static int VIsual_mode_orig = NUL; /* saved Visual mode */ - - static int restart_VIsual_select = 0; - #endif -*************** -*** 6202,6209 **** - || cap->oap->op_type == OP_CHANGE) - && !lineempty(curwin->w_cursor.lnum)) - { -! if (*ml_get_cursor() != NUL) -! ++curwin->w_cursor.col; - cap->retval |= CA_NO_ADJ_OP_END; - } - continue; ---- 6202,6218 ---- - || cap->oap->op_type == OP_CHANGE) - && !lineempty(curwin->w_cursor.lnum)) - { -! char_u *cp = ml_get_cursor(); -! -! if (*cp != NUL) -! { -! #ifdef FEAT_MBYTE -! if (has_mbyte) -! curwin->w_cursor.col += (*mb_ptr2len)(cp); -! else -! #endif -! ++curwin->w_cursor.col; -! } - cap->retval |= CA_NO_ADJ_OP_END; - } - continue; -*************** -*** 9482,9488 **** - # ifdef FEAT_CLIPBOARD - adjust_clip_reg(®name); - # endif -! if (regname == 0 || regname == '"' - || VIM_ISDIGIT(regname) || regname == '-' - # ifdef FEAT_CLIPBOARD - || (clip_unnamed && (regname == '*' || regname == '+')) ---- 9491,9497 ---- - # ifdef FEAT_CLIPBOARD - adjust_clip_reg(®name); - # endif -! if (regname == 0 || regname == '"' - || VIM_ISDIGIT(regname) || regname == '-' - # ifdef FEAT_CLIPBOARD - || (clip_unnamed && (regname == '*' || regname == '+')) -*** ../vim-7.4.186/src/testdir/test69.in 2013-11-02 23:29:17.000000000 +0100 ---- src/testdir/test69.in 2014-02-22 23:38:50.508897861 +0100 -*************** -*** 155,160 **** ---- 155,170 ---- - ï½ï½b - - STARTTEST -+ :set whichwrap+=h -+ /^x -+ dh -+ :set whichwrap-=h -+ ENDTEST -+ -+ á -+ x -+ -+ STARTTEST - :let a = '.é.' " one char of two bytes - :let b = '.eÌ.' " normal e with composing char - /^byteidx -*** ../vim-7.4.186/src/testdir/test69.ok 2013-11-02 23:29:17.000000000 +0100 ---- src/testdir/test69.ok 2014-02-22 23:38:53.752897856 +0100 -*************** -*** 150,155 **** ---- 150,158 ---- - aaa - - -+ áx -+ -+ - byteidx - [0, 1, 3, 4, -1] - [0, 1, 4, 5, -1] -*** ../vim-7.4.186/src/version.c 2014-02-22 23:03:48.716901208 +0100 ---- src/version.c 2014-02-22 23:30:24.412898667 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 187, - /**/ - --- -ARTHUR: Then who is your lord? -WOMAN: We don't have a lord. -ARTHUR: What? -DENNIS: I told you. We're an anarcho-syndicalist commune. We take it in - turns to act as a sort of executive officer for the week. - The Quest for the Holy Grail (Monty Python) - - /// 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 /// diff --git a/7.4.188 b/7.4.188 deleted file mode 100644 index b2b4fa12..00000000 --- a/7.4.188 +++ /dev/null @@ -1,617 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.188 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.188 -Problem: SIZEOF_LONG clashes with similar defines in header files. -Solution: Rename to a name starting with VIM_. Also for SIZEOF_INT. -Files: src/if_ruby.c, src/vim.h, src/configure.in, src/auto/configure, - src/config.h.in, src/fileio.c, src/if_python.c, src/message.c, - src/spell.c, src/feature.h, src/os_os2_cfg.h, src/os_vms_conf.h, - src/os_win16.h, src/structs.h - - -*** ../vim-7.4.187/src/if_ruby.c 2014-02-05 22:41:11.430582669 +0100 ---- src/if_ruby.c 2014-02-23 21:55:03.516770208 +0100 -*************** -*** 89,97 **** - #endif - - #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ -! && SIZEOF_INT < SIZEOF_LONG - /* Ruby 2.0 defines a number of static functions which use rb_fix2int and -! * rb_num2int if SIZEOF_INT < SIZEOF_LONG (64bit) */ - # define rb_fix2int rb_fix2int_stub - # define rb_num2int rb_num2int_stub - #endif ---- 89,97 ---- - #endif - - #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ -! && VIM_SIZEOF_INT < VIM_SIZEOF_LONG - /* Ruby 2.0 defines a number of static functions which use rb_fix2int and -! * rb_num2int if VIM_SIZEOF_INT < VIM_SIZEOF_LONG (64bit) */ - # define rb_fix2int rb_fix2int_stub - # define rb_num2int rb_num2int_stub - #endif -*************** -*** 202,208 **** - # define rb_hash_new dll_rb_hash_new - # define rb_inspect dll_rb_inspect - # define rb_int2inum dll_rb_int2inum -! # if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ - # define rb_fix2int dll_rb_fix2int - # define rb_num2int dll_rb_num2int - # define rb_num2uint dll_rb_num2uint ---- 202,208 ---- - # define rb_hash_new dll_rb_hash_new - # define rb_inspect dll_rb_inspect - # define rb_int2inum dll_rb_int2inum -! # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ - # define rb_fix2int dll_rb_fix2int - # define rb_num2int dll_rb_num2int - # define rb_num2uint dll_rb_num2uint -*************** -*** 310,316 **** - static VALUE (*dll_rb_hash_new) (void); - static VALUE (*dll_rb_inspect) (VALUE); - static VALUE (*dll_rb_int2inum) (long); -! # if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ - static long (*dll_rb_fix2int) (VALUE); - static long (*dll_rb_num2int) (VALUE); - static unsigned long (*dll_rb_num2uint) (VALUE); ---- 310,316 ---- - static VALUE (*dll_rb_hash_new) (void); - static VALUE (*dll_rb_inspect) (VALUE); - static VALUE (*dll_rb_int2inum) (long); -! # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ - static long (*dll_rb_fix2int) (VALUE); - static long (*dll_rb_num2int) (VALUE); - static unsigned long (*dll_rb_num2uint) (VALUE); -*************** -*** 393,399 **** - return dll_rb_int2big(x); - } - # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ -! && SIZEOF_INT < SIZEOF_LONG - long rb_fix2int_stub(VALUE x) - { - return dll_rb_fix2int(x); ---- 393,399 ---- - return dll_rb_int2big(x); - } - # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 20 \ -! && VIM_SIZEOF_INT < VIM_SIZEOF_LONG - long rb_fix2int_stub(VALUE x) - { - return dll_rb_fix2int(x); -*************** -*** 466,472 **** - {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new}, - {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, - {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, -! # if SIZEOF_INT < SIZEOF_LONG /* 64 bits only */ - {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int}, - {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int}, - {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint}, ---- 466,472 ---- - {"rb_hash_new", (RUBY_PROC*)&dll_rb_hash_new}, - {"rb_inspect", (RUBY_PROC*)&dll_rb_inspect}, - {"rb_int2inum", (RUBY_PROC*)&dll_rb_int2inum}, -! # if VIM_SIZEOF_INT < VIM_SIZEOF_LONG /* 64 bits only */ - {"rb_fix2int", (RUBY_PROC*)&dll_rb_fix2int}, - {"rb_num2int", (RUBY_PROC*)&dll_rb_num2int}, - {"rb_num2uint", (RUBY_PROC*)&dll_rb_num2uint}, -*** ../vim-7.4.187/src/vim.h 2014-01-14 16:54:53.000000000 +0100 ---- src/vim.h 2014-02-23 21:58:23.764769890 +0100 -*************** -*** 43,49 **** - * it becomes zero. This is likely a problem of not being able to run the - * test program. Other items from configure may also be wrong then! - */ -! # if (SIZEOF_INT == 0) - Error: configure did not run properly. Check auto/config.log. - # endif - ---- 43,49 ---- - * it becomes zero. This is likely a problem of not being able to run the - * test program. Other items from configure may also be wrong then! - */ -! # if (VIM_SIZEOF_INT == 0) - Error: configure did not run properly. Check auto/config.log. - # endif - -*************** -*** 148,169 **** - #endif - - /* -! * SIZEOF_INT is used in feature.h, and the system-specific included files -! * need items from feature.h. Therefore define SIZEOF_INT here. - */ - #ifdef WIN3264 -! # define SIZEOF_INT 4 - #endif - #ifdef MSDOS - # ifdef DJGPP - # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ -! # define SIZEOF_INT 4 /* 32 bit ints */ - # endif - # define DOS32 - # define FEAT_CLIPBOARD - # else - # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ -! # define SIZEOF_INT 2 /* 16 bit ints */ - # endif - # define SMALL_MALLOC /* 16 bit storage allocation */ - # define DOS16 ---- 148,169 ---- - #endif - - /* -! * VIM_SIZEOF_INT is used in feature.h, and the system-specific included files -! * need items from feature.h. Therefore define VIM_SIZEOF_INT here. - */ - #ifdef WIN3264 -! # define VIM_SIZEOF_INT 4 - #endif - #ifdef MSDOS - # ifdef DJGPP - # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ -! # define VIM_SIZEOF_INT 4 /* 32 bit ints */ - # endif - # define DOS32 - # define FEAT_CLIPBOARD - # else - # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ -! # define VIM_SIZEOF_INT 2 /* 16 bit ints */ - # endif - # define SMALL_MALLOC /* 16 bit storage allocation */ - # define DOS16 -*************** -*** 174,191 **** - /* Be conservative about sizeof(int). It could be 4 too. */ - # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ - # ifdef __GNUC__ -! # define SIZEOF_INT 4 - # else -! # define SIZEOF_INT 2 - # endif - # endif - #endif - #ifdef MACOS - # if defined(__POWERPC__) || defined(MACOS_X) || defined(__fourbyteints__) \ - || defined(__MRC__) || defined(__SC__) || defined(__APPLE_CC__)/* MPW Compilers */ -! # define SIZEOF_INT 4 - # else -! # define SIZEOF_INT 2 - # endif - #endif - ---- 174,191 ---- - /* Be conservative about sizeof(int). It could be 4 too. */ - # ifndef FEAT_GUI_GTK /* avoid problems when generating prototypes */ - # ifdef __GNUC__ -! # define VIM_SIZEOF_INT 4 - # else -! # define VIM_SIZEOF_INT 2 - # endif - # endif - #endif - #ifdef MACOS - # if defined(__POWERPC__) || defined(MACOS_X) || defined(__fourbyteints__) \ - || defined(__MRC__) || defined(__SC__) || defined(__APPLE_CC__)/* MPW Compilers */ -! # define VIM_SIZEOF_INT 4 - # else -! # define VIM_SIZEOF_INT 2 - # endif - #endif - -*************** -*** 417,428 **** - #define PRINTF_DECIMAL_LONG_U SCANF_DECIMAL_LONG_U - - /* -! * Only systems which use configure will have SIZEOF_OFF_T and SIZEOF_LONG - * defined, which is ok since those are the same systems which can have - * varying sizes for off_t. The other systems will continue to use "%ld" to - * print off_t since off_t is simply a typedef to long for them. - */ -! #if defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T > SIZEOF_LONG) - # define LONG_LONG_OFF_T - #endif - ---- 417,428 ---- - #define PRINTF_DECIMAL_LONG_U SCANF_DECIMAL_LONG_U - - /* -! * Only systems which use configure will have SIZEOF_OFF_T and VIM_SIZEOF_LONG - * defined, which is ok since those are the same systems which can have - * varying sizes for off_t. The other systems will continue to use "%ld" to - * print off_t since off_t is simply a typedef to long for them. - */ -! #if defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T > VIM_SIZEOF_LONG) - # define LONG_LONG_OFF_T - #endif - -*************** -*** 448,454 **** - # ifdef UNICODE16 - typedef unsigned short u8char_T; /* short should be 16 bits */ - # else -! # if SIZEOF_INT >= 4 - typedef unsigned int u8char_T; /* int is 32 bits */ - # else - typedef unsigned long u8char_T; /* long should be 32 bits or more */ ---- 448,454 ---- - # ifdef UNICODE16 - typedef unsigned short u8char_T; /* short should be 16 bits */ - # else -! # if VIM_SIZEOF_INT >= 4 - typedef unsigned int u8char_T; /* int is 32 bits */ - # else - typedef unsigned long u8char_T; /* long should be 32 bits or more */ -*************** -*** 1608,1614 **** - * With this we restrict the maximum line length to 1073741823. I guess this is - * not a real problem. BTW: Longer lines are split. - */ -! #if SIZEOF_INT >= 4 - # ifdef __MVS__ - # define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */ - # else ---- 1608,1614 ---- - * With this we restrict the maximum line length to 1073741823. I guess this is - * not a real problem. BTW: Longer lines are split. - */ -! #if VIM_SIZEOF_INT >= 4 - # ifdef __MVS__ - # define MAXCOL (0x3fffffffL) /* maximum column number, 30 bits */ - # else -*** ../vim-7.4.187/src/configure.in 2014-02-15 17:18:56.953897128 +0100 ---- src/configure.in 2014-02-23 22:37:40.080766138 +0100 -*************** -*** 3581,3586 **** ---- 3581,3590 ---- - AC_CHECK_SIZEOF([time_t]) - AC_CHECK_SIZEOF([off_t]) - -+ dnl Use different names to avoid clashing with other header files. -+ AC_DEFINE_UNQUOTED(VIM_SIZEOF_INT, [$ac_cv_sizeof_int]) -+ AC_DEFINE_UNQUOTED(VIM_SIZEOF_LONG, [$ac_cv_sizeof_long]) -+ - dnl Make sure that uint32_t is really 32 bits unsigned. - AC_MSG_CHECKING([uint32_t is 32 bits]) - AC_TRY_RUN([ -*** ../vim-7.4.187/src/auto/configure 2013-11-21 12:17:46.000000000 +0100 ---- src/auto/configure 2014-02-23 22:37:43.692766132 +0100 -*************** -*** 5199,5207 **** ---- 5199,5217 ---- - $as_echo_n "checking for mzscheme_base.c... " >&6; } - if test -f "${SCHEME_COLLECTS}collects/scheme/base.ss" ; then - MZSCHEME_EXTRA="mzscheme_base.c" -+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" -+ MZSCHEME_MOD="++lib scheme/base" - else - if test -f "${SCHEME_COLLECTS}collects/scheme/base.rkt" ; then - MZSCHEME_EXTRA="mzscheme_base.c" -+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/mzc" -+ MZSCHEME_MOD="++lib scheme/base" -+ else -+ if test -f "${SCHEME_COLLECTS}collects/racket/base.rkt" ; then -+ MZSCHEME_EXTRA="mzscheme_base.c" -+ MZSCHEME_MZC="${vi_cv_path_mzscheme_pfx}/bin/raco ctool" -+ MZSCHEME_MOD="" -+ fi - fi - fi - if test "X$MZSCHEME_EXTRA" != "X" ; then -*************** -*** 12323,12328 **** ---- 12333,12347 ---- - - - -+ cat >>confdefs.h <<_ACEOF -+ #define VIM_SIZEOF_INT $ac_cv_sizeof_int -+ _ACEOF -+ -+ cat >>confdefs.h <<_ACEOF -+ #define VIM_SIZEOF_LONG $ac_cv_sizeof_long -+ _ACEOF -+ -+ - { $as_echo "$as_me:${as_lineno-$LINENO}: checking uint32_t is 32 bits" >&5 - $as_echo_n "checking uint32_t is 32 bits... " >&6; } - if test "$cross_compiling" = yes; then : -*** ../vim-7.4.187/src/config.h.in 2013-11-02 21:04:32.000000000 +0100 ---- src/config.h.in 2014-02-23 21:45:36.784771111 +0100 -*************** -*** 37,46 **** - #undef UNIX - - /* Defined to the size of an int */ -! #undef SIZEOF_INT - - /* Defined to the size of a long */ -! #undef SIZEOF_LONG - - /* Defined to the size of off_t */ - #undef SIZEOF_OFF_T ---- 37,46 ---- - #undef UNIX - - /* Defined to the size of an int */ -! #undef VIM_SIZEOF_INT - - /* Defined to the size of a long */ -! #undef VIM_SIZEOF_LONG - - /* Defined to the size of off_t */ - #undef SIZEOF_OFF_T -*** ../vim-7.4.187/src/fileio.c 2014-02-11 15:23:27.938123631 +0100 ---- src/fileio.c 2014-02-23 22:31:00.824766773 +0100 -*************** -*** 1185,1191 **** - * The amount is limited by the fact that read() only can read - * upto max_unsigned characters (and other things). - */ -! #if SIZEOF_INT <= 2 - if (linerest >= 0x7ff0) - { - ++split; ---- 1185,1191 ---- - * The amount is limited by the fact that read() only can read - * upto max_unsigned characters (and other things). - */ -! #if VIM_SIZEOF_INT <= 2 - if (linerest >= 0x7ff0) - { - ++split; -*************** -*** 1197,1203 **** - { - if (!skip_read) - { -! #if SIZEOF_INT > 2 - # if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L) - size = SSIZE_MAX; /* use max I/O size, 52K */ - # else ---- 1197,1203 ---- - { - if (!skip_read) - { -! #if VIM_SIZEOF_INT > 2 - # if defined(SSIZE_MAX) && (SSIZE_MAX < 0x10000L) - size = SSIZE_MAX; /* use max I/O size, 52K */ - # else -*** ../vim-7.4.187/src/if_python.c 2014-01-14 19:35:49.000000000 +0100 ---- src/if_python.c 2014-02-23 21:54:39.212770247 +0100 -*************** -*** 613,619 **** - # endif - # endif - # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \ -! && SIZEOF_SIZE_T != SIZEOF_INT - # ifdef Py_DEBUG - {"Py_InitModule4TraceRefs_64", (PYTHON_PROC*)&dll_Py_InitModule4}, - # else ---- 613,619 ---- - # endif - # endif - # if defined(PY_VERSION_HEX) && PY_VERSION_HEX >= 0x02050000 \ -! && SIZEOF_SIZE_T != VIM_SIZEOF_INT - # ifdef Py_DEBUG - {"Py_InitModule4TraceRefs_64", (PYTHON_PROC*)&dll_Py_InitModule4}, - # else -*** ../vim-7.4.187/src/message.c 2013-11-04 02:00:55.000000000 +0100 ---- src/message.c 2014-02-23 21:55:16.984770187 +0100 -*************** -*** 4376,4382 **** - { - /* Don't put the #if inside memchr(), it can be a - * macro. */ -! #if SIZEOF_INT <= 2 - char *q = memchr(str_arg, '\0', precision); - #else - /* memchr on HP does not like n > 2^31 !!! */ ---- 4376,4382 ---- - { - /* Don't put the #if inside memchr(), it can be a - * macro. */ -! #if VIM_SIZEOF_INT <= 2 - char *q = memchr(str_arg, '\0', precision); - #else - /* memchr on HP does not like n > 2^31 !!! */ -*** ../vim-7.4.187/src/spell.c 2013-11-28 17:41:41.000000000 +0100 ---- src/spell.c 2014-02-23 21:55:24.600770175 +0100 -*************** -*** 317,323 **** - - /* Type used for indexes in the word tree need to be at least 4 bytes. If int - * is 8 bytes we could use something smaller, but what? */ -! #if SIZEOF_INT > 3 - typedef int idx_T; - #else - typedef long idx_T; ---- 317,323 ---- - - /* Type used for indexes in the word tree need to be at least 4 bytes. If int - * is 8 bytes we could use something smaller, but what? */ -! #if VIM_SIZEOF_INT > 3 - typedef int idx_T; - #else - typedef long idx_T; -*** ../vim-7.4.187/src/feature.h 2013-05-18 20:18:20.000000000 +0200 ---- src/feature.h 2014-02-23 21:55:54.868770127 +0100 -*************** -*** 328,334 **** - * - * Disabled for EBCDIC as it requires multibyte. - */ -! #if defined(FEAT_BIG) && !defined(WIN16) && SIZEOF_INT >= 4 && !defined(EBCDIC) - # define FEAT_ARABIC - #endif - #ifdef FEAT_ARABIC ---- 328,334 ---- - * - * Disabled for EBCDIC as it requires multibyte. - */ -! #if defined(FEAT_BIG) && !defined(WIN16) && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) - # define FEAT_ARABIC - #endif - #ifdef FEAT_ARABIC -*************** -*** 640,646 **** - */ - #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \ - && !defined(FEAT_MBYTE) && !defined(WIN16) \ -! && SIZEOF_INT >= 4 && !defined(EBCDIC) - # define FEAT_MBYTE - #endif - ---- 640,646 ---- - */ - #if (defined(FEAT_NORMAL) || defined(FEAT_GUI_GTK) || defined(FEAT_ARABIC)) \ - && !defined(FEAT_MBYTE) && !defined(WIN16) \ -! && VIM_SIZEOF_INT >= 4 && !defined(EBCDIC) - # define FEAT_MBYTE - #endif - -*************** -*** 661,667 **** - # define FEAT_MBYTE - #endif - -! #if defined(FEAT_MBYTE) && SIZEOF_INT < 4 && !defined(PROTO) - Error: Can only handle multi-byte feature with 32 bit int or larger - #endif - ---- 661,667 ---- - # define FEAT_MBYTE - #endif - -! #if defined(FEAT_MBYTE) && VIM_SIZEOF_INT < 4 && !defined(PROTO) - Error: Can only handle multi-byte feature with 32 bit int or larger - #endif - -*** ../vim-7.4.187/src/os_os2_cfg.h 2010-05-15 13:04:11.000000000 +0200 ---- src/os_os2_cfg.h 2014-02-23 21:56:03.540770113 +0100 -*************** -*** 47,53 **** - #undef UNIX /* define always by current configure script */ - - /* Defined to the size of an int */ -! #define SIZEOF_INT 4 - - /* - * If we cannot trust one of the following from the libraries, we use our ---- 47,53 ---- - #undef UNIX /* define always by current configure script */ - - /* Defined to the size of an int */ -! #define VIM_SIZEOF_INT 4 - - /* - * If we cannot trust one of the following from the libraries, we use our -*** ../vim-7.4.187/src/os_vms_conf.h 2010-07-28 19:07:48.000000000 +0200 ---- src/os_vms_conf.h 2014-02-23 21:56:20.700770086 +0100 -*************** -*** 23,29 **** - #define HAVE_DATE_TIME - - /* Defined to the size of an int */ -! #define SIZEOF_INT 4 - - /* #undef USEBCOPY */ - #define USEMEMMOVE ---- 23,29 ---- - #define HAVE_DATE_TIME - - /* Defined to the size of an int */ -! #define VIM_SIZEOF_INT 4 - - /* #undef USEBCOPY */ - #define USEMEMMOVE -*** ../vim-7.4.187/src/os_win16.h 2013-05-06 04:06:04.000000000 +0200 ---- src/os_win16.h 2014-02-23 21:56:39.292770056 +0100 -*************** -*** 55,62 **** - - #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ - -! #ifndef SIZEOF_INT -! # define SIZEOF_INT 2 - #endif - - typedef long off_t; ---- 55,62 ---- - - #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ - -! #ifndef VIM_SIZEOF_INT -! # define VIM_SIZEOF_INT 2 - #endif - - typedef long off_t; -*** ../vim-7.4.187/src/structs.h 2014-02-22 23:03:48.716901208 +0100 ---- src/structs.h 2014-02-23 21:57:17.680769995 +0100 -*************** -*** 364,370 **** - /* - * structures used in undo.c - */ -! #if SIZEOF_INT > 2 - # define ALIGN_LONG /* longword alignment and use filler byte */ - # define ALIGN_SIZE (sizeof(long)) - #else ---- 364,370 ---- - /* - * structures used in undo.c - */ -! #if VIM_SIZEOF_INT > 2 - # define ALIGN_LONG /* longword alignment and use filler byte */ - # define ALIGN_SIZE (sizeof(long)) - #else -*************** -*** 1094,1100 **** - typedef long_u hash_T; /* Type for hi_hash */ - - -! #if SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */ - typedef long varnumber_T; - #else - typedef int varnumber_T; ---- 1094,1100 ---- - typedef long_u hash_T; /* Type for hi_hash */ - - -! #if VIM_SIZEOF_INT <= 3 /* use long if int is smaller than 32 bits */ - typedef long varnumber_T; - #else - typedef int varnumber_T; -*** ../vim-7.4.187/src/version.c 2014-02-22 23:49:30.268896843 +0100 ---- src/version.c 2014-02-23 22:40:55.708765826 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 188, - /**/ - --- -I'm sure that I asked CBuilder to do a "full" install. Looks like I got -a "fool" install, instead. Charles E Campbell, Jr, PhD - - - /// 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 /// diff --git a/7.4.189 b/7.4.189 deleted file mode 100644 index cf6a2b70..00000000 --- a/7.4.189 +++ /dev/null @@ -1,52 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.189 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.189 -Problem: Compiler warning for unused argument. -Solution: Add UNUSED. -Files: src/eval.c - - -*** ../vim-7.4.188/src/eval.c 2014-02-22 22:18:39.532905522 +0100 ---- src/eval.c 2014-02-23 22:29:14.976766942 +0100 -*************** -*** 9203,9209 **** - byteidx(argvars, rettv, comp) - typval_T *argvars; - typval_T *rettv; -! int comp; - { - #ifdef FEAT_MBYTE - char_u *t; ---- 9203,9209 ---- - byteidx(argvars, rettv, comp) - typval_T *argvars; - typval_T *rettv; -! int comp UNUSED; - { - #ifdef FEAT_MBYTE - char_u *t; -*** ../vim-7.4.188/src/version.c 2014-02-23 22:52:33.372764715 +0100 ---- src/version.c 2014-02-23 22:54:17.836764549 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 189, - /**/ - --- -Q: How does a UNIX Guru pick up a girl? -A: look; grep; which; eval; nice; uname; talk; date; - - /// 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 /// diff --git a/7.4.190 b/7.4.190 deleted file mode 100644 index 6cafb4b2..00000000 --- a/7.4.190 +++ /dev/null @@ -1,70 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.190 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.190 -Problem: Compiler warning for using %lld for off_t. -Solution: Add type cast. -Files: src/fileio.c - - -*** ../vim-7.4.189/src/fileio.c 2014-02-23 22:52:33.368764715 +0100 ---- src/fileio.c 2014-02-23 22:31:00.824766773 +0100 -*************** -*** 5294,5300 **** - if (shortmess(SHM_LINES)) - sprintf((char *)p, - #ifdef LONG_LONG_OFF_T -! "%ldL, %lldC", lnum, nchars - #else - /* Explicit typecast avoids warning on Mac OS X 10.6 */ - "%ldL, %ldC", lnum, (long)nchars ---- 5294,5300 ---- - if (shortmess(SHM_LINES)) - sprintf((char *)p, - #ifdef LONG_LONG_OFF_T -! "%ldL, %lldC", lnum, (long long)nchars - #else - /* Explicit typecast avoids warning on Mac OS X 10.6 */ - "%ldL, %ldC", lnum, (long)nchars -*************** -*** 5312,5318 **** - else - sprintf((char *)p, - #ifdef LONG_LONG_OFF_T -! _("%lld characters"), nchars - #else - /* Explicit typecast avoids warning on Mac OS X 10.6 */ - _("%ld characters"), (long)nchars ---- 5312,5318 ---- - else - sprintf((char *)p, - #ifdef LONG_LONG_OFF_T -! _("%lld characters"), (long long)nchars - #else - /* Explicit typecast avoids warning on Mac OS X 10.6 */ - _("%ld characters"), (long)nchars -*** ../vim-7.4.189/src/version.c 2014-02-23 22:54:54.728764490 +0100 ---- src/version.c 2014-02-23 22:57:43.648764221 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 190, - /**/ - --- -Courtroom Quote #19: -Q: Doctor, how many autopsies have you performed on dead people? -A: All my autopsies have been performed on dead people. - - /// 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 /// diff --git a/7.4.191 b/7.4.191 deleted file mode 100644 index f0bb71bf..00000000 --- a/7.4.191 +++ /dev/null @@ -1,689 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.191 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.191 -Problem: Escaping a file name for shell commands can't be done without a - function. -Solution: Add the :S file name modifier. -Files: src/testdir/Make_amiga.mak, src/testdir/Make_dos.mak, - src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, - src/testdir/Make_vms.mms, src/testdir/Makefile, - src/testdir/test105.in, src/testdir/test105.ok, - runtime/doc/cmdline.txt, runtime/doc/eval.txt, - runtime/doc/map.txt, runtime/doc/options.txt, - runtime/doc/quickfix.txt, runtime/doc/usr_30.txt, - runtime/doc/usr_40.txt, runtime/doc/usr_42.txt, - runtime/doc/vi_diff.txt, src/eval.c, src/misc2.c, src/normal.c, - src/proto/misc2.pro - - -*** ../vim-7.4.190/src/testdir/Make_amiga.mak 2014-02-05 22:25:29.974568243 +0100 ---- src/testdir/Make_amiga.mak 2014-02-23 23:16:51.056762395 +0100 -*************** -*** 35,41 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out - - .SUFFIXES: .in .out - ---- 35,41 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out test105.out - - .SUFFIXES: .in .out - -*************** -*** 156,158 **** ---- 156,159 ---- - test102.out: test102.in - test103.out: test103.in - test104.out: test104.in -+ test105.out: test105.in -*** ../vim-7.4.190/src/testdir/Make_dos.mak 2014-02-05 22:25:29.978568243 +0100 ---- src/testdir/Make_dos.mak 2014-02-23 23:17:41.840762314 +0100 -*************** -*** 33,39 **** - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - SCRIPTS32 = test50.out test70.out - ---- 33,40 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.190/src/testdir/Make_ming.mak 2014-02-05 22:25:29.978568243 +0100 ---- src/testdir/Make_ming.mak 2014-02-23 23:17:29.400762333 +0100 -*************** -*** 53,59 **** - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - SCRIPTS32 = test50.out test70.out - ---- 53,60 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.190/src/testdir/Make_os2.mak 2014-02-05 22:25:29.978568243 +0100 ---- src/testdir/Make_os2.mak 2014-02-23 23:17:49.476762302 +0100 -*************** -*** 35,41 **** - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - .SUFFIXES: .in .out - ---- 35,42 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.190/src/testdir/Make_vms.mms 2014-02-05 22:25:29.978568243 +0100 ---- src/testdir/Make_vms.mms 2014-02-23 23:17:56.596762290 +0100 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2013 Nov 21 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2014 Feb 23 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 79,85 **** - 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 \ -! test100.out test101.out test102.out test103.out test104.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason ---- 79,86 ---- - 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 \ -! test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - # Known problems: - # Test 30: a problem around mac format - unknown reason -*** ../vim-7.4.190/src/testdir/Makefile 2014-02-05 22:25:29.982568243 +0100 ---- src/testdir/Makefile 2014-02-23 23:18:14.040762262 +0100 -*************** -*** 31,37 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out - - SCRIPTS_GUI = test16.out - ---- 31,37 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out test105.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.190/src/testdir/test105.in 2014-02-23 23:35:40.680760596 +0100 ---- src/testdir/test105.in 2014-02-23 23:30:24.748761099 +0100 -*************** -*** 0 **** ---- 1,45 ---- -+ Test filename modifiers vim: set ft=vim : -+ -+ STARTTEST -+ :source small.vim -+ :%delete _ -+ :set shell=sh -+ :set shellslash -+ :let tab="\t" -+ :command -nargs=1 Put :let expr= | $put =expr.tab.strtrans(string(eval(expr))) -+ :let $HOME=fnamemodify('.', ':p:h:h:h') -+ :Put fnamemodify('.', ':p' )[-1:] -+ :Put fnamemodify('.', ':p:h' )[-1:] -+ :Put fnamemodify('test.out', ':p' )[-1:] -+ :Put fnamemodify('test.out', ':.' ) -+ :Put fnamemodify('../testdir/a', ':.' ) -+ :Put fnamemodify('test.out', ':~' ) -+ :Put fnamemodify('../testdir/a', ':~' ) -+ :Put fnamemodify('../testdir/a', ':t' ) -+ :Put fnamemodify('.', ':p:t' ) -+ :Put fnamemodify('test.out', ':p:t' ) -+ :Put fnamemodify('test.out', ':p:e' ) -+ :Put fnamemodify('test.out', ':p:t:e' ) -+ :Put fnamemodify('abc.fb2.tar.gz', ':r' ) -+ :Put fnamemodify('abc.fb2.tar.gz', ':r:r' ) -+ :Put fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) -+ :Put substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '') -+ :Put fnamemodify('abc.fb2.tar.gz', ':e' ) -+ :Put fnamemodify('abc.fb2.tar.gz', ':e:e' ) -+ :Put fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) -+ :Put fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') -+ :Put fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) -+ :Put fnamemodify('abc def', ':S' ) -+ :Put fnamemodify('abc" "def', ':S' ) -+ :Put fnamemodify('abc"%"def', ':S' ) -+ :Put fnamemodify('abc'' ''def', ':S' ) -+ :Put fnamemodify('abc''%''def', ':S' ) -+ :Put fnamemodify("abc\ndef", ':S' ) -+ :set shell=tcsh -+ :Put fnamemodify("abc\ndef", ':S' ) -+ :$put ='vim: ts=8' -+ :1 delete _ -+ :w! test.out -+ :qa! -+ ENDTEST -+ -*** ../vim-7.4.190/src/testdir/test105.ok 2014-02-23 23:35:40.688760596 +0100 ---- src/testdir/test105.ok 2014-02-23 23:32:11.204760929 +0100 -*************** -*** 0 **** ---- 1,29 ---- -+ fnamemodify('.', ':p' )[-1:] '/' -+ fnamemodify('.', ':p:h' )[-1:] 'r' -+ fnamemodify('test.out', ':p' )[-1:] 't' -+ fnamemodify('test.out', ':.' ) 'test.out' -+ fnamemodify('../testdir/a', ':.' ) 'a' -+ fnamemodify('test.out', ':~' ) '~/src/testdir/test.out' -+ fnamemodify('../testdir/a', ':~' ) '~/src/testdir/a' -+ fnamemodify('../testdir/a', ':t' ) 'a' -+ fnamemodify('.', ':p:t' ) '' -+ fnamemodify('test.out', ':p:t' ) 'test.out' -+ fnamemodify('test.out', ':p:e' ) 'out' -+ fnamemodify('test.out', ':p:t:e' ) 'out' -+ fnamemodify('abc.fb2.tar.gz', ':r' ) 'abc.fb2.tar' -+ fnamemodify('abc.fb2.tar.gz', ':r:r' ) 'abc.fb2' -+ fnamemodify('abc.fb2.tar.gz', ':r:r:r' ) 'abc' -+ substitute(fnamemodify('abc.fb2.tar.gz', ':p:r:r'), '.*\(src/testdir/.*\)', '\1', '') 'src/testdir/abc.fb2' -+ fnamemodify('abc.fb2.tar.gz', ':e' ) 'gz' -+ fnamemodify('abc.fb2.tar.gz', ':e:e' ) 'tar.gz' -+ fnamemodify('abc.fb2.tar.gz', ':e:e:e' ) 'fb2.tar.gz' -+ fnamemodify('abc.fb2.tar.gz', ':e:e:e:e') 'fb2.tar.gz' -+ fnamemodify('abc.fb2.tar.gz', ':e:e:r' ) 'tar' -+ fnamemodify('abc def', ':S' ) '''abc def''' -+ fnamemodify('abc" "def', ':S' ) '''abc" "def''' -+ fnamemodify('abc"%"def', ':S' ) '''abc"%"def''' -+ fnamemodify('abc'' ''def', ':S' ) '''abc''\'''' ''\''''def''' -+ fnamemodify('abc''%''def', ':S' ) '''abc''\''''%''\''''def''' -+ fnamemodify("abc\ndef", ':S' ) '''abc^@def''' -+ fnamemodify("abc\ndef", ':S' ) '''abc\^@def''' -+ vim: ts=8 -*** ../vim-7.4.190/runtime/doc/cmdline.txt 2013-11-09 05:30:18.000000000 +0100 ---- runtime/doc/cmdline.txt 2014-02-23 23:20:57.020762003 +0100 -*************** -*** 758,763 **** ---- 758,764 ---- - function expand() |expand()|. - % Is replaced with the current file name. *:_%* *c_%* - # Is replaced with the alternate file name. *:_#* *c_#* -+ This is remembered for every window. - #n (where n is a number) is replaced with *:_#0* *:_#n* - the file name of buffer n. "#0" is the same as "#". *c_#n* - ## Is replaced with all names in the argument list *:_##* *c_##* -*************** -*** 823,830 **** - the start of the function. - - *filename-modifiers* -! *:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* -! *%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* - The file name modifiers can be used after "%", "#", "#n", "", "", - "" or "". They are also used with the |fnamemodify()| function. - These are not available when Vim has been compiled without the |+modify_fname| ---- 824,831 ---- - the start of the function. - - *filename-modifiers* -! *:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S* -! *%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S* - The file name modifiers can be used after "%", "#", "#n", "", "", - "" or "". They are also used with the |fnamemodify()| function. - These are not available when Vim has been compiled without the |+modify_fname| -*************** -*** 879,884 **** ---- 880,889 ---- - :gs?pat?sub? - Substitute all occurrences of "pat" with "sub". Otherwise - this works like ":s". -+ :S Escape special characters for use with a shell command (see -+ |shellescape()|). Must be the last one. Examples: > -+ :!dir :S -+ :call system('chmod +w -- ' . expand('%:S')) - - Examples, when the file name is "src/version.c", current dir - "/home/mool/vim": > -*** ../vim-7.4.190/runtime/doc/eval.txt 2014-01-14 12:33:32.000000000 +0100 ---- runtime/doc/eval.txt 2014-02-23 23:19:32.420762138 +0100 -*************** -*** 5414,5419 **** ---- 5428,5434 ---- - < This results in a directory listing for the file under the - cursor. Example of use with |system()|: > - :call system("chmod +w -- " . shellescape(expand("%"))) -+ < See also |::S|. - - - shiftwidth() *shiftwidth()* -*************** -*** 5896,5909 **** - passed as stdin to the command. The string is written as-is, - you need to take care of using the correct line separators - yourself. Pipes are not used. -! Note: Use |shellescape()| to escape special characters in a -! command argument. Newlines in {expr} may cause the command to -! fail. The characters in 'shellquote' and 'shellxquote' may -! also cause trouble. - This is not to be used for interactive commands. - - The result is a String. Example: > - :let files = system("ls " . shellescape(expand('%:h'))) - - < To make the result more system-independent, the shell output - is filtered to replace with for Macintosh, and ---- 5911,5926 ---- - passed as stdin to the command. The string is written as-is, - you need to take care of using the correct line separators - yourself. Pipes are not used. -! Note: Use |shellescape()| or |::S| with |expand()| or -! |fnamemodify()| to escape special characters in a command -! argument. Newlines in {expr} may cause the command to fail. -! The characters in 'shellquote' and 'shellxquote' may also -! cause trouble. - This is not to be used for interactive commands. - - The result is a String. Example: > - :let files = system("ls " . shellescape(expand('%:h'))) -+ :let files = system('ls ' . expand('%:h:S')) - - < To make the result more system-independent, the shell output - is filtered to replace with for Macintosh, and -*** ../vim-7.4.190/runtime/doc/map.txt 2013-08-10 13:24:56.000000000 +0200 ---- runtime/doc/map.txt 2014-02-23 23:19:32.424762138 +0100 -*************** -*** 380,386 **** - The simplest way to load a set of related language mappings is by using the - 'keymap' option. See |45.5|. - In Insert mode and in Command-line mode the mappings can be disabled with -! the CTRL-^ command |i_CTRL-^| |c_CTRL-^| These commands change the value of - the 'iminsert' option. When starting to enter a normal command line (not a - search pattern) the mappings are disabled until a CTRL-^ is typed. The state - last used is remembered for Insert mode and Search patterns separately. The ---- 380,386 ---- - The simplest way to load a set of related language mappings is by using the - 'keymap' option. See |45.5|. - In Insert mode and in Command-line mode the mappings can be disabled with -! the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of - the 'iminsert' option. When starting to enter a normal command line (not a - search pattern) the mappings are disabled until a CTRL-^ is typed. The state - last used is remembered for Insert mode and Search patterns separately. The -*************** -*** 593,599 **** - When you have a mapping that contains an Ex command, you need to put a line - terminator after it to have it executed. The use of is recommended for - this (see |<>|). Example: > -! :map _ls :!ls -l %:echo "the end" - - To avoid mapping of the characters you type in insert or Command-line mode, - type a CTRL-V first. The mapping in Insert mode is disabled if the 'paste' ---- 593,599 ---- - When you have a mapping that contains an Ex command, you need to put a line - terminator after it to have it executed. The use of is recommended for - this (see |<>|). Example: > -! :map _ls :!ls -l %:S:echo "the end" - - To avoid mapping of the characters you type in insert or Command-line mode, - type a CTRL-V first. The mapping in Insert mode is disabled if the 'paste' -*** ../vim-7.4.190/runtime/doc/options.txt 2013-11-12 04:43:57.000000000 +0100 ---- runtime/doc/options.txt 2014-02-23 23:19:32.428762138 +0100 -*************** -*** 4757,4764 **** - global or local to buffer |global-local| - {not in Vi} - Program to use for the ":make" command. See |:make_makeprg|. -! This option may contain '%' and '#' characters, which are expanded to -! the current and alternate file name. |:_%| |:_#| - Environment variables are expanded |:set_env|. See |option-backslash| - about including spaces and backslashes. - Note that a '|' must be escaped twice: once for ":set" and once for ---- 4757,4765 ---- - global or local to buffer |global-local| - {not in Vi} - Program to use for the ":make" command. See |:make_makeprg|. -! This option may contain '%' and '#' characters (see |:_%| and |:_#|), -! which are expanded to the current and alternate file name. Use |::S| -! to escape file names in case they contain special characters. - Environment variables are expanded |:set_env|. See |option-backslash| - about including spaces and backslashes. - Note that a '|' must be escaped twice: once for ":set" and once for -*** ../vim-7.4.190/runtime/doc/quickfix.txt 2013-08-10 13:25:00.000000000 +0200 ---- runtime/doc/quickfix.txt 2014-02-23 23:19:32.432762138 +0100 -*************** -*** 838,844 **** - The alltests.py script seems to be used quite often, that's all. - Useful values for the 'makeprg' options therefore are: - setlocal makeprg=./alltests.py " Run a testsuite -! setlocal makeprg=python % " Run a single testcase - - Also see http://vim.sourceforge.net/tip_view.php?tip_id=280. - ---- 838,844 ---- - The alltests.py script seems to be used quite often, that's all. - Useful values for the 'makeprg' options therefore are: - setlocal makeprg=./alltests.py " Run a testsuite -! setlocal makeprg=python\ %:S " Run a single testcase - - Also see http://vim.sourceforge.net/tip_view.php?tip_id=280. - -*************** -*** 1332,1338 **** - Here is an alternative from Michael F. Lamb for Unix that filters the errors - first: > - :setl errorformat=%Z%f:%l:\ %m,%A%p^,%-G%*[^sl]%.%# -! :setl makeprg=javac\ %\ 2>&1\ \\\|\ vim-javac-filter - - You need to put the following in "vim-javac-filter" somewhere in your path - (e.g., in ~/bin) and make it executable: > ---- 1332,1338 ---- - Here is an alternative from Michael F. Lamb for Unix that filters the errors - first: > - :setl errorformat=%Z%f:%l:\ %m,%A%p^,%-G%*[^sl]%.%# -! :setl makeprg=javac\ %:S\ 2>&1\ \\\|\ vim-javac-filter - - You need to put the following in "vim-javac-filter" somewhere in your path - (e.g., in ~/bin) and make it executable: > -*** ../vim-7.4.190/runtime/doc/usr_30.txt 2013-08-10 13:25:05.000000000 +0200 ---- runtime/doc/usr_30.txt 2014-02-23 23:19:32.432762138 +0100 -*************** -*** 128,134 **** - You can include special Vim keywords in the command specification. The % - character expands to the name of the current file. So if you execute the - command: > -! :set makeprg=make\ % - - When you are editing main.c, then ":make" executes the following command: > - ---- 128,134 ---- - You can include special Vim keywords in the command specification. The % - character expands to the name of the current file. So if you execute the - command: > -! :set makeprg=make\ %:S - - When you are editing main.c, then ":make" executes the following command: > - -*************** -*** 137,143 **** - This is not too useful, so you will refine the command a little and use the :r - (root) modifier: > - -! :set makeprg=make\ %:r.o - - Now the command executed is as follows: > - ---- 137,143 ---- - This is not too useful, so you will refine the command a little and use the :r - (root) modifier: > - -! :set makeprg=make\ %:r:S.o - - Now the command executed is as follows: > - -*** ../vim-7.4.190/runtime/doc/usr_40.txt 2013-08-10 13:25:05.000000000 +0200 ---- runtime/doc/usr_40.txt 2014-02-23 23:19:32.432762138 +0100 -*************** -*** 209,215 **** - separates the two commands. This also means that a | character can't be used - inside a map command. To include one, use (five characters). Example: - > -! :map :write !checkin % - - The same problem applies to the ":unmap" command, with the addition that you - have to watch out for trailing white space. These two commands are different: ---- 209,215 ---- - separates the two commands. This also means that a | character can't be used - inside a map command. To include one, use (five characters). Example: - > -! :map :write !checkin %:S - - The same problem applies to the ":unmap" command, with the addition that you - have to watch out for trailing white space. These two commands are different: -*** ../vim-7.4.190/runtime/doc/usr_42.txt 2013-08-10 13:25:05.000000000 +0200 ---- runtime/doc/usr_42.txt 2014-02-23 23:19:32.432762138 +0100 -*************** -*** 311,317 **** - item with a bitmap. For example, define a new toolbar item with: > - - :tmenu ToolBar.Compile Compile the current file -! :amenu ToolBar.Compile :!cc % -o %:r - - Now you need to create the icon. For MS-Windows it must be in bitmap format, - with the name "Compile.bmp". For Unix XPM format is used, the file name is ---- 311,317 ---- - item with a bitmap. For example, define a new toolbar item with: > - - :tmenu ToolBar.Compile Compile the current file -! :amenu ToolBar.Compile :!cc %:S -o %:r:S - - Now you need to create the icon. For MS-Windows it must be in bitmap format, - with the name "Compile.bmp". For Unix XPM format is used, the file name is -*** ../vim-7.4.190/runtime/doc/vi_diff.txt 2013-08-10 13:25:07.000000000 +0200 ---- runtime/doc/vi_diff.txt 2014-02-23 23:19:32.432762138 +0100 -*************** -*** 540,546 **** - Added :wnext command. Same as ":write" followed by ":next". - - The ":w!" command always writes, also when the file is write protected. In Vi -! you would have to do ":!chmod +w %" and ":set noro". - - When 'tildeop' has been set, "~" is an operator (must be followed by a - movement command). ---- 540,546 ---- - Added :wnext command. Same as ":write" followed by ":next". - - The ":w!" command always writes, also when the file is write protected. In Vi -! you would have to do ":!chmod +w %:S" and ":set noro". - - When 'tildeop' has been set, "~" is an operator (must be followed by a - movement command). -*** ../vim-7.4.190/src/eval.c 2014-02-23 22:54:54.724764490 +0100 ---- src/eval.c 2014-02-23 23:19:32.432762138 +0100 -*************** -*** 16950,16956 **** - typval_T *rettv; - { - rettv->vval.v_string = vim_strsave_shellescape( -! get_tv_string(&argvars[0]), non_zero_arg(&argvars[1])); - rettv->v_type = VAR_STRING; - } - ---- 16950,16956 ---- - typval_T *rettv; - { - rettv->vval.v_string = vim_strsave_shellescape( -! get_tv_string(&argvars[0]), non_zero_arg(&argvars[1]), TRUE); - rettv->v_type = VAR_STRING; - } - -*************** -*** 24355,24360 **** ---- 24355,24371 ---- - } - } - -+ if (src[*usedlen] == ':' && src[*usedlen + 1] == 'S') -+ { -+ p = vim_strsave_shellescape(*fnamep, FALSE, FALSE); -+ if (p == NULL) -+ return -1; -+ vim_free(*bufp); -+ *bufp = *fnamep = p; -+ *fnamelen = (int)STRLEN(p); -+ *usedlen += 2; -+ } -+ - return valid; - } - -*** ../vim-7.4.190/src/misc2.c 2014-01-06 06:18:44.000000000 +0100 ---- src/misc2.c 2014-02-23 23:25:44.168761546 +0100 -*************** -*** 1369,1380 **** - * Escape a newline, depending on the 'shell' option. - * When "do_special" is TRUE also replace "!", "%", "#" and things starting - * with "<" like "". - * Returns the result in allocated memory, NULL if we have run out. - */ - char_u * -! vim_strsave_shellescape(string, do_special) - char_u *string; - int do_special; - { - unsigned length; - char_u *p; ---- 1369,1382 ---- - * Escape a newline, depending on the 'shell' option. - * When "do_special" is TRUE also replace "!", "%", "#" and things starting - * with "<" like "". -+ * When "do_newline" is FALSE do not escape newline unless it is csh shell. - * Returns the result in allocated memory, NULL if we have run out. - */ - char_u * -! vim_strsave_shellescape(string, do_special, do_newline) - char_u *string; - int do_special; -+ int do_newline; - { - unsigned length; - char_u *p; -*************** -*** 1403,1409 **** - # endif - if (*p == '\'') - length += 3; /* ' => '\'' */ -! if (*p == '\n' || (*p == '!' && (csh_like || do_special))) - { - ++length; /* insert backslash */ - if (csh_like && do_special) ---- 1405,1412 ---- - # endif - if (*p == '\'') - length += 3; /* ' => '\'' */ -! if ((*p == '\n' && (csh_like || do_newline)) -! || (*p == '!' && (csh_like || do_special))) - { - ++length; /* insert backslash */ - if (csh_like && do_special) -*************** -*** 1454,1460 **** - ++p; - continue; - } -! if (*p == '\n' || (*p == '!' && (csh_like || do_special))) - { - *d++ = '\\'; - if (csh_like && do_special) ---- 1457,1464 ---- - ++p; - continue; - } -! if ((*p == '\n' && (csh_like || do_newline)) -! || (*p == '!' && (csh_like || do_special))) - { - *d++ = '\\'; - if (csh_like && do_special) -*** ../vim-7.4.190/src/normal.c 2014-02-22 23:49:30.268896843 +0100 ---- src/normal.c 2014-02-23 23:19:32.436762138 +0100 -*************** -*** 5790,5796 **** - { - /* Escape the argument properly for a shell command */ - ptr = vim_strnsave(ptr, n); -! p = vim_strsave_shellescape(ptr, TRUE); - vim_free(ptr); - if (p == NULL) - { ---- 5790,5796 ---- - { - /* Escape the argument properly for a shell command */ - ptr = vim_strnsave(ptr, n); -! p = vim_strsave_shellescape(ptr, TRUE, TRUE); - vim_free(ptr); - if (p == NULL) - { -*** ../vim-7.4.190/src/proto/misc2.pro 2013-08-10 13:37:20.000000000 +0200 ---- src/proto/misc2.pro 2014-02-23 23:19:32.436762138 +0100 -*************** -*** 32,38 **** - char_u *vim_strsave_escaped __ARGS((char_u *string, char_u *esc_chars)); - char_u *vim_strsave_escaped_ext __ARGS((char_u *string, char_u *esc_chars, int cc, int bsl)); - int csh_like_shell __ARGS((void)); -! char_u *vim_strsave_shellescape __ARGS((char_u *string, int do_special)); - char_u *vim_strsave_up __ARGS((char_u *string)); - char_u *vim_strnsave_up __ARGS((char_u *string, int len)); - void vim_strup __ARGS((char_u *p)); ---- 32,38 ---- - char_u *vim_strsave_escaped __ARGS((char_u *string, char_u *esc_chars)); - char_u *vim_strsave_escaped_ext __ARGS((char_u *string, char_u *esc_chars, int cc, int bsl)); - int csh_like_shell __ARGS((void)); -! char_u *vim_strsave_shellescape __ARGS((char_u *string, int do_special, int do_newline)); - char_u *vim_strsave_up __ARGS((char_u *string)); - char_u *vim_strnsave_up __ARGS((char_u *string, int len)); - void vim_strup __ARGS((char_u *p)); -*** ../vim-7.4.190/src/version.c 2014-02-23 22:58:12.072764176 +0100 ---- src/version.c 2014-02-23 23:35:51.044760579 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 191, - /**/ - --- -Windows -M!uqoms - - /// 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 /// diff --git a/7.4.192 b/7.4.192 deleted file mode 100644 index 256d0faf..00000000 --- a/7.4.192 +++ /dev/null @@ -1,44 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.192 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.192 -Problem: Memory leak when giving E853. -Solution: Free the argument. (Dominique Pelle) -Files: src/eval.c - - -*** ../vim-7.4.191/src/eval.c 2014-02-23 23:38:58.824760280 +0100 ---- src/eval.c 2014-02-24 03:27:39.244738435 +0100 -*************** -*** 21457,21462 **** ---- 21457,21463 ---- - if (STRCMP(((char_u **)(newargs.ga_data))[i], arg) == 0) - { - EMSG2(_("E853: Duplicate argument name: %s"), arg); -+ vim_free(arg); - goto erret; - } - -*** ../vim-7.4.191/src/version.c 2014-02-23 23:38:58.828760280 +0100 ---- src/version.c 2014-02-24 03:28:23.068738365 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 192, - /**/ - --- -Seen on the back of a biker's vest: If you can read this, my wife fell off. - - /// 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 /// diff --git a/7.4.193 b/7.4.193 deleted file mode 100644 index f84a9d1c..00000000 --- a/7.4.193 +++ /dev/null @@ -1,106 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.193 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.193 -Problem: Typos in messages. -Solution: "then" -> "than". (Dominique Pelle) -Files: src/if_py_both.h, src/spell.c - - -*** ../vim-7.4.192/src/if_py_both.h 2014-02-15 15:58:55.081904773 +0100 ---- src/if_py_both.h 2014-03-08 16:10:46.015459417 +0100 -*************** -*** 236,242 **** - if (*result <= 0) - { - PyErr_SET_STRING(PyExc_ValueError, -! N_("number must be greater then zero")); - return -1; - } - } ---- 236,242 ---- - if (*result <= 0) - { - PyErr_SET_STRING(PyExc_ValueError, -! N_("number must be greater than zero")); - return -1; - } - } -*************** -*** 2405,2411 **** - if ((item = PyIter_Next(iterator))) - { - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %d " - "to extended slice"), 0); - Py_DECREF(item); - ret = -1; ---- 2405,2411 ---- - if ((item = PyIter_Next(iterator))) - { - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater than %d " - "to extended slice"), 0); - Py_DECREF(item); - ret = -1; -*************** -*** 2510,2516 **** - { - Py_DECREF(iterator); - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater then %d " - "to extended slice"), (int) slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); ---- 2510,2516 ---- - { - Py_DECREF(iterator); - PyErr_FORMAT(PyExc_ValueError, -! N_("attempt to assign sequence of size greater than %d " - "to extended slice"), (int) slicelen); - list_restore(numadded, numreplaced, slicelen, l, lis, lastaddedli); - PyMem_Free(lis); -*** ../vim-7.4.192/src/spell.c 2014-02-23 22:52:33.372764715 +0100 ---- src/spell.c 2014-03-08 16:10:46.019459417 +0100 -*************** -*** 12037,12043 **** - /* Normal byte, go one level deeper. If it's not equal to the - * byte in the bad word adjust the score. But don't even try - * when the byte was already changed. And don't try when we -! * just deleted this byte, accepting it is always cheaper then - * delete + substitute. */ - if (c == fword[sp->ts_fidx] - #ifdef FEAT_MBYTE ---- 12037,12043 ---- - /* Normal byte, go one level deeper. If it's not equal to the - * byte in the bad word adjust the score. But don't even try - * when the byte was already changed. And don't try when we -! * just deleted this byte, accepting it is always cheaper than - * delete + substitute. */ - if (c == fword[sp->ts_fidx] - #ifdef FEAT_MBYTE -*** ../vim-7.4.192/src/version.c 2014-02-24 03:31:55.816738026 +0100 ---- src/version.c 2014-03-08 16:11:51.591460422 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 193, - /**/ - --- -BEDEVERE: How do you know so much about swallows? -ARTHUR: Well you have to know these things when you're a king, you know. - "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD - - /// 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 /// diff --git a/7.4.194 b/7.4.194 deleted file mode 100644 index e73bd139..00000000 --- a/7.4.194 +++ /dev/null @@ -1,53 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.194 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.194 -Problem: Can't build for Android. -Solution: Add #if condition. (Fredrik Fornwall) -Files: src/mbyte.c - - -*** ../vim-7.4.193/src/mbyte.c 2014-01-14 13:26:17.000000000 +0100 ---- src/mbyte.c 2014-03-03 22:41:30.527101306 +0100 -*************** -*** 708,714 **** - * API */ - n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1; - #else -! # if defined(MACOS) || defined(__amigaos4__) - /* - * if mblen() is not available, character which MSB is turned on - * are treated as leading byte character. (note : This assumption ---- 708,714 ---- - * API */ - n = IsDBCSLeadByteEx(enc_dbcs, (WINBYTE)i) ? 2 : 1; - #else -! # if defined(MACOS) || defined(__amigaos4__) || defined(__ANDROID__) - /* - * if mblen() is not available, character which MSB is turned on - * are treated as leading byte character. (note : This assumption -*** ../vim-7.4.193/src/version.c 2014-03-08 16:13:39.123462070 +0100 ---- src/version.c 2014-03-12 14:53:45.148684209 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 194, - /**/ - --- -A programmer's wife asks him: "Please run to the store and pick up a loaf of -bread. If they have eggs, get a dozen". The programmer comes home with 12 -loafs of bread. - - /// 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 /// diff --git a/7.4.195 b/7.4.195 deleted file mode 100644 index 0cd888d4..00000000 --- a/7.4.195 +++ /dev/null @@ -1,164 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.195 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.195 (after 7.4.193) -Problem: Python tests fail. -Solution: Change "then" to "than" in more places. (Dominique Pelle, Taro - Muraoka) -Files: src/testdir/test86.in, src/testdir/test86.ok, - src/testdir/test87.in, src/testdir/test87.ok - - -*** ../vim-7.4.194/src/testdir/test86.in 2014-02-11 18:47:18.678311042 +0100 ---- src/testdir/test86.in 2014-03-12 15:20:41.512708977 +0100 -*************** -*** 675,681 **** - # Check GCing iterator that was not fully exhausted - i = iter(vim.buffers) - cb.append('i:' + str(next(i))) -! # and also check creating more then one iterator at a time - i2 = iter(vim.buffers) - cb.append('i2:' + str(next(i2))) - cb.append('i:' + str(next(i))) ---- 675,681 ---- - # Check GCing iterator that was not fully exhausted - i = iter(vim.buffers) - cb.append('i:' + str(next(i))) -! # and also check creating more than one iterator at a time - i2 = iter(vim.buffers) - cb.append('i2:' + str(next(i2))) - cb.append('i:' + str(next(i))) -*** ../vim-7.4.194/src/testdir/test86.ok 2014-01-14 16:54:53.000000000 +0100 ---- src/testdir/test86.ok 2014-03-12 15:19:28.080707851 +0100 -*************** -*** 882,892 **** - l[:] = FailingIter():NotImplementedError:('iter',) - l[:] = FailingIterNext():NotImplementedError:('next',) - <<< Finished -! nel[1:10:2] = "abcK":ValueError:('attempt to assign sequence of size greater then 2 to extended slice',) - ('a', 'b', 'c', 'O') - nel[1:10:2] = "a":ValueError:('attempt to assign sequence of size 1 to extended slice of size 2',) - ('a', 'b', 'c', 'O') -! nel[1:1:-1] = "a":ValueError:('attempt to assign sequence of size greater then 0 to extended slice',) - ('a', 'b', 'c', 'O') - nel[:] = FailingIterNextN(2):NotImplementedError:('next N',) - ('a', 'b', 'c', 'O') ---- 882,892 ---- - l[:] = FailingIter():NotImplementedError:('iter',) - l[:] = FailingIterNext():NotImplementedError:('next',) - <<< Finished -! nel[1:10:2] = "abcK":ValueError:('attempt to assign sequence of size greater than 2 to extended slice',) - ('a', 'b', 'c', 'O') - nel[1:10:2] = "a":ValueError:('attempt to assign sequence of size 1 to extended slice of size 2',) - ('a', 'b', 'c', 'O') -! nel[1:1:-1] = "a":ValueError:('attempt to assign sequence of size greater than 0 to extended slice',) - ('a', 'b', 'c', 'O') - nel[:] = FailingIterNextN(2):NotImplementedError:('next N',) - ('a', 'b', 'c', 'O') -*************** -*** 1233,1240 **** - >>> Testing NumberToLong using vim.buffers[%s] - vim.buffers[[]]:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',) - vim.buffers[None]:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',) -! vim.buffers[-1]:ValueError:('number must be greater then zero',) -! vim.buffers[0]:ValueError:('number must be greater then zero',) - <<< Finished - > Current - >> CurrentGetattr ---- 1233,1240 ---- - >>> Testing NumberToLong using vim.buffers[%s] - vim.buffers[[]]:TypeError:('expected int(), long() or something supporting coercing to long(), but got list',) - vim.buffers[None]:TypeError:('expected int(), long() or something supporting coercing to long(), but got NoneType',) -! vim.buffers[-1]:ValueError:('number must be greater than zero',) -! vim.buffers[0]:ValueError:('number must be greater than zero',) - <<< Finished - > Current - >> CurrentGetattr -*** ../vim-7.4.194/src/testdir/test87.in 2014-02-11 18:47:18.678311042 +0100 ---- src/testdir/test87.in 2014-03-12 15:21:20.036709567 +0100 -*************** -*** 664,670 **** - # Check GCing iterator that was not fully exhausted - i = iter(vim.buffers) - cb.append('i:' + str(next(i))) -! # and also check creating more then one iterator at a time - i2 = iter(vim.buffers) - cb.append('i2:' + str(next(i2))) - cb.append('i:' + str(next(i))) ---- 664,670 ---- - # Check GCing iterator that was not fully exhausted - i = iter(vim.buffers) - cb.append('i:' + str(next(i))) -! # and also check creating more than one iterator at a time - i2 = iter(vim.buffers) - cb.append('i2:' + str(next(i2))) - cb.append('i:' + str(next(i))) -*** ../vim-7.4.194/src/testdir/test87.ok 2014-01-14 16:54:53.000000000 +0100 ---- src/testdir/test87.ok 2014-03-12 15:19:28.080707851 +0100 -*************** -*** 882,892 **** - l[:] = FailingIter():(, NotImplementedError('iter',)) - l[:] = FailingIterNext():(, NotImplementedError('next',)) - <<< Finished -! nel[1:10:2] = "abcK":(, ValueError('attempt to assign sequence of size greater then 2 to extended slice',)) - (b'a', b'b', b'c', b'O') - nel[1:10:2] = "a":(, ValueError('attempt to assign sequence of size 1 to extended slice of size 2',)) - (b'a', b'b', b'c', b'O') -! nel[1:1:-1] = "a":(, ValueError('attempt to assign sequence of size greater then 0 to extended slice',)) - (b'a', b'b', b'c', b'O') - nel[:] = FailingIterNextN(2):(, NotImplementedError('next N',)) - (b'a', b'b', b'c', b'O') ---- 882,892 ---- - l[:] = FailingIter():(, NotImplementedError('iter',)) - l[:] = FailingIterNext():(, NotImplementedError('next',)) - <<< Finished -! nel[1:10:2] = "abcK":(, ValueError('attempt to assign sequence of size greater than 2 to extended slice',)) - (b'a', b'b', b'c', b'O') - nel[1:10:2] = "a":(, ValueError('attempt to assign sequence of size 1 to extended slice of size 2',)) - (b'a', b'b', b'c', b'O') -! nel[1:1:-1] = "a":(, ValueError('attempt to assign sequence of size greater than 0 to extended slice',)) - (b'a', b'b', b'c', b'O') - nel[:] = FailingIterNextN(2):(, NotImplementedError('next N',)) - (b'a', b'b', b'c', b'O') -*************** -*** 1233,1240 **** - >>> Testing NumberToLong using vim.buffers[%s] - vim.buffers[[]]:(, TypeError('expected int() or something supporting coercing to int(), but got list',)) - vim.buffers[None]:(, TypeError('expected int() or something supporting coercing to int(), but got NoneType',)) -! vim.buffers[-1]:(, ValueError('number must be greater then zero',)) -! vim.buffers[0]:(, ValueError('number must be greater then zero',)) - <<< Finished - > Current - >> CurrentGetattr ---- 1233,1240 ---- - >>> Testing NumberToLong using vim.buffers[%s] - vim.buffers[[]]:(, TypeError('expected int() or something supporting coercing to int(), but got list',)) - vim.buffers[None]:(, TypeError('expected int() or something supporting coercing to int(), but got NoneType',)) -! vim.buffers[-1]:(, ValueError('number must be greater than zero',)) -! vim.buffers[0]:(, ValueError('number must be greater than zero',)) - <<< Finished - > Current - >> CurrentGetattr -*** ../vim-7.4.194/src/version.c 2014-03-12 14:54:29.920684895 +0100 ---- src/version.c 2014-03-12 15:19:20.016707728 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 195, - /**/ - --- -Zen Microsystems: we're the om in .commmmmmmmm - - /// 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 /// diff --git a/7.4.196 b/7.4.196 deleted file mode 100644 index d483b241..00000000 --- a/7.4.196 +++ /dev/null @@ -1,51 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.196 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.196 -Problem: Tests fail on Solaris 9 and 10. -Solution: Use "test -f" instead of "test -e". (Laurent Blume) -Files: src/testdir/Makefile - - -*** ../vim-7.4.195/src/testdir/Makefile 2014-02-23 23:38:58.812760280 +0100 ---- src/testdir/Makefile 2014-03-12 15:46:41.352732878 +0100 -*************** -*** 61,67 **** - test1.out: test1.in - -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize - $(RUN_VIM) $*.in -! @/bin/sh -c "if test -e wrongtermsize; \ - then echo; \ - echo test1 FAILED - terminal size must be 80x24 or larger; \ - echo; exit 1; \ ---- 61,67 ---- - test1.out: test1.in - -rm -rf $*.failed $(RM_ON_RUN) $(RM_ON_START) wrongtermsize - $(RUN_VIM) $*.in -! @/bin/sh -c "if test -f wrongtermsize; \ - then echo; \ - echo test1 FAILED - terminal size must be 80x24 or larger; \ - echo; exit 1; \ -*** ../vim-7.4.195/src/version.c 2014-03-12 15:26:36.432714415 +0100 ---- src/version.c 2014-03-12 15:48:09.700734232 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 196, - /**/ - --- -My Go, this amn keyboar oesn't have a . - - /// 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 /// diff --git a/7.4.197 b/7.4.197 deleted file mode 100644 index 80783eb4..00000000 --- a/7.4.197 +++ /dev/null @@ -1,1052 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.197 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.197 -Problem: Various problems on VMS. -Solution: Fix several VMS problems. (Zoltan Arpadffy) -Files: runtime/doc/os_vms.txt, src/Make_vms.mms, src/fileio.c, - src/os_unix.c, src/os_unix.h, src/os_vms.c, src/os_vms_conf.h, - src/proto/os_vms.pro, src/testdir/Make_vms.mms, - src/testdir/test72.in, src/testdir/test77a.com, - src/testdir/test77a.in, src/testdir/test77a.ok src/undo.c - - -*** ../vim-7.4.196/runtime/doc/os_vms.txt 2013-08-10 13:24:59.000000000 +0200 ---- runtime/doc/os_vms.txt 2014-03-12 15:55:50.196741288 +0100 -*************** -*** 1,4 **** -! *os_vms.txt* For Vim version 7.4. Last change: 2011 Aug 14 - - - VIM REFERENCE MANUAL ---- 1,4 ---- -! *os_vms.txt* For Vim version 7.4. Last change: 2014 Feb 24 - - - VIM REFERENCE MANUAL -*************** -*** 24,30 **** - - 1. Getting started *vms-started* - -! Vim (Vi IMproved) is a vi-compatible text editor that runs on nearly every - operating system known to humanity. Now use Vim on OpenVMS too, in character - or X/Motif environment. It is fully featured and absolutely compatible with - Vim on other operating systems. ---- 24,30 ---- - - 1. Getting started *vms-started* - -! Vim (Vi IMproved) is a Vi-compatible text editor that runs on nearly every - operating system known to humanity. Now use Vim on OpenVMS too, in character - or X/Motif environment. It is fully featured and absolutely compatible with - Vim on other operating systems. -*************** -*** 764,769 **** ---- 764,785 ---- - - 9. VMS related changes *vms-changes* - -+ Version 7.4 -+ - Undo: VMS can not handle more than one dot in the filenames use "dir/name" -> "dir/_un_name" -+ add _un_ at the beginning to keep the extension -+ - correct swap file name wildcard handling -+ - handle iconv usage correctly -+ - do not optimize on vax - otherwise it hangs compiling crypto files -+ - fileio.c fix the comment -+ - correct RealWaitForChar -+ - after 7.4-119 use different functions lib$cvtf_to_internal_time because Alpha and VAX have -+ G_FLOAT but IA64 uses IEEE float otherwise Vim crashes -+ - guard agains crashes that are caused by mixed filenames -+ - [TESTDIR]make_vms.mms changed to see the output files -+ - Improve tests, update known issues -+ - minor compiler warnings fixed -+ - CTAGS 5.8 +regex included -+ - Version 7.3 - - CTAGS 5.8 included - - VMS compile warnings fixed - floating-point overflow warning corrected on VAX -*** ../vim-7.4.196/src/Make_vms.mms 2013-05-06 04:06:04.000000000 +0200 ---- src/Make_vms.mms 2014-03-12 15:55:50.196741288 +0100 -*************** -*** 2,8 **** - # Makefile for Vim on OpenVMS - # - # Maintainer: Zoltan Arpadffy -! # Last change: 2008 Aug 16 - # - # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 - # with MMS and MMK ---- 2,8 ---- - # Makefile for Vim on OpenVMS - # - # Maintainer: Zoltan Arpadffy -! # Last change: 2014 Feb 24 - # - # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 - # with MMS and MMK -*************** -*** 21,29 **** - ###################################################################### - # Configuration section. - ###################################################################### -- # VMS version -- # Uncomment if you use VMS version 6.2 or older -- # OLD_VMS = YES - - # Compiler selection. - # Comment out if you use the VAXC compiler ---- 21,26 ---- -*************** -*** 60,66 **** - - # Uncomment if want a debug version. Resulting executable is DVIM.EXE - # Development purpose only! Normally, it should not be defined. !!! -! # DEBUG = YES - - # Languages support for Perl, Python, TCL etc. - # If you don't need it really, leave them behind the comment. ---- 57,63 ---- - - # Uncomment if want a debug version. Resulting executable is DVIM.EXE - # Development purpose only! Normally, it should not be defined. !!! -! # DEBUG = YES - - # Languages support for Perl, Python, TCL etc. - # If you don't need it really, leave them behind the comment. -*************** -*** 87,92 **** ---- 84,92 ---- - # Allow FEATURE_MZSCHEME - # VIM_MZSCHEME = YES - -+ # Use ICONV -+ # VIM_ICONV = YES -+ - ###################################################################### - # Directory, library and include files configuration section. - # Normally you need not to change anything below. ! -*************** -*** 99,123 **** - - .IFDEF MMSVAX - .IFDEF DECC # VAX with DECC -! CC_DEF = cc # /decc # some system requires this switch but when it is not required /ver might fail - PREFIX = /prefix=all - .ELSE # VAX with VAXC - CC_DEF = cc - PREFIX = - CCVER = - .ENDIF -! .ELSE # AXP wixh DECC - CC_DEF = cc - PREFIX = /prefix=all - .ENDIF - - LD_DEF = link - C_INC = [.proto] - -- .IFDEF OLD_VMS -- VMS_DEF = ,"OLD_VMS" -- .ENDIF -- - .IFDEF DEBUG - DEBUG_DEF = ,"DEBUG" - TARGET = dvim.exe ---- 99,123 ---- - - .IFDEF MMSVAX - .IFDEF DECC # VAX with DECC -! CC_DEF = cc # /decc # some versions require /decc switch but when it is not required /ver might fail - PREFIX = /prefix=all -+ OPTIMIZE= /noopt # do not optimize on VAX. The compiler has hard time with crypto functions - .ELSE # VAX with VAXC - CC_DEF = cc - PREFIX = -+ OPTIMIZE= /noopt - CCVER = - .ENDIF -! .ELSE # AXP and IA64 with DECC - CC_DEF = cc - PREFIX = /prefix=all -+ OPTIMIZE= /opt - .ENDIF - -+ - LD_DEF = link - C_INC = [.proto] - - .IFDEF DEBUG - DEBUG_DEF = ,"DEBUG" - TARGET = dvim.exe -*************** -*** 125,131 **** - LDFLAGS = /debug - .ELSE - TARGET = vim.exe -! CFLAGS = /opt$(PREFIX) - LDFLAGS = - .ENDIF - ---- 125,131 ---- - LDFLAGS = /debug - .ELSE - TARGET = vim.exe -! CFLAGS = $(OPTIMIZE)$(PREFIX) - LDFLAGS = - .ENDIF - -*************** -*** 274,279 **** ---- 274,284 ---- - MZSCH_OBJ = if_mzsch.obj - .ENDIF - -+ .IFDEF VIM_ICONV -+ # ICONV related setup -+ ICONV_DEF = ,"USE_ICONV" -+ .ENDIF -+ - ###################################################################### - # End of configuration section. - # Please, do not change anything below without programming experience. -*************** -*** 287,294 **** - - .SUFFIXES : .obj .c - -! ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(VMS_DEF)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - -! $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)) - - $(CFLAGS)$(GUI_FLAG) - - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC)$(TCL_INC)) - ---- 292,299 ---- - - .SUFFIXES : .obj .c - -! ALL_CFLAGS = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - -! $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) - - $(CFLAGS)$(GUI_FLAG) - - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC)$(PERL_INC)$(PYTHON_INC)$(TCL_INC)) - -*************** -*** 296,303 **** - # It is specially formated for correct display of unix like includes - # as $(GUI_INC) - replaced with $(GUI_INC_VER) - # Otherwise should not be any other difference. -! ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(VMS_DEF)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - -! $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)) - - $(CFLAGS)$(GUI_FLAG) - - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC)$(TCL_INC)) - ---- 301,308 ---- - # It is specially formated for correct display of unix like includes - # as $(GUI_INC) - replaced with $(GUI_INC_VER) - # Otherwise should not be any other difference. -! ALL_CFLAGS_VER = /def=($(MODEL_DEF)$(DEFS)$(DEBUG_DEF)$(PERL_DEF)$(PYTHON_DEF) - -! $(TCL_DEF)$(SNIFF_DEF)$(RUBY_DEF)$(XIM_DEF)$(HANGULIN_DEF)$(TAG_DEF)$(MZSCH_DEF)$(ICONV_DEF)) - - $(CFLAGS)$(GUI_FLAG) - - /include=($(C_INC)$(GUI_INC_DIR)$(GUI_INC_VER)$(PERL_INC)$(PYTHON_INC)$(TCL_INC)) - -*** ../vim-7.4.196/src/fileio.c 2014-02-23 22:58:12.072764176 +0100 ---- src/fileio.c 2014-03-12 15:55:50.200741288 +0100 -*************** -*** 7559,7565 **** - p = (char_u *)tempnam("tmp:", (char *)itmp); - if (p != NULL) - { -! /* VMS will use '.LOG' if we don't explicitly specify an extension, - * and VIM will then be unable to find the file later */ - STRCPY(itmp, p); - STRCAT(itmp, ".txt"); ---- 7559,7565 ---- - p = (char_u *)tempnam("tmp:", (char *)itmp); - if (p != NULL) - { -! /* VMS will use '.LIS' if we don't explicitly specify an extension, - * and VIM will then be unable to find the file later */ - STRCPY(itmp, p); - STRCAT(itmp, ".txt"); -*** ../vim-7.4.196/src/os_unix.c 2013-12-11 17:12:32.000000000 +0100 ---- src/os_unix.c 2014-03-12 16:25:11.144768271 +0100 -*************** -*** 2965,2971 **** ---- 2965,2990 ---- - - if (stat((char *)name, &st)) - return 0; -+ #ifdef VMS -+ /* Like on Unix system file can have executable rights but not necessarily -+ * be an executable, but on Unix is not a default for an ordianry file to -+ * have an executable flag - on VMS it is in most cases. -+ * Therefore, this check does not have any sense - let keep us to the -+ * conventions instead: -+ * *.COM and *.EXE files are the executables - the rest are not. This is -+ * not ideal but better then it was. -+ */ -+ int vms_executable = 0; -+ if (S_ISREG(st.st_mode) && mch_access((char *)name, X_OK) == 0) -+ { -+ if (strstr(vms_tolower((char*)name),".exe") != NULL -+ || strstr(vms_tolower((char*)name),".com")!= NULL) -+ vms_executable = 1; -+ } -+ return vms_executable; -+ #else - return S_ISREG(st.st_mode) && mch_access((char *)name, X_OK) == 0; -+ #endif - } - - /* -*************** -*** 2983,2989 **** ---- 3002,3010 ---- - /* If it's an absolute or relative path don't need to use $PATH. */ - if (mch_isFullName(name) || (name[0] == '.' && (name[1] == '/' - || (name[1] == '.' && name[2] == '/')))) -+ { - return executable_file(name); -+ } - - p = (char_u *)getenv("PATH"); - if (p == NULL || *p == NUL) -*** ../vim-7.4.196/src/os_unix.h 2013-12-11 17:12:32.000000000 +0100 ---- src/os_unix.h 2014-03-12 15:55:50.204741288 +0100 -*************** -*** 302,308 **** - # define USR_VIMRC_FILE2 "$HOME/vimfiles/vimrc" - # else - # ifdef VMS -! # define USR_VIMRC_FILE2 "sys$login:vimfiles:vimrc" - # else - # define USR_VIMRC_FILE2 "~/.vim/vimrc" - # endif ---- 302,308 ---- - # define USR_VIMRC_FILE2 "$HOME/vimfiles/vimrc" - # else - # ifdef VMS -! # define USR_VIMRC_FILE2 "sys$login:vimfiles/vimrc" - # else - # define USR_VIMRC_FILE2 "~/.vim/vimrc" - # endif -*************** -*** 329,335 **** - # define USR_GVIMRC_FILE2 "$HOME/vimfiles/gvimrc" - # else - # ifdef VMS -! # define USR_GVIMRC_FILE2 "sys$login:vimfiles:gvimrc" - # else - # define USR_GVIMRC_FILE2 "~/.vim/gvimrc" - # endif ---- 329,335 ---- - # define USR_GVIMRC_FILE2 "$HOME/vimfiles/gvimrc" - # else - # ifdef VMS -! # define USR_GVIMRC_FILE2 "sys$login:vimfiles/gvimrc" - # else - # define USR_GVIMRC_FILE2 "~/.vim/gvimrc" - # endif -*** ../vim-7.4.196/src/os_vms.c 2013-12-11 17:12:32.000000000 +0100 ---- src/os_vms.c 2014-03-12 16:26:17.544769288 +0100 -*************** -*** 296,301 **** ---- 296,313 ---- - } - - /* -+ * Convert string to lowercase - most often filename -+ */ -+ char * -+ vms_tolower( char *name ) -+ { -+ int i,nlen = strlen(name); -+ for (i = 0; i < nlen; i++) -+ name[i] = TOLOWER_ASC(name[i]); -+ return name; -+ } -+ -+ /* - * Convert VMS system() or lib$spawn() return code to Unix-like exit value. - */ - int -*************** -*** 361,373 **** - vms_wproc(char *name, int val) - { - int i; -- int nlen; - static int vms_match_alloced = 0; - -! if (val != DECC$K_FILE) /* Directories and foreign non VMS files are not -! counting */ - return 1; - - if (vms_match_num == 0) { - /* first time through, setup some things */ - if (NULL == vms_fmatch) { ---- 373,384 ---- - vms_wproc(char *name, int val) - { - int i; - static int vms_match_alloced = 0; - -! if (val == DECC$K_FOREIGN ) /* foreign non VMS files are not counting */ - return 1; - -+ /* accept all DECC$K_FILE and DECC$K_DIRECTORY */ - if (vms_match_num == 0) { - /* first time through, setup some things */ - if (NULL == vms_fmatch) { -*************** -*** 383,394 **** - } - } - - vms_remove_version(name); -! -! /* convert filename to lowercase */ -! nlen = strlen(name); -! for (i = 0; i < nlen; i++) -! name[i] = TOLOWER_ASC(name[i]); - - /* if name already exists, don't add it */ - for (i = 0; i 0) - cnt = vms_match_num; - ---- 458,470 ---- - STRCPY(buf,pat[i]); - - vms_match_num = 0; /* reset collection counter */ -! result = decc$translate_vms(vms_fixfilename(buf)); -! if ( (int) result == 0 || (int) result == -1 ) { -! cnt = 0; -! } -! else { -! cnt = decc$to_vms(result, vms_wproc, 1 /*allow wild*/ , (flags & EW_DIR ? 0:1 ) /*allow directory*/) ; -! } - if (cnt > 0) - cnt = vms_match_num; - -*************** -*** 497,506 **** - mch_expandpath(garray_T *gap, char_u *path, int flags) - { - int i,cnt = 0; -! vms_match_num = 0; - -! cnt = decc$to_vms(decc$translate_vms(vms_fixfilename(path)), vms_wproc, 1, 0); -! /* allow wild, no dir */ - if (cnt > 0) - cnt = vms_match_num; - for (i = 0; i < cnt; i++) ---- 511,528 ---- - mch_expandpath(garray_T *gap, char_u *path, int flags) - { - int i,cnt = 0; -! char *result; - -! vms_match_num = 0; -! /* the result from the decc$translate_vms needs to be handled */ -! /* otherwise it might create ACCVIO error in decc$to_vms */ -! result = decc$translate_vms(vms_fixfilename(path)); -! if ( (int) result == 0 || (int) result == -1 ) { -! cnt = 0; -! } -! else { -! cnt = decc$to_vms(result, vms_wproc, 1 /*allow_wild*/, (flags & EW_DIR ? 0:1 ) /*allow directory*/); -! } - if (cnt > 0) - cnt = vms_match_num; - for (i = 0; i < cnt; i++) -*************** -*** 521,526 **** ---- 543,549 ---- - char *end_of_dir; - char ch; - int len; -+ char *out_str=out; - - /* copy vms filename portion up to last colon - * (node and/or disk) -*************** -*** 602,608 **** - *end_of_dir = ']'; - } - -- - /* - * for decc$to_vms in vms_fixfilename - */ ---- 625,630 ---- -*************** -*** 710,735 **** - struct _generic_64 time_diff; - struct _generic_64 time_out; - unsigned int convert_operation = LIB$K_DELTA_SECONDS_F; -! float sec = (float) msec / 1000; - - /* make sure the iochan is set */ - if (!iochan) - get_tty(); - -! if (msec > 0) { - /* time-out specified; convert it to absolute time */ - - /* get current time (number of 100ns ticks since the VMS Epoch) */ - status = sys$gettim(&time_curr); - if (status != SS$_NORMAL) - return 0; /* error */ -- - /* construct the delta time */ -! status = lib$cvtf_to_internal_time( - &convert_operation, &sec, &time_diff); - if (status != LIB$_NORMAL) - return 0; /* error */ -- - /* add them up */ - status = lib$add_times( - &time_curr, ---- 732,764 ---- - struct _generic_64 time_diff; - struct _generic_64 time_out; - unsigned int convert_operation = LIB$K_DELTA_SECONDS_F; -! float sec =(float) msec/1000; - - /* make sure the iochan is set */ - if (!iochan) - get_tty(); - -! if (sec > 0) { - /* time-out specified; convert it to absolute time */ -+ /* sec>0 requirement of lib$cvtf_to_internal_time()*/ - - /* get current time (number of 100ns ticks since the VMS Epoch) */ - status = sys$gettim(&time_curr); - if (status != SS$_NORMAL) - return 0; /* error */ - /* construct the delta time */ -! #if __G_FLOAT==0 -! # ifndef VAX -! /* IEEE is default on IA64, but can be used on Alpha too - but not on VAX */ -! status = lib$cvts_to_internal_time( - &convert_operation, &sec, &time_diff); -+ # endif -+ #else /* default on Alpha and VAX */ -+ status = lib$cvtf_to_internal_time( -+ &convert_operation, &sec, &time_diff); -+ #endif - if (status != LIB$_NORMAL) - return 0; /* error */ - /* add them up */ - status = lib$add_times( - &time_curr, -*** ../vim-7.4.196/src/os_vms_conf.h 2014-02-23 22:52:33.372764715 +0100 ---- src/os_vms_conf.h 2014-03-12 15:55:50.204741288 +0100 -*************** -*** 166,173 **** - #undef HAVE_SYS_TIME_H - #undef HAVE_LOCALE_H - #define BROKEN_LOCALE -- #undef HAVE_ICONV_H -- #undef HAVE_ICONV - #undef DYNAMIC_ICONV - #undef HAVE_STRFTIME - #else ---- 166,171 ---- -*************** -*** 177,188 **** - #define HAVE_SYS_TIME_H - #define HAVE_LOCALE_H - #define BROKEN_LOCALE -- #undef HAVE_ICONV_H -- #undef HAVE_ICONV - #undef DYNAMIC_ICONV - #define HAVE_STRFTIME - #endif - - /* GUI support defines */ - #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) - #define HAVE_X11 ---- 175,192 ---- - #define HAVE_SYS_TIME_H - #define HAVE_LOCALE_H - #define BROKEN_LOCALE - #undef DYNAMIC_ICONV - #define HAVE_STRFTIME - #endif - -+ #if defined(USE_ICONV) -+ #define HAVE_ICONV_H -+ #define HAVE_ICONV -+ #else -+ #undef HAVE_ICONV_H -+ #undef HAVE_ICONV -+ #endif -+ - /* GUI support defines */ - #if defined(FEAT_GUI_MOTIF) || defined(FEAT_GUI_GTK) - #define HAVE_X11 -*** ../vim-7.4.196/src/proto/os_vms.pro 2013-08-10 13:37:40.000000000 +0200 ---- src/proto/os_vms.pro 2014-03-12 15:55:50.204741288 +0100 -*************** -*** 7,12 **** ---- 7,13 ---- - int vms_sys __ARGS((char *cmd, char *out, char *inp)); - int vms_sys_status __ARGS((int status)); - int vms_read __ARGS((char *inbuf, size_t nbytes)); -+ char *vms_tolower __ARGS((char *name)); - int mch_expand_wildcards __ARGS((int num_pat, char_u **pat, int *num_file, char_u ***file, int flags)); - int mch_expandpath __ARGS((garray_T *gap, char_u *path, int flags)); - void *vms_fixfilename __ARGS((void *instring)); -*** ../vim-7.4.196/src/testdir/Make_vms.mms 2014-02-23 23:38:58.812760280 +0100 ---- src/testdir/Make_vms.mms 2014-03-12 16:06:22.888750982 +0100 -*************** -*** 4,10 **** - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2014 Feb 23 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. ---- 4,10 ---- - # Authors: Zoltan Arpadffy, - # Sandor Kopanyi, - # -! # Last change: 2014 Mar 12 - # - # This has been tested on VMS 6.2 to 8.3 on DEC Alpha, VAX and IA64. - # Edit the lines in the Configuration section below to select. -*************** -*** 41,56 **** - # They fail because VMS does not support file names. - # WANT_SPELL = YES - -! # Comment out if you want to run mzschema tests. - # It fails because VMS does not support this feature yet. - # WANT_MZSCH = YES - - # Comment out if you have gzip on your system - # HAVE_GZIP = YES - - # Comment out if you have GNU compatible diff on your system - # HAVE_GDIFF = YES - - ####################################################################### - # End of configuration section. - # ---- 41,71 ---- - # They fail because VMS does not support file names. - # WANT_SPELL = YES - -! # Comment out if you want to run mzschema tests. - # It fails because VMS does not support this feature yet. - # WANT_MZSCH = YES - -+ # Comment out if you have ODS-5 file system -+ # HAVE_ODS5 = YES -+ - # Comment out if you have gzip on your system - # HAVE_GZIP = YES - - # Comment out if you have GNU compatible diff on your system - # HAVE_GDIFF = YES - -+ # Comment out if you have GNU compatible cksum on your system -+ # HAVE_CKSUM = YES -+ -+ # Comment out if you have ICONV support -+ # HAVE_ICONV = YES -+ -+ # Comment out if you have LUA support -+ # HAVE_LUA = YES -+ -+ # Comment out if you have PYTHON support -+ # HAVE_PYTHON = YES -+ - ####################################################################### - # End of configuration section. - # -*************** -*** 63,99 **** - - SCRIPT = test1.out test2.out test3.out test4.out test5.out \ - test6.out test7.out test8.out test9.out test10a.out\ -! test13.out test14.out test15.out test17.out \ - test18.out test19.out test20.out test21.out test22.out \ - test23.out test24.out test26.out \ - test28.out test29.out test30.out test31.out test32.out \ - test33.out test34.out test35.out test36.out test37.out \ - test38.out test39.out test40.out test41.out test42.out \ - test43.out test44.out test45.out test46.out \ -! test48.out test51.out test53.out test54.out test55.out \ -! test56.out test57.out test60.out \ - test61.out test62.out test63.out test64.out test65.out \ - test66.out test67.out test68.out test69.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 test91.out test92.out test93.out test94.out \ -! test95.out test96.out test97.out test98.out test99.out \ -! test100.out test101.out test102.out test103.out test104.out \ - test105.out - - # Known problems: -! # Test 30: a problem around mac format - unknown reason - # -! # Test 32: VMS is not case sensitive and all filenames are lowercase within Vim - # (this should be changed in order to preserve the original filename) - should - # be fixed. VMS allows just one dot in the filename - # -! # Test 58 and 59: Failed/Hangs - VMS does not support spell files (file names - # with too many dots). - # -! # Test 72: unknown reason -! # Test 85: no Lua interface - - .IFDEF WANT_GUI - SCRIPT_GUI = test16.out ---- 78,121 ---- - - SCRIPT = test1.out test2.out test3.out test4.out test5.out \ - test6.out test7.out test8.out test9.out test10a.out\ -! test13.out test14.out test15.out \ - test18.out test19.out test20.out test21.out test22.out \ - test23.out test24.out test26.out \ - test28.out test29.out test30.out test31.out test32.out \ - test33.out test34.out test35.out test36.out test37.out \ - test38.out test39.out test40.out test41.out test42.out \ - test43.out test44.out test45.out test46.out \ -! test48.out test49.out test51.out test53.out test54.out \ -! test55.out test56.out test57.out test60.out \ - test61.out test62.out test63.out test64.out test65.out \ - test66.out test67.out test68.out test69.out \ - test71.out test72.out test74.out test75.out test76.out \ -! test77a.out test78.out test79.out test80.out test81.out \ -! test82.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 \ -! test100.out test101.out test103.out test104.out \ - test105.out - - # Known problems: -! # test17: ? -! # -! # test30: bug, most probably - a problem around mac format - # -! # test32: VMS is not case sensitive and all filenames are lowercase within Vim - # (this should be changed in order to preserve the original filename) - should - # be fixed. VMS allows just one dot in the filename - # -! # test58, test59: Failed/Hangs - VMS does not support spell files (file names - # with too many dots). - # -! # test72: bug - Vim hangs at :rename (while rename works well otherwise) -! # test78: bug - Vim dies at :recover Xtest -! # test83: ? -! # test85: no Lua interface -! # test89: bug - findfile() does not work on VMS (just in the current directory) -! # test97, test102: Just ODS-5 supports space and special chars in the filename. -! # On ODS-2 tests fail. - - .IFDEF WANT_GUI - SCRIPT_GUI = test16.out -*************** -*** 101,107 **** - .ENDIF - - .IFDEF WANT_UNIX -! SCRIPT_UNIX = test10.out test12.out test25.out test27.out test49.out test73.out - .ENDIF - - .IFDEF WANT_WIN ---- 123,129 ---- - .ENDIF - - .IFDEF WANT_UNIX -! SCRIPT_UNIX = test10.out test12.out test17.out test25.out test27.out test49.out test73.out - .ENDIF - - .IFDEF WANT_WIN -*************** -*** 116,121 **** ---- 138,147 ---- - SCRIPT_MZSCH = test70.out - .ENDIF - -+ .IFDEF HAVE_ODS5 -+ SCRIPT_ODS5 = test97.out test102.out -+ .ENDIF -+ - .IFDEF HAVE_GZIP - SCRIPT_GZIP = test11.out - .ENDIF -*************** -*** 124,133 **** ---- 150,177 ---- - SCRIPT_GDIFF = test47.out - .ENDIF - -+ .IFDEF HAVE_CKSUM -+ SCRIPT_CKSUM = test77.out -+ .ENDIF -+ -+ .IFDEF HAVE_ICONV -+ SCRIPT_ICONV = test83.out -+ .ENDIF -+ -+ .IFDEF HAVE_LUA -+ SCRIPT_LUA = test85.out -+ .ENDIF -+ -+ .IFDEF HAVE_PYTHON -+ SCRIPT_PYTHON = test86.out test87.out -+ .ENDIF -+ - .in.out : - -@ !clean up before doing the test - -@ if "''F$SEARCH("test.out.*")'" .NES. "" then delete/noconfirm/nolog test.out.* - -@ if "''F$SEARCH("$*.out.*")'" .NES. "" then delete/noconfirm/nolog $*.out.* -+ -@ ! define TMP if not set - some tests use it -+ -@ if "''F$TRNLNM("TMP")'" .EQS. "" then define/nolog TMP [] - -@ write sys$output " " - -@ write sys$output "-----------------------------------------------" - -@ write sys$output " "$*" " -*************** -*** 140,148 **** - -@ if "''F$SEARCH("$*.out.*")'" .NES. "" then differences /par $*.out $*.ok; - -@ !clean up after the test - -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* - -! all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_GZIP) \ -! $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) nolog - -@ write sys$output " " - -@ write sys$output "-----------------------------------------------" - -@ write sys$output " All done" ---- 184,193 ---- - -@ if "''F$SEARCH("$*.out.*")'" .NES. "" then differences /par $*.out $*.ok; - -@ !clean up after the test - -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* -+ -@ if "''F$SEARCH("Xtest.*")'" .NES. "" then delete/noconfirm/nolog Xtest.*.* - -! all : clean nolog $(START_WITH) $(SCRIPT) $(SCRIPT_GUI) $(SCRIPT_UNIX) $(SCRIPT_WIN) $(SCRIPT_SPELL) $(SCRIPT_ODS5) $(SCRIPT_GZIP) \ -! $(SCRIPT_GDIFF) $(SCRIPT_MZSCH) $(SCRIPT_CKSUM) $(SCRIPT_ICONV) $(SCRIPT_LUA) $(SCRIPT_PYTHON) nolog - -@ write sys$output " " - -@ write sys$output "-----------------------------------------------" - -@ write sys$output " All done" -*************** -*** 165,177 **** - -@ write sys$output " Test results:" - -@ write sys$output "-----------------------------------------------" - -@ write sys$output "MAKE_VMS.MMS options:" -! -@ write sys$output " WANT_GUI = ""$(WANT_GUI)"" " -! -@ write sys$output " WANT_UNIX = ""$(WANT_UNIX)"" " -! -@ write sys$output " WANT_WIN = ""$(WANT_WIN)"" " -! -@ write sys$output " WANT_SPELL= ""$(WANT_SPELL)"" " -! -@ write sys$output " WANT_MZSCH= ""$(WANT_MZSCH)"" " -! -@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" " -! -@ write sys$output " HAVE_GDIFF= ""$(HAVE_GDIFF)"" " - -@ write sys$output "Default vimrc file is VMS.VIM:" - -@ write sys$output "-----------------------------------------------" - -@ type VMS.VIM ---- 210,227 ---- - -@ write sys$output " Test results:" - -@ write sys$output "-----------------------------------------------" - -@ write sys$output "MAKE_VMS.MMS options:" -! -@ write sys$output " WANT_GUI = ""$(WANT_GUI)"" " -! -@ write sys$output " WANT_UNIX = ""$(WANT_UNIX)"" " -! -@ write sys$output " WANT_WIN = ""$(WANT_WIN)"" " -! -@ write sys$output " WANT_SPELL = ""$(WANT_SPELL)"" " -! -@ write sys$output " WANT_MZSCH = ""$(WANT_MZSCH)"" " -! -@ write sys$output " HAVE_ODS5 = ""$(HAVE_ODS5)"" " -! -@ write sys$output " HAVE_GZIP = ""$(HAVE_GZIP)"" " -! -@ write sys$output " HAVE_GDIFF = ""$(HAVE_GDIFF)"" " -! -@ write sys$output " HAVE_CKSUM = ""$(HAVE_CKSUM)"" " -! -@ write sys$output " HAVE_ICONV = ""$(HAVE_ICONV)"" " -! -@ write sys$output " HAVE_LUA = ""$(HAVE_LUA)"" " -! -@ write sys$output " HAVE_PYTHON= ""$(HAVE_PYTHON)"" " - -@ write sys$output "Default vimrc file is VMS.VIM:" - -@ write sys$output "-----------------------------------------------" - -@ type VMS.VIM -*************** -*** 181,186 **** ---- 231,239 ---- - -@ if "''F$SEARCH("test.log")'" .NES. "" then delete/noconfirm/nolog test.log.* - -@ if "''F$SEARCH("test.ok")'" .NES. "" then delete/noconfirm/nolog test.ok.* - -@ if "''F$SEARCH("Xdotest.*")'" .NES. "" then delete/noconfirm/nolog Xdotest.*.* -+ -@ if "''F$SEARCH("Xtest*.*")'" .NES. "" then delete/noconfirm/nolog Xtest*.*.* -+ -@ if "''F$SEARCH("XX*.*")'" .NES. "" then delete/noconfirm/nolog XX*.*.* -+ -@ if "''F$SEARCH("_un_*.*")'" .NES. "" then delete/noconfirm/nolog _un_*.*.* - -@ if "''F$SEARCH("*.*_sw*")'" .NES. "" then delete/noconfirm/nolog *.*_sw*.* - -@ if "''F$SEARCH("*.failed")'" .NES. "" then delete/noconfirm/nolog *.failed.* - -@ if "''F$SEARCH("*.rej")'" .NES. "" then delete/noconfirm/nolog *.rej.* -*************** -*** 188,193 **** - -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.* - -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.* - -@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.* -! -@ if "''F$SEARCH("lua.vim")'" .NES. "" then delete/noconfirm/nolog lua.vim.* - -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.* - ---- 241,246 ---- - -@ if "''F$SEARCH("small.vim")'" .NES. "" then delete/noconfirm/nolog small.vim.* - -@ if "''F$SEARCH("mbyte.vim")'" .NES. "" then delete/noconfirm/nolog mbyte.vim.* - -@ if "''F$SEARCH("mzscheme.vim")'" .NES. "" then delete/noconfirm/nolog mzscheme.vim.* -! -@ if "''F$SEARCH("lua.vim")'" .NES. "" then delete/noconfirm/nolog lua.vim.* - -@ if "''F$SEARCH("viminfo.*")'" .NES. "" then delete/noconfirm/nolog viminfo.*.* - -*** ../vim-7.4.196/src/testdir/test72.in 2012-01-04 19:04:17.000000000 +0100 ---- src/testdir/test72.in 2014-03-12 15:55:50.204741288 +0100 -*************** -*** 105,111 **** - u:.w >>test.out - :" - :" Rename the undo file so that it gets cleaned up. -! :call rename(".Xtestfile.un~", "Xtestundo") - :qa! - ENDTEST - ---- 105,115 ---- - u:.w >>test.out - :" - :" Rename the undo file so that it gets cleaned up. -! :if has("vms") -! : call rename("_un_Xtestfile", "Xtestundo") -! :else -! : call rename(".Xtestfile.un~", "Xtestundo") -! :endif - :qa! - ENDTEST - -*** ../vim-7.4.196/src/testdir/test77a.com 2014-03-12 16:49:10.740790329 +0100 ---- src/testdir/test77a.com 2014-03-12 16:40:04.316781957 +0100 -*************** -*** 0 **** ---- 1,8 ---- -+ $! test77a - help file creating checksum on VMS -+ $! Created by Zoltan Arpadffy -+ $ -+ $ IF P1 .NES. "" -+ $ THEN -+ $ checksum 'P1' -+ $ show symb CHECKSUM$CHECKSUM -+ $ ENDIF -*** ../vim-7.4.196/src/testdir/test77a.in 2014-03-12 16:49:10.748790329 +0100 ---- src/testdir/test77a.in 2014-03-12 15:55:50.204741288 +0100 -*************** -*** 0 **** ---- 1,31 ---- -+ Inserts 2 million lines with consecutive integers starting from 1 -+ (essentially, the output of GNU's seq 1 2000000), writes them to Xtest -+ and writes its cksum to test.out. -+ -+ We need 2 million lines to trigger a call to mf_hash_grow(). If it would mess -+ up the lines the checksum would differ. -+ -+ cksum is part of POSIX and so should be available on most Unixes. -+ If it isn't available then the test will be skipped. -+ -+ VMS does not have CKSUM but has a built in CHECKSUM - it should be used -+ STARTTEST -+ :so small.vim -+ :if !has("vms") -+ : e! test.ok -+ : w! test.out -+ : qa! -+ :endif -+ :set fileformat=unix undolevels=-1 -+ ggdG -+ :let i = 1 -+ :while i <= 2000000 | call append(i, range(i, i + 99)) | let i += 100 | endwhile -+ ggdd -+ :w! Xtest. -+ :r !@test77a.com Xtest. -+ :s/\s/ /g -+ :set fileformat& -+ :.w! test.out -+ :qa! -+ ENDTEST -+ -*** ../vim-7.4.196/src/testdir/test77a.ok 2014-03-12 16:49:10.756790330 +0100 ---- src/testdir/test77a.ok 2014-03-12 15:55:50.204741288 +0100 -*************** -*** 0 **** ---- 1 ---- -+ CHECKSUM$CHECKSUM = "844110470" -*** ../vim-7.4.196/src/undo.c 2014-01-23 18:12:44.695676751 +0100 ---- src/undo.c 2014-03-12 16:31:52.432774419 +0100 -*************** -*** 790,798 **** ---- 790,809 ---- - if (undo_file_name == NULL) - break; - p = gettail(undo_file_name); -+ #ifdef VMS -+ /* VMS can not handle more than one dot in the filenames -+ * use "dir/name" -> "dir/_un_name" - add _un_ -+ * at the beginning to keep the extension */ -+ mch_memmove(p + 4, p, STRLEN(p) + 1); -+ mch_memmove(p, "_un_", 4); -+ -+ #else -+ /* Use same directory as the ffname, -+ * "dir/name" -> "dir/.name.un~" */ - mch_memmove(p + 1, p, STRLEN(p) + 1); - *p = '.'; - STRCAT(p, ".un~"); -+ #endif - } - else - { -*** ../vim-7.4.196/src/version.c 2014-03-12 15:50:18.472736205 +0100 ---- src/version.c 2014-03-12 15:54:26.712740008 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 197, - /**/ - --- -Violators can be fined, arrested or jailed for making ugly faces at a dog. - [real standing law in Oklahoma, United States of America] - - /// 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 /// diff --git a/7.4.198 b/7.4.198 deleted file mode 100644 index f204c2e0..00000000 --- a/7.4.198 +++ /dev/null @@ -1,103 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.198 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.198 -Problem: Can't build Vim with Perl when -Dusethreads is not specified for - building Perl, and building Vim with --enable-perlinterp=dynamic. -Solution: Adjust #ifdefs. (Yasuhiro Matsumoto) -Files: src/if_perl.xs - - -*** ../vim-7.4.197/src/if_perl.xs 2013-12-14 11:50:28.000000000 +0100 ---- src/if_perl.xs 2014-03-12 17:05:07.832804995 +0100 -*************** -*** 138,143 **** ---- 138,145 ---- - #endif - typedef int XSINIT_t; - typedef int XSUBADDR_t; -+ #endif -+ #ifndef USE_ITHREADS - typedef int perl_key; - #endif - -*************** -*** 264,270 **** - # define Perl_Iscopestack_ix_ptr dll_Perl_Iscopestack_ix_ptr - # define Perl_Iunitcheckav_ptr dll_Perl_Iunitcheckav_ptr - # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) -! # define PL_thr_key *dll_PL_thr_key - # endif - - /* ---- 266,274 ---- - # define Perl_Iscopestack_ix_ptr dll_Perl_Iscopestack_ix_ptr - # define Perl_Iunitcheckav_ptr dll_Perl_Iunitcheckav_ptr - # if (PERL_REVISION == 5) && (PERL_VERSION >= 14) -! # ifdef USE_ITHREADS -! # define PL_thr_key *dll_PL_thr_key -! # endif - # endif - - /* -*************** -*** 386,392 **** ---- 390,398 ---- - #endif - - #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) -+ # ifdef USE_ITHREADS - static perl_key* dll_PL_thr_key; -+ # endif - #else - static GV** (*Perl_Idefgv_ptr)(register PerlInterpreter*); - static GV** (*Perl_Ierrgv_ptr)(register PerlInterpreter*); -*************** -*** 413,419 **** ---- 419,427 ---- - #ifdef PERL5101_OR_LATER - {"Perl_croak_xs_usage", (PERL_PROC*)&Perl_croak_xs_usage}, - #endif -+ #ifdef PERL_IMPLICIT_CONTEXT - {"Perl_croak_nocontext", (PERL_PROC*)&Perl_croak_nocontext}, -+ #endif - {"Perl_dowantarray", (PERL_PROC*)&Perl_dowantarray}, - {"Perl_free_tmps", (PERL_PROC*)&Perl_free_tmps}, - {"Perl_gv_stashpv", (PERL_PROC*)&Perl_gv_stashpv}, -*************** -*** 505,511 **** ---- 513,521 ---- - # endif - #endif - #if (PERL_REVISION == 5) && (PERL_VERSION >= 14) -+ # ifdef USE_ITHREADS - {"PL_thr_key", (PERL_PROC*)&dll_PL_thr_key}, -+ # endif - #else - {"Perl_Idefgv_ptr", (PERL_PROC*)&Perl_Idefgv_ptr}, - {"Perl_Ierrgv_ptr", (PERL_PROC*)&Perl_Ierrgv_ptr}, -*** ../vim-7.4.197/src/version.c 2014-03-12 16:51:35.060792541 +0100 ---- src/version.c 2014-03-12 17:06:27.660806218 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 198, - /**/ - --- -Dogs must have a permit signed by the mayor in order to congregate in groups -of three or more on private property. - [real standing law in Oklahoma, United States of America] - - /// 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 /// diff --git a/7.4.199 b/7.4.199 deleted file mode 100644 index d421df0a..00000000 --- a/7.4.199 +++ /dev/null @@ -1,106 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.199 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.199 -Problem: (issue 197) ]P doesn't paste over Visual selection. -Solution: Handle Visual mode specifically. (Christian Brabandt) -Files: src/normal.c - - -*** ../vim-7.4.198/src/normal.c 2014-02-23 23:38:58.824760280 +0100 ---- src/normal.c 2014-03-12 17:33:28.184831049 +0100 -*************** -*** 6751,6760 **** - { - if (!checkclearop(cap->oap)) - { - prep_redo_cmd(cap); -! do_put(cap->oap->regname, -! (cap->cmdchar == ']' && cap->nchar == 'p') ? FORWARD : BACKWARD, -! cap->count1, PUT_FIXINDENT); - } - } - ---- 6751,6808 ---- - { - if (!checkclearop(cap->oap)) - { -+ int dir = (cap->cmdchar == ']' && cap->nchar == 'p') -+ ? FORWARD : BACKWARD; -+ int regname = cap->oap->regname; -+ #ifdef FEAT_VISUAL -+ int was_visual = VIsual_active; -+ int line_count = curbuf->b_ml.ml_line_count; -+ pos_T start, end; -+ -+ if (VIsual_active) -+ { -+ start = ltoreq(VIsual, curwin->w_cursor) -+ ? VIsual : curwin->w_cursor; -+ end = equalpos(start,VIsual) ? curwin->w_cursor : VIsual; -+ curwin->w_cursor = (dir == BACKWARD ? start : end); -+ } -+ #endif -+ # ifdef FEAT_CLIPBOARD -+ adjust_clip_reg(®name); -+ # endif - prep_redo_cmd(cap); -! -! do_put(regname, dir, cap->count1, PUT_FIXINDENT); -! #ifdef FEAT_VISUAL -! if (was_visual) -! { -! VIsual = start; -! curwin->w_cursor = end; -! if (dir == BACKWARD) -! { -! /* adjust lines */ -! VIsual.lnum += curbuf->b_ml.ml_line_count - line_count; -! curwin->w_cursor.lnum += -! curbuf->b_ml.ml_line_count - line_count; -! } -! -! VIsual_active = TRUE; -! if (VIsual_mode == 'V') -! { -! /* delete visually selected lines */ -! cap->cmdchar = 'd'; -! cap->nchar = NUL; -! cap->oap->regname = regname; -! nv_operator(cap); -! do_pending_operator(cap, 0, FALSE); -! } -! if (VIsual_active) -! { -! end_visual_mode(); -! redraw_later(SOME_VALID); -! } -! } -! #endif - } - } - -*** ../vim-7.4.198/src/version.c 2014-03-12 17:08:01.508807656 +0100 ---- src/version.c 2014-03-12 17:30:36.908828425 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 199, - /**/ - --- -No man may purchase alcohol without written consent from his wife. - [real standing law in Pennsylvania, United States of America] - - /// 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 /// diff --git a/7.4.200 b/7.4.200 deleted file mode 100644 index be3dfb38..00000000 --- a/7.4.200 +++ /dev/null @@ -1,68 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.200 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.200 -Problem: Too many #ifdefs in the code. -Solution: Enable FEAT_VISUAL always, await any complaints -Files: src/feature.h - - -*** ../vim-7.4.199/src/feature.h 2014-02-23 22:52:33.372764715 +0100 ---- src/feature.h 2014-03-12 17:48:24.396844782 +0100 -*************** -*** 211,228 **** - #endif - - /* -! * +visual Visual mode. - * +visualextra Extra features for Visual mode (mostly block operators). - */ -! #ifdef FEAT_SMALL -! # define FEAT_VISUAL -! # ifdef FEAT_NORMAL -! # define FEAT_VISUALEXTRA -! # endif -! #else -! # ifdef FEAT_CLIPBOARD -! # undef FEAT_CLIPBOARD /* can't use clipboard without Visual mode */ -! # endif - #endif - - /* ---- 211,222 ---- - #endif - - /* -! * +visual Visual mode - now always included. - * +visualextra Extra features for Visual mode (mostly block operators). - */ -! #define FEAT_VISUAL -! #ifdef FEAT_NORMAL -! # define FEAT_VISUALEXTRA - #endif - - /* -*** ../vim-7.4.199/src/version.c 2014-03-12 17:41:59.128838878 +0100 ---- src/version.c 2014-03-12 17:52:28.080848516 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 200, - /**/ - --- -It is illegal to take more than three sips of beer at a time while standing. - [real standing law in Texas, United States of America] - - /// 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 /// diff --git a/7.4.201 b/7.4.201 deleted file mode 100644 index 9bed2b5c..00000000 --- a/7.4.201 +++ /dev/null @@ -1,273 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.201 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.201 -Problem: 'lispwords' is a global option. -Solution: Make 'lispwords' global-local. (Sung Pae) -Files: runtime/doc/options.txt, runtime/optwin.vim, src/buffer.c, - src/misc1.c, src/option.c, src/option.h, src/structs.h, - src/testdir/test100.in, src/testdir/test100.ok - - -*** ../vim-7.4.200/runtime/doc/options.txt 2014-02-23 23:38:58.820760280 +0100 ---- runtime/doc/options.txt 2014-03-12 18:20:30.748874299 +0100 -*************** -*** 4629,4635 **** - - *'lispwords'* *'lw'* - 'lispwords' 'lw' string (default is very long) -! global - {not in Vi} - {not available when compiled without the |+lispindent| - feature} ---- 4629,4635 ---- - - *'lispwords'* *'lw'* - 'lispwords' 'lw' string (default is very long) -! global or local to buffer |global-local| - {not in Vi} - {not available when compiled without the |+lispindent| - feature} -*** ../vim-7.4.200/runtime/optwin.vim 2013-06-29 14:32:06.000000000 +0200 ---- runtime/optwin.vim 2014-03-12 18:20:30.748874299 +0100 -*************** -*** 855,861 **** - call append("$", "\t(local to buffer)") - call BinOptionL("lisp") - call append("$", "lispwords\twords that change how lisp indenting works") -! call OptionG("lw", &lw) - endif - - ---- 855,861 ---- - call append("$", "\t(local to buffer)") - call BinOptionL("lisp") - call append("$", "lispwords\twords that change how lisp indenting works") -! call OptionL("lw", &lw) - endif - - -*** ../vim-7.4.200/src/buffer.c 2014-01-10 16:43:09.000000000 +0100 ---- src/buffer.c 2014-03-12 18:20:30.752874299 +0100 -*************** -*** 1978,1983 **** ---- 1978,1986 ---- - #endif - buf->b_p_ar = -1; - buf->b_p_ul = NO_LOCAL_UNDOLEVEL; -+ #ifdef FEAT_LISP -+ clear_string_option(&buf->b_p_lw); -+ #endif - } - - /* -*** ../vim-7.4.200/src/misc1.c 2013-11-06 04:01:31.000000000 +0100 ---- src/misc1.c 2014-03-12 18:20:30.752874299 +0100 -*************** -*** 8879,8885 **** - { - char_u buf[LSIZE]; - int len; -! char_u *word = p_lispwords; - - while (*word != NUL) - { ---- 8879,8885 ---- - { - char_u buf[LSIZE]; - int len; -! char_u *word = *curbuf->b_p_lw != NUL ? curbuf->b_p_lw : p_lispwords; - - while (*word != NUL) - { -*** ../vim-7.4.200/src/option.c 2014-01-14 16:54:53.000000000 +0100 ---- src/option.c 2014-03-12 18:20:30.752874299 +0100 -*************** -*** 134,139 **** ---- 134,140 ---- - #define PV_KP OPT_BOTH(OPT_BUF(BV_KP)) - #ifdef FEAT_LISP - # define PV_LISP OPT_BUF(BV_LISP) -+ # define PV_LW OPT_BOTH(OPT_BUF(BV_LW)) - #endif - #define PV_MA OPT_BUF(BV_MA) - #define PV_ML OPT_BUF(BV_ML) -*************** -*** 1718,1724 **** - {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, - {"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, - #ifdef FEAT_LISP -! (char_u *)&p_lispwords, PV_NONE, - {(char_u *)LISPWORD_VALUE, (char_u *)0L} - #else - (char_u *)NULL, PV_NONE, ---- 1719,1725 ---- - {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, - {"lispwords", "lw", P_STRING|P_VI_DEF|P_COMMA|P_NODUP, - #ifdef FEAT_LISP -! (char_u *)&p_lispwords, PV_LW, - {(char_u *)LISPWORD_VALUE, (char_u *)0L} - #else - (char_u *)NULL, PV_NONE, -*************** -*** 5412,5417 **** ---- 5413,5421 ---- - check_string_option(&buf->b_p_dict); - check_string_option(&buf->b_p_tsr); - #endif -+ #ifdef FEAT_LISP -+ check_string_option(&buf->b_p_lw); -+ #endif - } - - /* -*************** -*** 9879,9884 **** ---- 9883,9893 ---- - case PV_UL: - buf->b_p_ul = NO_LOCAL_UNDOLEVEL; - break; -+ #ifdef FEAT_LISP -+ case PV_LW: -+ clear_string_option(&buf->b_p_lw); -+ break; -+ #endif - } - } - -*************** -*** 9928,9933 **** ---- 9937,9945 ---- - case PV_STL: return (char_u *)&(curwin->w_p_stl); - #endif - case PV_UL: return (char_u *)&(curbuf->b_p_ul); -+ #ifdef FEAT_LISP -+ case PV_LW: return (char_u *)&(curbuf->b_p_lw); -+ #endif - } - return NULL; /* "cannot happen" */ - } -*************** -*** 9994,9999 **** ---- 10006,10015 ---- - #endif - case PV_UL: return curbuf->b_p_ul != NO_LOCAL_UNDOLEVEL - ? (char_u *)&(curbuf->b_p_ul) : p->var; -+ #ifdef FEAT_LISP -+ case PV_LW: return *curbuf->b_p_lw != NUL -+ ? (char_u *)&(curbuf->b_p_lw) : p->var; -+ #endif - - #ifdef FEAT_ARABIC - case PV_ARAB: return (char_u *)&(curwin->w_p_arab); -*************** -*** 10567,10572 **** ---- 10583,10591 ---- - #ifdef FEAT_PERSISTENT_UNDO - buf->b_p_udf = p_udf; - #endif -+ #ifdef FEAT_LISP -+ buf->b_p_lw = empty_option; -+ #endif - - /* - * Don't copy the options set by ex_help(), use the saved values, -*** ../vim-7.4.200/src/option.h 2014-01-10 15:32:17.000000000 +0100 ---- src/option.h 2014-03-12 18:20:30.752874299 +0100 -*************** -*** 990,995 **** ---- 990,996 ---- - , BV_KP - #ifdef FEAT_LISP - , BV_LISP -+ , BV_LW - #endif - , BV_MA - , BV_ML -*** ../vim-7.4.200/src/structs.h 2014-02-23 22:52:33.372764715 +0100 ---- src/structs.h 2014-03-12 18:20:30.752874299 +0100 -*************** -*** 1641,1646 **** ---- 1641,1649 ---- - #ifdef FEAT_PERSISTENT_UNDO - int b_p_udf; /* 'undofile' */ - #endif -+ #ifdef FEAT_LISP -+ char_u *b_p_lw; /* 'lispwords' local value */ -+ #endif - - /* end of buffer options */ - -*** ../vim-7.4.200/src/testdir/test100.in 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/test100.in 2014-03-12 18:25:27.792878851 +0100 -*************** -*** 1,4 **** -! Tests for 'undolevel' setting being global-local - - STARTTEST - :so small.vim ---- 1,4 ---- -! Tests for 'undolevel' and 'lispwords' settings being global-local - - STARTTEST - :so small.vim -*************** -*** 37,42 **** ---- 37,50 ---- - :call UndoLevel() - :%w >> test.out - :"sleep 10 -+ :" -+ :" Testing 'lispwords' -+ :" -+ :setglobal lispwords=foo,bar,baz -+ :setlocal lispwords-=foo | setlocal lispwords+=quux -+ :redir >> test.out | echon "\nTesting 'lispwords' local value" | setglobal lispwords? | setlocal lispwords? | echo &lispwords . "\n" | redir end -+ :setlocal lispwords< -+ :redir >> test.out | echon "\nTesting 'lispwords' value reset" | setglobal lispwords? | setlocal lispwords? | echo &lispwords . "\n" | redir end - :qa! - ENDTEST - -*** ../vim-7.4.200/src/testdir/test100.ok 2013-11-07 03:25:51.000000000 +0100 ---- src/testdir/test100.ok 2014-03-12 18:25:27.792878851 +0100 -*************** -*** 39,41 **** ---- 39,51 ---- - - undolevels=50 global - undolevels=-123456 local -+ -+ Testing 'lispwords' local value -+ lispwords=foo,bar,baz -+ lispwords=bar,baz,quux -+ bar,baz,quux -+ -+ Testing 'lispwords' value reset -+ lispwords=foo,bar,baz -+ lispwords=foo,bar,baz -+ foo,bar,baz -*** ../vim-7.4.200/src/version.c 2014-03-12 17:56:42.960852421 +0100 ---- src/version.c 2014-03-12 18:19:13.720873119 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 201, - /**/ - --- -Lawmakers made it obligatory for everybody to take at least one bath -each week -- on Saturday night. - [real standing law in Vermont, United States of America] - - /// 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 /// diff --git a/7.4.202 b/7.4.202 deleted file mode 100644 index 5c50d878..00000000 --- a/7.4.202 +++ /dev/null @@ -1,281 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.202 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.202 -Problem: MS-Windows: non-ASCII font names don't work. -Solution: Convert between the current code page and 'encoding'. (Ken Takata) -Files: src/gui_w48.c, src/os_mswin.c, src/proto/winclip.pro, - src/winclip.c - - -*** ../vim-7.4.201/src/gui_w48.c 2013-09-22 15:43:34.000000000 +0200 ---- src/gui_w48.c 2014-03-12 19:18:14.264927370 +0100 -*************** -*** 3069,3083 **** - char *p; - char *res; - char *charset_name; - - charset_name = charset_id2name((int)lf.lfCharSet); -! res = alloc((unsigned)(strlen(lf.lfFaceName) + 20 - + (charset_name == NULL ? 0 : strlen(charset_name) + 2))); - if (res != NULL) - { - p = res; - /* make a normal font string out of the lf thing:*/ -! sprintf((char *)p, "%s:h%d", lf.lfFaceName, pixels_to_points( - lf.lfHeight < 0 ? -lf.lfHeight : lf.lfHeight, TRUE)); - while (*p) - { ---- 3069,3094 ---- - char *p; - char *res; - char *charset_name; -+ char *font_name = lf.lfFaceName; - - charset_name = charset_id2name((int)lf.lfCharSet); -! #ifdef FEAT_MBYTE -! /* Convert a font name from the current codepage to 'encoding'. -! * TODO: Use Wide APIs (including LOGFONTW) instead of ANSI APIs. */ -! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -! { -! int len; -! acp_to_enc(lf.lfFaceName, strlen(lf.lfFaceName), -! (char_u **)&font_name, &len); -! } -! #endif -! res = alloc((unsigned)(strlen(font_name) + 20 - + (charset_name == NULL ? 0 : strlen(charset_name) + 2))); - if (res != NULL) - { - p = res; - /* make a normal font string out of the lf thing:*/ -! sprintf((char *)p, "%s:h%d", font_name, pixels_to_points( - lf.lfHeight < 0 ? -lf.lfHeight : lf.lfHeight, TRUE)); - while (*p) - { -*************** -*** 3102,3107 **** ---- 3113,3122 ---- - } - } - -+ #ifdef FEAT_MBYTE -+ if (font_name != lf.lfFaceName) -+ vim_free(font_name); -+ #endif - return res; - } - -*** ../vim-7.4.201/src/os_mswin.c 2014-02-11 17:05:57.278217857 +0100 ---- src/os_mswin.c 2014-03-12 19:18:14.264927370 +0100 -*************** -*** 2867,2878 **** ---- 2867,2893 ---- - { - char_u *p; - int i; -+ int ret = FAIL; - static LOGFONT *lastlf = NULL; -+ #ifdef FEAT_MBYTE -+ char_u *acpname = NULL; -+ #endif - - *lf = s_lfDefault; - if (name == NULL) - return OK; - -+ #ifdef FEAT_MBYTE -+ /* Convert 'name' from 'encoding' to the current codepage, because -+ * lf->lfFaceName uses the current codepage. -+ * TODO: Use Wide APIs instead of ANSI APIs. */ -+ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) -+ { -+ int len; -+ enc_to_acp(name, strlen(name), &acpname, &len); -+ name = acpname; -+ } -+ #endif - if (STRCMP(name, "*") == 0) - { - #if defined(FEAT_GUI_W32) -*************** -*** 2887,2896 **** - cf.lpLogFont = lf; - cf.nFontType = 0 ; //REGULAR_FONTTYPE; - if (ChooseFont(&cf)) -! goto theend; -! #else -! return FAIL; - #endif - } - - /* ---- 2902,2910 ---- - cf.lpLogFont = lf; - cf.nFontType = 0 ; //REGULAR_FONTTYPE; - if (ChooseFont(&cf)) -! ret = OK; - #endif -+ goto theend; - } - - /* -*************** -*** 2899,2905 **** - for (p = name; *p && *p != ':'; p++) - { - if (p - name + 1 > LF_FACESIZE) -! return FAIL; /* Name too long */ - lf->lfFaceName[p - name] = *p; - } - if (p != name) ---- 2913,2919 ---- - for (p = name; *p && *p != ':'; p++) - { - if (p - name + 1 > LF_FACESIZE) -! goto theend; /* Name too long */ - lf->lfFaceName[p - name] = *p; - } - if (p != name) -*************** -*** 2927,2933 **** - did_replace = TRUE; - } - if (!did_replace || init_logfont(lf) == FAIL) -! return FAIL; - } - - while (*p == ':') ---- 2941,2947 ---- - did_replace = TRUE; - } - if (!did_replace || init_logfont(lf) == FAIL) -! goto theend; - } - - while (*p == ':') -*************** -*** 2988,3012 **** - p[-1], name); - EMSG(IObuff); - } -! return FAIL; - } - while (*p == ':') - p++; - } - -- #if defined(FEAT_GUI_W32) - theend: -- #endif - /* ron: init lastlf */ -! if (printer_dc == NULL) - { - vim_free(lastlf); - lastlf = (LOGFONT *)alloc(sizeof(LOGFONT)); - if (lastlf != NULL) - mch_memmove(lastlf, lf, sizeof(LOGFONT)); - } - -! return OK; - } - - #endif /* defined(FEAT_GUI) || defined(FEAT_PRINTER) */ ---- 3002,3028 ---- - p[-1], name); - EMSG(IObuff); - } -! goto theend; - } - while (*p == ':') - p++; - } -+ ret = OK; - - theend: - /* ron: init lastlf */ -! if (ret == OK && printer_dc == NULL) - { - vim_free(lastlf); - lastlf = (LOGFONT *)alloc(sizeof(LOGFONT)); - if (lastlf != NULL) - mch_memmove(lastlf, lf, sizeof(LOGFONT)); - } -+ #ifdef FEAT_MBYTE -+ vim_free(acpname); -+ #endif - -! return ret; - } - - #endif /* defined(FEAT_GUI) || defined(FEAT_PRINTER) */ -*** ../vim-7.4.201/src/proto/winclip.pro 2013-08-10 13:37:39.000000000 +0200 ---- src/proto/winclip.pro 2014-03-12 19:18:14.264927370 +0100 -*************** -*** 11,14 **** ---- 11,15 ---- - short_u *enc_to_utf16 __ARGS((char_u *str, int *lenp)); - char_u *utf16_to_enc __ARGS((short_u *str, int *lenp)); - void acp_to_enc __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); -+ void enc_to_acp __ARGS((char_u *str, int str_size, char_u **out, int *outlen)); - /* vim: set ft=c : */ -*** ../vim-7.4.201/src/winclip.c 2013-07-01 21:05:53.000000000 +0200 ---- src/winclip.c 2014-03-12 19:18:14.264927370 +0100 -*************** -*** 797,800 **** ---- 797,825 ---- - vim_free(widestr); - } - } -+ -+ /* -+ * Convert from 'encoding' to the active codepage. -+ * Input is "str[str_size]". -+ * The result is in allocated memory: "out[outlen]". With terminating NUL. -+ */ -+ void -+ enc_to_acp(str, str_size, out, outlen) -+ char_u *str; -+ int str_size; -+ char_u **out; -+ int *outlen; -+ -+ { -+ LPWSTR widestr; -+ int len = str_size; -+ -+ widestr = (WCHAR *)enc_to_utf16(str, &len); -+ if (widestr != NULL) -+ { -+ WideCharToMultiByte_alloc(GetACP(), 0, widestr, len, -+ (LPSTR *)out, outlen, 0, 0); -+ vim_free(widestr); -+ } -+ } - #endif -*** ../vim-7.4.201/src/version.c 2014-03-12 18:55:52.104906804 +0100 ---- src/version.c 2014-03-12 19:19:01.388928092 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 202, - /**/ - --- - Girls are like internet domain names, - the ones I like are already taken. - Well, you can stil get one from a strange country :-P - - /// 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 /// diff --git a/7.4.203 b/7.4.203 deleted file mode 100644 index d5cb84ae..00000000 --- a/7.4.203 +++ /dev/null @@ -1,203 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.203 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.203 -Problem: Parsing 'errorformat' is not correct. -Solution: Reset "multiignore" at the start of a multi-line message. (Lcd) -Files: src/quickfix.c, src/testdir/Make_amiga.mak, - src/testdir/Make_dos.mak, src/testdir/Make_ming.mak, - src/testdir/Make_os2.mak, src/testdir/Make_vms.mms, - src/testdir/Makefile, src/testdir/test106.in, - src/testdir/test106.ok - - -*** ../vim-7.4.202/src/quickfix.c 2013-07-01 21:16:44.000000000 +0200 ---- src/quickfix.c 2014-03-12 19:35:22.016943118 +0100 -*************** -*** 751,757 **** ---- 751,760 ---- - fmt_start = fmt_ptr; - - if (vim_strchr((char_u *)"AEWI", idx) != NULL) -+ { - multiline = TRUE; /* start of a multi-line message */ -+ multiignore = FALSE; /* reset continuation */ -+ } - else if (vim_strchr((char_u *)"CZ", idx) != NULL) - { /* continuation of multi-line msg */ - if (qfprev == NULL) -*** ../vim-7.4.202/src/testdir/Make_amiga.mak 2014-02-23 23:38:58.808760280 +0100 ---- src/testdir/Make_amiga.mak 2014-03-12 19:32:32.192940516 +0100 -*************** -*** 35,41 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out test105.out - - .SUFFIXES: .in .out - ---- 35,41 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out test105.out test106.out - - .SUFFIXES: .in .out - -*************** -*** 157,159 **** ---- 157,160 ---- - test103.out: test103.in - test104.out: test104.in - test105.out: test105.in -+ test106.out: test106.in -*** ../vim-7.4.202/src/testdir/Make_dos.mak 2014-02-23 23:38:58.808760280 +0100 ---- src/testdir/Make_dos.mak 2014-03-12 19:32:40.100940637 +0100 -*************** -*** 34,40 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out test99.out \ - test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - SCRIPTS32 = test50.out test70.out - ---- 34,40 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out test99.out \ - test100.out test101.out test102.out test103.out test104.out \ -! test105.out test106.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.202/src/testdir/Make_ming.mak 2014-02-23 23:38:58.812760280 +0100 ---- src/testdir/Make_ming.mak 2014-03-12 19:32:44.948940712 +0100 -*************** -*** 54,60 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out test99.out \ - test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - SCRIPTS32 = test50.out test70.out - ---- 54,60 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out test99.out \ - test100.out test101.out test102.out test103.out test104.out \ -! test105.out test106.out - - SCRIPTS32 = test50.out test70.out - -*** ../vim-7.4.202/src/testdir/Make_os2.mak 2014-02-23 23:38:58.812760280 +0100 ---- src/testdir/Make_os2.mak 2014-03-12 19:32:48.112940760 +0100 -*************** -*** 36,42 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out test99.out \ - test100.out test101.out test102.out test103.out test104.out \ -! test105.out - - .SUFFIXES: .in .out - ---- 36,42 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test98.out test99.out \ - test100.out test101.out test102.out test103.out test104.out \ -! test105.out test106.out - - .SUFFIXES: .in .out - -*** ../vim-7.4.202/src/testdir/Make_vms.mms 2014-03-12 16:51:35.060792541 +0100 ---- src/testdir/Make_vms.mms 2014-03-12 19:32:51.836940817 +0100 -*************** -*** 95,101 **** - test90.out test91.out test92.out test93.out test94.out \ - test95.out test96.out test98.out test99.out \ - test100.out test101.out test103.out test104.out \ -! test105.out - - # Known problems: - # test17: ? ---- 95,101 ---- - test90.out test91.out test92.out test93.out test94.out \ - test95.out test96.out test98.out test99.out \ - test100.out test101.out test103.out test104.out \ -! test105.out test106.out - - # Known problems: - # test17: ? -*** ../vim-7.4.202/src/testdir/Makefile 2014-03-12 15:50:18.472736205 +0100 ---- src/testdir/Makefile 2014-03-12 19:32:13.884940236 +0100 -*************** -*** 31,37 **** - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out test105.out - - SCRIPTS_GUI = test16.out - ---- 31,37 ---- - test89.out test90.out test91.out test92.out test93.out \ - test94.out test95.out test96.out test97.out test98.out \ - test99.out test100.out test101.out test102.out test103.out \ -! test104.out test105.out test106.out - - SCRIPTS_GUI = test16.out - -*** ../vim-7.4.202/src/testdir/test106.in 2014-03-12 19:40:59.584948291 +0100 ---- src/testdir/test106.in 2014-03-12 19:33:30.332941407 +0100 -*************** -*** 0 **** ---- 1,16 ---- -+ Tests for errorformat. vim: set ft=vim ts=8 : -+ -+ STARTTEST -+ :so small.vim -+ :if !has('quickfix') | e! test.ok | wq! test.out | endif -+ :set efm=%EEEE%m,%WWWW%m,%+CCCC%.%#,%-GGGG%.%# -+ :cgetexpr ['WWWW', 'EEEE', 'CCCC'] -+ :$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]'))) -+ :cgetexpr ['WWWW', 'GGGG', 'EEEE', 'CCCC'] -+ :$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]'))) -+ :cgetexpr ['WWWW', 'GGGG', 'ZZZZ', 'EEEE', 'CCCC', 'YYYY'] -+ :$put =strtrans(string(map(getqflist(), '[v:val.text, v:val.valid]'))) -+ :/^Results/,$wq! test.out -+ ENDTEST -+ -+ Results of test106: -*** ../vim-7.4.202/src/testdir/test106.ok 2014-03-12 19:40:59.592948291 +0100 ---- src/testdir/test106.ok 2014-03-12 19:33:50.496941716 +0100 -*************** -*** 0 **** ---- 1,4 ---- -+ Results of test106: -+ [['W', 1], ['E^@CCCC', 1]] -+ [['W', 1], ['E^@CCCC', 1]] -+ [['W', 1], ['ZZZZ', 0], ['E^@CCCC', 1], ['YYYY', 0]] -*** ../vim-7.4.202/src/version.c 2014-03-12 19:24:32.508933166 +0100 ---- src/version.c 2014-03-12 19:39:34.344946985 +0100 -*************** -*** 740,741 **** ---- 740,743 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 203, - /**/ - --- -"I know that there are people who don't love their fellow man, -and I hate those people!" - Tom Lehrer - - /// 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 /// diff --git a/7.4.204 b/7.4.204 deleted file mode 100644 index c6b491e0..00000000 --- a/7.4.204 +++ /dev/null @@ -1,113 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.4.204 -Fcc: outbox -From: Bram Moolenaar -Mime-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit ------------- - -Patch 7.4.204 -Problem: A mapping where the second byte is 0x80 doesn't work. -Solution: Unescape before checking for incomplete multi-byte char. (Nobuhiro - Takasaki) -Files: src/getchar.c, src/testdir/test75.in, src/testdir/test75.ok - - -*** ../vim-7.4.203/src/getchar.c 2014-02-15 16:17:02.213903042 +0100 ---- src/getchar.c 2014-03-12 20:06:17.944971557 +0100 -*************** -*** 2206,2215 **** - #ifdef FEAT_MBYTE - /* Don't allow mapping the first byte(s) of a - * multi-byte char. Happens when mapping -! * and then changing 'encoding'. */ -! if (has_mbyte && MB_BYTE2LEN(c1) -! > (*mb_ptr2len)(mp->m_keys)) -! mlen = 0; - #endif - /* - * Check an entry whether it matches. ---- 2206,2221 ---- - #ifdef FEAT_MBYTE - /* Don't allow mapping the first byte(s) of a - * multi-byte char. Happens when mapping -! * and then changing 'encoding'. Beware -! * that 0x80 is escaped. */ -! { -! char_u *p1 = mp->m_keys; -! char_u *p2 = mb_unescape(&p1); -! -! if (has_mbyte && p2 != NULL -! && MB_BYTE2LEN(c1) > MB_PTR2LEN(p2)) -! mlen = 0; -! } - #endif - /* - * Check an entry whether it matches. -*** ../vim-7.4.203/src/testdir/test75.in 2013-11-02 04:19:10.000000000 +0100 ---- src/testdir/test75.in 2014-03-12 20:02:45.932968308 +0100 -*************** -*** 1,8 **** ---- 1,11 ---- - Tests for maparg(). -+ Also test utf8 map with a 0x80 byte. - - STARTTEST - :so small.vim -+ :so mbyte.vim - :set cpo-=< -+ :set encoding=utf8 - :" Test maparg() with a string result - :map foo isfoo - :vnoremap