From 36166c73a5f703504c5ad0387d8926cb7b246210 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 26 Aug 2014 19:35:51 +0200 Subject: [PATCH 0001/1616] Perl 5.20 rebuild --- vim.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vim.spec b/vim.spec index 69702862..10053f20 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 @@ -1543,6 +1543,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Aug 26 2014 Jitka Plesnikova - 2:7.4.417-2 +- Perl 5.20 rebuild + * Tue Aug 26 2014 Karsten Hopp 7.4.417-1 - patchlevel 417 From 497939c1581702b2e999bbd8a6542edef1130731 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:36 +0200 Subject: [PATCH 0002/1616] - patchlevel 418 --- 7.4.418 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.418 diff --git a/7.4.418 b/7.4.418 new file mode 100644 index 00000000..15a83da8 --- /dev/null +++ b/7.4.418 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.418 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.418 +Problem: When leaving ":append" the cursor shape is like in Insert mode. + (Jacob Niehus) +Solution: Do not have State set to INSERT when calling getline(). +Files: src/ex_cmds.c + + +*** ../vim-7.4.417/src/ex_cmds.c 2014-08-06 18:17:03.471147780 +0200 +--- src/ex_cmds.c 2014-08-29 08:54:26.666398204 +0200 +*************** +*** 4011,4021 **** +--- 4011,4029 ---- + eap->nextcmd = p; + } + else ++ { ++ int save_State = State; ++ ++ /* Set State to avoid the cursor shape to be set to INSERT mode ++ * when getline() returns. */ ++ State = CMDLINE; + theline = eap->getline( + #ifdef FEAT_EVAL + eap->cstack->cs_looplevel > 0 ? -1 : + #endif + NUL, eap->cookie, indent); ++ State = save_State; ++ } + lines_left = Rows - 1; + if (theline == NULL) + break; +*** ../vim-7.4.417/src/version.c 2014-08-24 21:39:45.488526954 +0200 +--- src/version.c 2014-08-29 08:58:31.086398738 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 418, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +88. Every single time you press the 'Get mail' button...it does get new 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 1476a9ca650d46f5fc6be050fb6cdfa6dbae3bb9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:36 +0200 Subject: [PATCH 0003/1616] - patchlevel 419 --- 7.4.419 | 124 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 7.4.419 diff --git a/7.4.419 b/7.4.419 new file mode 100644 index 00000000..f718713c --- /dev/null +++ b/7.4.419 @@ -0,0 +1,124 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.419 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.419 +Problem: When part of a list is locked it's possible to make changes. +Solution: Check if any of the list items is locked before make a change. + (ZyX) +Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok + + +*** ../vim-7.4.418/src/eval.c 2014-08-22 13:13:24.219895762 +0200 +--- src/eval.c 2014-08-29 09:37:56.930403905 +0200 +*************** +*** 2945,2950 **** +--- 2945,2967 ---- + ; + else if (lp->ll_range) + { ++ listitem_T *ll_li = lp->ll_li; ++ int ll_n1 = lp->ll_n1; ++ ++ /* ++ * Check whether any of the list items is locked ++ */ ++ for (ri = rettv->vval.v_list->lv_first; ri != 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)) ++ break; ++ ll_li = ll_li->li_next; ++ ++ll_n1; ++ } ++ + /* + * Assign the List values to the list items. + */ +*************** +*** 3646,3651 **** +--- 3663,3679 ---- + else if (lp->ll_range) + { + listitem_T *li; ++ listitem_T *ll_li = lp->ll_li; ++ int ll_n1 = lp->ll_n1; ++ ++ 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; ++ } + + /* Delete a range of List items. */ + while (lp->ll_li != NULL && (lp->ll_empty2 || lp->ll_n2 >= lp->ll_n1)) +*** ../vim-7.4.418/src/testdir/test55.in 2014-07-02 19:06:14.686326091 +0200 +--- src/testdir/test55.in 2014-08-29 09:37:23.474403832 +0200 +*************** +*** 282,287 **** +--- 282,302 ---- + : $put =ps + : endfor + :endfor ++ :unlet l ++ :let l = [1, 2, 3, 4] ++ :lockvar! l ++ :$put =string(l) ++ :unlockvar l[1] ++ :unlet l[0:1] ++ :$put =string(l) ++ :unlet l[1:2] ++ :$put =string(l) ++ :unlockvar l[1] ++ :let l[0:1] = [0, 1] ++ :$put =string(l) ++ :let l[1:2] = [0, 1] ++ :$put =string(l) ++ :unlet l + :" :lockvar/islocked() triggering script autoloading + :set rtp+=./sautest + :lockvar g:footest#x +*** ../vim-7.4.418/src/testdir/test55.ok 2014-07-02 19:06:14.686326091 +0200 +--- src/testdir/test55.ok 2014-08-29 09:37:29.606403846 +0200 +*************** +*** 86,91 **** +--- 86,96 ---- + FFpFFpp + 0000-000 + ppppppp ++ [1, 2, 3, 4] ++ [1, 2, 3, 4] ++ [1, 2, 3, 4] ++ [1, 2, 3, 4] ++ [1, 2, 3, 4] + locked g:footest#x:-1 + exists g:footest#x:0 + g:footest#x: 1 +*** ../vim-7.4.418/src/version.c 2014-08-29 09:02:23.890399246 +0200 +--- src/version.c 2014-08-29 09:39:24.658404097 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 419, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +90. Instead of calling you to dinner, your spouse sends 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 ccf0d40ea4cb46d0ad7c8b6d8f8acf5f33ad4072 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:37 +0200 Subject: [PATCH 0004/1616] - patchlevel 420 --- 7.4.420 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.420 diff --git a/7.4.420 b/7.4.420 new file mode 100644 index 00000000..71cdf966 --- /dev/null +++ b/7.4.420 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.420 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.420 +Problem: It's not obvious how to add a new test. +Solution: Add a README file. (Christian Brabandt) +Files: src/testdir/README.txt + + +*** ../vim-7.4.419/src/testdir/README.txt 2014-08-29 10:04:24.754407374 +0200 +--- src/testdir/README.txt 2014-08-29 10:01:08.294406945 +0200 +*************** +*** 0 **** +--- 1,18 ---- ++ This directory contains tests for various Vim features. ++ ++ If it makes sense, try to add a new test to an already existing file. You may ++ want to separate it from other tests in that file using :" (that's an Ex ++ command comment). ++ ++ The numbered tests are older, we have switched to named tests. ++ ++ To add a new test: ++ 1) Create test_.in and test_.ok files. ++ 2) Add them to all Makefiles (Make*) in alphabetical order (search for an ++ existing test_file.out to see where to add the new one). ++ 3) Use make test_.out to run a single test file in src/testdir/. ++ 4) Also add an entry in src/Makefile. ++ ++ Keep in mind that the files are used as if everything was typed. ++ A line break is like pressing Enter. If that happens on the last line you'll ++ hear a beep. +*** ../vim-7.4.419/src/version.c 2014-08-29 09:46:04.266404970 +0200 +--- src/version.c 2014-08-29 10:01:21.242406973 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 420, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +91. It's Saturday afternoon in the middle of May and you + are on computer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 9123e3ce8d8974b247b387646b9fe9ecc97088f7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:38 +0200 Subject: [PATCH 0005/1616] - patchlevel 421 --- 7.4.421 | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 7.4.421 diff --git a/7.4.421 b/7.4.421 new file mode 100644 index 00000000..35b00d04 --- /dev/null +++ b/7.4.421 @@ -0,0 +1,132 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.421 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.421 +Problem: Crash when searching for "\ze*". (Urtica Dioica) +Solution: Disallow a multi after \ze and \zs. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.4.420/src/regexp_nfa.c 2014-05-13 19:37:19.489786520 +0200 +--- src/regexp_nfa.c 2014-08-29 11:14:12.030416520 +0200 +*************** +*** 291,296 **** +--- 291,297 ---- + static int nfa_regconcat __ARGS((void)); + static int nfa_regbranch __ARGS((void)); + static int nfa_reg __ARGS((int paren)); ++ static int re_mult_next __ARGS((char *what)); + #ifdef DEBUG + static void nfa_set_code __ARGS((int c)); + static void nfa_postfix_dump __ARGS((char_u *expr, int retval)); +*************** +*** 1323,1332 **** +--- 1324,1337 ---- + { + case 's': + EMIT(NFA_ZSTART); ++ if (re_mult_next("\\zs") == FAIL) ++ return FAIL; + break; + case 'e': + EMIT(NFA_ZEND); + nfa_has_zend = TRUE; ++ if (re_mult_next("\\ze") == FAIL) ++ return FAIL; + break; + #ifdef FEAT_SYN_HL + case '1': +*************** +*** 2276,2281 **** +--- 2281,2298 ---- + return OK; + } + ++ /* ++ * Used in a place where no * or \+ can follow. ++ */ ++ static int ++ re_mult_next(what) ++ char *what; ++ { ++ if (re_multi_type(peekchr()) == MULTI_MULT) ++ EMSG2_RET_FAIL(_("E888: (NFA regexp) cannot repeat %s"), what); ++ return OK; ++ } ++ + #ifdef DEBUG + static char_u code[50]; + +*** ../vim-7.4.420/src/testdir/test64.in 2014-05-13 16:44:25.633695709 +0200 +--- src/testdir/test64.in 2014-08-29 11:33:12.330419011 +0200 +*************** +*** 459,465 **** + : let text = t[2] + : let matchidx = 3 + : for engine in [0, 1, 2] +! : if engine == 2 && re == 0 || engine == 1 && re ==1 + : continue + : endif + : let ®expengine = engine +--- 459,465 ---- + : let text = t[2] + : let matchidx = 3 + : for engine in [0, 1, 2] +! : if engine == 2 && re == 0 || engine == 1 && re == 1 + : continue + : endif + : let ®expengine = engine +*************** +*** 608,613 **** +--- 608,624 ---- + "ayb20gg/..\%$ + "bybGo"apo"bp:" + :" ++ :" Check for detecting error ++ :set regexpengine=2 ++ :for pat in [' \ze*', ' \zs*'] ++ : try ++ : let l = matchlist('x x', pat) ++ : $put ='E888 NOT detected for ' . pat ++ : catch ++ : $put ='E888 detected for ' . pat ++ : endtry ++ :endfor ++ :" + :""""" Write the results """"""""""""" + :/\%#=1^Results/,$wq! test.out + ENDTEST +*** ../vim-7.4.420/src/testdir/test64.ok 2014-05-13 16:44:25.633695709 +0200 +--- src/testdir/test64.ok 2014-08-29 11:36:05.782419390 +0200 +*************** +*** 1097,1099 **** +--- 1097,1101 ---- + Test END + EN + E ++ E888 detected for \ze* ++ E888 detected for \zs* +*** ../vim-7.4.420/src/version.c 2014-08-29 10:04:32.226407390 +0200 +--- src/version.c 2014-08-29 11:37:15.794419543 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 421, + /**/ + +-- +From "know your smileys": + :----} You lie like Pinocchio + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From e393e448ed313743d936c44ef0873648391559b0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:38 +0200 Subject: [PATCH 0006/1616] - patchlevel 422 --- 7.4.422 | 103 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 7.4.422 diff --git a/7.4.422 b/7.4.422 new file mode 100644 index 00000000..f8df16b1 --- /dev/null +++ b/7.4.422 @@ -0,0 +1,103 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.422 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.422 +Problem: When using conceal with linebreak some text is not displayed + correctly. (GrĂ¼ner Gimpel) +Solution: Check for conceal mode when using linebreak. (Christian Brabandt) +Files: src/screen.c, src/testdir/test_listlbr.in, + src/testdir/test_listlbr.ok + + +*** ../vim-7.4.421/src/screen.c 2014-08-16 16:28:31.882272056 +0200 +--- src/screen.c 2014-08-29 12:08:11.478423596 +0200 +*************** +*** 4514,4519 **** +--- 4514,4524 ---- + int i; + 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 */ +*************** +*** 4539,4544 **** +--- 4544,4555 ---- + #endif + } + p_extra = p_extra_free; ++ #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 + } + #endif + #ifdef FEAT_CONCEAL +*** ../vim-7.4.421/src/testdir/test_listlbr.in 2014-07-16 17:01:38.279570568 +0200 +--- src/testdir/test_listlbr.in 2014-08-29 12:03:48.126423021 +0200 +*************** +*** 46,51 **** +--- 46,61 ---- + :redraw! + :let line=ScreenChar(winwidth(0)) + :call DoRecordScreen() ++ :let line="_S_\t bla" ++ :$put =line ++ :$ ++ :norm! zt ++ :let g:test ="Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated)" ++ :set cpo&vim list linebreak conceallevel=2 concealcursor=nv listchars=tab:ab ++ :syn match ConcealVar contained /_/ conceal ++ :syn match All /.*/ contains=ConcealVar ++ :let line=ScreenChar(winwidth(0)) ++ :call DoRecordScreen() + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.421/src/testdir/test_listlbr.ok 2014-07-16 17:01:38.279570568 +0200 +--- src/testdir/test_listlbr.ok 2014-08-29 12:03:48.126423021 +0200 +*************** +*** 25,27 **** +--- 25,34 ---- + +aaaaaaaaaaaaaaaaaa + ~ + ~ ++ _S_ bla ++ ++ Test 5: set linebreak with conceal and set list and tab displayed by different char (line may not be truncated) ++ Sabbbbbb bla ++ ~ ++ ~ ++ ~ +*** ../vim-7.4.421/src/version.c 2014-08-29 11:56:21.350422045 +0200 +--- src/version.c 2014-08-29 12:04:26.658423105 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 422, + /**/ + +-- +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 4e6b00ab6a18953a8c966d49ed297c453b2bad90 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:39 +0200 Subject: [PATCH 0007/1616] - patchlevel 423 --- 7.4.423 | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 7.4.423 diff --git a/7.4.423 b/7.4.423 new file mode 100644 index 00000000..fc04ae00 --- /dev/null +++ b/7.4.423 @@ -0,0 +1,109 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.423 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.423 +Problem: expand("$shell") does not work as documented. +Solution: Do not escape the $ when expanding environment variables. +Files: src/os_unix.c, src/misc1.c, src/vim.h + + +*** ../vim-7.4.422/src/os_unix.c 2014-07-30 17:21:53.815518506 +0200 +--- src/os_unix.c 2014-08-29 12:47:57.230428808 +0200 +*************** +*** 5939,5948 **** + *p++ = '\\'; + ++j; + } +! else if (!intick && vim_strchr(SHELL_SPECIAL, +! pat[i][j]) != NULL) + /* Put a backslash before a special character, but not +! * when inside ``. */ + *p++ = '\\'; + + /* Copy one character. */ +--- 5939,5950 ---- + *p++ = '\\'; + ++j; + } +! else if (!intick +! && ((flags & EW_KEEPDOLLAR) == 0 || pat[i][j] != '$') +! && vim_strchr(SHELL_SPECIAL, pat[i][j]) != NULL) + /* Put a backslash before a special character, but not +! * when inside ``. And not for $var when EW_KEEPDOLLAR is +! * set. */ + *p++ = '\\'; + + /* Copy one character. */ +*** ../vim-7.4.422/src/misc1.c 2014-08-06 17:44:09.867161966 +0200 +--- src/misc1.c 2014-08-29 12:48:11.390428839 +0200 +*************** +*** 78,84 **** + if (!list || lcs_tab1) /* count a tab for what it is worth */ + count += ts - (count % ts); + else +! /* in list mode, when tab is not set, count screen char width for Tab: ^I */ + count += ptr2cells(ptr); + } + else if (*ptr == ' ') +--- 78,85 ---- + if (!list || lcs_tab1) /* count a tab for what it is worth */ + count += ts - (count % ts); + else +! /* In list mode, when tab is not set, count screen char width +! * for Tab, displays: ^I */ + count += ptr2cells(ptr); + } + else if (*ptr == ' ') +*************** +*** 10767,10773 **** + vim_free(p); + ga_clear_strings(&ga); + i = mch_expand_wildcards(num_pat, pat, num_file, file, +! flags); + recursive = FALSE; + return i; + } +--- 10768,10774 ---- + vim_free(p); + ga_clear_strings(&ga); + i = mch_expand_wildcards(num_pat, pat, num_file, file, +! flags|EW_KEEPDOLLAR); + recursive = FALSE; + return i; + } +*** ../vim-7.4.422/src/vim.h 2014-08-23 14:16:11.880625637 +0200 +--- src/vim.h 2014-08-29 12:46:47.370428655 +0200 +*************** +*** 835,840 **** +--- 835,841 ---- + #define EW_ICASE 0x100 /* ignore case */ + #define EW_NOERROR 0x200 /* no error for bad regexp */ + #define EW_NOTWILD 0x400 /* add match with literal name if exists */ ++ #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. */ + +*** ../vim-7.4.422/src/version.c 2014-08-29 12:08:39.686423658 +0200 +--- src/version.c 2014-08-29 12:48:54.138428932 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 423, + /**/ + +-- +From "know your smileys": + :~) A man with a tape recorder up his nose + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 2b7868a3012c85061c9775ab47d800c7da2059fb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:39 +0200 Subject: [PATCH 0008/1616] - patchlevel 424 --- 7.4.424 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.424 diff --git a/7.4.424 b/7.4.424 new file mode 100644 index 00000000..955b4f6d --- /dev/null +++ b/7.4.424 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.424 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.424 +Problem: Get ml_get error when using Python to delete lines in a buffer + that is not in a window. issue 248. +Solution: Do not try adjusting the cursor for a different buffer. +Files: src/if_py_both.h + + +*** ../vim-7.4.423/src/if_py_both.h 2014-05-07 17:31:32.473182497 +0200 +--- src/if_py_both.h 2014-08-29 13:32:18.554434621 +0200 +*************** +*** 4196,4202 **** + break; + } + } +! if (buf == curbuf) + py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n); + if (save_curbuf == NULL) + /* Only adjust marks if we managed to switch to a window that +--- 4196,4204 ---- + break; + } + } +! if (buf == curbuf && (save_curwin != NULL || save_curbuf == NULL)) +! /* Using an existing window for the buffer, adjust the cursor +! * position. */ + py_fix_cursor((linenr_T)lo, (linenr_T)hi, (linenr_T)-n); + if (save_curbuf == NULL) + /* Only adjust marks if we managed to switch to a window that +*** ../vim-7.4.423/src/version.c 2014-08-29 12:58:38.246430208 +0200 +--- src/version.c 2014-08-29 13:36:13.642435134 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 424, + /**/ + +-- +From "know your smileys": + :-H Is missing teeth + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From e8963e0beff32d40b032e5eefc58e37a332b3b2d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:40 +0200 Subject: [PATCH 0009/1616] - patchlevel 425 --- 7.4.425 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.4.425 diff --git a/7.4.425 b/7.4.425 new file mode 100644 index 00000000..fd1bad3e --- /dev/null +++ b/7.4.425 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.425 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.425 +Problem: When 'showbreak' is used "gj" may move to the wrong position. + (Nazri Ramliy) +Solution: Adjust virtcol when 'showbreak' is set. (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.4.424/src/normal.c 2014-07-23 12:31:17.207990767 +0200 +--- src/normal.c 2014-08-29 14:15:14.158440247 +0200 +*************** +*** 4509,4521 **** + #if defined(FEAT_LINEBREAK) || defined(FEAT_MBYTE) + if (curwin->w_cursor.col > 0 && curwin->w_p_wrap) + { + /* + * Check for landing on a character that got split at the end of the + * last line. We want to advance a screenline, not end up in the same + * screenline or move two screenlines. + */ + validate_virtcol(); +! if (curwin->w_virtcol > curwin->w_curswant + && (curwin->w_curswant < (colnr_T)width1 + ? (curwin->w_curswant > (colnr_T)width1 / 2) + : ((curwin->w_curswant - width1) % width2 +--- 4509,4527 ---- + #if defined(FEAT_LINEBREAK) || defined(FEAT_MBYTE) + if (curwin->w_cursor.col > 0 && curwin->w_p_wrap) + { ++ colnr_T virtcol; ++ + /* + * Check for landing on a character that got split at the end of the + * last line. We want to advance a screenline, not end up in the same + * screenline or move two screenlines. + */ + validate_virtcol(); +! virtcol = curwin->w_virtcol; +! if (virtcol > (colnr_T)width1 && *p_sbr != NUL) +! virtcol -= vim_strsize(p_sbr); +! +! if (virtcol > curwin->w_curswant + && (curwin->w_curswant < (colnr_T)width1 + ? (curwin->w_curswant > (colnr_T)width1 / 2) + : ((curwin->w_curswant - width1) % width2 +*** ../vim-7.4.424/src/version.c 2014-08-29 13:49:48.678436915 +0200 +--- src/version.c 2014-08-29 14:17:26.938440537 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 425, + /**/ + +-- +From "know your smileys": + !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From a0a3fe486375a62aa1f44c76a26f2582ac860c95 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:41 +0200 Subject: [PATCH 0010/1616] - patchlevel 426 --- 7.4.426 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.426 diff --git a/7.4.426 b/7.4.426 new file mode 100644 index 00000000..0022e9b8 --- /dev/null +++ b/7.4.426 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.426 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.426 +Problem: README File missing from list of files. +Solution: Update the list of files. +Files: Filelist + + +*** ../vim-7.4.425/Filelist 2014-08-10 13:46:30.424780490 +0200 +--- Filelist 2014-08-29 15:08:47.914447267 +0200 +*************** +*** 82,87 **** +--- 82,88 ---- + src/xxd/xxd.c \ + src/main.aap \ + src/testdir/main.aap \ ++ src/testdir/README.txt \ + src/testdir/*.in \ + src/testdir/sautest/autoload/*.vim \ + src/testdir/test[0-9]*.ok \ +*** ../vim-7.4.425/src/version.c 2014-08-29 14:20:47.418440975 +0200 +--- src/version.c 2014-08-29 15:09:33.234447366 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 426, + /**/ + +-- +From "know your smileys": + :-O>-o Smiley American tourist (note big mouth and camera) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From dedf294a0c0821df67555544320eefdf25260bac Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:41 +0200 Subject: [PATCH 0011/1616] - patchlevel 427 --- 7.4.427 | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 7.4.427 diff --git a/7.4.427 b/7.4.427 new file mode 100644 index 00000000..e59cd85a --- /dev/null +++ b/7.4.427 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.427 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.427 +Problem: When an InsertCharPre autocommand executes system() typeahead may + be echoed and messes up the display. (Jacob Niehus) +Solution: Do not set cooked mode when invoked from ":silent". +Files: src/eval.c, runtime/doc/eval.txt + + +*** ../vim-7.4.426/src/eval.c 2014-08-29 09:46:04.262404970 +0200 +--- src/eval.c 2014-08-29 15:37:57.034451088 +0200 +*************** +*** 18594,18599 **** +--- 18594,18600 ---- + int err = FALSE; + FILE *fd; + list_T *list = NULL; ++ int flags = SHELL_SILENT; + + rettv->v_type = VAR_STRING; + rettv->vval.v_string = NULL; +*************** +*** 18643,18648 **** +--- 18644,18654 ---- + } + } + ++ /* Omit SHELL_COOKED when invoked with ":silent". Avoids that the shell ++ * echoes typeahead, that messes up the display. */ ++ if (!msg_silent) ++ flags += SHELL_COOKED; ++ + if (retlist) + { + int len; +*************** +*** 18652,18659 **** + char_u *end; + int i; + +! res = get_cmd_output(get_tv_string(&argvars[0]), infile, +! SHELL_SILENT | SHELL_COOKED, &len); + if (res == NULL) + goto errret; + +--- 18658,18664 ---- + char_u *end; + int i; + +! res = get_cmd_output(get_tv_string(&argvars[0]), infile, flags, &len); + if (res == NULL) + goto errret; + +*************** +*** 18694,18701 **** + } + else + { +! res = get_cmd_output(get_tv_string(&argvars[0]), infile, +! SHELL_SILENT | SHELL_COOKED, NULL); + #ifdef USE_CR + /* translate into */ + if (res != NULL) +--- 18699,18705 ---- + } + else + { +! res = get_cmd_output(get_tv_string(&argvars[0]), infile, flags, NULL); + #ifdef USE_CR + /* translate into */ + if (res != NULL) +*** ../vim-7.4.426/runtime/doc/eval.txt 2014-08-06 14:52:05.035236174 +0200 +--- runtime/doc/eval.txt 2014-08-29 15:49:48.918452643 +0200 +*************** +*** 6071,6076 **** +--- 6093,6104 ---- + list items converted to NULs). + Pipes are not used. + ++ When prepended by |:silent| the shell will not be set to ++ cooked mode. This is meant to be used for commands that do ++ not need the user to type. It avoids stray characters showing ++ up on the screen which require |CTRL-L| to remove. > ++ :silent let f = system('ls *.vim') ++ < + 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. +*** ../vim-7.4.426/src/version.c 2014-08-29 15:12:50.950447798 +0200 +--- src/version.c 2014-08-29 15:39:07.862451242 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 427, + /**/ + +-- +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 /// From 86a034f69b814a7bfc784859dec1541887e347ec Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:42 +0200 Subject: [PATCH 0012/1616] - patchlevel 428 --- 7.4.428 | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 7.4.428 diff --git a/7.4.428 b/7.4.428 new file mode 100644 index 00000000..bb7d7e72 --- /dev/null +++ b/7.4.428 @@ -0,0 +1,105 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.428 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.428 +Problem: executable() may return a wrong result on MS-Windows. +Solution: Change the way SearchPath() is called. (Yasuhiro Matsumoto, Ken + Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.427/src/os_win32.c 2014-07-09 20:51:04.515583033 +0200 +--- src/os_win32.c 2014-08-29 17:44:01.782467612 +0200 +*************** +*** 1906,1911 **** +--- 1906,1913 ---- + { + char *dum; + char fname[_MAX_PATH]; ++ char *curpath, *newpath; ++ long n; + + #ifdef FEAT_MBYTE + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +*************** +*** 1913,1923 **** + WCHAR *p = enc_to_utf16(name, NULL); + WCHAR fnamew[_MAX_PATH]; + WCHAR *dumw; +! long n; + + if (p != NULL) + { +! n = (long)SearchPathW(NULL, p, NULL, _MAX_PATH, fnamew, &dumw); + vim_free(p); + if (n > 0 || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) + { +--- 1915,1933 ---- + WCHAR *p = enc_to_utf16(name, NULL); + WCHAR fnamew[_MAX_PATH]; + WCHAR *dumw; +! WCHAR *wcurpath, *wnewpath; + + if (p != NULL) + { +! wcurpath = _wgetenv(L"PATH"); +! wnewpath = (WCHAR*)alloc((unsigned)(wcslen(wcurpath) + 3) +! * sizeof(WCHAR)); +! if (wnewpath == NULL) +! return FALSE; +! wcscpy(wnewpath, L".;"); +! wcscat(wnewpath, wcurpath); +! n = (long)SearchPathW(wnewpath, p, NULL, _MAX_PATH, fnamew, &dumw); +! vim_free(wnewpath); + vim_free(p); + if (n > 0 || GetLastError() != ERROR_CALL_NOT_IMPLEMENTED) + { +*************** +*** 1933,1939 **** + } + } + #endif +! if (SearchPath(NULL, name, NULL, _MAX_PATH, fname, &dum) == 0) + return FALSE; + if (mch_isdir(fname)) + return FALSE; +--- 1943,1958 ---- + } + } + #endif +! +! curpath = getenv("PATH"); +! newpath = (char*)alloc((unsigned)(STRLEN(curpath) + 3)); +! if (newpath == NULL) +! return FALSE; +! STRCPY(newpath, ".;"); +! STRCAT(newpath, curpath); +! n = (long)SearchPath(newpath, name, NULL, _MAX_PATH, fname, &dum); +! vim_free(newpath); +! if (n == 0) + return FALSE; + if (mch_isdir(fname)) + return FALSE; +*** ../vim-7.4.427/src/version.c 2014-08-29 15:53:43.714453155 +0200 +--- src/version.c 2014-08-29 17:44:50.598467718 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 428, + /**/ + +-- +You are only young once, but you can stay immature indefinitely. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From d0feb6091a5a86696caec5e5b356c83ed7750027 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:43 +0200 Subject: [PATCH 0013/1616] - patchlevel 429 --- 7.4.429 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.4.429 diff --git a/7.4.429 b/7.4.429 new file mode 100644 index 00000000..3d7de57b --- /dev/null +++ b/7.4.429 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.429 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.429 +Problem: Build fails with fewer features. (Elimar Riesebieter) +Solution: Add #ifdef. +Files: src/normal.c + + +*** ../vim-7.4.428/src/normal.c 2014-08-29 14:20:47.418440975 +0200 +--- src/normal.c 2014-08-30 13:29:17.342622953 +0200 +*************** +*** 4518,4525 **** +--- 4518,4527 ---- + */ + validate_virtcol(); + virtcol = curwin->w_virtcol; ++ # if defined(FEAT_LINEBREAK) + if (virtcol > (colnr_T)width1 && *p_sbr != NUL) + virtcol -= vim_strsize(p_sbr); ++ # endif + + if (virtcol > curwin->w_curswant + && (curwin->w_curswant < (colnr_T)width1 +*** ../vim-7.4.428/src/version.c 2014-08-29 17:45:28.066467800 +0200 +--- src/version.c 2014-08-30 13:29:57.646623041 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 429, + /**/ + +-- +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 /// From 2818f53fcd4c739eeff489dce8021e76b9d7e850 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:43 +0200 Subject: [PATCH 0014/1616] - patchlevel 430 --- 7.4.430 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.430 diff --git a/7.4.430 b/7.4.430 new file mode 100644 index 00000000..f6232b0f --- /dev/null +++ b/7.4.430 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.430 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.430 +Problem: test_listlbr fails when compiled with normal features. +Solution: Check for the +conceal feature. +Files: src/testdir/test_listlbr.in + + +*** ../vim-7.4.429/src/testdir/test_listlbr.in 2014-08-29 12:08:39.686423658 +0200 +--- src/testdir/test_listlbr.in 2014-08-30 17:07:04.930651497 +0200 +*************** +*** 2,8 **** + + STARTTEST + :so small.vim +! :if !exists("+linebreak") | e! test.ok | w! test.out | qa! | endif + :10new|:vsp|:vert resize 20 + :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \" + :norm! zt +--- 2,8 ---- + + STARTTEST + :so small.vim +! :if !exists("+linebreak") || !exists("+conceal") | e! test.ok | w! test.out | qa! | endif + :10new|:vsp|:vert resize 20 + :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \" + :norm! zt +*** ../vim-7.4.429/src/version.c 2014-08-30 13:32:03.406623315 +0200 +--- src/version.c 2014-08-30 17:08:01.758651621 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 430, + /**/ + +-- +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 /// From 6c0e7297dbda295df20599936475fe7cc3ac1bff Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:44 +0200 Subject: [PATCH 0015/1616] - patchlevel 431 --- 7.4.431 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.431 diff --git a/7.4.431 b/7.4.431 new file mode 100644 index 00000000..e1b07143 --- /dev/null +++ b/7.4.431 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.431 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.431 +Problem: Compiler warning. +Solution: Add type cast. (Mike Williams) +Files: src/ex_docmd.c + + +*** ../vim-7.4.430/src/ex_docmd.c 2014-08-23 14:16:11.884625637 +0200 +--- src/ex_docmd.c 2014-09-02 23:30:26.567267923 +0200 +*************** +*** 2155,2161 **** + p = ea.cmd; + while (ASCII_ISALNUM(*p)) + ++p; +! p = vim_strnsave(ea.cmd, p - ea.cmd); + ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, TRUE, NULL); + vim_free(p); + if (ret && !aborting()) +--- 2155,2161 ---- + p = ea.cmd; + while (ASCII_ISALNUM(*p)) + ++p; +! p = vim_strnsave(ea.cmd, (int)(p - ea.cmd)); + ret = apply_autocmds(EVENT_CMDUNDEFINED, p, p, TRUE, NULL); + vim_free(p); + if (ret && !aborting()) +*** ../vim-7.4.430/src/version.c 2014-08-30 18:10:15.106659776 +0200 +--- src/version.c 2014-09-09 12:21:42.312501370 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 431, + /**/ + +-- +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 /// From c72a48c627aa945e8974311f0f3f509a9ce03da0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:45 +0200 Subject: [PATCH 0016/1616] - patchlevel 432 --- 7.4.432 | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 7.4.432 diff --git a/7.4.432 b/7.4.432 new file mode 100644 index 00000000..f06cce16 --- /dev/null +++ b/7.4.432 @@ -0,0 +1,107 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.432 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.432 +Problem: When the startup code expands command line arguments, setting + 'encoding' will not properly convert the arguments. +Solution: Call get_cmd_argsW() early in main(). (Yasuhiro Matsumoto) +Files: src/os_win32.c, src/main.c, src/os_mswin.c + + +*** ../vim-7.4.431/src/os_win32.c 2014-08-29 17:45:28.066467800 +0200 +--- src/os_win32.c 2014-09-09 12:14:15.768500395 +0200 +*************** +*** 6461,6466 **** +--- 6461,6467 ---- + int argc = 0; + int i; + ++ free_cmd_argsW(); + ArglistW = CommandLineToArgvW(GetCommandLineW(), &nArgsW); + if (ArglistW != NULL) + { +*************** +*** 6493,6499 **** +--- 6494,6504 ---- + global_argc = argc; + global_argv = argv; + if (argc > 0) ++ { ++ if (used_file_indexes != NULL) ++ free(used_file_indexes); + used_file_indexes = malloc(argc * sizeof(int)); ++ } + + if (argvp != NULL) + *argvp = argv; +*** ../vim-7.4.431/src/main.c 2014-08-10 13:34:59.056785459 +0200 +--- src/main.c 2014-09-09 12:16:09.016500642 +0200 +*************** +*** 178,183 **** +--- 178,191 ---- + */ + mch_early_init(); + ++ #if defined(WIN32) && defined(FEAT_MBYTE) ++ /* ++ * MingW expands command line arguments, which confuses our code to ++ * convert when 'encoding' changes. Get the unexpanded arguments. ++ */ ++ argc = get_cmd_argsW(&argv); ++ #endif ++ + /* Many variables are in "params" so that we can pass them to invoked + * functions without a lot of arguments. "argc" and "argv" are also + * copied, so that they can be changed. */ +*************** +*** 1496,1501 **** +--- 1504,1512 ---- + if (garbage_collect_at_exit) + garbage_collect(); + #endif ++ #if defined(WIN32) && defined(FEAT_MBYTE) ++ free_cmd_argsW(); ++ #endif + + mch_exit(exitval); + } +*** ../vim-7.4.431/src/os_mswin.c 2014-03-19 12:37:18.537826062 +0100 +--- src/os_mswin.c 2014-09-09 12:17:25.696500810 +0200 +*************** +*** 277,286 **** + AnsiUpperBuff(toupper_tab, 256); + AnsiLowerBuff(tolower_tab, 256); + #endif +- +- #if defined(FEAT_MBYTE) && !defined(FEAT_GUI) +- (void)get_cmd_argsW(NULL); +- #endif + } + + +--- 277,282 ---- +*** ../vim-7.4.431/src/version.c 2014-09-09 12:21:57.716501404 +0200 +--- src/version.c 2014-09-09 12:24:38.440501755 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 432, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +106. When told to "go to your room" you inform your parents that you + can't...because you were kicked out and banned. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 22c8b52879d1dbbd3a1c07c00d67bec6091d17e6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:45 +0200 Subject: [PATCH 0017/1616] - patchlevel 433 --- 7.4.433 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 7.4.433 diff --git a/7.4.433 b/7.4.433 new file mode 100644 index 00000000..7fdb85a0 --- /dev/null +++ b/7.4.433 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.433 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.433 +Problem: Test 75 fails on MS-Windows. +Solution: Use ":normal" instead of feedkeys(). (Michael Soyka) +Files: src/testdir/test75.in + + +*** ../vim-7.4.432/src/testdir/test75.in 2014-03-12 20:17:47.752982126 +0100 +--- src/testdir/test75.in 2014-09-09 13:48:54.332512799 +0200 +*************** +*** 23,38 **** + Go:" + :" Outside of the range, minimum + :inoremap a +! :call feedkeys("a\u1040\") + :" Inside of the range, minimum + :inoremap b +! :call feedkeys("a\u103f\") + :" Inside of the range, maximum + :inoremap c +! :call feedkeys("a\uf03f\") + :" Outside of the range, maximum + :inoremap d +! :call feedkeys("a\uf040\") + :" + :/^eof/+1,$w! test.out + :qa! +--- 23,38 ---- + Go:" + :" Outside of the range, minimum + :inoremap a +! :execute "normal a\u1040\" + :" Inside of the range, minimum + :inoremap b +! :execute "normal a\u103f\" + :" Inside of the range, maximum + :inoremap c +! :execute "normal a\uf03f\" + :" Outside of the range, maximum + :inoremap d +! :execute "normal a\uf040\" + :" + :/^eof/+1,$w! test.out + :qa! +*** ../vim-7.4.432/src/version.c 2014-09-09 12:25:27.768501863 +0200 +--- src/version.c 2014-09-09 13:49:55.160512932 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 433, + /**/ + +-- +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 5e9e27dd0a3869411b4b3802dae7dfea2e983975 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:46 +0200 Subject: [PATCH 0018/1616] - patchlevel 434 --- 7.4.434 | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 7.4.434 diff --git a/7.4.434 b/7.4.434 new file mode 100644 index 00000000..0a1fbe88 --- /dev/null +++ b/7.4.434 @@ -0,0 +1,139 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.434 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.434 +Problem: gettabvar() is not consistent with getwinvar() and getbufvar(). +Solution: Return a dict with all variables when the varname is empty. + (Yasuhiro Matsumoto) +Files: src/eval.c, runtime/doc/eval.txt, src/testdir/test91.in, + src/testdir/test91.ok + + +*** ../vim-7.4.433/src/eval.c 2014-08-29 15:53:43.706453155 +0200 +--- src/eval.c 2014-09-09 16:03:34.372530448 +0200 +*************** +*** 12071,12077 **** + typval_T *argvars; + typval_T *rettv; + { +! tabpage_T *tp; + dictitem_T *v; + char_u *varname; + int done = FALSE; +--- 12071,12078 ---- + typval_T *argvars; + typval_T *rettv; + { +! win_T *win, *oldcurwin; +! tabpage_T *tp, *oldtabpage; + dictitem_T *v; + char_u *varname; + int done = FALSE; +*************** +*** 12083,12095 **** + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); + if (tp != NULL && varname != NULL) + { + /* look up the variable */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 0, varname, FALSE); + if (v != NULL) + { + copy_tv(&v->di_tv, rettv); + done = TRUE; + } + } + + if (!done && argvars[2].v_type != VAR_UNKNOWN) +--- 12084,12104 ---- + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); + if (tp != NULL && varname != NULL) + { ++ /* Set curwin to be our win, temporarily. Also set the tabpage, ++ * otherwise the window is not valid. */ ++ switch_win(&oldcurwin, &oldtabpage, win, tp, TRUE); ++ + /* look up the variable */ +! /* Let gettabvar({nr}, "") return the "t:" dictionary. */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 't', varname, FALSE); + if (v != NULL) + { + copy_tv(&v->di_tv, rettv); + done = TRUE; + } ++ ++ /* restore previous notion of curwin */ ++ restore_win(oldcurwin, oldtabpage, TRUE); + } + + if (!done && argvars[2].v_type != VAR_UNKNOWN) +*** ../vim-7.4.433/runtime/doc/eval.txt 2014-08-29 15:53:43.714453155 +0200 +--- runtime/doc/eval.txt 2014-09-09 16:00:31.776530049 +0200 +*************** +*** 3535,3540 **** +--- 3576,3583 ---- + Get the value of a tab-local variable {varname} in tab page + {tabnr}. |t:var| + Tabs are numbered starting with one. ++ When {varname} is empty a dictionary with all tab-local ++ variables is returned. + Note that the name without "t:" must be used. + When the tab or variable doesn't exist {def} or an empty + string is returned, there is no error message. +*** ../vim-7.4.433/src/testdir/test91.in 2013-07-24 14:53:47.000000000 +0200 +--- src/testdir/test91.in 2014-09-09 16:08:40.116531116 +0200 +*************** +*** 55,60 **** +--- 55,61 ---- + :tabnew + :tabnew + :let t:var_list = [1, 2, 3] ++ :let t:other = 777 + :let def_list = [4, 5, 6, 7] + :tabrewind + :$put =string(gettabvar(3, 'var_list')) +*** ../vim-7.4.433/src/testdir/test91.ok 2013-07-24 14:52:47.000000000 +0200 +--- src/testdir/test91.ok 2014-09-09 16:09:27.624531220 +0200 +*************** +*** 26,33 **** + 0 + [1, 2, 3] + [1, 2, 3] +! '' +! [4, 5, 6, 7] + [4, 5, 6, 7] + '' + [4, 5, 6, 7] +--- 26,33 ---- + 0 + [1, 2, 3] + [1, 2, 3] +! {'var_list': [1, 2, 3], 'other': 777} +! {'var_list': [1, 2, 3], 'other': 777} + [4, 5, 6, 7] + '' + [4, 5, 6, 7] +*** ../vim-7.4.433/src/version.c 2014-09-09 13:52:55.028513324 +0200 +--- src/version.c 2014-09-09 16:09:17.824531199 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 434, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +108. While reading a magazine, you look for the Zoom icon for a better + look at a photograph. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 7dc77877e3b11f96ddaf90b6fa3900b1fb491214 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:46 +0200 Subject: [PATCH 0019/1616] - patchlevel 435 --- 7.4.435 | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 7.4.435 diff --git a/7.4.435 b/7.4.435 new file mode 100644 index 00000000..32ce2d35 --- /dev/null +++ b/7.4.435 @@ -0,0 +1,63 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.435 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.435 +Problem: Line formatting behaves differently when 'linebreak' is set. + (mvxxc) +Solution: Disable 'linebreak' temporarily. (Christian Brabandt) +Files: src/edit.c + + +*** ../vim-7.4.434/src/edit.c 2014-08-16 18:13:00.082044726 +0200 +--- src/edit.c 2014-09-09 16:21:08.556532751 +0200 +*************** +*** 6131,6136 **** +--- 6131,6142 ---- + int no_leader = FALSE; + int do_comments = (flags & INSCHAR_DO_COM); + #endif ++ #ifdef FEAT_LINEBREAK ++ int has_lbr = curwin->w_p_lbr; ++ ++ /* make sure win_lbr_chartabsize() counts correctly */ ++ curwin->w_p_lbr = FALSE; ++ #endif + + /* + * When 'ai' is off we don't want a space under the cursor to be +*************** +*** 6483,6488 **** +--- 6489,6497 ---- + if (save_char != NUL) /* put back space after cursor */ + pchar_cursor(save_char); + ++ #ifdef FEAT_LINEBREAK ++ curwin->w_p_lbr = has_lbr; ++ #endif + if (!format_only && haveto_redraw) + { + update_topline(); +*** ../vim-7.4.434/src/version.c 2014-09-09 16:13:05.040531695 +0200 +--- src/version.c 2014-09-09 16:19:57.272532595 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 435, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +109. You actually read -- and enjoy -- lists like this. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 71a97bc16e4ed58d89a32dd52031466d51984105 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:47 +0200 Subject: [PATCH 0020/1616] - patchlevel 436 --- 7.4.436 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.436 diff --git a/7.4.436 b/7.4.436 new file mode 100644 index 00000000..53b3207e --- /dev/null +++ b/7.4.436 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.436 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.436 +Problem: ml_get error for autocommand that moves the cursor of the current + window. +Solution: Check the cursor position after switching back to the current + buffer. (Christian Brabandt) +Files: src/fileio.c + + +*** ../vim-7.4.435/src/fileio.c 2014-08-22 23:05:50.106606614 +0200 +--- src/fileio.c 2014-09-09 16:46:29.224536073 +0200 +*************** +*** 9009,9014 **** +--- 9009,9017 ---- + + curwin = aco->save_curwin; + curbuf = curwin->w_buffer; ++ /* In case the autocommand move the cursor to a position that that ++ * not exist in curbuf. */ ++ check_cursor(); + } + } + } +*** ../vim-7.4.435/src/version.c 2014-09-09 16:32:35.828534252 +0200 +--- src/version.c 2014-09-09 16:48:14.796536303 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 436, + /**/ + +-- +In a world without walls and borders, who needs windows and gates? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 33e2356fef1540743a4b62d1fb38054b9e84bea8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:48 +0200 Subject: [PATCH 0021/1616] - patchlevel 437 --- 7.4.437 | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 7.4.437 diff --git a/7.4.437 b/7.4.437 new file mode 100644 index 00000000..203b152c --- /dev/null +++ b/7.4.437 @@ -0,0 +1,116 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.437 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.437 +Problem: New and old regexp engine are not consistent. +Solution: Also give an error for "\ze*" for the old regexp engine. +Files: src/regexp.c, src/regexp_nfa.c + + +*** ../vim-7.4.436/src/regexp.c 2014-07-09 19:32:30.935678834 +0200 +--- src/regexp.c 2014-09-09 17:11:32.444539356 +0200 +*************** +*** 358,363 **** +--- 358,365 ---- + static char_u *regprop __ARGS((char_u *)); + #endif + ++ static int re_mult_next __ARGS((char *what)); ++ + static char_u e_missingbracket[] = N_("E769: Missing ] after %s["); + static char_u e_unmatchedpp[] = N_("E53: Unmatched %s%%("); + static char_u e_unmatchedp[] = N_("E54: Unmatched %s("); +*************** +*** 2166,2174 **** +--- 2168,2180 ---- + #endif + + case 's': ret = regnode(MOPEN + 0); ++ if (re_mult_next("\\zs") == FAIL) ++ return NULL; + break; + + case 'e': ret = regnode(MCLOSE + 0); ++ if (re_mult_next("\\ze") == FAIL) ++ return NULL; + break; + + default: EMSG_RET_NULL(_("E68: Invalid character after \\z")); +*************** +*** 7005,7010 **** +--- 7011,7028 ---- + } + #endif /* DEBUG */ + ++ /* ++ * Used in a place where no * or \+ can follow. ++ */ ++ static int ++ re_mult_next(what) ++ char *what; ++ { ++ if (re_multi_type(peekchr()) == MULTI_MULT) ++ EMSG2_RET_FAIL(_("E888: (NFA regexp) cannot repeat %s"), what); ++ return OK; ++ } ++ + #ifdef FEAT_MBYTE + static void mb_decompose __ARGS((int c, int *c1, int *c2, int *c3)); + +*** ../vim-7.4.436/src/regexp_nfa.c 2014-08-29 11:56:21.350422045 +0200 +--- src/regexp_nfa.c 2014-09-09 17:10:17.572539193 +0200 +*************** +*** 291,297 **** + static int nfa_regconcat __ARGS((void)); + static int nfa_regbranch __ARGS((void)); + static int nfa_reg __ARGS((int paren)); +- static int re_mult_next __ARGS((char *what)); + #ifdef DEBUG + static void nfa_set_code __ARGS((int c)); + static void nfa_postfix_dump __ARGS((char_u *expr, int retval)); +--- 291,296 ---- +*************** +*** 2281,2298 **** + return OK; + } + +- /* +- * Used in a place where no * or \+ can follow. +- */ +- static int +- re_mult_next(what) +- char *what; +- { +- if (re_multi_type(peekchr()) == MULTI_MULT) +- EMSG2_RET_FAIL(_("E888: (NFA regexp) cannot repeat %s"), what); +- return OK; +- } +- + #ifdef DEBUG + static char_u code[50]; + +--- 2280,2285 ---- +*** ../vim-7.4.436/src/version.c 2014-09-09 16:59:34.792537789 +0200 +--- src/version.c 2014-09-09 17:12:34.352539491 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 437, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +110. You actually volunteer to become your employer's webmaster. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From d525c1a5641c48527ba53d4a07b5193bf503c4bf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:48 +0200 Subject: [PATCH 0022/1616] - patchlevel 438 --- 7.4.438 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.438 diff --git a/7.4.438 b/7.4.438 new file mode 100644 index 00000000..7804f6dc --- /dev/null +++ b/7.4.438 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.438 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.438 +Problem: Cached values for 'cino' not reset for ":set all&". +Solution: Call parse_cino(). (Yukihiro Nakadaira) +Files: src/option.c + + +*** ../vim-7.4.437/src/option.c 2014-08-24 21:39:45.488526954 +0200 +--- src/option.c 2014-09-09 17:29:43.216541739 +0200 +*************** +*** 3645,3650 **** +--- 3645,3653 ---- + #else + win_comp_scroll(curwin); + #endif ++ #ifdef FEAT_CINDENT ++ parse_cino(curbuf); ++ #endif + } + + /* +*** ../vim-7.4.437/src/version.c 2014-09-09 17:18:44.008540299 +0200 +--- src/version.c 2014-09-09 17:32:16.108542073 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 438, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +112. You are amazed that anyone uses a phone without a modem on it...let + alone hear actual voices. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 08c42ac0b5d9043fdbee99933d97e102fe123ad1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:49 +0200 Subject: [PATCH 0023/1616] - patchlevel 439 --- 7.4.439 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.439 diff --git a/7.4.439 b/7.4.439 new file mode 100644 index 00000000..7d9ed9d1 --- /dev/null +++ b/7.4.439 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.439 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.439 +Problem: Duplicate message in message history. Some quickfix messages + appear twice. (Gary Johnson) +Solution: Do not reset keep_msg too early. (Hirohito Higashi) +Files: src/main.c + + +*** ../vim-7.4.438/src/main.c 2014-09-09 12:25:27.764501863 +0200 +--- src/main.c 2014-09-09 17:37:56.612542817 +0200 +*************** +*** 1249,1257 **** + char_u *p; + + /* msg_attr_keep() will set keep_msg to NULL, must free the +! * string here. */ + p = keep_msg; +- keep_msg = NULL; + msg_attr(p, keep_msg_attr); + vim_free(p); + } +--- 1249,1257 ---- + char_u *p; + + /* msg_attr_keep() will set keep_msg to NULL, must free the +! * string here. Don't reset keep_msg, msg_attr_keep() uses it +! * to check for duplicates. */ + p = keep_msg; + msg_attr(p, keep_msg_attr); + vim_free(p); + } +*** ../vim-7.4.438/src/version.c 2014-09-09 17:33:02.704542175 +0200 +--- src/version.c 2014-09-09 17:41:11.984543243 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 439, + /**/ + +-- +Corduroy pillows: They're making headlines! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 0a2e5241d96368c2bd5f6e27d4cf244274b62ffa Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:50 +0200 Subject: [PATCH 0024/1616] - patchlevel 440 --- 7.4.440 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.4.440 diff --git a/7.4.440 b/7.4.440 new file mode 100644 index 00000000..24ee043a --- /dev/null +++ b/7.4.440 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.440 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.440 +Problem: Omni complete popup drawn incorrectly. +Solution: Call validate_cursor() instead of check_cursor(). (Hirohito + Higashi) +Files: src/edit.c + + +*** ../vim-7.4.439/src/edit.c 2014-09-09 16:32:35.828534252 +0200 +--- src/edit.c 2014-09-09 17:59:17.824545615 +0200 +*************** +*** 4035,4041 **** + goto theend; + } + curwin->w_cursor = pos; /* restore the cursor position */ +! check_cursor(); + if (!equalpos(curwin->w_cursor, pos)) + { + EMSG(_(e_compldel)); +--- 4035,4041 ---- + goto theend; + } + curwin->w_cursor = pos; /* restore the cursor position */ +! validate_cursor(); + if (!equalpos(curwin->w_cursor, pos)) + { + EMSG(_(e_compldel)); +*************** +*** 5273,5279 **** + return FAIL; + } + curwin->w_cursor = pos; /* restore the cursor position */ +! check_cursor(); + if (!equalpos(curwin->w_cursor, pos)) + { + EMSG(_(e_compldel)); +--- 5273,5279 ---- + return FAIL; + } + curwin->w_cursor = pos; /* restore the cursor position */ +! validate_cursor(); + if (!equalpos(curwin->w_cursor, pos)) + { + EMSG(_(e_compldel)); +*** ../vim-7.4.439/src/version.c 2014-09-09 17:47:34.584544079 +0200 +--- src/version.c 2014-09-09 17:57:33.232545387 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 440, + /**/ + +-- +Nobody will ever need more than 640 kB RAM. + -- Bill Gates, 1983 +Windows 98 requires 16 MB RAM. + -- Bill Gates, 1999 +Logical conclusion: Nobody will ever need Windows 98. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From b006eac056f18b2d0105953d4ad1537e853729de Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:50 +0200 Subject: [PATCH 0025/1616] - patchlevel 441 --- 7.4.441 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.4.441 diff --git a/7.4.441 b/7.4.441 new file mode 100644 index 00000000..83647c83 --- /dev/null +++ b/7.4.441 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.441 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.441 +Problem: Endless loop and other problems when 'cedit' is set to CTRL-C. +Solution: Do not call ex_window() when ex_normal_busy or got_int was set. + (Yasuhiro Matsumoto) +Files: src/ex_getln.c + + +*** ../vim-7.4.440/src/ex_getln.c 2014-08-17 17:24:03.967017727 +0200 +--- src/ex_getln.c 2014-09-09 18:41:19.304551123 +0200 +*************** +*** 759,769 **** + #ifdef FEAT_CMDWIN + if (c == cedit_key || c == K_CMDWIN) + { +! /* +! * Open a window to edit the command line (and history). +! */ +! c = ex_window(); +! some_key_typed = TRUE; + } + # ifdef FEAT_DIGRAPHS + else +--- 759,772 ---- + #ifdef FEAT_CMDWIN + if (c == cedit_key || c == K_CMDWIN) + { +! if (ex_normal_busy == 0 && got_int == FALSE) +! { +! /* +! * Open a window to edit the command line (and history). +! */ +! c = ex_window(); +! some_key_typed = TRUE; +! } + } + # ifdef FEAT_DIGRAPHS + else +*** ../vim-7.4.440/src/version.c 2014-09-09 18:29:24.328549561 +0200 +--- src/version.c 2014-09-09 18:40:16.680550986 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 441, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +114. You are counting items, you go "0,1,2,3,4,5,6,7,8,9,A,B,C,D...". + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 444314fc00b65f4b6541c008e99b2d85d9dc36b0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:51 +0200 Subject: [PATCH 0026/1616] - patchlevel 442 --- 7.4.442 | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 7.4.442 diff --git a/7.4.442 b/7.4.442 new file mode 100644 index 00000000..0a188497 --- /dev/null +++ b/7.4.442 @@ -0,0 +1,72 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.442 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.442 (after 7.4.434) +Problem: Using unitinialized variable. +Solution: Pass the first window of the tabpage. +Files: src/eval.c + + +*** ../vim-7.4.441/src/eval.c 2014-09-09 16:13:05.040531695 +0200 +--- src/eval.c 2014-09-09 22:52:50.916584088 +0200 +*************** +*** 12071,12077 **** + typval_T *argvars; + typval_T *rettv; + { +! win_T *win, *oldcurwin; + tabpage_T *tp, *oldtabpage; + dictitem_T *v; + char_u *varname; +--- 12071,12077 ---- + typval_T *argvars; + typval_T *rettv; + { +! win_T *oldcurwin; + tabpage_T *tp, *oldtabpage; + dictitem_T *v; + char_u *varname; +*************** +*** 12084,12092 **** + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); + if (tp != NULL && varname != NULL) + { +! /* Set curwin to be our win, temporarily. Also set the tabpage, +! * otherwise the window is not valid. */ +! switch_win(&oldcurwin, &oldtabpage, win, tp, TRUE); + + /* look up the variable */ + /* Let gettabvar({nr}, "") return the "t:" dictionary. */ +--- 12084,12092 ---- + tp = find_tabpage((int)get_tv_number_chk(&argvars[0], NULL)); + if (tp != NULL && varname != NULL) + { +! /* Set tp to be our tabpage, temporarily. Also set the window to the +! * first window in the tabpage, otherwise the window is not valid. */ +! switch_win(&oldcurwin, &oldtabpage, tp->tp_firstwin, tp, TRUE); + + /* look up the variable */ + /* Let gettabvar({nr}, "") return the "t:" dictionary. */ +*** ../vim-7.4.441/src/version.c 2014-09-09 18:45:45.888551705 +0200 +--- src/version.c 2014-09-09 23:10:27.544586396 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 442, + /**/ + +-- +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 /// From f913b95dd6007fa587fedb824cefb2736aa2e8f1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 10 Sep 2014 01:04:52 +0200 Subject: [PATCH 0027/1616] - patchlevel 442 --- README.patches | 27 +++++++++++++++++++++++- vim.spec | 57 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 81 insertions(+), 3 deletions(-) diff --git a/README.patches b/README.patches index 8fdf262b..0f28888a 100644 --- a/README.patches +++ b/README.patches @@ -422,7 +422,7 @@ Individual patches for Vim 7.4: 8881 7.4.396 when 'clipboard' is "unnamed", :g/pat/d is very slow 5060 7.4.397 matchparen only uses the topmost syntax item 1533 7.4.398 (after 7.4.393) gcc error for argument of InterlockedIncrement -136105 7.4.399 crypt implementation is messy; blowfish crypt has a weakness +136047 7.4.399 crypt implementation is messy; blowfish crypt has a weakness 1848 7.4.400 list of distributed files is incomplete 8581 7.4.401 (after 7.4.399) new files missing in Makefiles 2992 7.4.402 test 72 crashes under certain conditions @@ -441,3 +441,28 @@ Individual patches for Vim 7.4: 2015 7.4.415 (after 7.4.414) cannot build, warning for shadowed variable 2977 7.4.416 problem with breakindent/showbreak and tabs 4376 7.4.417 minimum width used for breakindent is not set after split + 1727 7.4.418 when leaving ":append" the cursor shape is like in Insert mode + 3294 7.4.419 when part of a list is locked it's possible to make changes + 2044 7.4.420 it's not obvious how to add a new test + 3521 7.4.421 crash when searching for "\ze*" + 3205 7.4.422 with conceal + linebreak some text is not displayed correctly + 3565 7.4.423 expand("$shell") does not work as documented + 1793 7.4.424 ml_get error when using Python to delete lines in a buffer + 2453 7.4.425 when 'showbreak' is used "gj" may move to the wrong position + 1333 7.4.426 README File missing from list of files + 3287 7.4.427 system() typeahead may be echoed and mess up the display + 2926 7.4.428 executable() may return a wrong result on MS-Windows + 1384 7.4.429 build fails with fewer features + 1634 7.4.430 test_listlbr fails when compiled with normal features + 1599 7.4.431 compiler warning + 3119 7.4.432 MS-Windows: setting 'encoding' does not convert arguments + 2110 7.4.433 test 75 fails on MS-Windows + 4131 7.4.434 gettabvar() is not consistent with getwinvar() and getbufvar() + 1863 7.4.435 line formatting behaves differently when 'linebreak' is set + 1470 7.4.436 ml_get error for autocommand that moves the cursor + 3229 7.4.437 new and old regexp engine are not consistent + 1372 7.4.438 cached values for 'cino' not reset for ":set all&" + 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 diff --git a/vim.spec b/vim.spec index 10053f20..0719dd40 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 417 +%define patchlevel 442 %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 @@ -464,6 +464,31 @@ Patch414: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.414 Patch415: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.415 Patch416: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.416 Patch417: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.417 +Patch418: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.418 +Patch419: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.419 +Patch420: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.420 +Patch421: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.421 +Patch422: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.422 +Patch423: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.423 +Patch424: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.424 +Patch425: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.425 +Patch426: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.426 +Patch427: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.427 +Patch428: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.428 +Patch429: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.429 +Patch430: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.430 +Patch431: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.431 +Patch432: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.432 +Patch433: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.433 +Patch434: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.434 +Patch435: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.435 +Patch436: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.436 +Patch437: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.437 +Patch438: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.438 +Patch439: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.439 +Patch440: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.440 +Patch441: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.441 +Patch442: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.442 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1027,6 +1052,31 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch415 -p0 %patch416 -p0 %patch417 -p0 +%patch418 -p0 +%patch419 -p0 +%patch420 -p0 +%patch421 -p0 +%patch422 -p0 +%patch423 -p0 +%patch424 -p0 +%patch425 -p0 +%patch426 -p0 +%patch427 -p0 +%patch428 -p0 +%patch429 -p0 +%patch430 -p0 +%patch431 -p0 +%patch432 -p0 +%patch433 -p0 +%patch434 -p0 +%patch435 -p0 +%patch436 -p0 +%patch437 -p0 +%patch438 -p0 +%patch439 -p0 +%patch440 -p0 +%patch441 -p0 +%patch442 -p0 # install spell files %if %{withvimspell} @@ -1543,6 +1593,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 10 2014 Karsten Hopp 7.4.442-1 +- patchlevel 442 + * Tue Aug 26 2014 Jitka Plesnikova - 2:7.4.417-2 - Perl 5.20 rebuild From c8cca7ffc4fb9365e2d3800f2625672f33b80df8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Sep 2014 14:06:23 +0200 Subject: [PATCH 0028/1616] - patchlevel 443 --- 7.4.443 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.443 diff --git a/7.4.443 b/7.4.443 new file mode 100644 index 00000000..f9e71110 --- /dev/null +++ b/7.4.443 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.443 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.443 +Problem: Error reported by ubsan when running test 72. +Solution: Add type cast to unsigned. (Dominique Pelle) +Files: src/undo.c + + + +*** ../vim-7.4.442/src/undo.c 2014-08-13 22:05:49.032892299 +0200 +--- src/undo.c 2014-09-11 22:19:35.936957186 +0200 +*************** +*** 1019,1025 **** + int n; + + undo_read(bi, buf, (size_t)4); +! n = (buf[0] << 24) + (buf[1] << 16) + (buf[2] << 8) + buf[3]; + return n; + } + #endif +--- 1019,1025 ---- + int n; + + undo_read(bi, buf, (size_t)4); +! n = ((unsigned)buf[0] << 24) + (buf[1] << 16) + (buf[2] << 8) + buf[3]; + return n; + } + #endif +*** ../vim-7.4.442/src/version.c 2014-09-09 23:11:46.368586569 +0200 +--- src/version.c 2014-09-11 22:20:31.740957308 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 443, + /**/ + +-- +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 90b2dee695523e33a8e36b8a75f70b54de5a2510 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 15 Sep 2014 14:06:24 +0200 Subject: [PATCH 0029/1616] - patchlevel 443 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 0f28888a..c08f76d1 100644 --- a/README.patches +++ b/README.patches @@ -466,3 +466,4 @@ Individual patches for Vim 7.4: 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 + 1539 7.4.443 error reported by ubsan when running test 72 diff --git a/vim.spec b/vim.spec index 0719dd40..5a7de31c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 442 +%define patchlevel 443 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -489,6 +489,7 @@ Patch439: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.439 Patch440: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.440 Patch441: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.441 Patch442: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.442 +Patch443: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.443 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1077,6 +1078,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch440 -p0 %patch441 -p0 %patch442 -p0 +%patch443 -p0 # install spell files %if %{withvimspell} @@ -1593,6 +1595,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Sep 15 2014 Karsten Hopp 7.4.443-1 +- patchlevel 443 + * Wed Sep 10 2014 Karsten Hopp 7.4.442-1 - patchlevel 442 From 59af4a6304a74f3a01ae63dd62bfcfbf5f8b66e9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 16 Sep 2014 06:40:05 +0200 Subject: [PATCH 0030/1616] - patchlevel 444 --- 7.4.444 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.444 diff --git a/7.4.444 b/7.4.444 new file mode 100644 index 00000000..b089a009 --- /dev/null +++ b/7.4.444 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.444 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.444 +Problem: Reversed question mark not recognized as punctuation. (Issue 258) +Solution: Add the Supplemental Punctuation range. +Files: src/mbyte.c + + +*** ../vim-7.4.443/src/mbyte.c 2014-03-12 14:54:29.920684895 +0100 +--- src/mbyte.c 2014-09-15 14:24:06.389649777 +0200 +*************** +*** 2537,2542 **** +--- 2537,2543 ---- + {0x2900, 0x2998, 1}, /* arrows, brackets, etc. */ + {0x29d8, 0x29db, 1}, + {0x29fc, 0x29fd, 1}, ++ {0x2e00, 0x2e7f, 1}, /* supplemental punctuation */ + {0x3000, 0x3000, 0}, /* ideographic space */ + {0x3001, 0x3020, 1}, /* ideographic punctuation */ + {0x3030, 0x3030, 1}, +*** ../vim-7.4.443/src/version.c 2014-09-11 22:49:42.212961131 +0200 +--- src/version.c 2014-09-15 14:25:14.761649927 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 444, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +136. You decide to stay in a low-paying job teaching just for the + free Internet access. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From ef3f3685098b4d979842c52cfd863d3a2223a2d1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 16 Sep 2014 06:40:06 +0200 Subject: [PATCH 0031/1616] - patchlevel 444 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index c08f76d1..a0698c39 100644 --- a/README.patches +++ b/README.patches @@ -467,3 +467,4 @@ Individual patches for Vim 7.4: 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 1539 7.4.443 error reported by ubsan when running test 72 + 1544 7.4.444 reversed question mark not recognized as punctuation diff --git a/vim.spec b/vim.spec index 5a7de31c..ce4e8788 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 443 +%define patchlevel 444 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -490,6 +490,7 @@ Patch440: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.440 Patch441: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.441 Patch442: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.442 Patch443: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.443 +Patch444: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.444 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1079,6 +1080,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch441 -p0 %patch442 -p0 %patch443 -p0 +%patch444 -p0 # install spell files %if %{withvimspell} @@ -1595,6 +1597,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Sep 16 2014 Karsten Hopp 7.4.444-1 +- patchlevel 444 + * Mon Sep 15 2014 Karsten Hopp 7.4.443-1 - patchlevel 443 From 441cf1705679d0a3960116da5fda42277e0910ce Mon Sep 17 00:00:00 2001 From: root Date: Thu, 18 Sep 2014 12:12:30 +0200 Subject: [PATCH 0032/1616] fix symbolic link --- vim-update.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim-update.sh b/vim-update.sh index 9d87b8fe..5f816ef0 100755 --- a/vim-update.sh +++ b/vim-update.sh @@ -52,7 +52,7 @@ $debug git push if [ $? -eq 0 ]; then $debug rm -f $HOME/.koji/config $debug fedpkg build - $debug ln -sf $HOME/.koji/s390-config config + $debug ln -sf ppc-config $HOME/.koji/config else echo "GIT push failed" fi From e8f0ead512b68fe92db6f5ce05afc5494d781ac6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:04 +0200 Subject: [PATCH 0033/1616] - patchlevel 445 --- 7.4.445 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 7.4.445 diff --git a/7.4.445 b/7.4.445 new file mode 100644 index 00000000..35ee45f8 --- /dev/null +++ b/7.4.445 @@ -0,0 +1,92 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.445 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.445 +Problem: Clipboard may be cleared on startup. +Solution: Set clip_did_set_selection to -1 during startup. (Christian + Brabandt) +Files: src/main.c, src/ui.c + + +*** ../vim-7.4.444/src/main.c 2014-09-09 17:47:34.584544079 +0200 +--- src/main.c 2014-09-19 13:38:29.802398710 +0200 +*************** +*** 958,965 **** +--- 958,974 ---- + if (p_im) + need_start_insertmode = TRUE; + ++ #ifdef FEAT_CLIPBOARD ++ if (clip_unnamed) ++ /* do not overwrite system clipboard while starting up */ ++ clip_did_set_selection = -1; ++ #endif + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_VIMENTER, NULL, NULL, FALSE, curbuf); ++ # ifdef FEAT_CLIPBOARD ++ if (clip_did_set_selection < 0) ++ clip_did_set_selection = TRUE; ++ # endif + TIME_MSG("VimEnter autocommands"); + #endif + +*** ../vim-7.4.444/src/ui.c 2014-08-06 18:17:03.475147780 +0200 +--- src/ui.c 2014-09-19 13:39:48.442398882 +0200 +*************** +*** 571,577 **** + { + clip_unnamed_saved = clip_unnamed; + +! if (clip_did_set_selection) + { + clip_unnamed = FALSE; + clip_did_set_selection = FALSE; +--- 571,577 ---- + { + clip_unnamed_saved = clip_unnamed; + +! if (clip_did_set_selection > 0) + { + clip_unnamed = FALSE; + clip_did_set_selection = FALSE; +*************** +*** 584,590 **** + void + end_global_changes() + { +! if (!clip_did_set_selection) + { + clip_did_set_selection = TRUE; + clip_unnamed = clip_unnamed_saved; +--- 584,590 ---- + void + end_global_changes() + { +! if (clip_did_set_selection == FALSE) /* not when -1 */ + { + clip_did_set_selection = TRUE; + clip_unnamed = clip_unnamed_saved; +*** ../vim-7.4.444/src/version.c 2014-09-15 14:25:51.309650006 +0200 +--- src/version.c 2014-09-19 13:35:30.618398318 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 445, + /**/ + +-- +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 /// From 4d9e12f2ef27b59d33fdd466917fe9856910d5f3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:05 +0200 Subject: [PATCH 0034/1616] - patchlevel 446 --- 7.4.446 | 265 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 7.4.446 diff --git a/7.4.446 b/7.4.446 new file mode 100644 index 00000000..e180a72b --- /dev/null +++ b/7.4.446 @@ -0,0 +1,265 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.446 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.446 +Problem: In some situations, when setting up an environment to trigger an + autocommand, the environment is not properly restored. +Solution: Check the return value of switch_win() and call restore_win() + always. (Daniel Hahler) +Files: src/eval.c, src/misc2.c, src/window.c + + +*** ../vim-7.4.445/src/eval.c 2014-09-09 23:11:46.368586569 +0200 +--- src/eval.c 2014-09-19 14:09:27.238402767 +0200 +*************** +*** 12086,12100 **** + { + /* Set tp to be our tabpage, temporarily. Also set the window to the + * first window in the tabpage, otherwise the window is not valid. */ +! switch_win(&oldcurwin, &oldtabpage, tp->tp_firstwin, tp, TRUE); +! +! /* look up the variable */ +! /* Let gettabvar({nr}, "") return the "t:" dictionary. */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 't', varname, FALSE); +! if (v != NULL) + { +! copy_tv(&v->di_tv, rettv); +! done = TRUE; + } + + /* restore previous notion of curwin */ +--- 12086,12102 ---- + { + /* 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 */ +! /* Let gettabvar({nr}, "") return the "t:" dictionary. */ +! v = find_var_in_ht(&tp->tp_vars->dv_hashtab, 't', varname, FALSE); +! if (v != NULL) +! { +! copy_tv(&v->di_tv, rettv); +! done = TRUE; +! } + } + + /* restore previous notion of curwin */ +*************** +*** 12233,12254 **** + { + /* Set curwin to be our win, temporarily. Also set the tabpage, + * otherwise the window is not valid. */ +! switch_win(&oldcurwin, &oldtabpage, win, tp, TRUE); +! +! if (*varname == '&') /* window-local-option */ +! { +! if (get_option_tv(&varname, rettv, 1) == OK) +! done = TRUE; +! } +! else + { +! /* Look up the variable. */ +! /* Let getwinvar({nr}, "") return the "w:" dictionary. */ +! v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', varname, FALSE); +! if (v != NULL) + { +! copy_tv(&v->di_tv, rettv); +! done = TRUE; + } + } + +--- 12235,12258 ---- + { + /* 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 */ + { +! if (get_option_tv(&varname, rettv, 1) == OK) +! done = TRUE; +! } +! else +! { +! /* Look up the variable. */ +! /* Let getwinvar({nr}, "") return the "w:" dictionary. */ +! v = find_var_in_ht(&win->w_vars->dv_hashtab, 'w', +! varname, FALSE); +! if (v != NULL) +! { +! copy_tv(&v->di_tv, rettv); +! done = TRUE; +! } + } + } + +*************** +*** 17252,17285 **** + if (win != NULL && varname != NULL && varp != NULL) + { + #ifdef FEAT_WINDOWS +! if (switch_win(&save_curwin, &save_curtab, win, tp, TRUE) == FAIL) +! return; + #endif +- +- if (*varname == '&') + { +! long numval; +! char_u *strval; +! int error = FALSE; + +! ++varname; +! numval = get_tv_number_chk(varp, &error); +! strval = get_tv_string_buf_chk(varp, nbuf); +! if (!error && strval != NULL) +! set_option_value(varname, numval, strval, OPT_LOCAL); +! } +! else +! { +! winvarname = alloc((unsigned)STRLEN(varname) + 3); +! if (winvarname != NULL) + { +! STRCPY(winvarname, "w:"); +! STRCPY(winvarname + 2, varname); +! set_var(winvarname, varp, TRUE); +! vim_free(winvarname); + } + } +- + #ifdef FEAT_WINDOWS + restore_win(save_curwin, save_curtab, TRUE); + #endif +--- 17256,17288 ---- + if (win != NULL && varname != NULL && varp != NULL) + { + #ifdef FEAT_WINDOWS +! if (switch_win(&save_curwin, &save_curtab, win, tp, TRUE) == OK) + #endif + { +! if (*varname == '&') +! { +! long numval; +! char_u *strval; +! int error = FALSE; + +! ++varname; +! numval = get_tv_number_chk(varp, &error); +! strval = get_tv_string_buf_chk(varp, nbuf); +! if (!error && strval != NULL) +! set_option_value(varname, numval, strval, OPT_LOCAL); +! } +! else + { +! winvarname = alloc((unsigned)STRLEN(varname) + 3); +! if (winvarname != NULL) +! { +! STRCPY(winvarname, "w:"); +! STRCPY(winvarname + 2, varname); +! set_var(winvarname, varp, TRUE); +! vim_free(winvarname); +! } + } + } + #ifdef FEAT_WINDOWS + restore_win(save_curwin, save_curtab, TRUE); + #endif +*** ../vim-7.4.445/src/misc2.c 2014-08-10 13:34:59.060785459 +0200 +--- src/misc2.c 2014-09-19 14:03:24.314401974 +0200 +*************** +*** 1040,1046 **** + entered = TRUE; + + # ifdef FEAT_AUTOCMD +! block_autocmds(); /* don't want to trigger autocommands here */ + # endif + + # ifdef FEAT_WINDOWS +--- 1040,1047 ---- + entered = TRUE; + + # ifdef FEAT_AUTOCMD +! /* Don't want to trigger autocommands from here on. */ +! block_autocmds(); + # endif + + # ifdef FEAT_WINDOWS +*** ../vim-7.4.445/src/window.c 2014-07-30 14:04:49.131603494 +0200 +--- src/window.c 2014-09-19 14:06:52.538402429 +0200 +*************** +*** 1271,1277 **** + } + + /* +! * Initialize window "newp" from window"old". + * Only the essential things are copied. + */ + static void +--- 1271,1277 ---- + } + + /* +! * Initialize window "newp" from window "old". + * Only the essential things are copied. + */ + static void +*************** +*** 6662,6669 **** + || defined(PROTO) + /* + * Set "win" to be the curwin and "tp" to be the current tab page. +! * restore_win() MUST be called to undo. +! * No autocommands will be executed. + * When "no_display" is TRUE the display won't be affected, no redraw is + * triggered, another tabpage access is limited. + * Returns FAIL if switching to "win" failed. +--- 6662,6669 ---- + || defined(PROTO) + /* + * Set "win" to be the curwin and "tp" to be the current tab page. +! * restore_win() MUST be called to undo, also when FAIL is returned. +! * No autocommands will be executed until restore_win() is called. + * When "no_display" is TRUE the display won't be affected, no redraw is + * triggered, another tabpage access is limited. + * Returns FAIL if switching to "win" failed. +*************** +*** 6696,6707 **** + goto_tabpage_tp(tp, FALSE, FALSE); + } + if (!win_valid(win)) +- { +- # ifdef FEAT_AUTOCMD +- unblock_autocmds(); +- # endif + return FAIL; +- } + curwin = win; + curbuf = curwin->w_buffer; + # endif +--- 6696,6702 ---- +*** ../vim-7.4.445/src/version.c 2014-09-19 13:46:49.550399801 +0200 +--- src/version.c 2014-09-19 14:25:34.674404880 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 446, + /**/ + +-- +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 /// From e4af8770320cdf710e19cbdb52c41a43340d348e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:06 +0200 Subject: [PATCH 0035/1616] - patchlevel 447 --- 7.4.447 | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 7.4.447 diff --git a/7.4.447 b/7.4.447 new file mode 100644 index 00000000..0a14393c --- /dev/null +++ b/7.4.447 @@ -0,0 +1,113 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.447 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.447 +Problem: Spell files from Hunspell may generate a lot of errors. +Solution: Add the IGNOREEXTRA flag. +Files: src/spell.c, runtime/doc/spell.txt + + +*** ../vim-7.4.446/src/spell.c 2014-05-13 14:03:36.425611242 +0200 +--- src/spell.c 2014-09-19 15:24:19.582412580 +0200 +*************** +*** 4841,4846 **** +--- 4841,4847 ---- + unsigned af_nosuggest; /* NOSUGGEST ID */ + int af_pfxpostpone; /* postpone prefixes without chop string and + without flags */ ++ int af_ignoreextra; /* IGNOREEXTRA present */ + hashtab_T af_pref; /* hashtable for prefixes, affheader_T */ + hashtab_T af_suff; /* hashtable for suffixes, affheader_T */ + hashtab_T af_comp; /* hashtable for compound flags, compitem_T */ +*************** +*** 5605,5610 **** +--- 5606,5615 ---- + { + aff->af_pfxpostpone = TRUE; + } ++ else if (is_aff_rule(items, itemcnt, "IGNOREEXTRA", 1)) ++ { ++ aff->af_ignoreextra = TRUE; ++ } + else if ((STRCMP(items[0], "PFX") == 0 + || STRCMP(items[0], "SFX") == 0) + && aff_todo == 0 +*************** +*** 5712,5720 **** + int lasti = 5; + + /* Myspell allows extra text after the item, but that might +! * mean mistakes go unnoticed. Require a comment-starter. +! * Hunspell uses a "-" item. */ +! if (itemcnt > lasti && *items[lasti] != '#' + && (STRCMP(items[lasti], "-") != 0 + || itemcnt != lasti + 1)) + smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]); +--- 5717,5727 ---- + int lasti = 5; + + /* Myspell allows extra text after the item, but that might +! * mean mistakes go unnoticed. Require a comment-starter, +! * unless IGNOREEXTRA is used. Hunspell uses a "-" item. */ +! if (itemcnt > lasti +! && !aff->af_ignoreextra +! && *items[lasti] != '#' + && (STRCMP(items[lasti], "-") != 0 + || itemcnt != lasti + 1)) + smsg((char_u *)_(e_afftrailing), fname, lnum, items[lasti]); +*** ../vim-7.4.446/runtime/doc/spell.txt 2013-11-12 04:43:57.000000000 +0100 +--- runtime/doc/spell.txt 2014-09-19 15:18:00.318411751 +0200 +*************** +*** 1057,1062 **** +--- 1058,1066 ---- + SFX F 0 in [^i]n # Spion > Spionin ~ + SFX F 0 nen in # Bauerin > Bauerinnen ~ + ++ However, to avoid lots of errors in affix files written for Myspell, you can ++ add the IGNOREEXTRA flag. ++ + Apparently Myspell allows an affix name to appear more than once. Since this + might also be a mistake, Vim checks for an extra "S". The affix files for + Myspell that use this feature apparently have this flag. Example: +*************** +*** 1110,1115 **** +--- 1114,1127 ---- + - CIRCUMFIX, as explained just below. + + ++ IGNOREEXTRA *spell-IGNOREEXTRA* ++ ++ Normally Vim gives an error for an extra field that does not start with '#'. ++ This avoids errors going unnoticed. However, some files created for Myspell ++ or Hunspell may contain many entries with an extra field. Use the IGNOREEXTRA ++ flag to avoid lots of errors. ++ ++ + CIRCUMFIX *spell-CIRCUMFIX* + + The CIRCUMFIX flag means a prefix and suffix must be added at the same time. +*** ../vim-7.4.446/src/version.c 2014-09-19 14:26:29.658405000 +0200 +--- src/version.c 2014-09-19 15:18:41.774411842 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 447, + /**/ + +-- +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 /// From 97928398005a8793ad1f346634610af76c80327e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:07 +0200 Subject: [PATCH 0036/1616] - patchlevel 448 --- 7.4.448 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.4.448 diff --git a/7.4.448 b/7.4.448 new file mode 100644 index 00000000..5a5dd093 --- /dev/null +++ b/7.4.448 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.448 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.448 +Problem: Using ETO_IGNORELANGUAGE causes problems. +Solution: Remove this flag. (Paul Moore) +Files: src/gui_w32.c + + +*** ../vim-7.4.447/src/gui_w32.c 2014-08-06 16:49:51.199185387 +0200 +--- src/gui_w32.c 2014-09-19 16:12:40.266418916 +0200 +*************** +*** 535,544 **** + # define pImmSetConversionStatus ImmSetConversionStatus + #endif + +- #ifndef ETO_IGNORELANGUAGE +- # define ETO_IGNORELANGUAGE 0x1000 +- #endif +- + /* multi monitor support */ + typedef struct _MONITORINFOstruct + { +--- 535,540 ---- +*************** +*** 2500,2511 **** + padding[i] = gui.char_width; + } + +- /* On NT, tell the font renderer not to "help" us with Hebrew and Arabic +- * text. This doesn't work in 9x, so we have to deal with it manually on +- * those systems. */ +- if (os_version.dwPlatformId == VER_PLATFORM_WIN32_NT) +- foptions |= ETO_IGNORELANGUAGE; +- + /* + * We have to provide the padding argument because italic and bold versions + * of fixed-width fonts are often one pixel or so wider than their normal +--- 2496,2501 ---- +*************** +*** 2641,2650 **** + #endif + { + #ifdef FEAT_RIGHTLEFT +! /* If we can't use ETO_IGNORELANGUAGE, we can't tell Windows not to +! * mess up RL text, so we have to draw it character-by-character. +! * Only do this if RL is on, since it's slow. */ +! if (curwin->w_p_rl && !(foptions & ETO_IGNORELANGUAGE)) + RevOut(s_hdc, TEXT_X(col), TEXT_Y(row), + foptions, pcliprect, (char *)text, len, padding); + else +--- 2631,2639 ---- + #endif + { + #ifdef FEAT_RIGHTLEFT +! /* Windows will mess up RL text, so we have to draw it character by +! * character. Only do this if RL is on, since it's slow. */ +! if (curwin->w_p_rl) + RevOut(s_hdc, TEXT_X(col), TEXT_Y(row), + foptions, pcliprect, (char *)text, len, padding); + else +*** ../vim-7.4.447/src/version.c 2014-09-19 16:04:08.050417797 +0200 +--- src/version.c 2014-09-19 16:13:14.102418990 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 448, + /**/ + +-- +Send $25.00 for handy leaflet on how to make money by selling leaflets + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 6c63311ce2c2fc4b6adf5757f1c521005758cf48 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:08 +0200 Subject: [PATCH 0037/1616] - patchlevel 449 --- 7.4.449 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.4.449 diff --git a/7.4.449 b/7.4.449 new file mode 100644 index 00000000..c3befb15 --- /dev/null +++ b/7.4.449 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.449 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.449 +Problem: Can't easily close the help window. (Chris Gaal) +Solution: Add ":helpclose". (Christian Brabandt) +Files: runtime/doc/helphelp.txt, runtime/doc/index.txt, src/ex_cmds.c, + src/ex_cmds.h, src/proto/ex_cmds.pro + + +*** ../vim-7.4.448/runtime/doc/helphelp.txt 2013-08-10 13:24:54.000000000 +0200 +--- runtime/doc/helphelp.txt 2014-09-19 19:38:11.110445851 +0200 +*************** +*** 96,101 **** +--- 96,104 ---- + find a tag in a file with the same language as the + current file. See |help-translated|. + ++ *:helpc* *:helpclose* ++ :helpc[lose] Close one help window. ++ + *:helpg* *:helpgrep* + :helpg[rep] {pattern}[@xx] + Search all help text files and make a list of lines +*** ../vim-7.4.448/runtime/doc/index.txt 2013-08-10 13:24:56.000000000 +0200 +--- runtime/doc/index.txt 2014-09-19 19:38:23.694445878 +0200 +*************** +*** 1244,1249 **** +--- 1244,1250 ---- + |:gvim| :gv[im] start the GUI + |:hardcopy| :ha[rdcopy] send text to the printer + |:help| :h[elp] open a help window ++ |:helpclose| :helpc[lose] close one help window + |:helpfind| :helpf[ind] dialog to open a help window + |:helpgrep| :helpg[rep] like ":grep" but searches help files + |:helptags| :helpt[ags] generate help tags for a directory +*** ../vim-7.4.448/src/ex_cmds.c 2014-08-29 09:02:23.886399246 +0200 +--- src/ex_cmds.c 2014-09-19 19:33:43.350445266 +0200 +*************** +*** 5899,5904 **** +--- 5899,5922 ---- + vim_free(tag); + } + ++ /* ++ * ":helpclose": Close the help window ++ */ ++ void ++ ex_helpclose(eap) ++ exarg_T *eap UNUSED; ++ { ++ win_T *win; ++ ++ FOR_ALL_WINDOWS(win) ++ { ++ if (win->w_buffer->b_help) ++ { ++ win_close(win, FALSE); ++ break; ++ } ++ } ++ } + + #if defined(FEAT_MULTI_LANG) || defined(PROTO) + /* +*** ../vim-7.4.448/src/ex_cmds.h 2014-03-23 16:03:56.163311626 +0100 +--- src/ex_cmds.h 2014-09-19 19:21:09.134443618 +0200 +*************** +*** 417,422 **** +--- 417,424 ---- + BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN), + EX(CMD_help, "help", ex_help, + BANG|EXTRA|NOTRLCOM), ++ EX(CMD_helpclose, "helpclose", ex_helpclose, ++ RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_helpfind, "helpfind", ex_helpfind, + EXTRA|NOTRLCOM), + EX(CMD_helpgrep, "helpgrep", ex_helpgrep, +*** ../vim-7.4.448/src/proto/ex_cmds.pro 2013-08-10 13:37:09.000000000 +0200 +--- src/proto/ex_cmds.pro 2014-09-19 19:21:09.134443618 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + void free_old_sub __ARGS((void)); + int prepare_tagpreview __ARGS((int undo_sync)); + void ex_help __ARGS((exarg_T *eap)); ++ void ex_helpclose __ARGS((exarg_T *eap)); + char_u *check_help_lang __ARGS((char_u *arg)); + int help_heuristic __ARGS((char_u *matched_string, int offset, int wrong_case)); + int find_help_tags __ARGS((char_u *arg, int *num_matches, char_u ***matches, int keep_lang)); +*** ../vim-7.4.448/src/version.c 2014-09-19 16:13:48.358419065 +0200 +--- src/version.c 2014-09-19 18:06:13.718433799 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 449, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +165. You have a web page burned into your glasses + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 13479f6c12dfa1d4e3a4c83e594df7b120ae05ef Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:09 +0200 Subject: [PATCH 0038/1616] - patchlevel 450 --- 7.4.450 | 417 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 417 insertions(+) create mode 100644 7.4.450 diff --git a/7.4.450 b/7.4.450 new file mode 100644 index 00000000..bd94cf2c --- /dev/null +++ b/7.4.450 @@ -0,0 +1,417 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.450 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.450 +Problem: Not all commands that edit another buffer support the +cmd + argument. +Solution: Add the +cmd argument to relevant commands. (Marcin Szamotulski) +Files: runtime/doc/windows.txt, src/ex_cmds.h, src/ex_docmd.c + + +*** ../vim-7.4.449/runtime/doc/windows.txt 2014-03-25 13:03:44.929793765 +0100 +--- runtime/doc/windows.txt 2014-09-19 19:53:55.618447914 +0200 +*************** +*** 1042,1077 **** + a number). Insert a backslash before a space in a buffer + name. + +! :[N]b[uffer][!] [N] *:b* *:bu* *:buf* *:buffer* *E86* + Edit buffer [N] from the buffer list. If [N] is not given, + the current buffer remains being edited. See |:buffer-!| for + [!]. This will also edit a buffer that is not in the buffer + list, without setting the 'buflisted' flag. + +! :[N]b[uffer][!] {bufname} + Edit buffer for {bufname} from the buffer list. See + |:buffer-!| for [!]. This will also edit a buffer that is not + in the buffer list, without setting the 'buflisted' flag. + +! :[N]sb[uffer] [N] *:sb* *:sbuffer* + Split window and edit buffer [N] from the buffer list. If [N] + is not given, the current buffer is edited. Respects the + "useopen" setting of 'switchbuf' when splitting. This will + also edit a buffer that is not in the buffer list, without + setting the 'buflisted' flag. + +! :[N]sb[uffer] {bufname} + Split window and edit buffer for {bufname} from the buffer + list. This will also edit a buffer that is not in the buffer + list, without setting the 'buflisted' flag. + Note: If what you want to do is split the buffer, make a copy + under another name, you can do it this way: > + :w foobar | sp # + +! :[N]bn[ext][!] [N] *:bn* *:bnext* *E87* + Go to [N]th next buffer in buffer list. [N] defaults to one. + Wraps around the end of the buffer list. + See |:buffer-!| for [!]. + If you are in a help buffer, this takes you to the next help + buffer (if there is one). Similarly, if you are in a normal + (non-help) buffer, this takes you to the next normal buffer. +--- 1042,1082 ---- + a number). Insert a backslash before a space in a buffer + name. + +! :[N]b[uffer][!] [+cmd] [N] *:b* *:bu* *:buf* *:buffer* *E86* + Edit buffer [N] from the buffer list. If [N] is not given, + the current buffer remains being edited. See |:buffer-!| for + [!]. This will also edit a buffer that is not in the buffer + list, without setting the 'buflisted' flag. ++ Also see ||+cmd|. + +! :[N]b[uffer][!] [+cmd] {bufname} + Edit buffer for {bufname} from the buffer list. See + |:buffer-!| for [!]. This will also edit a buffer that is not + in the buffer list, without setting the 'buflisted' flag. ++ Also see ||+cmd|. + +! :[N]sb[uffer] [+cmd] [N] *:sb* *:sbuffer* + Split window and edit buffer [N] from the buffer list. If [N] + is not given, the current buffer is edited. Respects the + "useopen" setting of 'switchbuf' when splitting. This will + also edit a buffer that is not in the buffer list, without + setting the 'buflisted' flag. ++ Also see ||+cmd|. + +! :[N]sb[uffer] [+cmd] {bufname} + Split window and edit buffer for {bufname} from the buffer + list. This will also edit a buffer that is not in the buffer + list, without setting the 'buflisted' flag. + Note: If what you want to do is split the buffer, make a copy + under another name, you can do it this way: > + :w foobar | sp # ++ < Also see ||+cmd|. + +! :[N]bn[ext][!] [+cmd] [N] *:bn* *:bnext* *E87* + Go to [N]th next buffer in buffer list. [N] defaults to one. + Wraps around the end of the buffer list. + See |:buffer-!| for [!]. ++ Also see ||+cmd|. + If you are in a help buffer, this takes you to the next help + buffer (if there is one). Similarly, if you are in a normal + (non-help) buffer, this takes you to the next normal buffer. +*************** +*** 1079,1133 **** + the way when you're browsing code/text buffers. The next three + commands also work like this. + + *:sbn* *:sbnext* +! :[N]sbn[ext] [N] + Split window and go to [N]th next buffer in buffer list. + Wraps around the end of the buffer list. Uses 'switchbuf' + +! :[N]bN[ext][!] [N] *:bN* *:bNext* *:bp* *:bprevious* *E88* +! :[N]bp[revious][!] [N] + Go to [N]th previous buffer in buffer list. [N] defaults to + one. Wraps around the start of the buffer list. + See |:buffer-!| for [!] and 'switchbuf'. + +! :[N]sbN[ext] [N] *:sbN* *:sbNext* *:sbp* *:sbprevious* +! :[N]sbp[revious] [N] + Split window and go to [N]th previous buffer in buffer list. + Wraps around the start of the buffer list. + Uses 'switchbuf'. + +! *:br* *:brewind* +! :br[ewind][!] Go to first buffer in buffer list. If the buffer list is + empty, go to the first unlisted buffer. + See |:buffer-!| for [!]. + +! *:bf* *:bfirst* +! :bf[irst] Same as ":brewind". + +! *:sbr* *:sbrewind* +! :sbr[ewind] Split window and go to first buffer in buffer list. If the + buffer list is empty, go to the first unlisted buffer. + Respects the 'switchbuf' option. + +! *:sbf* *:sbfirst* +! :sbf[irst] Same as ":sbrewind". + +! *:bl* *:blast* +! :bl[ast][!] Go to last buffer in buffer list. If the buffer list is + empty, go to the last unlisted buffer. + See |:buffer-!| for [!]. + +! *:sbl* *:sblast* +! :sbl[ast] Split window and go to last buffer in buffer list. If the + buffer list is empty, go to the last unlisted buffer. + Respects 'switchbuf' option. + +! :[N]bm[odified][!] [N] *:bm* *:bmodified* *E84* + Go to [N]th next modified buffer. Note: this command also + finds unlisted buffers. If there is no modified buffer the + command fails. + +! :[N]sbm[odified] [N] *:sbm* *:sbmodified* + Split window and go to [N]th next modified buffer. + Respects 'switchbuf' option. + Note: this command also finds buffers not in the buffer list. +--- 1084,1144 ---- + the way when you're browsing code/text buffers. The next three + commands also work like this. + ++ + *:sbn* *:sbnext* +! :[N]sbn[ext] [+cmd] [N] + Split window and go to [N]th next buffer in buffer list. + Wraps around the end of the buffer list. Uses 'switchbuf' ++ Also see ||+cmd|. + +! :[N]bN[ext][!] [+cmd] [N] *:bN* *:bNext* *:bp* *:bprevious* *E88* +! :[N]bp[revious][!] [+cmd] [N] + Go to [N]th previous buffer in buffer list. [N] defaults to + one. Wraps around the start of the buffer list. + See |:buffer-!| for [!] and 'switchbuf'. ++ Also see ||+cmd|. + +! :[N]sbN[ext] [+cmd] [N] *:sbN* *:sbNext* *:sbp* *:sbprevious* +! :[N]sbp[revious] [+cmd] [N] + Split window and go to [N]th previous buffer in buffer list. + Wraps around the start of the buffer list. + Uses 'switchbuf'. ++ Also see ||+cmd|. + +! :br[ewind][!] [+cmd] *:br* *:brewind* +! Go to first buffer in buffer list. If the buffer list is + empty, go to the first unlisted buffer. + See |:buffer-!| for [!]. + +! :bf[irst] [+cmd] *:bf* *:bfirst* +! Same as |:brewind|. +! Also see |+cmd|. + +! :sbr[ewind] [+cmd] *:sbr* *:sbrewind* +! Split window and go to first buffer in buffer list. If the + buffer list is empty, go to the first unlisted buffer. + Respects the 'switchbuf' option. ++ Also see |+cmd|. + +! :sbf[irst] [+cmd] *:sbf* *:sbfirst* +! Same as ":sbrewind". + +! :bl[ast][!] [+cmd] *:bl* *:blast* +! Go to last buffer in buffer list. If the buffer list is + empty, go to the last unlisted buffer. + See |:buffer-!| for [!]. + +! :sbl[ast] [+cmd] *:sbl* *:sblast* +! Split window and go to last buffer in buffer list. If the + buffer list is empty, go to the last unlisted buffer. + Respects 'switchbuf' option. + +! :[N]bm[odified][!] [+cmd] [N] *:bm* *:bmodified* *E84* + Go to [N]th next modified buffer. Note: this command also + finds unlisted buffers. If there is no modified buffer the + command fails. + +! :[N]sbm[odified] [+cmd] [N] *:sbm* *:sbmodified* + Split window and go to [N]th next modified buffer. + Respects 'switchbuf' option. + Note: this command also finds buffers not in the buffer list. +*** ../vim-7.4.449/src/ex_cmds.h 2014-09-19 19:39:30.766446025 +0200 +--- src/ex_cmds.h 2014-09-19 19:53:55.618447914 +0200 +*************** +*** 132,140 **** + EX(CMD_aunmenu, "aunmenu", ex_menu, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_buffer, "buffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR), + EX(CMD_bNext, "bNext", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_ball, "ball", ex_buffer_all, + RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_badd, "badd", ex_edit, +--- 132,140 ---- + EX(CMD_aunmenu, "aunmenu", ex_menu, + EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_buffer, "buffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR), + EX(CMD_bNext, "bNext", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_ball, "ball", ex_buffer_all, + RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_badd, "badd", ex_edit, +*************** +*** 146,164 **** + EX(CMD_belowright, "belowright", ex_wrongmodifier, + NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bfirst, "bfirst", ex_brewind, +! BANG|RANGE|NOTADR|TRLBAR), + EX(CMD_blast, "blast", ex_blast, +! BANG|RANGE|NOTADR|TRLBAR), + EX(CMD_bmodified, "bmodified", ex_bmodified, +! BANG|RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_bnext, "bnext", ex_bnext, +! BANG|RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_botright, "botright", ex_wrongmodifier, + NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bprevious, "bprevious", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_brewind, "brewind", ex_brewind, +! BANG|RANGE|NOTADR|TRLBAR), + EX(CMD_break, "break", ex_break, + TRLBAR|SBOXOK|CMDWIN), + EX(CMD_breakadd, "breakadd", ex_breakadd, +--- 146,164 ---- + EX(CMD_belowright, "belowright", ex_wrongmodifier, + NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bfirst, "bfirst", ex_brewind, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR), + EX(CMD_blast, "blast", ex_blast, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR), + EX(CMD_bmodified, "bmodified", ex_bmodified, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_bnext, "bnext", ex_bnext, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_botright, "botright", ex_wrongmodifier, + NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bprevious, "bprevious", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_brewind, "brewind", ex_brewind, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR), + EX(CMD_break, "break", ex_break, + TRLBAR|SBOXOK|CMDWIN), + EX(CMD_breakadd, "breakadd", ex_breakadd, +*************** +*** 814,836 **** + EX(CMD_saveas, "saveas", ex_write, + BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR), + EX(CMD_sbuffer, "sbuffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR), + EX(CMD_sbNext, "sbNext", ex_bprevious, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sball, "sball", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sbfirst, "sbfirst", ex_brewind, +! TRLBAR), + EX(CMD_sblast, "sblast", ex_blast, +! TRLBAR), + EX(CMD_sbmodified, "sbmodified", ex_bmodified, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sbnext, "sbnext", ex_bnext, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sbprevious, "sbprevious", ex_bprevious, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sbrewind, "sbrewind", ex_brewind, +! TRLBAR), + EX(CMD_scriptnames, "scriptnames", ex_scriptnames, + TRLBAR|CMDWIN), + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, +--- 814,836 ---- + EX(CMD_saveas, "saveas", ex_write, + BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR), + EX(CMD_sbuffer, "sbuffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR), + EX(CMD_sbNext, "sbNext", ex_bprevious, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sball, "sball", ex_buffer_all, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbfirst, "sbfirst", ex_brewind, +! EDITCMD|TRLBAR), + EX(CMD_sblast, "sblast", ex_blast, +! EDITCMD|TRLBAR), + EX(CMD_sbmodified, "sbmodified", ex_bmodified, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbnext, "sbnext", ex_bnext, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbprevious, "sbprevious", ex_bprevious, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbrewind, "sbrewind", ex_brewind, +! EDITCMD|TRLBAR), + EX(CMD_scriptnames, "scriptnames", ex_scriptnames, + TRLBAR|CMDWIN), + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, +*** ../vim-7.4.449/src/ex_docmd.c 2014-09-09 12:21:57.716501404 +0200 +--- src/ex_docmd.c 2014-09-19 19:53:55.622447914 +0200 +*************** +*** 5135,5140 **** +--- 5135,5142 ---- + goto_buffer(eap, DOBUF_CURRENT, FORWARD, 0); + else + goto_buffer(eap, DOBUF_FIRST, FORWARD, (int)eap->line2); ++ if (eap->do_ecmd_cmd != NULL) ++ do_cmdline_cmd(eap->do_ecmd_cmd); + } + } + +*************** +*** 5147,5152 **** +--- 5149,5156 ---- + exarg_T *eap; + { + goto_buffer(eap, DOBUF_MOD, FORWARD, (int)eap->line2); ++ if (eap->do_ecmd_cmd != NULL) ++ do_cmdline_cmd(eap->do_ecmd_cmd); + } + + /* +*************** +*** 5158,5163 **** +--- 5162,5169 ---- + exarg_T *eap; + { + goto_buffer(eap, DOBUF_CURRENT, FORWARD, (int)eap->line2); ++ if (eap->do_ecmd_cmd != NULL) ++ do_cmdline_cmd(eap->do_ecmd_cmd); + } + + /* +*************** +*** 5171,5176 **** +--- 5177,5184 ---- + exarg_T *eap; + { + goto_buffer(eap, DOBUF_CURRENT, BACKWARD, (int)eap->line2); ++ if (eap->do_ecmd_cmd != NULL) ++ do_cmdline_cmd(eap->do_ecmd_cmd); + } + + /* +*************** +*** 5184,5189 **** +--- 5192,5199 ---- + exarg_T *eap; + { + goto_buffer(eap, DOBUF_FIRST, FORWARD, 0); ++ if (eap->do_ecmd_cmd != NULL) ++ do_cmdline_cmd(eap->do_ecmd_cmd); + } + + /* +*************** +*** 5195,5200 **** +--- 5205,5212 ---- + exarg_T *eap; + { + goto_buffer(eap, DOBUF_LAST, BACKWARD, 0); ++ if (eap->do_ecmd_cmd != NULL) ++ do_cmdline_cmd(eap->do_ecmd_cmd); + } + #endif + +*** ../vim-7.4.449/src/version.c 2014-09-19 19:39:30.766446025 +0200 +--- src/version.c 2014-09-19 19:54:39.442448010 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 450, + /**/ + +-- +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 edb16f618d1e1a136bb47dd5903254cc3e7ef080 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:10 +0200 Subject: [PATCH 0039/1616] - patchlevel 451 --- 7.4.451 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.4.451 diff --git a/7.4.451 b/7.4.451 new file mode 100644 index 00000000..3b2110e7 --- /dev/null +++ b/7.4.451 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.451 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.451 +Problem: Calling system() with empty input gives an error for writing the + temp file. +Solution: Do not try writing if the string length is zero. (Olaf Dabrunz) +Files: src/eval.c + + +*** ../vim-7.4.450/src/eval.c 2014-09-19 14:26:29.654405000 +0200 +--- src/eval.c 2014-09-19 20:23:57.354451850 +0200 +*************** +*** 18638,18650 **** + } + else + { + p = get_tv_string_buf_chk(&argvars[1], buf); + if (p == NULL) + { + fclose(fd); + goto errret; /* type error; errmsg already given */ + } +! if (fwrite(p, STRLEN(p), 1, fd) != 1) + err = TRUE; + } + if (fclose(fd) != 0) +--- 18638,18653 ---- + } + else + { ++ size_t len; ++ + p = get_tv_string_buf_chk(&argvars[1], buf); + if (p == NULL) + { + fclose(fd); + goto errret; /* type error; errmsg already given */ + } +! len = STRLEN(p); +! if (len > 0 && fwrite(p, len, 1, fd) != 1) + err = TRUE; + } + if (fclose(fd) != 0) +*** ../vim-7.4.450/src/version.c 2014-09-19 20:07:22.550449677 +0200 +--- src/version.c 2014-09-19 20:19:22.390451249 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 451, + /**/ + +-- +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 904a583892140711c8540ca16aa2f0ad97dd3c90 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:10 +0200 Subject: [PATCH 0040/1616] - patchlevel 452 --- 7.4.452 | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 7.4.452 diff --git a/7.4.452 b/7.4.452 new file mode 100644 index 00000000..b317ae7c --- /dev/null +++ b/7.4.452 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.452 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.452 +Problem: Can't build with tiny features. (Tony Mechelynck) +Solution: Use "return" instead of "break". +Files: src/ex_cmds.c + + +*** ../vim-7.4.451/src/ex_cmds.c 2014-09-19 19:39:30.766446025 +0200 +--- src/ex_cmds.c 2014-09-19 22:03:13.506464860 +0200 +*************** +*** 5900,5906 **** + } + + /* +! * ":helpclose": Close the help window + */ + void + ex_helpclose(eap) +--- 5900,5906 ---- + } + + /* +! * ":helpclose": Close one help window + */ + void + ex_helpclose(eap) +*************** +*** 5913,5919 **** + if (win->w_buffer->b_help) + { + win_close(win, FALSE); +! break; + } + } + } +--- 5913,5919 ---- + if (win->w_buffer->b_help) + { + win_close(win, FALSE); +! return; + } + } + } +*** ../vim-7.4.451/src/version.c 2014-09-19 20:45:19.266454650 +0200 +--- src/version.c 2014-09-19 22:05:30.178465158 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 452, + /**/ + +-- +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 ec7e9ca35ce341b143f8aad665d13b79deb8f7e8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:11 +0200 Subject: [PATCH 0041/1616] - patchlevel 453 --- 7.4.453 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.453 diff --git a/7.4.453 b/7.4.453 new file mode 100644 index 00000000..2afec9df --- /dev/null +++ b/7.4.453 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.453 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.453 +Problem: Still can't build with tiny features. +Solution: Add #ifdef. +Files: src/ex_cmds.c + + +*** ../vim-7.4.452/src/ex_cmds.c 2014-09-19 22:05:48.606465199 +0200 +--- src/ex_cmds.c 2014-09-19 22:08:31.850465555 +0200 +*************** +*** 5906,5911 **** +--- 5906,5912 ---- + ex_helpclose(eap) + exarg_T *eap UNUSED; + { ++ #if defined(FEAT_WINDOWS) + win_T *win; + + FOR_ALL_WINDOWS(win) +*************** +*** 5916,5921 **** +--- 5917,5923 ---- + return; + } + } ++ #endif + } + + #if defined(FEAT_MULTI_LANG) || defined(PROTO) +*** ../vim-7.4.452/src/version.c 2014-09-19 22:05:48.610465199 +0200 +--- src/version.c 2014-09-19 22:19:43.058467021 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 453, + /**/ + + +-- +"Hit any key to continue" does _not_ mean you can hit the on/off button! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 2097166784deb6ade566923df8a74e11e2a8e10d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 20 Sep 2014 06:40:12 +0200 Subject: [PATCH 0042/1616] - patchlevel 453 --- README.patches | 9 +++++++++ vim.spec | 23 ++++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a0698c39..121b1249 100644 --- a/README.patches +++ b/README.patches @@ -468,3 +468,12 @@ Individual patches for Vim 7.4: 2303 7.4.442 (after 7.4.434) using unitinialized 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 + 7513 7.4.446 environment for executing autocommand may not be restored. + 4082 7.4.447 spell files from Hunspell may generate a lot of errors + 2691 7.4.448 MS-Windows: Using ETO_IGNORELANGUAGE causes problems + 3740 7.4.449 can't easily close the help window + 14932 7.4.450 some commands that edit another buffer don't support +cmd + 1851 7.4.451 calling system() with empty input gives an error + 1611 7.4.452 can't build with tiny features + 1409 7.4.453 still can't build with tiny features diff --git a/vim.spec b/vim.spec index ce4e8788..b4f20129 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 444 +%define patchlevel 453 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -491,6 +491,15 @@ Patch441: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.441 Patch442: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.442 Patch443: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.443 Patch444: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.444 +Patch445: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.445 +Patch446: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.446 +Patch447: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.447 +Patch448: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.448 +Patch449: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.449 +Patch450: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.450 +Patch451: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.451 +Patch452: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.452 +Patch453: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.453 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1081,6 +1090,15 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch442 -p0 %patch443 -p0 %patch444 -p0 +%patch445 -p0 +%patch446 -p0 +%patch447 -p0 +%patch448 -p0 +%patch449 -p0 +%patch450 -p0 +%patch451 -p0 +%patch452 -p0 +%patch453 -p0 # install spell files %if %{withvimspell} @@ -1597,6 +1615,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Sep 20 2014 Karsten Hopp 7.4.453-1 +- patchlevel 453 + * Tue Sep 16 2014 Karsten Hopp 7.4.444-1 - patchlevel 444 From a1df92536509b336f249fd5280ba4f614ee3035e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Sep 2014 18:00:09 +0200 Subject: [PATCH 0043/1616] - patchlevel 454 --- 7.4.454 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.4.454 diff --git a/7.4.454 b/7.4.454 new file mode 100644 index 00000000..ee45fb6a --- /dev/null +++ b/7.4.454 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.454 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.454 +Problem: When using a Visual selection of multiple words and doing CTRL-W_] + it jumps to the tag matching the word under the cursor, not the + selected text. (Patrick hemmer) +Solution: Do not reset Visual mode. (idea by Christian Brabandt) +Files: src/window.c + + +*** ../vim-7.4.453/src/window.c 2014-09-19 14:26:29.658405000 +0200 +--- src/window.c 2014-09-23 13:34:12.722783903 +0200 +*************** +*** 479,492 **** + case ']': + case Ctrl_RSB: + CHECK_CMDWIN +! reset_VIsual_and_resel(); /* stop Visual mode */ + if (Prenum) + postponed_split = Prenum; + else + postponed_split = -1; + +! /* Execute the command right here, required when +! * "wincmd ]" was used in a function. */ + do_nv_ident(Ctrl_RSB, NUL); + break; + +--- 479,493 ---- + case ']': + case Ctrl_RSB: + CHECK_CMDWIN +! /* keep Visual mode, can select words to use as a tag */ + if (Prenum) + postponed_split = Prenum; + else + postponed_split = -1; ++ g_do_tagpreview = 0; + +! /* Execute the command right here, required when "wincmd ]" +! * was used in a function. */ + do_nv_ident(Ctrl_RSB, NUL); + break; + +*************** +*** 590,596 **** + #endif + case ']': + case Ctrl_RSB: +! reset_VIsual_and_resel(); /* stop Visual mode */ + if (Prenum) + postponed_split = Prenum; + else +--- 591,597 ---- + #endif + case ']': + case Ctrl_RSB: +! /* keep Visual mode, can select words to use as a tag */ + if (Prenum) + postponed_split = Prenum; + else +*** ../vim-7.4.453/src/version.c 2014-09-19 22:23:22.398467500 +0200 +--- src/version.c 2014-09-23 13:36:18.550784178 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 454, + /**/ + +-- +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 /// From 2bbd6332296bf0c571fa1bd26c457aac8f3f9b25 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Sep 2014 18:00:10 +0200 Subject: [PATCH 0044/1616] - patchlevel 455 --- 7.4.455 | 167 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 7.4.455 diff --git a/7.4.455 b/7.4.455 new file mode 100644 index 00000000..7020b28b --- /dev/null +++ b/7.4.455 @@ -0,0 +1,167 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.455 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.455 +Problem: Completion for :buf does not use 'wildignorecase'. (Akshay H) +Solution: Pass the 'wildignorecase' flag around. +Files: src/buffer.c + + +*** ../vim-7.4.454/src/buffer.c 2014-07-16 16:30:21.647608710 +0200 +--- src/buffer.c 2014-09-23 14:18:24.470789696 +0200 +*************** +*** 28,36 **** + #include "vim.h" + + #if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) +! static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf)); + # define HAVE_BUFLIST_MATCH +! static char_u *fname_match __ARGS((regprog_T *prog, char_u *name)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); + static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); +--- 28,36 ---- + #include "vim.h" + + #if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) +! static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf, int ignore_case)); + # define HAVE_BUFLIST_MATCH +! static char_u *fname_match __ARGS((regprog_T *prog, char_u *name, int ignore_case)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); + static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); +*************** +*** 2282,2288 **** + #ifdef FEAT_DIFF + && (!diffmode || diff_mode_buf(buf)) + #endif +! && buflist_match(prog, buf) != NULL) + { + if (curtab_only) + { +--- 2282,2288 ---- + #ifdef FEAT_DIFF + && (!diffmode || diff_mode_buf(buf)) + #endif +! && buflist_match(prog, buf, FALSE) != NULL) + { + if (curtab_only) + { +*************** +*** 2396,2402 **** + { + if (!buf->b_p_bl) /* skip unlisted buffers */ + continue; +! p = buflist_match(prog, buf); + if (p != NULL) + { + if (round == 1) +--- 2396,2402 ---- + { + if (!buf->b_p_bl) /* skip unlisted buffers */ + continue; +! p = buflist_match(prog, buf, p_wic); + if (p != NULL) + { + if (round == 1) +*************** +*** 2444,2459 **** + * Check for a match on the file name for buffer "buf" with regprog "prog". + */ + static char_u * +! buflist_match(prog, buf) + regprog_T *prog; + buf_T *buf; + { + char_u *match; + + /* First try the short file name, then the long file name. */ +! match = fname_match(prog, buf->b_sfname); + if (match == NULL) +! match = fname_match(prog, buf->b_ffname); + + return match; + } +--- 2444,2460 ---- + * Check for a match on the file name for buffer "buf" with regprog "prog". + */ + static char_u * +! buflist_match(prog, buf, ignore_case) + regprog_T *prog; + buf_T *buf; ++ int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */ + { + char_u *match; + + /* First try the short file name, then the long file name. */ +! match = fname_match(prog, buf->b_sfname, ignore_case); + if (match == NULL) +! match = fname_match(prog, buf->b_ffname, ignore_case); + + return match; + } +*************** +*** 2463,2471 **** + * Return "name" when there is a match, NULL when not. + */ + static char_u * +! fname_match(prog, name) + regprog_T *prog; + char_u *name; + { + char_u *match = NULL; + char_u *p; +--- 2464,2473 ---- + * Return "name" when there is a match, NULL when not. + */ + static char_u * +! fname_match(prog, name, ignore_case) + regprog_T *prog; + char_u *name; ++ int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */ + { + char_u *match = NULL; + char_u *p; +*************** +*** 2474,2480 **** + if (name != NULL) + { + regmatch.regprog = prog; +! regmatch.rm_ic = p_fic; /* ignore case when 'fileignorecase' is set */ + if (vim_regexec(®match, name, (colnr_T)0)) + match = name; + else +--- 2476,2483 ---- + if (name != NULL) + { + regmatch.regprog = prog; +! /* Ignore case when 'fileignorecase' or the argument is set. */ +! regmatch.rm_ic = p_fic || ignore_case; + if (vim_regexec(®match, name, (colnr_T)0)) + match = name; + else +*** ../vim-7.4.454/src/version.c 2014-09-23 13:48:40.054785798 +0200 +--- src/version.c 2014-09-23 14:19:13.114789802 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 455, + /**/ + +-- +If Microsoft would build a car... +... the oil, water temperature, and alternator warning lights would +all be replaced by a single "General Protection Fault" warning light. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From ce2f4c1da8479485d1d7fcb9840b29740eb63e78 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Sep 2014 18:00:11 +0200 Subject: [PATCH 0045/1616] - patchlevel 456 --- 7.4.456 | 414 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 414 insertions(+) create mode 100644 7.4.456 diff --git a/7.4.456 b/7.4.456 new file mode 100644 index 00000000..d696a9d0 --- /dev/null +++ b/7.4.456 @@ -0,0 +1,414 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.456 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.456 +Problem: 'backupcopy' is global, cannot write only some files in a + different way. +Solution: Make 'backupcopy' global-local. (Christian Brabandt) +Files: runtime/doc/options.txt, src/buffer.c, src/fileio.c, src/option.c, + src/option.h, src/proto/option.pro, src/structs.h + + +*** ../vim-7.4.455/runtime/doc/options.txt 2014-08-10 13:34:59.052785459 +0200 +--- runtime/doc/options.txt 2014-09-23 14:28:40.530791041 +0200 +*************** +*** 921,927 **** + + *'backupcopy'* *'bkc'* + 'backupcopy' 'bkc' string (Vi default for Unix: "yes", otherwise: "auto") +! global + {not in Vi} + When writing a file and a backup is made, this option tells how it's + done. This is a comma separated list of words. +--- 921,927 ---- + + *'backupcopy'* *'bkc'* + 'backupcopy' 'bkc' string (Vi default for Unix: "yes", otherwise: "auto") +! global or local to buffer |global-local| + {not in Vi} + When writing a file and a backup is made, this option tells how it's + done. This is a comma separated list of words. +*** ../vim-7.4.455/src/buffer.c 2014-09-23 14:24:36.406790508 +0200 +--- src/buffer.c 2014-09-23 14:28:40.530791041 +0200 +*************** +*** 2001,2006 **** +--- 2001,2007 ---- + #ifdef FEAT_LISP + clear_string_option(&buf->b_p_lw); + #endif ++ clear_string_option(&buf->b_p_bkc); + } + + /* +*** ../vim-7.4.455/src/fileio.c 2014-09-09 16:59:34.792537789 +0200 +--- src/fileio.c 2014-09-23 14:28:40.530791041 +0200 +*************** +*** 3149,3154 **** +--- 3149,3155 ---- + int write_undo_file = FALSE; + context_sha256_T sha_ctx; + #endif ++ unsigned int bkc = get_bkc_value(buf); + + if (fname == NULL || *fname == NUL) /* safety check */ + return FAIL; +*************** +*** 3647,3656 **** + struct stat st; + #endif + +! if ((bkc_flags & BKC_YES) || append) /* "yes" */ + backup_copy = TRUE; + #if defined(UNIX) || defined(WIN32) +! else if ((bkc_flags & BKC_AUTO)) /* "auto" */ + { + int i; + +--- 3648,3657 ---- + struct stat st; + #endif + +! if ((bkc & BKC_YES) || append) /* "yes" */ + backup_copy = TRUE; + #if defined(UNIX) || defined(WIN32) +! else if ((bkc & BKC_AUTO)) /* "auto" */ + { + int i; + +*************** +*** 3738,3744 **** + /* + * Break symlinks and/or hardlinks if we've been asked to. + */ +! if ((bkc_flags & BKC_BREAKSYMLINK) || (bkc_flags & BKC_BREAKHARDLINK)) + { + # ifdef UNIX + int lstat_res; +--- 3739,3745 ---- + /* + * Break symlinks and/or hardlinks if we've been asked to. + */ +! if ((bkc & BKC_BREAKSYMLINK) || (bkc & BKC_BREAKHARDLINK)) + { + # ifdef UNIX + int lstat_res; +*************** +*** 3746,3769 **** + lstat_res = mch_lstat((char *)fname, &st); + + /* Symlinks. */ +! if ((bkc_flags & BKC_BREAKSYMLINK) + && lstat_res == 0 + && st.st_ino != st_old.st_ino) + backup_copy = FALSE; + + /* Hardlinks. */ +! if ((bkc_flags & BKC_BREAKHARDLINK) + && st_old.st_nlink > 1 + && (lstat_res != 0 || st.st_ino == st_old.st_ino)) + backup_copy = FALSE; + # else + # if defined(WIN32) + /* Symlinks. */ +! if ((bkc_flags & BKC_BREAKSYMLINK) && mch_is_symbolic_link(fname)) + backup_copy = FALSE; + + /* Hardlinks. */ +! if ((bkc_flags & BKC_BREAKHARDLINK) && mch_is_hard_link(fname)) + backup_copy = FALSE; + # endif + # endif +--- 3747,3770 ---- + lstat_res = mch_lstat((char *)fname, &st); + + /* Symlinks. */ +! if ((bkc & BKC_BREAKSYMLINK) + && lstat_res == 0 + && st.st_ino != st_old.st_ino) + backup_copy = FALSE; + + /* Hardlinks. */ +! if ((bkc & BKC_BREAKHARDLINK) + && st_old.st_nlink > 1 + && (lstat_res != 0 || st.st_ino == st_old.st_ino)) + backup_copy = FALSE; + # else + # if defined(WIN32) + /* Symlinks. */ +! if ((bkc & BKC_BREAKSYMLINK) && mch_is_symbolic_link(fname)) + backup_copy = FALSE; + + /* Hardlinks. */ +! if ((bkc & BKC_BREAKHARDLINK) && mch_is_hard_link(fname)) + backup_copy = FALSE; + # endif + # endif +*** ../vim-7.4.455/src/option.c 2014-09-09 17:33:02.700542175 +0200 +--- src/option.c 2014-09-23 14:41:25.890792713 +0200 +*************** +*** 56,61 **** +--- 56,62 ---- + */ + #define PV_AI OPT_BUF(BV_AI) + #define PV_AR OPT_BOTH(OPT_BUF(BV_AR)) ++ #define PV_BKC OPT_BOTH(OPT_BUF(BV_BKC)) + #ifdef FEAT_QUICKFIX + # define PV_BH OPT_BUF(BV_BH) + # define PV_BT OPT_BUF(BV_BT) +*************** +*** 582,588 **** + (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_NONE, + #ifdef UNIX + {(char_u *)"yes", (char_u *)"auto"} + #else +--- 583,589 ---- + (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"} + #else +*************** +*** 5412,5417 **** +--- 5413,5419 ---- + #ifdef FEAT_LISP + check_string_option(&buf->b_p_lw); + #endif ++ check_string_option(&buf->b_p_bkc); + } + + /* +*************** +*** 5729,5744 **** + } + + /* 'backupcopy' */ +! else if (varp == &p_bkc) + { +! if (opt_strings_flags(p_bkc, p_bkc_values, &bkc_flags, TRUE) != OK) + errmsg = e_invarg; +! if (((bkc_flags & BKC_AUTO) != 0) +! + ((bkc_flags & BKC_YES) != 0) +! + ((bkc_flags & BKC_NO) != 0) != 1) + { + /* Must have exactly one of "auto", "yes" and "no". */ +! (void)opt_strings_flags(oldval, p_bkc_values, &bkc_flags, TRUE); + errmsg = e_invarg; + } + } +--- 5731,5755 ---- + } + + /* 'backupcopy' */ +! else if (gvarp == &p_bkc) + { +! char_u *bkc = p_bkc; +! unsigned int *flags = &bkc_flags; +! +! if (opt_flags & OPT_LOCAL) +! { +! bkc = curbuf->b_p_bkc; +! flags = &curbuf->b_bkc_flags; +! } +! +! if (opt_strings_flags(bkc, p_bkc_values, flags, TRUE) != OK) + errmsg = e_invarg; +! if ((((int)*flags & BKC_AUTO) != 0) +! + (((int)*flags & BKC_YES) != 0) +! + (((int)*flags & BKC_NO) != 0) != 1) + { + /* Must have exactly one of "auto", "yes" and "no". */ +! (void)opt_strings_flags(oldval, p_bkc_values, flags, TRUE); + errmsg = e_invarg; + } + } +*************** +*** 9025,9036 **** + } + + /* +! * 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. +--- 9036,9048 ---- + } + + /* +! * 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. +*************** +*** 9856,9861 **** +--- 9868,9877 ---- + case PV_AR: + buf->b_p_ar = -1; + break; ++ case PV_BKC: ++ clear_string_option(&buf->b_p_bkc); ++ buf->b_bkc_flags = 0; ++ break; + case PV_TAGS: + clear_string_option(&buf->b_p_tags); + break; +*************** +*** 9961,9966 **** +--- 9977,9983 ---- + #ifdef FEAT_LISP + case PV_LW: return (char_u *)&(curbuf->b_p_lw); + #endif ++ case PV_BKC: return (char_u *)&(curbuf->b_p_bkc); + } + return NULL; /* "cannot happen" */ + } +*************** +*** 9993,9998 **** +--- 10010,10017 ---- + ? (char_u *)&(curbuf->b_p_ar) : p->var; + case PV_TAGS: return *curbuf->b_p_tags != NUL + ? (char_u *)&(curbuf->b_p_tags) : p->var; ++ case PV_BKC: return *curbuf->b_p_bkc != NUL ++ ? (char_u *)&(curbuf->b_p_bkc) : p->var; + #ifdef FEAT_FIND_ID + case PV_DEF: return *curbuf->b_p_def != NUL + ? (char_u *)&(curbuf->b_p_def) : p->var; +*************** +*** 10585,10590 **** +--- 10604,10611 ---- + * are not copied, start using the global value */ + buf->b_p_ar = -1; + buf->b_p_ul = NO_LOCAL_UNDOLEVEL; ++ buf->b_p_bkc = empty_option; ++ buf->b_bkc_flags = 0; + #ifdef FEAT_QUICKFIX + buf->b_p_gp = empty_option; + buf->b_p_mp = empty_option; +*************** +*** 12052,12054 **** +--- 12073,12085 ---- + return OK; + } + #endif ++ ++ /* ++ * Get the local or global value of 'backupcopy'. ++ */ ++ unsigned int ++ get_bkc_value(buf) ++ buf_T *buf; ++ { ++ return buf->b_bkc_flags ? buf->b_bkc_flags : bkc_flags; ++ } +*** ../vim-7.4.455/src/option.h 2014-08-06 14:52:05.047236174 +0200 +--- src/option.h 2014-09-23 14:41:45.614792756 +0200 +*************** +*** 327,333 **** + EXTERN char_u *p_bg; /* 'background' */ + EXTERN int p_bk; /* 'backup' */ + EXTERN char_u *p_bkc; /* 'backupcopy' */ +! EXTERN unsigned bkc_flags; + #ifdef IN_OPTION_C + static char *(p_bkc_values[]) = {"yes", "auto", "no", "breaksymlink", "breakhardlink", NULL}; + #endif +--- 327,333 ---- + EXTERN char_u *p_bg; /* 'background' */ + EXTERN int p_bk; /* 'backup' */ + EXTERN char_u *p_bkc; /* 'backupcopy' */ +! EXTERN unsigned bkc_flags; /* flags from 'backupcopy' */ + #ifdef IN_OPTION_C + static char *(p_bkc_values[]) = {"yes", "auto", "no", "breaksymlink", "breakhardlink", NULL}; + #endif +*************** +*** 918,923 **** +--- 918,926 ---- + , BV_AR + #ifdef FEAT_QUICKFIX + , BV_BH ++ #endif ++ , BV_BKC ++ #ifdef FEAT_QUICKFIX + , BV_BT + , BV_EFM + , BV_GP +*** ../vim-7.4.455/src/proto/option.pro 2014-08-24 21:39:45.488526954 +0200 +--- src/proto/option.pro 2014-09-23 14:28:40.534791041 +0200 +*************** +*** 62,65 **** +--- 62,66 ---- + 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)); ++ unsigned int get_bkc_value __ARGS((buf_T *buf)); + /* vim: set ft=c : */ +*** ../vim-7.4.455/src/structs.h 2014-08-10 13:34:59.064785459 +0200 +--- src/structs.h 2014-09-23 14:41:56.218792779 +0200 +*************** +*** 137,143 **** + #ifdef FEAT_LINEBREAK + int wo_bri; + # define w_p_bri w_onebuf_opt.wo_bri /* 'breakindent' */ +! char_u *wo_briopt; + # define w_p_briopt w_onebuf_opt.wo_briopt /* 'breakindentopt' */ + #endif + #ifdef FEAT_DIFF +--- 137,143 ---- + #ifdef FEAT_LINEBREAK + int wo_bri; + # define w_p_bri w_onebuf_opt.wo_bri /* 'breakindent' */ +! char_u *wo_briopt; + # define w_p_briopt w_onebuf_opt.wo_briopt /* 'breakindentopt' */ + #endif + #ifdef FEAT_DIFF +*************** +*** 1537,1542 **** +--- 1537,1544 ---- + + int b_p_ai; /* 'autoindent' */ + int b_p_ai_nopaste; /* b_p_ai saved for paste mode */ ++ char_u *b_p_bkc; /* 'backupcopy' */ ++ unsigned b_bkc_flags; /* flags for 'backupcopy' */ + int b_p_ci; /* 'copyindent' */ + int b_p_bin; /* 'binary' */ + #ifdef FEAT_MBYTE +*** ../vim-7.4.455/src/version.c 2014-09-23 14:24:36.410790508 +0200 +--- src/version.c 2014-09-23 14:29:15.706791118 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 456, + /**/ + +-- +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 2a6b79a5b2683a435f6bfdb3c66ffa9af3a2bf16 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Sep 2014 18:00:11 +0200 Subject: [PATCH 0046/1616] - patchlevel 457 --- 7.4.457 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.457 diff --git a/7.4.457 b/7.4.457 new file mode 100644 index 00000000..8ffe27cc --- /dev/null +++ b/7.4.457 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.457 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.457 +Problem: Using getchar() in an expression mapping may result in + K_CURSORHOLD, which can't be recognized. +Solution: Add the key. (Hirohito Higashi) +Files: src/misc2.c + + +*** ../vim-7.4.456/src/misc2.c 2014-09-19 14:26:29.654405000 +0200 +--- src/misc2.c 2014-09-23 16:25:18.726806328 +0200 +*************** +*** 2471,2476 **** +--- 2471,2477 ---- + {K_SNR, (char_u *)"SNR"}, + #endif + {K_PLUG, (char_u *)"Plug"}, ++ {K_CURSORHOLD, (char_u *)"CursorHold"}, + {0, NULL} + }; + +*** ../vim-7.4.456/src/version.c 2014-09-23 15:45:04.874801055 +0200 +--- src/version.c 2014-09-23 16:47:43.738809266 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 457, + /**/ + +-- +If Microsoft would build a car... +... Occasionally, executing a maneuver such as a left turn +would cause your car to shut down and refuse to restart, in +which case you would have to reinstall the engine. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 4dc5d2dcaed42963c9a9c24369ab0af8ed4d480e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 23 Sep 2014 18:00:13 +0200 Subject: [PATCH 0047/1616] - patchlevel 457 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 121b1249..be6d7f54 100644 --- a/README.patches +++ b/README.patches @@ -477,3 +477,7 @@ Individual patches for Vim 7.4: 1851 7.4.451 calling system() with empty input gives an error 1611 7.4.452 can't build with tiny features 1409 7.4.453 still can't build with tiny features + 2495 7.4.454 CTRL-W-] does not work when using a Visual selection + 5104 7.4.455 completion for :buf does not use 'wildignorecase' + 12212 7.4.456 'backupcopy' is global, can't set a local value + 1513 7.4.457 cannot recognize getchar() returning K_CURSORHOLD diff --git a/vim.spec b/vim.spec index b4f20129..6772f967 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 453 +%define patchlevel 457 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -500,6 +500,10 @@ Patch450: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.450 Patch451: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.451 Patch452: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.452 Patch453: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.453 +Patch454: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.454 +Patch455: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.455 +Patch456: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.456 +Patch457: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.457 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1099,6 +1103,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch451 -p0 %patch452 -p0 %patch453 -p0 +%patch454 -p0 +%patch455 -p0 +%patch456 -p0 +%patch457 -p0 # install spell files %if %{withvimspell} @@ -1615,6 +1623,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Sep 23 2014 Karsten Hopp 7.4.457-1 +- patchlevel 457 + * Sat Sep 20 2014 Karsten Hopp 7.4.453-1 - patchlevel 453 From 398a64529f8a5a6f750c8ea60d4ffde929a69953 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 24 Sep 2014 11:40:33 +0200 Subject: [PATCH 0048/1616] - patchlevel 458 --- 7.4.458 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.458 diff --git a/7.4.458 b/7.4.458 new file mode 100644 index 00000000..35948d76 --- /dev/null +++ b/7.4.458 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.458 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.458 +Problem: Issue 252: Cursor moves in a zero-height window. +Solution: Check for zero height. (idea by Christian Brabandt) +Files: src/move.c + + +*** ../vim-7.4.457/src/move.c 2014-03-28 21:49:26.854248777 +0100 +--- src/move.c 2014-09-23 18:27:33.138822349 +0200 +*************** +*** 183,188 **** +--- 183,200 ---- + if (!screen_valid(TRUE)) + return; + ++ /* If the window height is zero just use the cursor line. */ ++ if (curwin->w_height == 0) ++ { ++ curwin->w_topline = curwin->w_cursor.lnum; ++ curwin->w_botline = curwin->w_topline; ++ curwin->w_valid |= VALID_BOTLINE|VALID_BOTLINE_AP; ++ #ifdef FEAT_SCROLLBIND ++ curwin->w_scbind_pos = 1; ++ #endif ++ return; ++ } ++ + check_cursor_moved(curwin); + if (curwin->w_valid & VALID_TOPLINE) + return; +*** ../vim-7.4.457/src/version.c 2014-09-23 16:49:38.798809517 +0200 +--- src/version.c 2014-09-23 17:50:55.642817549 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 458, + /**/ + +-- +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 d3bdba21e83f0d819560fbfd62e91c21fa30575a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 24 Sep 2014 11:40:35 +0200 Subject: [PATCH 0049/1616] - patchlevel 458 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index be6d7f54..8176bef6 100644 --- a/README.patches +++ b/README.patches @@ -481,3 +481,4 @@ Individual patches for Vim 7.4: 5104 7.4.455 completion for :buf does not use 'wildignorecase' 12212 7.4.456 'backupcopy' is global, can't set a local value 1513 7.4.457 cannot recognize getchar() returning K_CURSORHOLD + 1633 7.4.458 issue 252: Cursor moves in a zero-height window diff --git a/vim.spec b/vim.spec index 6772f967..b327e666 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 457 +%define patchlevel 458 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -504,6 +504,7 @@ Patch454: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.454 Patch455: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.455 Patch456: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.456 Patch457: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.457 +Patch458: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.458 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1107,6 +1108,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch455 -p0 %patch456 -p0 %patch457 -p0 +%patch458 -p0 # install spell files %if %{withvimspell} @@ -1623,6 +1625,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 24 2014 Karsten Hopp 7.4.458-1 +- patchlevel 458 + * Tue Sep 23 2014 Karsten Hopp 7.4.457-1 - patchlevel 457 From 8c5aa0c303a58e9d466da04229aae85d4cfd5cc9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 24 Sep 2014 14:38:33 +0200 Subject: [PATCH 0050/1616] - patchlevel 459 --- 7.4.459 | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 7.4.459 diff --git a/7.4.459 b/7.4.459 new file mode 100644 index 00000000..fce17c2c --- /dev/null +++ b/7.4.459 @@ -0,0 +1,123 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.459 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.459 +Problem: Can't change the icon after building Vim. +Solution: Load the icon from a file on startup. (Yasuhiro Matsumoto) +Files: src/gui_w32.c, src/os_mswin.c, src/os_win32.c, + src/proto/os_mswin.pro + + +*** ../vim-7.4.458/src/gui_w32.c 2014-09-19 16:13:48.358419065 +0200 +--- src/gui_w32.c 2014-09-23 21:53:17.382849313 +0200 +*************** +*** 1662,1667 **** +--- 1662,1675 ---- + if (s_textArea == NULL) + return FAIL; + ++ /* Try loading an icon from $RUNTIMEPATH/bitmaps/vim.ico. */ ++ { ++ HANDLE hIcon = NULL; ++ ++ if (mch_icon_load(&hIcon) == OK && hIcon != NULL) ++ SendMessage(s_hwnd, WM_SETICON, ICON_SMALL, hIcon); ++ } ++ + #ifdef FEAT_MENU + s_menuBar = CreateMenu(); + #endif +*** ../vim-7.4.458/src/os_mswin.c 2014-09-09 12:25:27.768501863 +0200 +--- src/os_mswin.c 2014-09-23 21:52:50.582849254 +0200 +*************** +*** 928,933 **** +--- 928,960 ---- + } + # endif + ++ /* ++ * Passed to do_in_runtimepath() to load a vim.ico file. ++ */ ++ static void ++ mch_icon_load_cb(char_u *fname, void *cookie) ++ { ++ HANDLE *h = (HANDLE *)cookie; ++ ++ *h = LoadImage(NULL, ++ fname, ++ IMAGE_ICON, ++ 64, ++ 64, ++ LR_LOADFROMFILE | LR_LOADMAP3DCOLORS); ++ } ++ ++ /* ++ * Try loading an icon file from 'runtimepath'. ++ */ ++ int ++ mch_icon_load(iconp) ++ HANDLE *iconp; ++ { ++ return do_in_runtimepath((char_u *)"bitmaps/vim.ico", ++ FALSE, mch_icon_load_cb, iconp); ++ } ++ + int + mch_libcall( + char_u *libname, +*** ../vim-7.4.458/src/os_win32.c 2014-09-09 12:25:27.764501863 +0200 +--- src/os_win32.c 2014-09-23 21:47:03.318848496 +0200 +*************** +*** 2446,2452 **** + return; + + /* Extract the first icon contained in the Vim executable. */ +! g_hVimIcon = ExtractIcon(NULL, exe_name, 0); + if (g_hVimIcon != NULL) + g_fCanChangeIcon = TRUE; + } +--- 2446,2453 ---- + return; + + /* Extract the first icon contained in the Vim executable. */ +! if (mch_icon_load((HANDLE *)&g_hVimIcon) == FAIL || g_hVimIcon == NULL) +! g_hVimIcon = ExtractIcon(NULL, exe_name, 0); + if (g_hVimIcon != NULL) + g_fCanChangeIcon = TRUE; + } +*** ../vim-7.4.458/src/proto/os_mswin.pro 2013-08-10 13:37:39.000000000 +0200 +--- src/proto/os_mswin.pro 2014-09-23 21:49:29.746848816 +0200 +*************** +*** 21,26 **** +--- 21,27 ---- + int mch_chdir __ARGS((char *path)); + int can_end_termcap_mode __ARGS((int give_msg)); + int mch_screenmode __ARGS((char_u *arg)); ++ int mch_icon_load __ARGS((HANDLE *iconp)); + int mch_libcall __ARGS((char_u *libname, char_u *funcname, char_u *argstring, int argint, char_u **string_result, int *number_result)); + void DumpPutS __ARGS((const char *psz)); + int mch_get_winpos __ARGS((int *x, int *y)); +*** ../vim-7.4.458/src/version.c 2014-09-23 18:37:52.426823701 +0200 +--- src/version.c 2014-09-23 21:36:07.806847064 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 459, + /**/ + +-- +If Microsoft would build a car... +... You'd have to press the "Start" button to turn the engine 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 624dc0d843bf490eae425d9a08401d8b28c74ef7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 24 Sep 2014 14:38:35 +0200 Subject: [PATCH 0051/1616] - patchlevel 460 --- 7.4.460 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.460 diff --git a/7.4.460 b/7.4.460 new file mode 100644 index 00000000..ce6908fc --- /dev/null +++ b/7.4.460 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.460 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.460 (after 7.4.454) +Problem: Can't build without the quickfix feature. (Erik Falor) +Solution: Add a #ifdef. +Files: src/window.c + + +*** ../vim-7.4.459/src/window.c 2014-09-23 13:48:40.054785798 +0200 +--- src/window.c 2014-09-24 13:24:27.318971352 +0200 +*************** +*** 484,490 **** +--- 484,492 ---- + postponed_split = Prenum; + else + postponed_split = -1; ++ #ifdef FEAT_QUICKFIX + g_do_tagpreview = 0; ++ #endif + + /* Execute the command right here, required when "wincmd ]" + * was used in a function. */ +*** ../vim-7.4.459/src/version.c 2014-09-23 21:53:35.310849352 +0200 +--- src/version.c 2014-09-24 13:24:44.450971389 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 460, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +179. You wonder why your household garbage can doesn't have an + "empty recycle bin" button. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 07ec22c82686d012016aeb97d6f7908b054ba6b8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 24 Sep 2014 14:38:39 +0200 Subject: [PATCH 0052/1616] - patchlevel 460 --- README.patches | 1 + vim.spec | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 8176bef6..456b2a17 100644 --- a/README.patches +++ b/README.patches @@ -482,3 +482,4 @@ Individual patches for Vim 7.4: 12212 7.4.456 'backupcopy' is global, can't set a local value 1513 7.4.457 cannot recognize getchar() returning K_CURSORHOLD 1633 7.4.458 issue 252: Cursor moves in a zero-height window + 1470 7.4.460 (after 7.4.454) can't build without the quickfix feature diff --git a/vim.spec b/vim.spec index b327e666..49cc11ce 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 458 +%define patchlevel 460 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -505,6 +505,8 @@ Patch455: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.455 Patch456: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.456 Patch457: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.457 Patch458: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.458 +Patch459: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.459 +Patch460: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.460 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1109,6 +1111,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch456 -p0 %patch457 -p0 %patch458 -p0 +%patch459 -p0 +%patch460 -p0 # install spell files %if %{withvimspell} @@ -1625,6 +1629,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 24 2014 Karsten Hopp 7.4.460-1 +- patchlevel 460 + * Wed Sep 24 2014 Karsten Hopp 7.4.458-1 - patchlevel 458 From 83230bb86c4c3d7ff902102a4a42d168a4310976 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 27 Sep 2014 18:00:08 +0200 Subject: [PATCH 0053/1616] - patchlevel 461 --- 7.4.461 | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 7.4.461 diff --git a/7.4.461 b/7.4.461 new file mode 100644 index 00000000..e100c7ac --- /dev/null +++ b/7.4.461 @@ -0,0 +1,77 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.461 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.461 +Problem: MS-Windows: When collate is on the number of copies is too high. +Solution: Only set the collated/uncollated count when collate is on. + (Yasuhiro Matsumoto) +Files: src/os_mswin.c + + +*** ../vim-7.4.460/src/os_mswin.c 2014-09-23 21:53:35.306849352 +0200 +--- src/os_mswin.c 2014-09-27 11:14:27.287520497 +0200 +*************** +*** 1673,1688 **** + */ + psettings->chars_per_line = prt_get_cpl(); + psettings->lines_per_page = prt_get_lpp(); +! psettings->n_collated_copies = (prt_dlg.Flags & PD_COLLATE) +! ? prt_dlg.nCopies : 1; +! psettings->n_uncollated_copies = (prt_dlg.Flags & PD_COLLATE) +! ? 1 : prt_dlg.nCopies; + +! if (psettings->n_collated_copies == 0) +! psettings->n_collated_copies = 1; + +! if (psettings->n_uncollated_copies == 0) + psettings->n_uncollated_copies = 1; + + psettings->jobname = jobname; + +--- 1673,1694 ---- + */ + psettings->chars_per_line = prt_get_cpl(); + psettings->lines_per_page = prt_get_lpp(); +! if (prt_dlg.Flags & PD_USEDEVMODECOPIESANDCOLLATE) +! { +! psettings->n_collated_copies = (prt_dlg.Flags & PD_COLLATE) +! ? prt_dlg.nCopies : 1; +! psettings->n_uncollated_copies = (prt_dlg.Flags & PD_COLLATE) +! ? 1 : prt_dlg.nCopies; + +! if (psettings->n_collated_copies == 0) +! psettings->n_collated_copies = 1; + +! if (psettings->n_uncollated_copies == 0) +! psettings->n_uncollated_copies = 1; +! } else { +! psettings->n_collated_copies = 1; + psettings->n_uncollated_copies = 1; ++ } + + psettings->jobname = jobname; + +*** ../vim-7.4.460/src/version.c 2014-09-24 13:26:39.954971642 +0200 +--- src/version.c 2014-09-27 11:16:48.883520806 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 461, + /**/ + +-- +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 /// From 635da80b1657bdcbe00bb59e75cf632d7c718838 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 27 Sep 2014 18:00:10 +0200 Subject: [PATCH 0054/1616] - patchlevel 461 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 456b2a17..16ecec52 100644 --- a/README.patches +++ b/README.patches @@ -483,3 +483,4 @@ Individual patches for Vim 7.4: 1513 7.4.457 cannot recognize getchar() returning K_CURSORHOLD 1633 7.4.458 issue 252: Cursor moves in a zero-height window 1470 7.4.460 (after 7.4.454) can't build without the quickfix feature + 2497 7.4.461 MS-Windows: When collate is on the number of copies is too high diff --git a/vim.spec b/vim.spec index 49cc11ce..2612b2dd 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 460 +%define patchlevel 461 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -507,6 +507,7 @@ Patch457: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.457 Patch458: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.458 Patch459: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.459 Patch460: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.460 +Patch461: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.461 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1113,6 +1114,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch458 -p0 %patch459 -p0 %patch460 -p0 +%patch461 -p0 # install spell files %if %{withvimspell} @@ -1629,6 +1631,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Sep 27 2014 Karsten Hopp 7.4.461-1 +- patchlevel 461 + * Wed Sep 24 2014 Karsten Hopp 7.4.460-1 - patchlevel 460 From 8001938a45cecb06da863ec548b033affbb26b19 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 29 Sep 2014 18:00:09 +0200 Subject: [PATCH 0055/1616] - patchlevel 462 --- 7.4.462 | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 7.4.462 diff --git a/7.4.462 b/7.4.462 new file mode 100644 index 00000000..b5c3d49d --- /dev/null +++ b/7.4.462 @@ -0,0 +1,80 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.462 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.462 +Problem: Setting the local value of 'backupcopy' empty gives an error. + (Peter Mattern) +Solution: When using an empty value set the flags to zero. (Hirohito + Higashi) +Files: src/option.c + + +*** ../vim-7.4.461/src/option.c 2014-09-23 15:45:04.870801055 +0200 +--- src/option.c 2014-09-29 17:03:06.963943648 +0200 +*************** +*** 5742,5756 **** + flags = &curbuf->b_bkc_flags; + } + +! if (opt_strings_flags(bkc, p_bkc_values, flags, TRUE) != OK) +! errmsg = e_invarg; +! if ((((int)*flags & BKC_AUTO) != 0) +! + (((int)*flags & BKC_YES) != 0) +! + (((int)*flags & BKC_NO) != 0) != 1) + { +! /* Must have exactly one of "auto", "yes" and "no". */ +! (void)opt_strings_flags(oldval, p_bkc_values, flags, TRUE); +! errmsg = e_invarg; + } + } + +--- 5742,5762 ---- + flags = &curbuf->b_bkc_flags; + } + +! if ((opt_flags & OPT_LOCAL) && *bkc == NUL) +! /* make the local value empty: use the global value */ +! *flags = 0; +! else + { +! if (opt_strings_flags(bkc, p_bkc_values, flags, TRUE) != OK) +! errmsg = e_invarg; +! if ((((int)*flags & BKC_AUTO) != 0) +! + (((int)*flags & BKC_YES) != 0) +! + (((int)*flags & BKC_NO) != 0) != 1) +! { +! /* Must have exactly one of "auto", "yes" and "no". */ +! (void)opt_strings_flags(oldval, p_bkc_values, flags, TRUE); +! errmsg = e_invarg; +! } + } + } + +*** ../vim-7.4.461/src/version.c 2014-09-27 11:18:08.179520979 +0200 +--- src/version.c 2014-09-29 17:13:50.235945053 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 462, + /**/ + +-- +Some of the well known MS-Windows errors: + EMEMORY Memory error caused by..., eh... + ELICENSE Your license has expired, give us more money! + EMOUSE Mouse moved, reinstall Windows + EILLEGAL Illegal error, you are not allowed to see this + EVIRUS Undetectable virus found + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From d77b0e3fd2134d72d63802c6f3c9d153f6f17c50 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 29 Sep 2014 18:00:10 +0200 Subject: [PATCH 0056/1616] - patchlevel 462 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 16ecec52..651656f1 100644 --- a/README.patches +++ b/README.patches @@ -484,3 +484,4 @@ Individual patches for Vim 7.4: 1633 7.4.458 issue 252: Cursor moves in a zero-height window 1470 7.4.460 (after 7.4.454) can't build without the quickfix feature 2497 7.4.461 MS-Windows: When collate is on the number of copies is too high + 2454 7.4.462 Setting the local value of 'backupcopy' empty gives an error diff --git a/vim.spec b/vim.spec index 2612b2dd..5a9942de 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 461 +%define patchlevel 462 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -508,6 +508,7 @@ Patch458: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.458 Patch459: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.459 Patch460: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.460 Patch461: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.461 +Patch462: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.462 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1115,6 +1116,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch459 -p0 %patch460 -p0 %patch461 -p0 +%patch462 -p0 # install spell files %if %{withvimspell} @@ -1631,6 +1633,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Sep 29 2014 Karsten Hopp 7.4.462-1 +- patchlevel 462 + * Sat Sep 27 2014 Karsten Hopp 7.4.461-1 - patchlevel 461 From 81c8e5119b224fc4f5a142173f62d158bf3f991d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 30 Sep 2014 18:00:16 +0200 Subject: [PATCH 0057/1616] - patchlevel 463 --- 7.4.463 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.463 diff --git a/7.4.463 b/7.4.463 new file mode 100644 index 00000000..efd83757 --- /dev/null +++ b/7.4.463 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.463 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.463 +Problem: Test 86 and 87 may hang on MS-Windows. +Solution: Call inputrestore() after inputsave(). (Ken Takata) +Files: src/testdir/test86.in, src/testdir/test87.in + + +*** ../vim-7.4.462/src/testdir/test86.in 2014-03-12 15:26:36.428714415 +0100 +--- src/testdir/test86.in 2014-09-29 18:03:03.539951504 +0200 +*************** +*** 1384,1389 **** +--- 1384,1390 ---- + :debug silent! py test_keyboard_interrupt() + :redir END + :0 debuggreedy ++ :call inputrestore() + :silent $put =output + :unlet output + :py del test_keyboard_interrupt +*** ../vim-7.4.462/src/testdir/test87.in 2014-03-12 15:26:36.432714415 +0100 +--- src/testdir/test87.in 2014-09-29 18:03:23.719951548 +0200 +*************** +*** 1361,1366 **** +--- 1361,1367 ---- + :debug silent! py3 test_keyboard_interrupt() + :redir END + :0 debuggreedy ++ :call inputrestore() + :silent $put =output + :unlet output + :py3 del test_keyboard_interrupt +*** ../vim-7.4.462/src/version.c 2014-09-29 17:15:09.963945227 +0200 +--- src/version.c 2014-09-29 18:06:08.299951907 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 463, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +198. You read all the quotes at Netaholics Anonymous and keep thinking + "What's wrong 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 0d9b67bc607028d0359e5fe38d1fbc329004d23f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 30 Sep 2014 18:00:26 +0200 Subject: [PATCH 0058/1616] - patchlevel 463 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 651656f1..5742d6cf 100644 --- a/README.patches +++ b/README.patches @@ -485,3 +485,4 @@ Individual patches for Vim 7.4: 1470 7.4.460 (after 7.4.454) can't build without the quickfix feature 2497 7.4.461 MS-Windows: When collate is on the number of copies is too high 2454 7.4.462 Setting the local value of 'backupcopy' empty gives an error + 1844 7.4.463 tests 86 and 87 may hang on MS-Windows diff --git a/vim.spec b/vim.spec index 5a9942de..6a874f3b 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 462 +%define patchlevel 463 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -509,6 +509,7 @@ Patch459: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.459 Patch460: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.460 Patch461: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.461 Patch462: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.462 +Patch463: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.463 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1117,6 +1118,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch460 -p0 %patch461 -p0 %patch462 -p0 +%patch463 -p0 # install spell files %if %{withvimspell} @@ -1633,6 +1635,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Sep 30 2014 Karsten Hopp 7.4.463-1 +- patchlevel 463 + * Mon Sep 29 2014 Karsten Hopp 7.4.462-1 - patchlevel 462 From 2cc9db22fa17c20acd8af457fa843cd73ba00f0e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 7 Oct 2014 18:00:11 +0200 Subject: [PATCH 0059/1616] - patchlevel 464 --- 7.4.464 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.464 diff --git a/7.4.464 b/7.4.464 new file mode 100644 index 00000000..c72aa6b6 --- /dev/null +++ b/7.4.464 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.464 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.464 (after 7.4.459) +Problem: Compiler warning. +Solution: Add type cast. (Ken Takata) +Files: src/gui_w32.c + + +*** ../vim-7.4.463/src/gui_w32.c 2014-09-23 21:53:35.306849352 +0200 +--- src/gui_w32.c 2014-10-06 18:05:22.109272899 +0200 +*************** +*** 1667,1673 **** + HANDLE hIcon = NULL; + + if (mch_icon_load(&hIcon) == OK && hIcon != NULL) +! SendMessage(s_hwnd, WM_SETICON, ICON_SMALL, hIcon); + } + + #ifdef FEAT_MENU +--- 1667,1673 ---- + HANDLE hIcon = NULL; + + if (mch_icon_load(&hIcon) == OK && hIcon != NULL) +! SendMessage(s_hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon); + } + + #ifdef FEAT_MENU +*** ../vim-7.4.463/src/version.c 2014-09-29 18:08:54.591952271 +0200 +--- src/version.c 2014-10-06 18:08:26.921273303 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 464, + /**/ + +-- +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 7d9f1ca66e96b543768a74cf7a39d50980819fa8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 7 Oct 2014 18:00:11 +0200 Subject: [PATCH 0060/1616] - patchlevel 465 --- 7.4.465 | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 7.4.465 diff --git a/7.4.465 b/7.4.465 new file mode 100644 index 00000000..44b690d5 --- /dev/null +++ b/7.4.465 @@ -0,0 +1,56 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.465 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.465 (after 7.4.016) +Problem: Crash when expanding a very long string. +Solution: Use wsncpy() instead of wcscpy(). (Ken Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.464/src/os_win32.c 2014-09-23 21:53:35.310849352 +0200 +--- src/os_win32.c 2014-10-06 18:37:27.437277105 +0200 +*************** +*** 2775,2783 **** + 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) +--- 2775,2784 ---- + if (p != NULL) + { + char_u *q; +! WCHAR buf[_MAX_PATH + 1]; + +! wcsncpy(buf, p, _MAX_PATH); +! buf[_MAX_PATH] = L'\0'; + vim_free(p); + + if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK) +*** ../vim-7.4.464/src/version.c 2014-10-06 18:10:04.521273516 +0200 +--- src/version.c 2014-10-06 18:40:47.361277541 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 465, + /**/ + +-- +Get a life? What is the URL where it can be downloaded? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 1623a15669a06c8e5348975e4bfa2f5865b7c337 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 7 Oct 2014 18:00:13 +0200 Subject: [PATCH 0061/1616] - patchlevel 465 --- README.patches | 4 +++- vim.spec | 9 ++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index 5742d6cf..376ba1ad 100644 --- a/README.patches +++ b/README.patches @@ -469,7 +469,7 @@ Individual patches for Vim 7.4: 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 - 7513 7.4.446 environment for executing autocommand may not be restored. + 7513 7.4.446 environment for executing autocommand may not be restored 4082 7.4.447 spell files from Hunspell may generate a lot of errors 2691 7.4.448 MS-Windows: Using ETO_IGNORELANGUAGE causes problems 3740 7.4.449 can't easily close the help window @@ -486,3 +486,5 @@ Individual patches for Vim 7.4: 2497 7.4.461 MS-Windows: When collate is on the number of copies is too high 2454 7.4.462 Setting the local value of 'backupcopy' empty gives an error 1844 7.4.463 tests 86 and 87 may hang on MS-Windows + 1536 7.4.464 (after 7.4.459) compiler warning + 1588 7.4.465 crash when expanding a very long string diff --git a/vim.spec b/vim.spec index 6a874f3b..2a41b241 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 463 +%define patchlevel 465 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -510,6 +510,8 @@ Patch460: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.460 Patch461: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.461 Patch462: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.462 Patch463: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.463 +Patch464: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.464 +Patch465: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.465 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1119,6 +1121,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch461 -p0 %patch462 -p0 %patch463 -p0 +%patch464 -p0 +%patch465 -p0 # install spell files %if %{withvimspell} @@ -1635,6 +1639,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Oct 07 2014 Karsten Hopp 7.4.465-1 +- patchlevel 465 + * Tue Sep 30 2014 Karsten Hopp 7.4.463-1 - patchlevel 463 From 5468d263b785e6f1e28af4760b8b3d24854725e5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:11 +0200 Subject: [PATCH 0062/1616] - patchlevel 466 --- 7.4.466 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.466 diff --git a/7.4.466 b/7.4.466 new file mode 100644 index 00000000..79c463d1 --- /dev/null +++ b/7.4.466 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.466 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.466 (after 7.4.460) +Problem: CTRL-W } does not open preview window. (Erik Falor) +Solution: Don't set g_do_tagpreview for CTRL-W }. +Files: src/window.c + + +*** ../vim-7.4.465/src/window.c 2014-09-24 13:26:39.954971642 +0200 +--- src/window.c 2014-10-09 10:30:37.712864442 +0200 +*************** +*** 485,491 **** + else + postponed_split = -1; + #ifdef FEAT_QUICKFIX +! g_do_tagpreview = 0; + #endif + + /* Execute the command right here, required when "wincmd ]" +--- 485,492 ---- + else + postponed_split = -1; + #ifdef FEAT_QUICKFIX +! if (nchar != '}') +! g_do_tagpreview = 0; + #endif + + /* Execute the command right here, required when "wincmd ]" +*** ../vim-7.4.465/src/version.c 2014-10-07 10:38:34.737403070 +0200 +--- src/version.c 2014-10-09 10:44:22.848866244 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 466, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +239. You think "surfing" is something you do on dry land. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 6fa22328fe083ae50bf255b2c8f849037f159541 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:11 +0200 Subject: [PATCH 0063/1616] - patchlevel 467 --- 7.4.467 | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 7.4.467 diff --git a/7.4.467 b/7.4.467 new file mode 100644 index 00000000..03b226b9 --- /dev/null +++ b/7.4.467 @@ -0,0 +1,144 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.467 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.467 +Problem: 'linebreak' does not work well together with Visual mode. +Solution: Disable 'linebreak' while applying an operator. Fix the test. + (Christian Brabandt) +Files: src/normal.c, src/screen.c, src/testdir/test_listlbr.in, + src/testdir/test_listlbr.ok + + +*** ../vim-7.4.466/src/normal.c 2014-08-30 13:32:03.406623315 +0200 +--- src/normal.c 2014-10-09 13:17:59.264886376 +0200 +*************** +*** 1380,1385 **** +--- 1380,1391 ---- + pos_T old_cursor; + int empty_region_error; + int restart_edit_save; ++ #ifdef FEAT_LINEBREAK ++ int lbr_saved = curwin->w_p_lbr; ++ ++ curwin->w_p_lbr = FALSE; /* avoid a problem with unwanted linebreaks in ++ * block mode */ ++ #endif + + /* The visual area is remembered for redo */ + static int redo_VIsual_mode = NUL; /* 'v', 'V', or Ctrl-V */ +*************** +*** 2136,2141 **** +--- 2142,2150 ---- + oap->block_mode = FALSE; + clearop(oap); + } ++ #ifdef FEAT_LINEBREAK ++ curwin->w_p_lbr = lbr_saved; ++ #endif + } + + /* +*** ../vim-7.4.466/src/screen.c 2014-08-29 12:08:39.686423658 +0200 +--- src/screen.c 2014-10-09 13:18:52.868886493 +0200 +*************** +*** 1584,1592 **** + */ + if (VIsual_mode == Ctrl_V) + { +! colnr_T fromc, toc; + + getvcols(wp, &VIsual, &curwin->w_cursor, &fromc, &toc); + ++toc; + if (curwin->w_curswant == MAXCOL) + toc = MAXCOL; +--- 1584,1600 ---- + */ + if (VIsual_mode == Ctrl_V) + { +! colnr_T fromc, toc; +! #if defined(FEAT_VIRTUALEDIT) && defined(FEAT_LINEBREAK) +! int save_ve_flags = ve_flags; + ++ if (curwin->w_p_lbr) ++ ve_flags = VE_ALL; ++ #endif + getvcols(wp, &VIsual, &curwin->w_cursor, &fromc, &toc); ++ #if defined(FEAT_VIRTUALEDIT) && defined(FEAT_LINEBREAK) ++ ve_flags = save_ve_flags; ++ #endif + ++toc; + if (curwin->w_curswant == MAXCOL) + toc = MAXCOL; +*** ../vim-7.4.466/src/testdir/test_listlbr.in 2014-08-30 18:10:15.106659776 +0200 +--- src/testdir/test_listlbr.in 2014-10-09 13:16:33.072886187 +0200 +*************** +*** 2,8 **** + + STARTTEST + :so small.vim +! :if !exists("+linebreak") || !exists("+conceal") | e! test.ok | w! test.out | qa! | endif + :10new|:vsp|:vert resize 20 + :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \" + :norm! zt +--- 2,8 ---- + + STARTTEST + :so small.vim +! :if !exists("+linebreak") || !has("conceal") | e! test.ok | w! test.out | qa! | endif + :10new|:vsp|:vert resize 20 + :put =\"\tabcdef hijklmn\tpqrstuvwxyz_1060ABCDEFGHIJKLMNOP \" + :norm! zt +*************** +*** 56,61 **** +--- 56,69 ---- + :syn match All /.*/ contains=ConcealVar + :let line=ScreenChar(winwidth(0)) + :call DoRecordScreen() ++ :set cpo&vim linebreak ++ :let g:test ="Test 6: set linebreak with visual block mode" ++ :let line="REMOVE: this not" ++ :$put =line ++ :let line="REMOVE: aaaaaaaaaaaaa" ++ :$put =line ++ :1/^REMOVE: ++ 0jf x:$put + :%w! test.out + :qa! + ENDTEST +*** ../vim-7.4.466/src/testdir/test_listlbr.ok 2014-08-29 12:08:39.686423658 +0200 +--- src/testdir/test_listlbr.ok 2014-10-09 13:16:33.072886187 +0200 +*************** +*** 32,34 **** +--- 32,38 ---- + ~ + ~ + ~ ++ this not ++ aaaaaaaaaaaaa ++ REMOVE: ++ REMOVE: +*** ../vim-7.4.466/src/version.c 2014-10-09 10:44:33.196866267 +0200 +--- src/version.c 2014-10-09 13:16:44.976886213 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 467, + /**/ + +-- +"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 7d5e9df7a37ae7568199183947f113371053dbe4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:12 +0200 Subject: [PATCH 0064/1616] - patchlevel 468 --- 7.4.468 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.4.468 diff --git a/7.4.468 b/7.4.468 new file mode 100644 index 00000000..d0751865 --- /dev/null +++ b/7.4.468 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.468 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.468 +Problem: Issue 26: CTRL-C does not interrupt after it was mapped and then + unmapped. +Solution: Reset mapped_ctrl_c. (Christian Brabandt) +Files: src/getchar.c + + +*** ../vim-7.4.467/src/getchar.c 2014-07-30 16:00:45.539553496 +0200 +--- src/getchar.c 2014-10-09 13:34:09.988888496 +0200 +*************** +*** 3707,3712 **** +--- 3707,3715 ---- + { + if (!did_it) + retval = 2; /* no match */ ++ else if (*keys == Ctrl_C) ++ /* If CTRL-C has been unmapped, reuse it for Interrupting. */ ++ mapped_ctrl_c = FALSE; + goto theend; + } + +*************** +*** 3739,3745 **** + goto theend; + } + +! /* If CTRL-C has been mapped, don't always use it for Interrupting */ + if (*keys == Ctrl_C) + mapped_ctrl_c = TRUE; + +--- 3742,3748 ---- + goto theend; + } + +! /* If CTRL-C has been mapped, don't always use it for Interrupting. */ + if (*keys == Ctrl_C) + mapped_ctrl_c = TRUE; + +*** ../vim-7.4.467/src/version.c 2014-10-09 13:22:41.808886993 +0200 +--- src/version.c 2014-10-09 13:29:56.252887942 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 468, + /**/ + +-- +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 72634d773ac47bd9636b693fa0398b8db418c484 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:13 +0200 Subject: [PATCH 0065/1616] - patchlevel 469 --- 7.4.469 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.469 diff --git a/7.4.469 b/7.4.469 new file mode 100644 index 00000000..f6843d29 --- /dev/null +++ b/7.4.469 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.469 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.469 (after 7.4.467) +Problem: Can't build with MSVC. (Ken Takata) +Solution: Move the assignment after the declarations. +Files: src/normal.c + + +*** ../vim-7.4.468/src/normal.c 2014-10-09 13:22:41.804886993 +0200 +--- src/normal.c 2014-10-09 14:46:05.728897923 +0200 +*************** +*** 1382,1390 **** + int restart_edit_save; + #ifdef FEAT_LINEBREAK + int lbr_saved = curwin->w_p_lbr; +- +- curwin->w_p_lbr = FALSE; /* avoid a problem with unwanted linebreaks in +- * block mode */ + #endif + + /* The visual area is remembered for redo */ +--- 1382,1387 ---- +*************** +*** 1396,1401 **** +--- 1393,1402 ---- + int include_line_break = FALSE; + #endif + ++ #ifdef FEAT_LINEBREAK ++ curwin->w_p_lbr = FALSE; /* Avoid a problem with unwanted linebreaks in ++ * block mode. */ ++ #endif + #if defined(FEAT_CLIPBOARD) + /* + * Yank the visual area into the GUI selection register before we operate +*** ../vim-7.4.468/src/version.c 2014-10-09 13:36:12.736888764 +0200 +--- src/version.c 2014-10-09 14:46:58.760898039 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 469, + /**/ + +-- +"After a few years of marriage a man can look right at a woman +without seeing her and a woman can see right through a man +without looking at him." + - Helen Rowland + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From dc52cdb172b8185345ca95512581d1979d0bd800 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:13 +0200 Subject: [PATCH 0066/1616] - patchlevel 470 --- 7.4.470 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.470 diff --git a/7.4.470 b/7.4.470 new file mode 100644 index 00000000..2066df6f --- /dev/null +++ b/7.4.470 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.470 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.470 +Problem: Test 11 and 100 do not work properly on Windows. +Solution: Avoid using feedkeys(). (Ken Takata) +Files: src/testdir/Make_dos.mak, src/testdir/test11.in, + src/testdir/test100.in + + +*** ../vim-7.4.469/src/testdir/Make_dos.mak 2014-08-16 18:36:38.593993280 +0200 +--- src/testdir/Make_dos.mak 2014-10-09 15:26:56.720903277 +0200 +*************** +*** 63,69 **** + 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 + + report: + @echo "" +--- 63,69 ---- + 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 "" +*** ../vim-7.4.469/src/testdir/test11.in 2010-08-08 13:16:36.000000000 +0200 +--- src/testdir/test11.in 2014-10-09 15:34:19.588904244 +0200 +*************** +*** 46,58 **** + :w>>test.out " Append it to the output file + :set shelltemp " need temp files here + :au FilterReadPre *.out call rename(expand(""), expand("") . ".t") +! :au FilterReadPre *.out exe '!sed s/e/E/ ' . shellescape(expand("")) . ".t >" . shellescape(expand("")) +! :au FilterReadPre *.out exe '!rm ' . shellescape(expand("")) . '.t' + :au FilterReadPost *.out '[,']s/x/X/g + :e! test.out " Edit the output file + :23,$!cat + :23,$s/\r$// " remove CR for when sed adds them +! :au! FileReadPre *.gz exe '!gzip -d ' . shellescape(expand("")) + :au FileReadPre *.gz call rename(expand(":r"), expand("")) + :au! FileReadPost *.gz '[,']s/l/L/ + :$r Xtestfile.gz " Read compressed file +--- 46,58 ---- + :w>>test.out " Append it to the output file + :set shelltemp " need temp files here + :au FilterReadPre *.out call rename(expand(""), expand("") . ".t") +! :au FilterReadPre *.out exe 'silent !sed s/e/E/ ' . shellescape(expand("")) . ".t >" . shellescape(expand("")) +! :au FilterReadPre *.out exe 'silent !rm ' . shellescape(expand("")) . '.t' + :au FilterReadPost *.out '[,']s/x/X/g + :e! test.out " Edit the output file + :23,$!cat + :23,$s/\r$// " remove CR for when sed adds them +! :au! FileReadPre *.gz exe 'silent !gzip -d ' . shellescape(expand("")) + :au FileReadPre *.gz call rename(expand(":r"), expand("")) + :au! FileReadPost *.gz '[,']s/l/L/ + :$r Xtestfile.gz " Read compressed file +*** ../vim-7.4.469/src/testdir/test100.in 2014-08-16 17:34:31.186128463 +0200 +--- src/testdir/test100.in 2014-10-09 15:27:44.404903381 +0200 +*************** +*** 16,22 **** + :new one + :0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)' + :call FillBuffer() +! :call feedkeys(":earlier 10\n", 't') + :call UndoLevel() + :set ff=unix + :%w! test.out +--- 16,22 ---- + :new one + :0put ='ONE: expecting global undolevels: 5, local undolevels: -123456 (default)' + :call FillBuffer() +! :earlier 10 + :call UndoLevel() + :set ff=unix + :%w! test.out +*************** +*** 24,30 **** + :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() +--- 24,30 ---- + :0put ='TWO: expecting global undolevels: 5, local undolevels: 2 (first) then 10 (afterwards)' + :setlocal ul=2 + :call FillBuffer() +! :earlier 10 + :call UndoLevel() + :setlocal ul=10 + :call UndoLevel() +*** ../vim-7.4.469/src/version.c 2014-10-09 14:48:26.284898230 +0200 +--- src/version.c 2014-10-09 15:34:43.088904296 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 470, + /**/ + +-- +"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 ea5abb96db214b27a7b2cc08a0b04c9bc630651e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:14 +0200 Subject: [PATCH 0067/1616] - patchlevel 471 --- 7.4.471 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.4.471 diff --git a/7.4.471 b/7.4.471 new file mode 100644 index 00000000..37cbb27b --- /dev/null +++ b/7.4.471 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.471 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.471 +Problem: MS-Windows: When printer name contains multi-byte, the name is + displayed as ???. +Solution: Convert the printer name from the active codepage to 'encoding'. + (Yasuhiro Matsumoto) +Files: src/os_mswin.c + + +*** ../vim-7.4.470/src/os_mswin.c 2014-09-27 11:18:08.179520979 +0200 +--- src/os_mswin.c 2014-10-09 17:03:20.500915911 +0200 +*************** +*** 1635,1645 **** +--- 1635,1667 ---- + char_u *printer_name = (char_u *)devname + devname->wDeviceOffset; + char_u *port_name = (char_u *)devname +devname->wOutputOffset; + char_u *text = _("to %s on %s"); ++ #ifdef FEAT_MBYTE ++ char_u *printer_name_orig = printer_name; ++ char_u *port_name_orig = port_name; + ++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) ++ { ++ char_u *to_free = NULL; ++ int maxlen; ++ ++ acp_to_enc(printer_name, STRLEN(printer_name), &to_free, &maxlen); ++ if (to_free != NULL) ++ printer_name = to_free; ++ acp_to_enc(port_name, STRLEN(port_name), &to_free, &maxlen); ++ if (to_free != NULL) ++ port_name = to_free; ++ } ++ #endif + prt_name = alloc((unsigned)(STRLEN(printer_name) + STRLEN(port_name) + + STRLEN(text))); + if (prt_name != NULL) + wsprintf(prt_name, text, printer_name, port_name); ++ #ifdef FEAT_MBYTE ++ if (printer_name != printer_name_orig) ++ vim_free(printer_name); ++ if (port_name != port_name_orig) ++ vim_free(port_name); ++ #endif + } + GlobalUnlock(prt_dlg.hDevNames); + +*** ../vim-7.4.470/src/version.c 2014-10-09 15:37:02.492904600 +0200 +--- src/version.c 2014-10-09 17:00:58.632915601 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 471, + /**/ + +-- +"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 0a0ee9777765220eb304cf21c4167e86374fe1a9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 9 Oct 2014 18:00:15 +0200 Subject: [PATCH 0068/1616] - patchlevel 471 --- README.patches | 5 +++++ vim.spec | 17 ++++++++++++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 376ba1ad..32036f90 100644 --- a/README.patches +++ b/README.patches @@ -488,3 +488,8 @@ Individual patches for Vim 7.4: 1844 7.4.463 tests 86 and 87 may hang on MS-Windows 1536 7.4.464 (after 7.4.459) compiler warning 1588 7.4.465 crash when expanding a very long string + 1576 7.4.466 (after 7.4.460) CTRL-W } does not open preview window + 4117 7.4.467 'linebreak' does not work well together with Visual mode + 1892 7.4.469 (after 7.4.467) can't build with MSVC + 4675 7.4.470 test 11 and 100 do not work properly on Windows + 2350 7.4.471 MS-Windows: multi-byte printer name is displayed as ??? diff --git a/vim.spec b/vim.spec index 2a41b241..0c962f94 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 465 +%define patchlevel 471 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -512,6 +512,12 @@ Patch462: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.462 Patch463: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.463 Patch464: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.464 Patch465: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.465 +Patch466: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.466 +Patch467: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.467 +Patch468: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.468 +Patch469: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.469 +Patch470: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.470 +Patch471: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.471 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1123,6 +1129,12 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch463 -p0 %patch464 -p0 %patch465 -p0 +%patch466 -p0 +%patch467 -p0 +%patch468 -p0 +%patch469 -p0 +%patch470 -p0 +%patch471 -p0 # install spell files %if %{withvimspell} @@ -1639,6 +1651,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Oct 09 2014 Karsten Hopp 7.4.471-1 +- patchlevel 471 + * Tue Oct 07 2014 Karsten Hopp 7.4.465-1 - patchlevel 465 From 897c477c0833f2ea28c7a742b8477a2f11aa18e2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 10 Oct 2014 18:00:09 +0200 Subject: [PATCH 0069/1616] - patchlevel 472 --- 7.4.472 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.472 diff --git a/7.4.472 b/7.4.472 new file mode 100644 index 00000000..93cabea9 --- /dev/null +++ b/7.4.472 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.472 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.472 +Problem: The "precedes" entry in 'listchar' will be drawn when 'showbreak + is set and list is not. +Solution: Only draw this character when 'list' is on. (Christian Brabandt) +Files: src/screen.c + + +*** ../vim-7.4.471/src/screen.c 2014-10-09 13:22:41.804886993 +0200 +--- src/screen.c 2014-10-10 15:22:41.589091447 +0200 +*************** +*** 4901,4906 **** +--- 4901,4907 ---- + * special character (via 'listchars' option "precedes:". + */ + if (lcs_prec_todo != NUL ++ && wp->w_p_list + && (wp->w_p_wrap ? wp->w_skipcol > 0 : wp->w_leftcol > 0) + #ifdef FEAT_DIFF + && filler_todo <= 0 +*** ../vim-7.4.471/src/version.c 2014-10-09 17:05:51.948916242 +0200 +--- src/version.c 2014-10-10 15:22:06.405091370 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 472, + /**/ + +-- +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 /// From 1b0174984d7351b464139006aa0401def8419248 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 10 Oct 2014 18:00:09 +0200 Subject: [PATCH 0070/1616] - patchlevel 473 --- 7.4.473 | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 7.4.473 diff --git a/7.4.473 b/7.4.473 new file mode 100644 index 00000000..f9b9a7aa --- /dev/null +++ b/7.4.473 @@ -0,0 +1,47 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.473 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.473 +Problem: Cursor movement is incorrect when there is a number + column/sign/fold column and 'sbr' is displayed. +Solution: Adjust the column for 'sbr'. (Christian Brabandt) +Files: src/charset.c + + +*** ../vim-7.4.472/src/charset.c 2014-08-24 21:19:22.224571318 +0200 +--- src/charset.c 2014-10-10 15:24:26.257091676 +0200 +*************** +*** 1184,1189 **** +--- 1184,1191 ---- + { + col -= W_WIDTH(wp); + numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); ++ if (*p_sbr != NUL && col >= (colnr_T)STRLEN(p_sbr)) ++ col -= (colnr_T)STRLEN(p_sbr); + if (numberextra > 0) + col = col % numberextra; + } +*** ../vim-7.4.472/src/version.c 2014-10-10 15:28:41.985092234 +0200 +--- src/version.c 2014-10-10 15:32:19.029092709 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 473, + /**/ + +-- +Vi is clearly superior to emacs, since "vi" has only two characters +(and two keystrokes), while "emacs" has five. (Randy C. Ford) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From c05b40bdab8dc7cb70124a187a64f68df85f9b5f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 10 Oct 2014 18:00:10 +0200 Subject: [PATCH 0071/1616] - patchlevel 473 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 32036f90..36122107 100644 --- a/README.patches +++ b/README.patches @@ -493,3 +493,5 @@ Individual patches for Vim 7.4: 1892 7.4.469 (after 7.4.467) can't build with MSVC 4675 7.4.470 test 11 and 100 do not work properly on Windows 2350 7.4.471 MS-Windows: multi-byte printer name is displayed as ??? + 1527 7.4.472 drawing "precedes" entry of 'listchar' when 'list' is not set + 1554 7.4.473 cursor position incorrect with number column and 'sbr' diff --git a/vim.spec b/vim.spec index 0c962f94..0ff35174 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 471 +%define patchlevel 473 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -518,6 +518,8 @@ Patch468: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.468 Patch469: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.469 Patch470: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.470 Patch471: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.471 +Patch472: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.472 +Patch473: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.473 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1135,6 +1137,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch469 -p0 %patch470 -p0 %patch471 -p0 +%patch472 -p0 +%patch473 -p0 # install spell files %if %{withvimspell} @@ -1651,6 +1655,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Oct 10 2014 Karsten Hopp 7.4.473-1 +- patchlevel 473 + * Thu Oct 09 2014 Karsten Hopp 7.4.471-1 - patchlevel 471 From 8f96458f457787577e758eb9caa0de6be1e2ec49 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 11 Oct 2014 18:00:10 +0200 Subject: [PATCH 0072/1616] - patchlevel 474 --- 7.4.474 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.474 diff --git a/7.4.474 b/7.4.474 new file mode 100644 index 00000000..829622ec --- /dev/null +++ b/7.4.474 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.474 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.474 +Problem: AIX compiler can't handle // comment. Issue 265. +Solution: Remove that line. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.473/src/regexp_nfa.c 2014-09-09 17:18:44.008540299 +0200 +--- src/regexp_nfa.c 2014-10-11 12:44:38.033259459 +0200 +*************** +*** 4407,4413 **** + switch (state->c) + { + case NFA_MATCH: +- // nfa_match = TRUE; + break; + + case NFA_SPLIT: +--- 4407,4412 ---- +*** ../vim-7.4.473/src/version.c 2014-10-10 15:34:29.657092994 +0200 +--- src/version.c 2014-10-11 12:45:43.393259602 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 474, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +252. You vote for foreign officials. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 0ccd2610ffcdbc7eb0f14501dd156ebee8bdea6a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 11 Oct 2014 18:00:11 +0200 Subject: [PATCH 0073/1616] - patchlevel 475 --- 7.4.475 | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 228 insertions(+) create mode 100644 7.4.475 diff --git a/7.4.475 b/7.4.475 new file mode 100644 index 00000000..d201c09a --- /dev/null +++ b/7.4.475 @@ -0,0 +1,228 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.475 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.475 +Problem: Can't compile on a system where Xutf8SetWMProperties() is not in + the X11 library. Issue 265. +Solution: Add a configure check. +Files: src/configure.in, src/auto/configure, src/config.h.in, + src/os_unix.c + + +*** ../vim-7.4.474/src/configure.in 2014-08-17 17:05:39.159057796 +0200 +--- src/configure.in 2014-10-11 14:40:18.557274620 +0200 +*************** +*** 3730,3750 **** + dnl Check for multibyte locale functions + dnl Find out if _Xsetlocale() is supported by libX11. + dnl Check if X_LOCALE should be defined. +! +! if test "$enable_multibyte" = "yes"; then + cflags_save=$CFLAGS +! ldflags_save=$LDFLAGS +! if test "x$x_includes" != "xNONE" ; then +! CFLAGS="$CFLAGS -I$x_includes" +! LDFLAGS="$X_LIBS $LDFLAGS -lX11" +! AC_MSG_CHECKING(whether X_LOCALE needed) +! AC_TRY_COMPILE([#include ],, +! AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes) +! AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)), +! AC_MSG_RESULT(no)) +! fi + CFLAGS=$cflags_save +! LDFLAGS=$ldflags_save + fi + + dnl Link with xpg4, it is said to make Korean locale working +--- 3730,3753 ---- + dnl Check for multibyte locale functions + dnl Find out if _Xsetlocale() is supported by libX11. + dnl Check if X_LOCALE should be defined. +! if test "x$with_x" = "xyes"; then + cflags_save=$CFLAGS +! libs_save=$LIBS +! LIBS="$LIBS $X_LIBS $GUI_LIB_LOC $GUI_X_LIBS $X_PRE_LIBS $X_LIB $X_EXTRA_LIBS" +! CFLAGS="$CFLAGS $X_CFLAGS" +! +! AC_MSG_CHECKING(whether X_LOCALE needed) +! AC_TRY_COMPILE([#include ],, +! AC_TRY_LINK_FUNC([_Xsetlocale], [AC_MSG_RESULT(yes) +! AC_DEFINE(X_LOCALE)], AC_MSG_RESULT(no)), +! AC_MSG_RESULT(no)) +! +! AC_MSG_CHECKING(whether Xutf8SetWMProperties() can be used) +! AC_TRY_LINK_FUNC([Xutf8SetWMProperties], [AC_MSG_RESULT(yes) +! AC_DEFINE(HAVE_XUTF8SETWMPROPERTIES)], AC_MSG_RESULT(no)) +! + CFLAGS=$cflags_save +! LIBS=$libs_save + fi + + dnl Link with xpg4, it is said to make Korean locale working +*** ../vim-7.4.474/src/auto/configure 2014-08-17 17:05:39.163057796 +0200 +--- src/auto/configure 2014-10-11 14:40:51.421274692 +0200 +*************** +*** 12732,12747 **** + fi + + +! +! if test "$enable_multibyte" = "yes"; then + cflags_save=$CFLAGS +! ldflags_save=$LDFLAGS +! if test "x$x_includes" != "xNONE" ; then +! CFLAGS="$CFLAGS -I$x_includes" +! LDFLAGS="$X_LIBS $LDFLAGS -lX11" +! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether X_LOCALE needed" >&5 + $as_echo_n "checking whether X_LOCALE needed... " >&6; } +! cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int +--- 12732,12746 ---- + fi + + +! if test "x$with_x" = "xyes"; then + cflags_save=$CFLAGS +! libs_save=$LIBS +! LIBS="$LIBS $X_LIBS $GUI_LIB_LOC $GUI_X_LIBS $X_PRE_LIBS $X_LIB $X_EXTRA_LIBS" +! CFLAGS="$CFLAGS $X_CFLAGS" +! +! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether X_LOCALE needed" >&5 + $as_echo_n "checking whether X_LOCALE needed... " >&6; } +! cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + #include + int +*************** +*** 12774,12780 **** + 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 X_LOCALE 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +--- 12773,12779 ---- + 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 X_LOCALE 1" >>confdefs.h + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +*************** +*** 12787,12795 **** + $as_echo "no" >&6; } + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +! fi + CFLAGS=$cflags_save +! LDFLAGS=$ldflags_save + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _xpg4_setrunelocale in -lxpg4" >&5 +--- 12786,12826 ---- + $as_echo "no" >&6; } + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +! +! { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Xutf8SetWMProperties() can be used" >&5 +! $as_echo_n "checking whether Xutf8SetWMProperties() can be used... " >&6; } +! cat confdefs.h - <<_ACEOF >conftest.$ac_ext +! /* end confdefs.h. */ +! +! /* Override any GCC internal prototype to avoid an error. +! Use char because int might match the return type of a GCC +! builtin and then its argument prototype would still apply. */ +! #ifdef __cplusplus +! extern "C" +! #endif +! char Xutf8SetWMProperties (); +! int +! main () +! { +! return Xutf8SetWMProperties (); +! ; +! 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_XUTF8SETWMPROPERTIES 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_exeext conftest.$ac_ext +! + CFLAGS=$cflags_save +! LIBS=$libs_save + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _xpg4_setrunelocale in -lxpg4" >&5 +*** ../vim-7.4.474/src/config.h.in 2014-04-02 14:05:33.995887839 +0200 +--- src/config.h.in 2014-10-11 14:40:03.841274588 +0200 +*************** +*** 446,448 **** +--- 446,451 ---- + + /* Define if we have AvailabilityMacros.h on Mac OS X */ + #undef HAVE_AVAILABILITYMACROS_H ++ ++ /* Define if Xutf8SetWMProperties() is in an X library. */ ++ #undef HAVE_XUTF8SETWMPROPERTIES +*** ../vim-7.4.474/src/os_unix.c 2014-08-29 12:58:38.242430208 +0200 +--- src/os_unix.c 2014-10-11 14:47:04.601275507 +0200 +*************** +*** 1960,1968 **** + return retval; + } + +! /* Are Xutf8 functions available? Avoid error from old compilers. */ + #if defined(X_HAVE_UTF8_STRING) && defined(FEAT_MBYTE) +! # if X_HAVE_UTF8_STRING + # define USE_UTF8_STRING + # endif + #endif +--- 1960,1971 ---- + return retval; + } + +! /* Xutf8 functions are not avaialble on older systems. Note that on some +! * systems X_HAVE_UTF8_STRING may be defined in a header file but +! * Xutf8SetWMProperties() is not in the X11 library. Configure checks for +! * that and defines HAVE_XUTF8SETWMPROPERTIES. */ + #if defined(X_HAVE_UTF8_STRING) && defined(FEAT_MBYTE) +! # if X_HAVE_UTF8_STRING && HAVE_XUTF8SETWMPROPERTIES + # define USE_UTF8_STRING + # endif + #endif +*** ../vim-7.4.474/src/version.c 2014-10-11 12:48:22.541259950 +0200 +--- src/version.c 2014-10-11 14:42:47.821274946 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 475, + /**/ + +-- +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 35af1a97033b9669f9eafe3247398b19641f4733 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 13 Oct 2014 10:47:26 +0200 Subject: [PATCH 0074/1616] =?UTF-8?q?add=20support=20for=20license=20macro?= =?UTF-8?q?=20(Petr=20=C5=A0abata)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.patches | 2 ++ vim-7.4-licensemacro-1151450.patch | 15 +++++++++++++++ vim.spec | 16 ++++++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 vim-7.4-licensemacro-1151450.patch diff --git a/README.patches b/README.patches index 36122107..634a6110 100644 --- a/README.patches +++ b/README.patches @@ -495,3 +495,5 @@ Individual patches for Vim 7.4: 2350 7.4.471 MS-Windows: multi-byte printer name is displayed as ??? 1527 7.4.472 drawing "precedes" entry of 'listchar' when 'list' is not set 1554 7.4.473 cursor position incorrect with number column and 'sbr' + 1293 7.4.474 AIX compiler can't handle // comment + 7374 7.4.475 can't compile if Xutf8SetWMProperties() is not in X11 library diff --git a/vim-7.4-licensemacro-1151450.patch b/vim-7.4-licensemacro-1151450.patch new file mode 100644 index 00000000..3a6e0a71 --- /dev/null +++ b/vim-7.4-licensemacro-1151450.patch @@ -0,0 +1,15 @@ +diff -up vim74_new/runtime/syntax/spec.vim.1151450 vim74_new/runtime/syntax/spec.vim +--- vim74_new/runtime/syntax/spec.vim.1151450 2014-10-13 10:45:07.570944538 +0200 ++++ vim74_new/runtime/syntax/spec.vim 2014-10-13 10:44:09.046945965 +0200 +@@ -88,9 +88,9 @@ syn region specSectionMacroBracketArea o + "%% Files Section %% + "TODO %config valid parameters: missingok\|noreplace + "TODO %verify valid parameters: \(not\)\= \(md5\|atime\|...\) +-syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier ++syn region specFilesArea matchgroup=specSection start='^%[Ff][Ii][Ll][Ee][Ss]\>' skip='%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\|license\)\>' end='^%[a-zA-Z]'me=e-2 contains=specFilesOpts,specFilesDirective,@specListedFiles,specComment,specCommandSpecial,specMacroIdentifier + "tip: remember to include new itens in specFilesArea above +-syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\)\>' ++syn match specFilesDirective contained '%\(attrib\|defattr\|attr\|dir\|config\|docdir\|doc\|lang\|verify\|ghost\|license\)\>' + + "valid options for certain section headers + syn match specDescriptionOpts contained '\s-[ln]\s*\a'ms=s+1,me=e-1 diff --git a/vim.spec b/vim.spec index 0ff35174..c100bd89 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 473 +%define patchlevel 475 %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: 1%{?dist} +Release: 2%{?dist} License: Vim Group: Applications/Editors Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 @@ -520,6 +520,8 @@ Patch470: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.470 Patch471: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.471 Patch472: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.472 Patch473: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.473 +Patch474: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.474 +Patch475: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.475 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -532,6 +534,7 @@ Patch3010: vim-7.0-specedit.patch 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 Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: python-devel ncurses-devel gettext perl-devel @@ -1139,6 +1142,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch471 -p0 %patch472 -p0 %patch473 -p0 +%patch474 -p0 +%patch475 -p0 # install spell files %if %{withvimspell} @@ -1157,6 +1162,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch3012 -p1 %patch3013 -p1 +%patch3014 -p1 %build cp -f %{SOURCE5} . @@ -1655,6 +1661,12 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Oct 13 2014 Karsten Hopp 7.4.475-2 +- add support for %%license macro (Petr Å abata) + +* Sat Oct 11 2014 Karsten Hopp 7.4.475-1 +- patchlevel 475 + * Fri Oct 10 2014 Karsten Hopp 7.4.473-1 - patchlevel 473 From 0a31fe4fc7df56e80630a0035c933c92fd63be00 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 15 Oct 2014 18:00:14 +0200 Subject: [PATCH 0075/1616] - patchlevel 476 --- 7.4.476 | 88 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 7.4.476 diff --git a/7.4.476 b/7.4.476 new file mode 100644 index 00000000..68245955 --- /dev/null +++ b/7.4.476 @@ -0,0 +1,88 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.476 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.476 +Problem: MingW: compiling with "XPM=no" doesn't work. +Solution: Check for the "no" value. (KF Leong) Also for Cygwin. (Ken + Takata) +Files: src/Make_ming.mak, src/Make_cyg.mak + + +*** ../vim-7.4.475/src/Make_ming.mak 2014-08-10 16:31:47.376709213 +0200 +--- src/Make_ming.mak 2014-10-15 12:00:35.986008598 +0200 +*************** +*** 22,28 **** + # http://www.matcode.com/mpress.htm + # + # Maintained by Ron Aaron et al. +! # Updated 2012 Sep 5. + + #>>>>> choose options: + # set to yes for a debug build +--- 22,28 ---- + # http://www.matcode.com/mpress.htm + # + # Maintained by Ron Aaron et al. +! # Updated 2014 Oct 13. + + #>>>>> choose options: + # set to yes for a debug build +*************** +*** 613,619 **** + USE_STDCPLUS = yes + endif + endif +! ifdef XPM + # Only allow XPM for a GUI build. + ifeq (yes, $(GUI)) + OBJ += $(OUTDIR)/xpm_w32.o +--- 613,619 ---- + USE_STDCPLUS = yes + endif + endif +! ifneq ($(XPM),no) + # Only allow XPM for a GUI build. + ifeq (yes, $(GUI)) + OBJ += $(OUTDIR)/xpm_w32.o +*** ../vim-7.4.475/src/Make_cyg.mak 2014-08-10 16:31:47.372709213 +0200 +--- src/Make_cyg.mak 2014-10-15 12:06:01.170009309 +0200 +*************** +*** 485,491 **** + endif + + ############################## +! ifdef XPM + # Only allow XPM for a GUI build. + DEFINES += -DFEAT_XPM_W32 + INCLUDES += -I$(XPM)/include +--- 485,491 ---- + endif + + ############################## +! ifneq ($(XPM),no) + # Only allow XPM for a GUI build. + DEFINES += -DFEAT_XPM_W32 + INCLUDES += -I$(XPM)/include +*** ../vim-7.4.475/src/version.c 2014-10-11 14:47:22.833275547 +0200 +--- src/version.c 2014-10-15 12:03:39.186008999 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 476, + /**/ + +-- +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 9c82c0e1eee935ddac18d5623cfb5e44b418049f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 15 Oct 2014 18:00:15 +0200 Subject: [PATCH 0076/1616] - patchlevel 477 --- 7.4.477 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.477 diff --git a/7.4.477 b/7.4.477 new file mode 100644 index 00000000..0fe507a9 --- /dev/null +++ b/7.4.477 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.477 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.477 +Problem: When using ":%diffput" and the other file is empty an extra empty + line remains. +Solution: Set the buf_empty flag. +Files: src/diff.c + + +*** ../vim-7.4.476/src/diff.c 2014-05-28 11:35:33.424011248 +0200 +--- src/diff.c 2014-10-15 12:54:45.778015697 +0200 +*************** +*** 2325,2331 **** + end_skip = 0; + } + +! buf_empty = FALSE; + added = 0; + for (i = 0; i < count; ++i) + { +--- 2325,2331 ---- + end_skip = 0; + } + +! buf_empty = bufempty(); + added = 0; + for (i = 0; i < count; ++i) + { +*** ../vim-7.4.476/src/version.c 2014-10-15 12:07:07.610009454 +0200 +--- src/version.c 2014-10-15 12:37:54.338013488 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 477, + /**/ + +-- + We're knights of the round table + We dance whene'er we're able + We do routines and chorus scenes + With footwork impeccable. + We dine well here in Camelot + We eat ham and jam and spam a lot. + "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 9d0a656b29f58099a996d082cf910242f5c1aec1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 15 Oct 2014 18:00:16 +0200 Subject: [PATCH 0077/1616] - patchlevel 477 --- README.patches | 2 ++ vim.spec | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index 634a6110..898580ae 100644 --- a/README.patches +++ b/README.patches @@ -497,3 +497,5 @@ Individual patches for Vim 7.4: 1554 7.4.473 cursor position incorrect with number column and 'sbr' 1293 7.4.474 AIX compiler can't handle // comment 7374 7.4.475 can't compile if Xutf8SetWMProperties() is not in X11 library + 2408 7.4.476 MingW: compiling with "XPM=no" doesn't work + 1666 7.4.477 ":%diffput" adds an empty line if the other file is empty diff --git a/vim.spec b/vim.spec index c100bd89..a3c082d3 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 475 +%define patchlevel 477 %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 @@ -522,6 +522,8 @@ Patch472: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.472 Patch473: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.473 Patch474: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.474 Patch475: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.475 +Patch476: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.476 +Patch477: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.477 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1144,6 +1146,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch473 -p0 %patch474 -p0 %patch475 -p0 +%patch476 -p0 +%patch477 -p0 # install spell files %if %{withvimspell} @@ -1661,6 +1665,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Oct 15 2014 Karsten Hopp 7.4.477-1 +- patchlevel 477 + * Mon Oct 13 2014 Karsten Hopp 7.4.475-2 - add support for %%license macro (Petr Å abata) From a58b5436da0018c2e25cafe5c5d978bf8afb88f0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 16 Oct 2014 18:00:09 +0200 Subject: [PATCH 0078/1616] - patchlevel 478 --- 7.4.478 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.478 diff --git a/7.4.478 b/7.4.478 new file mode 100644 index 00000000..edb96638 --- /dev/null +++ b/7.4.478 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.478 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.478 +Problem: Using byte length instead of character length for 'showbreak'. +Solution: Compute the character length. (Marco Hinz) +Files: src/charset.c + + +*** ../vim-7.4.477/src/charset.c 2014-10-10 15:34:29.657092994 +0200 +--- src/charset.c 2014-10-15 21:24:05.578082450 +0200 +*************** +*** 1184,1191 **** + { + col -= W_WIDTH(wp); + numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); +! if (*p_sbr != NUL && col >= (colnr_T)STRLEN(p_sbr)) +! col -= (colnr_T)STRLEN(p_sbr); + if (numberextra > 0) + col = col % numberextra; + } +--- 1184,1195 ---- + { + col -= W_WIDTH(wp); + numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); +! if (*p_sbr != NUL) +! { +! colnr_T sbrlen = (colnr_T)MB_CHARLEN(p_sbr); +! if (col >= sbrlen) +! col -= sbrlen; +! } + if (numberextra > 0) + col = col % numberextra; + } +*** ../vim-7.4.477/src/version.c 2014-10-15 12:56:44.006015955 +0200 +--- src/version.c 2014-10-15 21:19:10.414081805 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 478, + /**/ + +-- +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 /// From 77942cb109760c24ce8963ff27e3321092a0e537 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 16 Oct 2014 18:00:10 +0200 Subject: [PATCH 0079/1616] - patchlevel 479 --- 7.4.479 | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 112 insertions(+) create mode 100644 7.4.479 diff --git a/7.4.479 b/7.4.479 new file mode 100644 index 00000000..807daa6b --- /dev/null +++ b/7.4.479 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.479 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.479 +Problem: MS-Windows: The console title can be wrong. +Solution: Take the encoding into account. When restoring the title use the + right function. (Yasuhiro Matsumoto) +Files: src/os_mswin.c, src/os_win32.c + + +*** ../vim-7.4.478/src/os_mswin.c 2014-10-09 17:05:51.944916242 +0200 +--- src/os_mswin.c 2014-10-15 22:46:06.922093200 +0200 +*************** +*** 344,350 **** + int which) + { + #ifndef FEAT_GUI_MSWIN +! mch_settitle((which & 1) ? g_szOrigTitle : NULL, NULL); + #endif + } + +--- 344,350 ---- + int which) + { + #ifndef FEAT_GUI_MSWIN +! SetConsoleTitle(g_szOrigTitle); + #endif + } + +*** ../vim-7.4.478/src/os_win32.c 2014-10-07 10:38:34.737403070 +0200 +--- src/os_win32.c 2014-10-15 22:49:22.358093627 +0200 +*************** +*** 4648,4653 **** +--- 4648,4682 ---- + #ifdef FEAT_TITLE + char szShellTitle[512]; + ++ # ifdef FEAT_MBYTE ++ /* Change the title to reflect that we are in a subshell. */ ++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) ++ { ++ WCHAR szShellTitle[512]; ++ ++ if (GetConsoleTitleW(szShellTitle, ++ sizeof(szShellTitle)/sizeof(WCHAR) - 4) > 0) ++ { ++ if (cmd == NULL) ++ wcscat(szShellTitle, L" :sh"); ++ else ++ { ++ WCHAR *wn = enc_to_utf16(cmd, NULL); ++ ++ if (wn != NULL) ++ { ++ wcscat(szShellTitle, L" - !"); ++ if ((wcslen(szShellTitle) + wcslen(wn) < ++ sizeof(szShellTitle)/sizeof(WCHAR))) ++ wcscat(szShellTitle, wn); ++ SetConsoleTitleW(szShellTitle); ++ vim_free(wn); ++ goto didset; ++ } ++ } ++ } ++ } ++ #endif + /* Change the title to reflect that we are in a subshell. */ + if (GetConsoleTitle(szShellTitle, sizeof(szShellTitle) - 4) > 0) + { +*************** +*** 4659,4665 **** + if ((strlen(szShellTitle) + strlen(cmd) < sizeof(szShellTitle))) + strcat(szShellTitle, cmd); + } +! mch_settitle(szShellTitle, NULL); + } + #endif + +--- 4688,4694 ---- + if ((strlen(szShellTitle) + strlen(cmd) < sizeof(szShellTitle))) + strcat(szShellTitle, cmd); + } +! SetConsoleTitle(szShellTitle); + } + #endif + +*** ../vim-7.4.478/src/version.c 2014-10-15 21:26:35.566082778 +0200 +--- src/version.c 2014-10-15 22:45:44.810093152 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 479, + /**/ + +-- +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 /// From 457b88f8b7525cc19fe94cfc53639ed7084085dd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 16 Oct 2014 18:00:10 +0200 Subject: [PATCH 0080/1616] - patchlevel 480 --- 7.4.480 | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 7.4.480 diff --git a/7.4.480 b/7.4.480 new file mode 100644 index 00000000..4aee4593 --- /dev/null +++ b/7.4.480 @@ -0,0 +1,110 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.480 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.480 (after 7.4.479) +Problem: MS-Windows: Can't build. +Solution: Remove goto, use a flag instead. +Files: src/os_win32.c + + +*** ../vim-7.4.479/src/os_win32.c 2014-10-15 22:50:06.946093724 +0200 +--- src/os_win32.c 2014-10-16 16:09:57.182230006 +0200 +*************** +*** 4646,4654 **** + int x = 0; + int tmode = cur_tmode; + #ifdef FEAT_TITLE +! char szShellTitle[512]; +! + # ifdef FEAT_MBYTE + /* Change the title to reflect that we are in a subshell. */ + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +--- 4646,4655 ---- + int x = 0; + int tmode = cur_tmode; + #ifdef FEAT_TITLE +! char szShellTitle[512]; + # ifdef FEAT_MBYTE ++ int did_set_title = FALSE; ++ + /* Change the title to reflect that we are in a subshell. */ + if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) + { +*************** +*** 4671,4695 **** + wcscat(szShellTitle, wn); + SetConsoleTitleW(szShellTitle); + vim_free(wn); +! goto didset; + } + } + } + } +! #endif +! /* Change the title to reflect that we are in a subshell. */ +! if (GetConsoleTitle(szShellTitle, sizeof(szShellTitle) - 4) > 0) +! { +! if (cmd == NULL) +! strcat(szShellTitle, " :sh"); +! else + { +! strcat(szShellTitle, " - !"); +! if ((strlen(szShellTitle) + strlen(cmd) < sizeof(szShellTitle))) +! strcat(szShellTitle, cmd); + } +- SetConsoleTitle(szShellTitle); +- } + #endif + + out_flush(); +--- 4672,4697 ---- + wcscat(szShellTitle, wn); + SetConsoleTitleW(szShellTitle); + vim_free(wn); +! did_set_title = TRUE; + } + } + } + } +! if (!did_set_title) +! # endif +! /* Change the title to reflect that we are in a subshell. */ +! if (GetConsoleTitle(szShellTitle, sizeof(szShellTitle) - 4) > 0) + { +! if (cmd == NULL) +! strcat(szShellTitle, " :sh"); +! else +! { +! strcat(szShellTitle, " - !"); +! if ((strlen(szShellTitle) + strlen(cmd) < sizeof(szShellTitle))) +! strcat(szShellTitle, cmd); +! } +! SetConsoleTitle(szShellTitle); + } + #endif + + out_flush(); +*** ../vim-7.4.479/src/version.c 2014-10-15 22:50:06.950093724 +0200 +--- src/version.c 2014-10-16 16:11:34.278230218 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 480, + /**/ + +-- +Ten bugs in the hand is better than one as yet undetected. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 79ffbfc5789a4b61793c841e21eab2fa83c4be54 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 16 Oct 2014 18:00:12 +0200 Subject: [PATCH 0081/1616] - patchlevel 480 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 898580ae..2cb3fde1 100644 --- a/README.patches +++ b/README.patches @@ -499,3 +499,6 @@ Individual patches for Vim 7.4: 7374 7.4.475 can't compile if Xutf8SetWMProperties() is not in X11 library 2408 7.4.476 MingW: compiling with "XPM=no" doesn't work 1666 7.4.477 ":%diffput" adds an empty line if the other file is empty + 1763 7.4.478 using byte length instead of character length for 'showbreak' + 3025 7.4.479 MS-Windows: The console title can be wrong + 2962 7.4.480 (after 7.4.479) MS-Windows: Can't build diff --git a/vim.spec b/vim.spec index a3c082d3..da93a5dc 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 477 +%define patchlevel 480 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -524,6 +524,9 @@ Patch474: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.474 Patch475: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.475 Patch476: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.476 Patch477: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.477 +Patch478: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.478 +Patch479: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.479 +Patch480: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.480 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1148,6 +1151,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch475 -p0 %patch476 -p0 %patch477 -p0 +%patch478 -p0 +%patch479 -p0 +%patch480 -p0 # install spell files %if %{withvimspell} @@ -1665,6 +1671,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Oct 16 2014 Karsten Hopp 7.4.480-1 +- patchlevel 480 + * Wed Oct 15 2014 Karsten Hopp 7.4.477-1 - patchlevel 477 From 7b3fd14df03ae2e37a6c8f2d24c3c85f1bd4bd0d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 17 Oct 2014 18:00:10 +0200 Subject: [PATCH 0082/1616] - patchlevel 481 --- 7.4.481 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.481 diff --git a/7.4.481 b/7.4.481 new file mode 100644 index 00000000..798f4ebf --- /dev/null +++ b/7.4.481 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.481 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.481 (after 7.4.471) +Problem: Compiler warning on MS-Windows. +Solution: Add type casts. (Ken Takata) +Files: src/os_mswin.c + + +*** ../vim-7.4.480/src/os_mswin.c 2014-10-15 22:50:06.946093724 +0200 +--- src/os_mswin.c 2014-10-16 20:33:05.874264494 +0200 +*************** +*** 1644,1653 **** + char_u *to_free = NULL; + int maxlen; + +! acp_to_enc(printer_name, STRLEN(printer_name), &to_free, &maxlen); + if (to_free != NULL) + printer_name = to_free; +! acp_to_enc(port_name, STRLEN(port_name), &to_free, &maxlen); + if (to_free != NULL) + port_name = to_free; + } +--- 1644,1654 ---- + char_u *to_free = NULL; + int maxlen; + +! acp_to_enc(printer_name, (int)STRLEN(printer_name), &to_free, +! &maxlen); + if (to_free != NULL) + printer_name = to_free; +! acp_to_enc(port_name, (int)STRLEN(port_name), &to_free, &maxlen); + if (to_free != NULL) + port_name = to_free; + } +*** ../vim-7.4.480/src/version.c 2014-10-16 16:16:33.970230873 +0200 +--- src/version.c 2014-10-16 20:34:30.882264680 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 481, + /**/ + +-- + 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 3fbe35677fed3a282c9ac7e204a526d723b0d5ac Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 17 Oct 2014 18:00:11 +0200 Subject: [PATCH 0083/1616] - patchlevel 481 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 2cb3fde1..d898d256 100644 --- a/README.patches +++ b/README.patches @@ -502,3 +502,4 @@ Individual patches for Vim 7.4: 1763 7.4.478 using byte length instead of character length for 'showbreak' 3025 7.4.479 MS-Windows: The console title can be wrong 2962 7.4.480 (after 7.4.479) MS-Windows: Can't build + 2035 7.4.481 (after 7.4.471) compiler warning on MS-Windows diff --git a/vim.spec b/vim.spec index da93a5dc..ef87024b 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 480 +%define patchlevel 481 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -527,6 +527,7 @@ Patch477: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.477 Patch478: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.478 Patch479: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.479 Patch480: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.480 +Patch481: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.481 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1154,6 +1155,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch478 -p0 %patch479 -p0 %patch480 -p0 +%patch481 -p0 # install spell files %if %{withvimspell} @@ -1671,6 +1673,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Oct 17 2014 Karsten Hopp 7.4.481-1 +- patchlevel 481 + * Thu Oct 16 2014 Karsten Hopp 7.4.480-1 - patchlevel 480 From dd2a1c30e30088672f4f79c67a84ef8d30115eb8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Oct 2014 18:00:11 +0200 Subject: [PATCH 0084/1616] - patchlevel 482 --- 7.4.482 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.4.482 diff --git a/7.4.482 b/7.4.482 new file mode 100644 index 00000000..46dcb207 --- /dev/null +++ b/7.4.482 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.482 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.482 +Problem: When 'balloonexpr' results in a list, the text has a trailing + newline. (Lcd) +Solution: Remove one trailing newline. +Files: src/gui_beval.c + + +*** ../vim-7.4.481/src/gui_beval.c 2014-06-25 17:44:45.850768919 +0200 +--- src/gui_beval.c 2014-10-21 14:12:13.915158215 +0200 +*************** +*** 30,35 **** +--- 30,36 ---- + long winnr = 0; + char_u *bexpr; + buf_T *save_curbuf; ++ size_t len; + # ifdef FEAT_WINDOWS + win_T *cw; + # endif +*************** +*** 83,88 **** +--- 84,99 ---- + vim_free(result); + result = eval_to_string(bexpr, NULL, TRUE); + ++ /* Remove one trailing newline, it is added when the result was a ++ * list and it's hardly every useful. If the user really wants a ++ * trailing newline he can add two and one remains. */ ++ if (result != NULL) ++ { ++ len = STRLEN(result); ++ if (len > 0 && result[len - 1] == NL) ++ result[len - 1] = NUL; ++ } ++ + if (use_sandbox) + --sandbox; + --textlock; +*** ../vim-7.4.481/src/version.c 2014-10-16 20:35:32.146264814 +0200 +--- src/version.c 2014-10-21 14:13:19.571158359 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 482, + /**/ + +-- +You cannot propel yourself forward by patting yourself on the 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 68e2f19797c6080f01a3ee94a3e00001b80e76dd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Oct 2014 18:00:12 +0200 Subject: [PATCH 0085/1616] - patchlevel 483 --- 7.4.483 | 192 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 192 insertions(+) create mode 100644 7.4.483 diff --git a/7.4.483 b/7.4.483 new file mode 100644 index 00000000..625e3cf9 --- /dev/null +++ b/7.4.483 @@ -0,0 +1,192 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.483 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.483 +Problem: A 0x80 byte is not handled correctly in abbreviations. +Solution: Unescape special characters. Add a test. (Christian Brabandt) +Files: src/getchar.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_mapping.in, + src/testdir/test_mapping.ok + + +*** ../vim-7.4.482/src/getchar.c 2014-10-09 13:36:12.736888764 +0200 +--- src/getchar.c 2014-10-21 16:19:23.907174882 +0200 +*************** +*** 4443,4448 **** +--- 4443,4449 ---- + #endif + int is_id = TRUE; + int vim_abbr; ++ int qlen; /* length of q, CSI/K_SPECIAL unescaped */ + + if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */ + return FALSE; +*************** +*** 4520,4525 **** +--- 4521,4539 ---- + #else + mp = first_abbr; + #endif ++ qlen = mp->m_keylen; ++ if (vim_strbyte(mp->m_keys, K_SPECIAL) != NULL) ++ { ++ char_u *q = vim_strsave(mp->m_keys); ++ ++ /* might have CSI escaped mp->m_keys */ ++ if (q != NULL) ++ { ++ vim_unescape_csi(q); ++ qlen = STRLEN(q); ++ vim_free(q); ++ } ++ } + for ( ; mp; + #ifdef FEAT_LOCALMAP + mp->m_next == NULL ? (mp = mp2, mp2 = NULL) : +*************** +*** 4528,4534 **** + { + /* find entries with right mode and keys */ + if ( (mp->m_mode & State) +! && mp->m_keylen == len + && !STRNCMP(mp->m_keys, ptr, (size_t)len)) + break; + } +--- 4542,4548 ---- + { + /* find entries with right mode and keys */ + if ( (mp->m_mode & State) +! && qlen == len + && !STRNCMP(mp->m_keys, ptr, (size_t)len)) + break; + } +*** ../vim-7.4.482/src/testdir/Make_amiga.mak 2014-08-16 18:36:38.593993280 +0200 +--- src/testdir/Make_amiga.mak 2014-10-21 16:12:45.523174012 +0200 +*************** +*** 43,48 **** +--- 43,49 ---- + test_insertcount.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ ++ test_mapping.out \ + test_options.out \ + test_qf_title.out \ + test_utf8.out +*** ../vim-7.4.482/src/testdir/Make_dos.mak 2014-10-09 15:37:02.492904600 +0200 +--- src/testdir/Make_dos.mak 2014-10-21 16:12:45.523174012 +0200 +*************** +*** 42,47 **** +--- 42,48 ---- + test_insertcount.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ ++ test_mapping.out \ + test_options.out \ + test_qf_title.out \ + test_utf8.out +*** ../vim-7.4.482/src/testdir/Make_ming.mak 2014-08-16 18:36:38.593993280 +0200 +--- src/testdir/Make_ming.mak 2014-10-21 16:12:45.527174012 +0200 +*************** +*** 62,67 **** +--- 62,68 ---- + test_insertcount.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ ++ test_mapping.out \ + test_options.out \ + test_qf_title.out \ + test_utf8.out +*** ../vim-7.4.482/src/testdir/Make_os2.mak 2014-08-16 18:36:38.593993280 +0200 +--- src/testdir/Make_os2.mak 2014-10-21 16:15:40.139174393 +0200 +*************** +*** 44,49 **** +--- 44,50 ---- + test_insertcount.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ ++ test_mapping.out \ + test_options.out \ + test_qf_title.out \ + test_utf8.out +*** ../vim-7.4.482/src/testdir/Make_vms.mms 2014-08-16 18:36:38.597993280 +0200 +--- src/testdir/Make_vms.mms 2014-10-21 16:12:45.527174012 +0200 +*************** +*** 103,108 **** +--- 103,109 ---- + test_insertcount.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ ++ test_mapping.out \ + test_options.out \ + test_qf_title.out \ + test_utf8.out +*** ../vim-7.4.482/src/testdir/Makefile 2014-08-16 18:36:38.597993280 +0200 +--- src/testdir/Makefile 2014-10-21 16:16:05.771174449 +0200 +*************** +*** 40,45 **** +--- 40,46 ---- + test_insertcount.out \ + test_listlbr.out \ + test_listlbr_utf8.out \ ++ test_mapping.out \ + test_options.out \ + test_qf_title.out \ + test_utf8.out +*** ../vim-7.4.482/src/testdir/test_mapping.in 2014-10-21 16:21:48.163175197 +0200 +--- src/testdir/test_mapping.in 2014-10-21 16:12:45.527174012 +0200 +*************** +*** 0 **** +--- 1,15 ---- ++ Test for mappings and abbreviations ++ ++ STARTTEST ++ :so small.vim ++ :so mbyte.vim ++ : " abbreviations with Ñ€ (0x80) should work ++ :inoreab Ñ‡ĐºĐ¿Ñ€ vim ++ GAÑ‡ĐºĐ¿Ñ€ ++  ++ :/^test/,$w! test.out ++ :qa! ++ ENDTEST ++ ++ test starts here: ++ +*** ../vim-7.4.482/src/testdir/test_mapping.ok 2014-10-21 16:21:48.167175197 +0200 +--- src/testdir/test_mapping.ok 2014-10-21 16:12:45.527174012 +0200 +*************** +*** 0 **** +--- 1,2 ---- ++ test starts here: ++ vim +*** ../vim-7.4.482/src/version.c 2014-10-21 14:15:13.419158607 +0200 +--- src/version.c 2014-10-21 16:17:25.139174622 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 483, + /**/ + +-- +E M A C S +s e l o h +c t t n i +a a t f +p r t +e o + l + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From dbc93746d66370eb39fb5424e81707b1c4797cc5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Tue, 21 Oct 2014 18:00:14 +0200 Subject: [PATCH 0086/1616] - patchlevel 483 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index d898d256..0ea94f03 100644 --- a/README.patches +++ b/README.patches @@ -503,3 +503,5 @@ Individual patches for Vim 7.4: 3025 7.4.479 MS-Windows: The console title can be wrong 2962 7.4.480 (after 7.4.479) MS-Windows: Can't build 2035 7.4.481 (after 7.4.471) compiler warning on MS-Windows + 1863 7.4.482 when 'balloonexpr' results in a list, text has a trailing NL + 5345 7.4.483 a 0x80 byte is not handled correctly in abbreviations diff --git a/vim.spec b/vim.spec index ef87024b..c916ee1f 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 481 +%define patchlevel 483 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -528,6 +528,8 @@ Patch478: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.478 Patch479: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.479 Patch480: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.480 Patch481: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.481 +Patch482: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.482 +Patch483: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.483 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1156,6 +1158,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch479 -p0 %patch480 -p0 %patch481 -p0 +%patch482 -p0 +%patch483 -p0 # install spell files %if %{withvimspell} @@ -1673,6 +1677,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Tue Oct 21 2014 Karsten Hopp 7.4.483-1 +- patchlevel 483 + * Fri Oct 17 2014 Karsten Hopp 7.4.481-1 - patchlevel 481 From 0eb9c698df4b29f1b965d3904e086af7e1f1c2d5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Oct 2014 18:00:10 +0200 Subject: [PATCH 0087/1616] - patchlevel 484 --- 7.4.484 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.484 diff --git a/7.4.484 b/7.4.484 new file mode 100644 index 00000000..c914d0a9 --- /dev/null +++ b/7.4.484 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.484 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.484 (after 7.4.483) +Problem: Compiler warning on MS-Windows. (Ken Takata) +Solution: Add type cast. +Files: src/getchar.c + + +*** ../vim-7.4.483/src/getchar.c 2014-10-21 16:22:01.403175226 +0200 +--- src/getchar.c 2014-10-21 18:12:33.170273428 +0200 +*************** +*** 4530,4536 **** + if (q != NULL) + { + vim_unescape_csi(q); +! qlen = STRLEN(q); + vim_free(q); + } + } +--- 4530,4536 ---- + if (q != NULL) + { + vim_unescape_csi(q); +! qlen = (int)STRLEN(q); + vim_free(q); + } + } +*** ../vim-7.4.483/src/version.c 2014-10-21 16:22:01.407175226 +0200 +--- src/version.c 2014-10-21 18:14:13.410273647 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 484, + /**/ + +-- +"My particular problem is with registry entries, which seem to just +accumulate like plastic coffee cups..." -- Paul Moore + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 402abcc1b9a218782db613de962513f63d3adb38 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Oct 2014 18:00:10 +0200 Subject: [PATCH 0088/1616] - patchlevel 485 --- 7.4.485 | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 7.4.485 diff --git a/7.4.485 b/7.4.485 new file mode 100644 index 00000000..15486dc8 --- /dev/null +++ b/7.4.485 @@ -0,0 +1,114 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.485 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.485 (after 7.4.484) +Problem: Abbreviations don't work. (Toothpik) +Solution: Move the length computation inside the for loop. Compare against + the unescaped key. +Files: src/getchar.c + + +*** ../vim-7.4.484/src/getchar.c 2014-10-21 18:17:05.638274024 +0200 +--- src/getchar.c 2014-10-21 19:30:46.262283680 +0200 +*************** +*** 4443,4449 **** + #endif + int is_id = TRUE; + int vim_abbr; +- int qlen; /* length of q, CSI/K_SPECIAL unescaped */ + + if (typebuf.tb_no_abbr_cnt) /* abbrev. are not recursive */ + return FALSE; +--- 4443,4448 ---- +*************** +*** 4521,4549 **** + #else + mp = first_abbr; + #endif +- qlen = mp->m_keylen; +- if (vim_strbyte(mp->m_keys, K_SPECIAL) != NULL) +- { +- char_u *q = vim_strsave(mp->m_keys); +- +- /* might have CSI escaped mp->m_keys */ +- if (q != NULL) +- { +- vim_unescape_csi(q); +- qlen = (int)STRLEN(q); +- vim_free(q); +- } +- } + for ( ; mp; + #ifdef FEAT_LOCALMAP + mp->m_next == NULL ? (mp = mp2, mp2 = NULL) : + #endif + (mp = mp->m_next)) + { + /* find entries with right mode and keys */ +! if ( (mp->m_mode & State) + && qlen == len +! && !STRNCMP(mp->m_keys, ptr, (size_t)len)) + break; + } + if (mp != NULL) +--- 4520,4553 ---- + #else + mp = first_abbr; + #endif + for ( ; mp; + #ifdef FEAT_LOCALMAP + mp->m_next == NULL ? (mp = mp2, mp2 = NULL) : + #endif + (mp = mp->m_next)) + { ++ int qlen = mp->m_keylen; ++ char_u *q = mp->m_keys; ++ int match; ++ ++ if (vim_strbyte(mp->m_keys, K_SPECIAL) != NULL) ++ { ++ /* might have CSI escaped mp->m_keys */ ++ q = vim_strsave(mp->m_keys); ++ if (q != NULL) ++ { ++ vim_unescape_csi(q); ++ qlen = (int)STRLEN(q); ++ } ++ } ++ + /* find entries with right mode and keys */ +! match = (mp->m_mode & State) + && qlen == len +! && !STRNCMP(q, ptr, (size_t)len); +! if (q != mp->m_keys) +! vim_free(q); +! if (match) + break; + } + if (mp != NULL) +*** ../vim-7.4.484/src/version.c 2014-10-21 18:17:05.638274024 +0200 +--- src/version.c 2014-10-21 19:34:55.338284224 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 485, + /**/ + +-- +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 82ecde2ad2b58a8d0fab1e5d7984d7cdc47b3c3a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Oct 2014 18:00:11 +0200 Subject: [PATCH 0089/1616] - patchlevel 486 --- 7.4.486 | 271 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 271 insertions(+) create mode 100644 7.4.486 diff --git a/7.4.486 b/7.4.486 new file mode 100644 index 00000000..11af1cba --- /dev/null +++ b/7.4.486 @@ -0,0 +1,271 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.486 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.486 +Problem: Check for writing to a yank register is wrong. +Solution: Negate the check. (Zyx). Also clean up the #ifdefs. +Files: src/ex_docmd.c, src/ex_cmds.h + + +*** ../vim-7.4.485/src/ex_docmd.c 2014-09-19 20:07:22.546449677 +0200 +--- src/ex_docmd.c 2014-10-21 19:56:31.290287055 +0200 +*************** +*** 49,58 **** +--- 49,63 ---- + static char_u *get_user_command_name __ARGS((int idx)); + # endif + ++ /* Wether a command index indicates a user command. */ ++ # define IS_USER_CMDIDX(idx) ((int)(idx) < 0) ++ + #else + # define ex_command ex_ni + # define ex_comclear ex_ni + # define ex_delcommand ex_ni ++ /* Wether a command index indicates a user command. */ ++ # define IS_USER_CMDIDX(idx) (FALSE) + #endif + + #ifdef FEAT_EVAL +*************** +*** 2190,2200 **** + goto doend; + } + +! ni = ( +! #ifdef FEAT_USR_CMDS +! !USER_CMDIDX(ea.cmdidx) && +! #endif +! (cmdnames[ea.cmdidx].cmd_func == ex_ni + #ifdef HAVE_EX_SCRIPT_NI + || cmdnames[ea.cmdidx].cmd_func == ex_script_ni + #endif +--- 2195,2202 ---- + goto doend; + } + +! ni = (!IS_USER_CMDIDX(ea.cmdidx) +! && (cmdnames[ea.cmdidx].cmd_func == ex_ni + #ifdef HAVE_EX_SCRIPT_NI + || cmdnames[ea.cmdidx].cmd_func == ex_script_ni + #endif +*************** +*** 2229,2237 **** + /* + * 5. parse arguments + */ +! #ifdef FEAT_USR_CMDS +! if (!USER_CMDIDX(ea.cmdidx)) +! #endif + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; + + if (!ea.skip) +--- 2231,2237 ---- + /* + * 5. parse arguments + */ +! if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; + + if (!ea.skip) +*************** +*** 2252,2261 **** + } + + if (text_locked() && !(ea.argt & CMDWIN) +! # ifdef FEAT_USR_CMDS +! && !USER_CMDIDX(ea.cmdidx) +! # endif +! ) + { + /* Command not allowed when editing the command line. */ + #ifdef FEAT_CMDWIN +--- 2252,2258 ---- + } + + if (text_locked() && !(ea.argt & CMDWIN) +! && !IS_USER_CMDIDX(ea.cmdidx)) + { + /* Command not allowed when editing the command line. */ + #ifdef FEAT_CMDWIN +*************** +*** 2273,2281 **** + if (!(ea.argt & CMDWIN) + && ea.cmdidx != CMD_edit + && ea.cmdidx != CMD_checktime +! # ifdef FEAT_USR_CMDS +! && !USER_CMDIDX(ea.cmdidx) +! # endif + && curbuf_locked()) + goto doend; + #endif +--- 2270,2276 ---- + if (!(ea.argt & CMDWIN) + && ea.cmdidx != CMD_edit + && ea.cmdidx != CMD_checktime +! && !IS_USER_CMDIDX(ea.cmdidx) + && curbuf_locked()) + goto doend; + #endif +*************** +*** 2468,2477 **** + /* accept numbered register only when no count allowed (:put) */ + if ( (ea.argt & REGSTR) + && *ea.arg != NUL +! #ifdef FEAT_USR_CMDS +! /* Do not allow register = for user commands */ +! && (!USER_CMDIDX(ea.cmdidx) || *ea.arg != '=') +! #endif + && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg))) + { + #ifndef FEAT_CLIPBOARD +--- 2463,2470 ---- + /* accept numbered register only when no count allowed (:put) */ + if ( (ea.argt & REGSTR) + && *ea.arg != NUL +! /* Do not allow register = for user commands */ +! && (!IS_USER_CMDIDX(ea.cmdidx) || *ea.arg != '=') + && !((ea.argt & COUNT) && VIM_ISDIGIT(*ea.arg))) + { + #ifndef FEAT_CLIPBOARD +*************** +*** 2482,2495 **** + goto doend; + } + #endif +! if ( +! #ifdef FEAT_USR_CMDS +! valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put +! && USER_CMDIDX(ea.cmdidx))) +! #else +! valid_yank_reg(*ea.arg, ea.cmdidx != CMD_put) +! #endif +! ) + { + ea.regname = *ea.arg++; + #ifdef FEAT_EVAL +--- 2475,2482 ---- + goto doend; + } + #endif +! if (valid_yank_reg(*ea.arg, (ea.cmdidx != CMD_put +! && !IS_USER_CMDIDX(ea.cmdidx)))) + { + ea.regname = *ea.arg++; + #ifdef FEAT_EVAL +*************** +*** 2663,2672 **** + * number. Don't do this for a user command. + */ + if ((ea.argt & BUFNAME) && *ea.arg != NUL && ea.addr_count == 0 +! # ifdef FEAT_USR_CMDS +! && !USER_CMDIDX(ea.cmdidx) +! # endif +! ) + { + /* + * :bdelete, :bwipeout and :bunload take several arguments, separated +--- 2650,2656 ---- + * number. Don't do this for a user command. + */ + if ((ea.argt & BUFNAME) && *ea.arg != NUL && ea.addr_count == 0 +! && !IS_USER_CMDIDX(ea.cmdidx)) + { + /* + * :bdelete, :bwipeout and :bunload take several arguments, separated +*************** +*** 2704,2710 **** + #endif + + #ifdef FEAT_USR_CMDS +! if (USER_CMDIDX(ea.cmdidx)) + { + /* + * Execute a user-defined command. +--- 2688,2694 ---- + #endif + + #ifdef FEAT_USR_CMDS +! if (IS_USER_CMDIDX(ea.cmdidx)) + { + /* + * Execute a user-defined command. +*************** +*** 2763,2773 **** + } + #ifdef FEAT_EVAL + do_errthrow(cstack, +! (ea.cmdidx != CMD_SIZE +! # ifdef FEAT_USR_CMDS +! && !USER_CMDIDX(ea.cmdidx) +! # endif +! ) ? cmdnames[(int)ea.cmdidx].cmd_name : (char_u *)NULL); + #endif + + if (verbose_save >= 0) +--- 2747,2754 ---- + } + #ifdef FEAT_EVAL + do_errthrow(cstack, +! (ea.cmdidx != CMD_SIZE && !IS_USER_CMDIDX(ea.cmdidx)) +! ? cmdnames[(int)ea.cmdidx].cmd_name : (char_u *)NULL); + #endif + + if (verbose_save >= 0) +*************** +*** 3361,3369 **** + /* + * 5. parse arguments + */ +! #ifdef FEAT_USR_CMDS +! if (!USER_CMDIDX(ea.cmdidx)) +! #endif + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; + + arg = skipwhite(p); +--- 3342,3348 ---- + /* + * 5. parse arguments + */ +! if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; + + arg = skipwhite(p); +*** ../vim-7.4.485/src/ex_cmds.h 2014-09-19 20:07:22.546449677 +0200 +--- src/ex_cmds.h 2014-10-21 19:52:45.926286562 +0200 +*************** +*** 1153,1160 **** + #endif + }; + +- #define USER_CMDIDX(idx) ((int)(idx) < 0) +- + #ifndef DO_DECLARE_EXCMD + typedef enum CMD_index cmdidx_T; + +--- 1153,1158 ---- +*** ../vim-7.4.485/src/version.c 2014-10-21 19:35:28.406284296 +0200 +--- src/version.c 2014-10-21 20:00:44.350287607 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 486, + /**/ + +-- +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 e9f0d24abc5237de1cff73d3658e8f7a4ba9464a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Oct 2014 18:00:12 +0200 Subject: [PATCH 0090/1616] - patchlevel 487 --- 7.4.487 | 244 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 244 insertions(+) create mode 100644 7.4.487 diff --git a/7.4.487 b/7.4.487 new file mode 100644 index 00000000..7595f6cb --- /dev/null +++ b/7.4.487 @@ -0,0 +1,244 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.487 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.487 +Problem: ":sign jump" may use another window even though the file is + already edited in the current window. +Solution: First check if the file is in the current window. (James McCoy) +Files: src/window.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_signs.in, + src/testdir/test_signs.ok + + +*** ../vim-7.4.486/src/window.c 2014-10-09 10:44:33.196866267 +0200 +--- src/window.c 2014-10-21 20:50:13.018294092 +0200 +*************** +*** 4407,4426 **** + buf_jump_open_win(buf) + buf_T *buf; + { +! # ifdef FEAT_WINDOWS +! win_T *wp; + +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! if (wp->w_buffer == buf) +! break; + if (wp != NULL) + win_enter(wp, FALSE); +- return wp; +- # else +- if (curwin->w_buffer == buf) +- return curwin; +- return NULL; + # endif + } + + /* +--- 4407,4425 ---- + buf_jump_open_win(buf) + buf_T *buf; + { +! win_T *wp = NULL; + +! if (curwin->w_buffer == buf) +! wp = curwin; +! # ifdef FEAT_WINDOWS +! else +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! if (wp->w_buffer == buf) +! break; + if (wp != NULL) + win_enter(wp, FALSE); + # endif ++ return wp; + } + + /* +*************** +*** 4432,4443 **** + buf_jump_open_tab(buf) + buf_T *buf; + { + # ifdef FEAT_WINDOWS +- win_T *wp; + tabpage_T *tp; + +- /* First try the current tab page. */ +- wp = buf_jump_open_win(buf); + if (wp != NULL) + return wp; + +--- 4431,4440 ---- + buf_jump_open_tab(buf) + buf_T *buf; + { ++ win_T *wp = buf_jump_open_win(buf); + # ifdef FEAT_WINDOWS + tabpage_T *tp; + + if (wp != NULL) + return wp; + +*************** +*** 4455,4467 **** + break; + } + } +- +- return wp; +- # else +- if (curwin->w_buffer == buf) +- return curwin; +- return NULL; + # endif + } + #endif + +--- 4452,4459 ---- + break; + } + } + # endif ++ return wp; + } + #endif + +*** ../vim-7.4.486/src/testdir/Make_amiga.mak 2014-10-21 16:22:01.403175226 +0200 +--- src/testdir/Make_amiga.mak 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 46,51 **** +--- 46,52 ---- + test_mapping.out \ + test_options.out \ + test_qf_title.out \ ++ test_signs.out \ + test_utf8.out + + .SUFFIXES: .in .out +*************** +*** 179,182 **** +--- 180,184 ---- + test_listlbr_utf8.out: test_listlbr_utf8.in + test_options.out: test_options.in + test_qf_title.out: test_qf_title.in ++ test_signs.out: test_signs.in + test_utf8.out: test_utf8.in +*** ../vim-7.4.486/src/testdir/Make_dos.mak 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/Make_dos.mak 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 45,50 **** +--- 45,51 ---- + test_mapping.out \ + test_options.out \ + test_qf_title.out \ ++ test_signs.out \ + test_utf8.out + + SCRIPTS32 = test50.out test70.out +*** ../vim-7.4.486/src/testdir/Make_ming.mak 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/Make_ming.mak 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 65,70 **** +--- 65,71 ---- + test_mapping.out \ + test_options.out \ + test_qf_title.out \ ++ test_signs.out \ + test_utf8.out + + SCRIPTS32 = test50.out test70.out +*** ../vim-7.4.486/src/testdir/Make_os2.mak 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/Make_os2.mak 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 47,52 **** +--- 47,53 ---- + test_mapping.out \ + test_options.out \ + test_qf_title.out \ ++ test_signs.out \ + test_utf8.out + + .SUFFIXES: .in .out +*** ../vim-7.4.486/src/testdir/Make_vms.mms 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/Make_vms.mms 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 106,111 **** +--- 106,112 ---- + test_mapping.out \ + test_options.out \ + test_qf_title.out \ ++ test_signs.out \ + test_utf8.out + + # Known problems: +*** ../vim-7.4.486/src/testdir/Makefile 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/Makefile 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 43,48 **** +--- 43,49 ---- + test_mapping.out \ + test_options.out \ + test_qf_title.out \ ++ test_signs.out \ + test_utf8.out + + SCRIPTS_GUI = test16.out +*** ../vim-7.4.486/src/testdir/test_signs.in 2014-10-21 20:56:35.838294928 +0200 +--- src/testdir/test_signs.in 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 0 **** +--- 1,22 ---- ++ Tests for signs ++ STARTTEST ++ :so small.vim ++ :if !has("signs") ++ : e! test.ok ++ : wq! test.out ++ :endif ++ :" ++ :sign define JumpSign text=x ++ :exe 'sign place 42 line=2 name=JumpSign buffer=' . bufnr('') ++ :" Split the window to the bottom to verify :sign-jump will stay in the current ++ :" window if the buffer is displayed there ++ :bot split ++ :exe 'sign jump 42 buffer=' . bufnr('') ++ :call append(line('$'), winnr()) ++ :$-1,$w! test.out ++ ENDTEST ++ ++ STARTTEST ++ :qa! ++ ENDTEST ++ +*** ../vim-7.4.486/src/testdir/test_signs.ok 2014-10-21 20:56:35.842294928 +0200 +--- src/testdir/test_signs.ok 2014-10-21 20:46:30.866293607 +0200 +*************** +*** 0 **** +--- 1,2 ---- ++ ++ 2 +*** ../vim-7.4.486/src/version.c 2014-10-21 20:01:54.986287762 +0200 +--- src/version.c 2014-10-21 20:50:02.642294069 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 487, + /**/ + +-- +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 34c5a1290a0e490c62ca0025513bac34fbc50be3 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 22 Oct 2014 18:00:13 +0200 Subject: [PATCH 0091/1616] - patchlevel 487 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 0ea94f03..6b6edcd4 100644 --- a/README.patches +++ b/README.patches @@ -505,3 +505,7 @@ Individual patches for Vim 7.4: 2035 7.4.481 (after 7.4.471) compiler warning on MS-Windows 1863 7.4.482 when 'balloonexpr' results in a list, text has a trailing NL 5345 7.4.483 a 0x80 byte is not handled correctly in abbreviations + 1442 7.4.484 (after 7.4.483) compiler warning + 3033 7.4.485 (after 7.4.484) abbreviations don't work + 6864 7.4.486 check for writing to a yank register is wrong + 5994 7.4.487 ":sign jump" may unnecessarily use another window diff --git a/vim.spec b/vim.spec index c916ee1f..f724b774 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 483 +%define patchlevel 487 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -530,6 +530,10 @@ Patch480: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.480 Patch481: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.481 Patch482: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.482 Patch483: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.483 +Patch484: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.484 +Patch485: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.485 +Patch486: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.486 +Patch487: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.487 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1160,6 +1164,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch481 -p0 %patch482 -p0 %patch483 -p0 +%patch484 -p0 +%patch485 -p0 +%patch486 -p0 +%patch487 -p0 # install spell files %if %{withvimspell} @@ -1677,6 +1685,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Oct 22 2014 Karsten Hopp 7.4.487-1 +- patchlevel 487 + * Tue Oct 21 2014 Karsten Hopp 7.4.483-1 - patchlevel 483 From 4bc225e324e8ab0d433a2fd414039863ca4b50f4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 23 Oct 2014 18:00:10 +0200 Subject: [PATCH 0092/1616] - patchlevel 488 --- 7.4.488 | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 7.4.488 diff --git a/7.4.488 b/7.4.488 new file mode 100644 index 00000000..9abdf420 --- /dev/null +++ b/7.4.488 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.488 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.488 +Problem: test_mapping fails for some people. +Solution: Set the 'encoding' option. (Ken Takata) +Files: src/testdir/test_mapping.in + + +*** ../vim-7.4.487/src/testdir/test_mapping.in 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/test_mapping.in 2014-10-22 22:04:48.422492595 +0200 +*************** +*** 3,8 **** +--- 3,9 ---- + STARTTEST + :so small.vim + :so mbyte.vim ++ :set encoding=utf-8 + : " abbreviations with Ñ€ (0x80) should work + :inoreab Ñ‡ĐºĐ¿Ñ€ vim + GAÑ‡ĐºĐ¿Ñ€ +*** ../vim-7.4.487/src/version.c 2014-10-21 20:57:11.538295006 +0200 +--- src/version.c 2014-10-22 22:05:33.758492694 +0200 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 488, + /**/ + +-- +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 bb2d4ee8991d18ef58115f3e073a07916c5446be Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 23 Oct 2014 18:00:11 +0200 Subject: [PATCH 0093/1616] - patchlevel 488 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 6b6edcd4..00a38bbe 100644 --- a/README.patches +++ b/README.patches @@ -509,3 +509,4 @@ Individual patches for Vim 7.4: 3033 7.4.485 (after 7.4.484) abbreviations don't work 6864 7.4.486 check for writing to a yank register is wrong 5994 7.4.487 ":sign jump" may unnecessarily use another window + 1394 7.4.488 test_mapping fails for some people diff --git a/vim.spec b/vim.spec index f724b774..99fb8c8b 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 487 +%define patchlevel 488 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -534,6 +534,7 @@ Patch484: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.484 Patch485: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.485 Patch486: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.486 Patch487: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.487 +Patch488: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.488 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1168,6 +1169,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch485 -p0 %patch486 -p0 %patch487 -p0 +%patch488 -p0 # install spell files %if %{withvimspell} @@ -1685,6 +1687,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Oct 23 2014 Karsten Hopp 7.4.488-1 +- patchlevel 488 + * Wed Oct 22 2014 Karsten Hopp 7.4.487-1 - patchlevel 487 From 487ac8588be2dc61d6de5e4ba225292e0064b8b5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 31 Oct 2014 18:00:08 +0100 Subject: [PATCH 0094/1616] - patchlevel 489 --- 7.4.489 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.4.489 diff --git a/7.4.489 b/7.4.489 new file mode 100644 index 00000000..3713fc4b --- /dev/null +++ b/7.4.489 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.489 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.489 +Problem: Cursor movement still wrong when 'lbr' is set and there is a + number column. (Hirohito Higashi) +Solution: Add correction for number column. (Hiroyuki Takagi) +Files: src/charset.c + + +*** ../vim-7.4.488/src/charset.c 2014-10-15 21:26:35.566082778 +0200 +--- src/charset.c 2014-10-31 12:39:41.815322421 +0100 +*************** +*** 1184,1189 **** +--- 1184,1191 ---- + { + col -= W_WIDTH(wp); + numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); ++ if (numberextra > 0) ++ col %= numberextra; + if (*p_sbr != NUL) + { + colnr_T sbrlen = (colnr_T)MB_CHARLEN(p_sbr); +*** ../vim-7.4.488/src/version.c 2014-10-22 22:08:58.386493141 +0200 +--- src/version.c 2014-10-31 12:37:38.439325394 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 489, + /**/ + +-- +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 1394eb1273d0dbf5b785670eddcc07b9fee74e4d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 31 Oct 2014 18:00:09 +0100 Subject: [PATCH 0095/1616] - patchlevel 490 --- 7.4.490 | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 7.4.490 diff --git a/7.4.490 b/7.4.490 new file mode 100644 index 00000000..5485833c --- /dev/null +++ b/7.4.490 @@ -0,0 +1,208 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.490 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.490 +Problem: Cannot specify the buffer to use for "do" and "dp", making them + useless for three-way diff. +Solution: Use the count as the buffer number. (James McCoy) +Files: runtime/doc/diff.txt, src/diff.c, src/normal.c, src/proto/diff.pro + + +*** ../vim-7.4.489/runtime/doc/diff.txt 2013-08-10 13:24:52.000000000 +0200 +--- runtime/doc/diff.txt 2014-10-31 13:39:22.443236141 +0100 +*************** +*** 95,101 **** + :difft[his] Make the current window part of the diff windows. This sets + the options like for "vimdiff". + +! :diffp[atch] {patchfile} *E816* *:diffp* *:diffpatch* + Use the current buffer, patch it with the diff found in + {patchfile} and open a buffer on the result. The options are + set as for "vimdiff". +--- 95,101 ---- + :difft[his] Make the current window part of the diff windows. This sets + the options like for "vimdiff". + +! :diffp[atch] {patchfile} *E816* *:diffp* *:diffpatch* + Use the current buffer, patch it with the diff found in + {patchfile} and open a buffer on the result. The options are + set as for "vimdiff". +*************** +*** 123,132 **** + file for a moment and come back to the same file and be in diff mode again. + + *:diffo* *:diffoff* +! :diffo[ff] Switch off diff mode for the current window. + + :diffo[ff]! Switch off diff mode for the current window and in all windows +! in the current tab page where 'diff' is set. + + The ":diffoff" command resets the relevant options to the values they had when + using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode. +--- 123,136 ---- + file for a moment and come back to the same file and be in diff mode again. + + *:diffo* *:diffoff* +! :diffo[ff] Switch off diff mode for the current window. Resets related +! options also when 'diff' was not set. + + :diffo[ff]! Switch off diff mode for the current window and in all windows +! in the current tab page where 'diff' is set. Resetting +! related options only happens in a window that has 'diff' set, +! if the current window does not have 'diff' set then no options +! in it are changed. + + The ":diffoff" command resets the relevant options to the values they had when + using |:diffsplit|, |:diffpatch| , |:diffthis|. or starting Vim in diff mode. +*************** +*** 262,274 **** + See below for [range]. + + *do* +! do Same as ":diffget" without argument or range. The "o" stands +! for "obtain" ("dg" can't be used, it could be the start of +! "dgg"!). Note: this doesn't work in Visual mode. + + *dp* +! dp Same as ":diffput" without argument or range. +! Note: this doesn't work in Visual mode. + + + When no [range] is given, the diff at the cursor position or just above it is +--- 266,282 ---- + See below for [range]. + + *do* +! [count]do Same as ":diffget" without range. The "o" stands for "obtain" +! ("dg" can't be used, it could be the start of "dgg"!). Note: +! this doesn't work in Visual mode. +! If you give a [count], it is used as the [bufspec] argument +! for ":diffget". + + *dp* +! [count]dp Same as ":diffput" without range. Note: this doesn't work in +! Visual mode. +! If you give a [count], it is used as the [bufspec] argument +! for ":diffput". + + + When no [range] is given, the diff at the cursor position or just above it is +*** ../vim-7.4.489/src/diff.c 2014-10-15 12:56:44.006015955 +0200 +--- src/diff.c 2014-10-31 13:44:20.739228953 +0100 +*************** +*** 2107,2118 **** + * "dp" and "do" commands. + */ + void +! nv_diffgetput(put) + int put; + { + exarg_T ea; + +! ea.arg = (char_u *)""; + if (put) + ea.cmdidx = CMD_diffput; + else +--- 2107,2126 ---- + * "dp" and "do" commands. + */ + void +! nv_diffgetput(put, count) + int put; ++ long count; + { + exarg_T ea; ++ char_u buf[30]; + +! if (count == 0) +! ea.arg = (char_u *)""; +! else +! { +! vim_snprintf((char *)buf, 30, "%ld", count); +! ea.arg = buf; +! } + if (put) + ea.cmdidx = CMD_diffput; + else +*** ../vim-7.4.489/src/normal.c 2014-10-09 14:48:26.284898230 +0200 +--- src/normal.c 2014-10-31 13:36:32.671240232 +0100 +*************** +*** 9284,9290 **** + if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'p') + { + clearop(cap->oap); +! nv_diffgetput(TRUE); + } + else + #endif +--- 9284,9290 ---- + if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'p') + { + clearop(cap->oap); +! nv_diffgetput(TRUE, cap->opcount); + } + else + #endif +*************** +*** 9407,9413 **** + if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'o') + { + clearop(cap->oap); +! nv_diffgetput(FALSE); + } + else + #endif +--- 9407,9413 ---- + if (cap->oap->op_type == OP_DELETE && cap->cmdchar == 'o') + { + clearop(cap->oap); +! nv_diffgetput(FALSE, cap->opcount); + } + else + #endif +*** ../vim-7.4.489/src/proto/diff.pro 2013-08-10 13:37:07.000000000 +0200 +--- src/proto/diff.pro 2014-10-31 13:36:32.671240232 +0100 +*************** +*** 18,24 **** + int diffopt_horizontal __ARGS((void)); + int diff_find_change __ARGS((win_T *wp, linenr_T lnum, int *startp, int *endp)); + int diff_infold __ARGS((win_T *wp, linenr_T lnum)); +! void nv_diffgetput __ARGS((int put)); + void ex_diffgetput __ARGS((exarg_T *eap)); + int diff_mode_buf __ARGS((buf_T *buf)); + int diff_move_to __ARGS((int dir, long count)); +--- 18,24 ---- + int diffopt_horizontal __ARGS((void)); + int diff_find_change __ARGS((win_T *wp, linenr_T lnum, int *startp, int *endp)); + int diff_infold __ARGS((win_T *wp, linenr_T lnum)); +! void nv_diffgetput __ARGS((int put, long count)); + void ex_diffgetput __ARGS((exarg_T *eap)); + int diff_mode_buf __ARGS((buf_T *buf)); + int diff_move_to __ARGS((int dir, long count)); +*** ../vim-7.4.489/src/version.c 2014-10-31 12:41:57.427319153 +0100 +--- src/version.c 2014-10-31 13:37:54.511238260 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 490, + /**/ + +-- +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 d97f64db9ef1827b1660b7532e4427ad4a0223e7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 31 Oct 2014 18:00:10 +0100 Subject: [PATCH 0096/1616] - patchlevel 491 --- 7.4.491 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.491 diff --git a/7.4.491 b/7.4.491 new file mode 100644 index 00000000..32bc5839 --- /dev/null +++ b/7.4.491 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.491 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.491 +Problem: When winrestview() has a negative "topline" value there are + display errors. +Solution: Correct a negative value to 1. (Hirohito Higashi) +Files: src/eval.c + + +*** ../vim-7.4.490/src/eval.c 2014-09-19 20:45:19.266454650 +0200 +--- src/eval.c 2014-10-31 15:43:55.811056060 +0100 +*************** +*** 19576,19582 **** + # endif + changed_window_setting(); + +! if (curwin->w_topline == 0) + curwin->w_topline = 1; + if (curwin->w_topline > curbuf->b_ml.ml_line_count) + curwin->w_topline = curbuf->b_ml.ml_line_count; +--- 19576,19582 ---- + # endif + changed_window_setting(); + +! if (curwin->w_topline <= 0) + curwin->w_topline = 1; + if (curwin->w_topline > curbuf->b_ml.ml_line_count) + curwin->w_topline = curbuf->b_ml.ml_line_count; +*** ../vim-7.4.490/src/version.c 2014-10-31 13:54:21.843214469 +0100 +--- src/version.c 2014-10-31 15:44:59.555054524 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 491, + /**/ + +-- +GUARD #2: Wait a minute -- supposing two swallows carried it together? +GUARD #1: No, they'd have to have it on a line. +GUARD #2: Well, simple! They'd just use a standard creeper! +GUARD #1: What, held under the dorsal guiding feathers? +GUARD #2: Well, why not? + 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 2b8991028c4f1a81d5ae97f1bef3f588d73f90e7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 31 Oct 2014 18:00:11 +0100 Subject: [PATCH 0097/1616] - patchlevel 491 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 00a38bbe..bf0d8479 100644 --- a/README.patches +++ b/README.patches @@ -510,3 +510,6 @@ Individual patches for Vim 7.4: 6864 7.4.486 check for writing to a yank register is wrong 5994 7.4.487 ":sign jump" may unnecessarily use another window 1394 7.4.488 test_mapping fails for some people + 1610 7.4.489 cursor movement wrong when 'lbr' with a number column + 6856 7.4.490 cannot specify the buffer to use for "do" and "dp" + 1907 7.4.491 negative "topline" value for winrestview() has display errors diff --git a/vim.spec b/vim.spec index 99fb8c8b..4d1716c4 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 488 +%define patchlevel 491 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -535,6 +535,9 @@ Patch485: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.485 Patch486: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.486 Patch487: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.487 Patch488: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.488 +Patch489: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.489 +Patch490: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.490 +Patch491: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.491 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1170,6 +1173,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch486 -p0 %patch487 -p0 %patch488 -p0 +%patch489 -p0 +%patch490 -p0 +%patch491 -p0 # install spell files %if %{withvimspell} @@ -1687,6 +1693,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Oct 31 2014 Karsten Hopp 7.4.491-1 +- patchlevel 491 + * Thu Oct 23 2014 Karsten Hopp 7.4.488-1 - patchlevel 488 From e3a73a9943ca3d7c9104b25d15eb248b979bfadb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 1 Nov 2014 18:00:10 +0100 Subject: [PATCH 0098/1616] - patchlevel 492 --- 7.4.492 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.4.492 diff --git a/7.4.492 b/7.4.492 new file mode 100644 index 00000000..b9914fe5 --- /dev/null +++ b/7.4.492 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.492 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.492 +Problem: In Insert mode, after inserting a newline that inserts a comment + leader, CTRL-O moves to the right. (ZyX) Issue 57. +Solution: Correct the condition for moving the cursor back to the NUL. + (Christian Brabandt) +Files: src/edit.c, src/testdir/test4.in, src/testdir/test4.ok + + +*** ../vim-7.4.491/src/edit.c 2014-09-09 18:29:24.328549561 +0200 +--- src/edit.c 2014-10-31 19:10:47.474756984 +0100 +*************** +*** 6916,6923 **** + } + if (curwin->w_cursor.lnum != tpos.lnum) + curwin->w_cursor = tpos; +! else if (cc != NUL) +! ++curwin->w_cursor.col; /* put cursor back on the NUL */ + + /* may have started Visual mode, adjust the position for + * deleted characters. */ +--- 6916,6927 ---- + } + if (curwin->w_cursor.lnum != tpos.lnum) + curwin->w_cursor = tpos; +! else +! { +! tpos.col++; +! if (cc != NUL && gchar_pos(&tpos) == NUL) +! ++curwin->w_cursor.col; /* put cursor back on the NUL */ +! } + + /* may have started Visual mode, adjust the position for + * deleted characters. */ +*** ../vim-7.4.491/src/testdir/test4.in 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test4.in 2014-10-31 19:10:21.846757602 +0100 +*************** +*** 17,22 **** +--- 17,25 ---- + G?this is a + othis should be in column 1:wq " append text without autoindent to Xxx + 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.491/src/testdir/test4.ok 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test4.ok 2014-10-31 19:10:21.846757602 +0100 +*************** +*** 15,17 **** +--- 15,20 ---- + this is a test + this should be in column 1 + end of test file Xxx ++ # abc ++ def ++ def +*** ../vim-7.4.491/src/version.c 2014-10-31 15:45:49.175053328 +0100 +--- src/version.c 2014-10-31 19:13:31.230753038 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 492, + /**/ + +-- +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 f48af388100c3a4bd24e6d92702d0137617bce9e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 1 Nov 2014 18:00:12 +0100 Subject: [PATCH 0099/1616] - patchlevel 492 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index bf0d8479..6e863d67 100644 --- a/README.patches +++ b/README.patches @@ -513,3 +513,4 @@ Individual patches for Vim 7.4: 1610 7.4.489 cursor movement wrong when 'lbr' with a number column 6856 7.4.490 cannot specify the buffer to use for "do" and "dp" 1907 7.4.491 negative "topline" value for winrestview() has display errors + 2917 7.4.492 Ctrl-O in Insert mode moves right after insert comment leader diff --git a/vim.spec b/vim.spec index 4d1716c4..39bd8c93 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 491 +%define patchlevel 492 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -538,6 +538,7 @@ Patch488: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.488 Patch489: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.489 Patch490: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.490 Patch491: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.491 +Patch492: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.492 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1176,6 +1177,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch489 -p0 %patch490 -p0 %patch491 -p0 +%patch492 -p0 # install spell files %if %{withvimspell} @@ -1693,6 +1695,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Nov 01 2014 Karsten Hopp 7.4.492-1 +- patchlevel 492 + * Fri Oct 31 2014 Karsten Hopp 7.4.491-1 - patchlevel 491 From 82742c69b2e62aa357c7bedc57cf129d60f0ddf1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:10 +0100 Subject: [PATCH 0100/1616] - patchlevel 493 --- 7.4.493 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.493 diff --git a/7.4.493 b/7.4.493 new file mode 100644 index 00000000..84dc2f68 --- /dev/null +++ b/7.4.493 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.493 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.493 +Problem: A TextChanged autocommand is triggered when saving a file. + (William Gardner) +Solution: Update last_changedtick after calling unchanged(). (Christian + Brabandt) +Files: src/fileio.c + + +*** ../vim-7.4.492/src/fileio.c 2014-09-23 15:45:04.870801055 +0200 +--- src/fileio.c 2014-10-31 19:48:35.030702344 +0100 +*************** +*** 4877,4882 **** +--- 4877,4889 ---- + ) + { + unchanged(buf, TRUE); ++ #ifdef FEAT_AUTOCMD ++ /* buf->b_changedtick is always incremented in unchanged() but that ++ * should not trigger a TextChanged event. */ ++ if (last_changedtick + 1 == buf->b_changedtick ++ && last_changedtick_buf == buf) ++ last_changedtick = buf->b_changedtick; ++ #endif + u_unchanged(buf); + u_update_save_nr(buf); + } +*** ../vim-7.4.492/src/version.c 2014-10-31 19:20:30.782742928 +0100 +--- src/version.c 2014-10-31 19:48:53.590701897 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 493, + /**/ + +-- +You know you use Vim too much when you have this alias in your +~/.bashrc file: alias :e=/bin/vim (Eljay Love-Jensen) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 4d6dee124100885f960d2a553295698c06072de8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:10 +0100 Subject: [PATCH 0101/1616] - patchlevel 494 --- 7.4.494 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.494 diff --git a/7.4.494 b/7.4.494 new file mode 100644 index 00000000..079c8ab3 --- /dev/null +++ b/7.4.494 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.494 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.494 +Problem: Cursor shape is wrong after a CompleteDone autocommand. +Solution: Update the cursor and mouse shape after ":normal" restores the + state. (Jacob Niehus) +Files: src/ex_docmd.c + + +*** ../vim-7.4.493/src/ex_docmd.c 2014-10-21 20:01:54.986287762 +0200 +--- src/ex_docmd.c 2014-11-05 09:37:05.829176795 +0100 +*************** +*** 9526,9533 **** + msg_didout |= save_msg_didout; /* don't reset msg_didout now */ + + /* Restore the state (needed when called from a function executed for +! * 'indentexpr'). */ + State = save_State; + #ifdef FEAT_MBYTE + vim_free(arg); + #endif +--- 9526,9540 ---- + msg_didout |= save_msg_didout; /* don't reset msg_didout now */ + + /* Restore the state (needed when called from a function executed for +! * 'indentexpr'). Update the mouse and cursor, they may have changed. */ + State = save_State; ++ #ifdef FEAT_MOUSE ++ setmouse(); ++ #endif ++ #ifdef CURSOR_SHAPE ++ ui_cursor_shape(); /* may show different cursor shape */ ++ #endif ++ + #ifdef FEAT_MBYTE + vim_free(arg); + #endif +*** ../vim-7.4.493/src/version.c 2014-10-31 19:51:33.014698055 +0100 +--- src/version.c 2014-11-05 09:51:06.261156543 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 494, + /**/ + +-- +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 c2b0c4ad87134e98d8275d81f49e439e3b13e260 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:11 +0100 Subject: [PATCH 0102/1616] - patchlevel 495 --- 7.4.495 | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 7.4.495 diff --git a/7.4.495 b/7.4.495 new file mode 100644 index 00000000..20926d97 --- /dev/null +++ b/7.4.495 @@ -0,0 +1,89 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.495 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.495 +Problem: XPM isn't used correctly in the Cygwin Makefile. +Solution: Include the rules like in Make_ming.mak. (Ken Takata) +Files: src/Make_cyg.mak + + +*** ../vim-7.4.494/src/Make_cyg.mak 2014-10-15 12:07:07.610009454 +0200 +--- src/Make_cyg.mak 2014-11-05 13:38:03.688828413 +0100 +*************** +*** 485,497 **** + endif + + ############################## + ifneq ($(XPM),no) + # Only allow XPM for a GUI build. + DEFINES += -DFEAT_XPM_W32 +! INCLUDES += -I$(XPM)/include + EXTRA_OBJS += $(OUTDIR)/xpm_w32.o + EXTRA_LIBS += -L$(XPM)/lib -lXpm + endif + + ############################## + EXE = gvim$(DEBUG_SUFFIX).exe +--- 485,516 ---- + endif + + ############################## ++ ifndef XPM ++ ifeq ($(ARCH),i386) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),i486) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),i586) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),i686) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),x86-64) ++ XPM = xpm/x64 ++ endif ++ endif ++ ifdef XPM + ifneq ($(XPM),no) + # Only allow XPM for a GUI build. + DEFINES += -DFEAT_XPM_W32 +! INCLUDES += -I$(XPM)/include -I$(XPM)/../include + EXTRA_OBJS += $(OUTDIR)/xpm_w32.o + EXTRA_LIBS += -L$(XPM)/lib -lXpm + endif ++ endif + + ############################## + EXE = gvim$(DEBUG_SUFFIX).exe +*** ../vim-7.4.494/src/version.c 2014-11-05 09:53:19.989153321 +0100 +--- src/version.c 2014-11-05 13:39:27.516826393 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 495, + /**/ + +-- +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 5e85f7197c0bdbd1a3101d579b4fa046d13f0f0f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:12 +0100 Subject: [PATCH 0103/1616] - patchlevel 496 --- 7.4.496 | 2774 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2774 insertions(+) create mode 100644 7.4.496 diff --git a/7.4.496 b/7.4.496 new file mode 100644 index 00000000..0eaf1ff1 --- /dev/null +++ b/7.4.496 @@ -0,0 +1,2774 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.496 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.496 +Problem: Many lines are both in Make_cyg.mak and Make_ming.mak +Solution: Move the common parts to one file. (Ken Takata) +Files: src/INSTALLpc.txt, src/Make_cyg.mak, src/Make_cyg_ming.mak, + src/Make_ming.mak, src/Make_mvc.mak, Filelist + + +*** ../vim-7.4.495/src/INSTALLpc.txt 2014-08-22 18:12:53.995244049 +0200 +--- src/INSTALLpc.txt 2014-11-05 13:49:27.076811946 +0100 +*************** +*** 228,238 **** + + http://www.mingw.org/ + + Once you have downloaded the compiler binaries, unpack them on your hard disk + somewhere, and put them on your PATH. If you are on Win95/98 you can edit + your AUTOEXEC.BAT file with a line like: + +! set PATH=C:\GCC-2.95.2\BIN;%PATH% + + or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance), + System, Advanced, and edit the environment from there. +--- 228,242 ---- + + http://www.mingw.org/ + ++ or you can use 'MinGW-w64' compiler. ++ ++ http://mingw-w64.sourceforge.net/ ++ + Once you have downloaded the compiler binaries, unpack them on your hard disk + somewhere, and put them on your PATH. If you are on Win95/98 you can edit + your AUTOEXEC.BAT file with a line like: + +! set PATH=C:\MinGW\bin;%PATH% + + or on NT/2000/XP, go to the Control Panel, (Performance and Maintenance), + System, Advanced, and edit the environment from there. +*************** +*** 240,249 **** + Test if gcc is on your path. From a CMD (or COMMAND on '95/98) window: + + C:\> gcc --version +! 2.95.2 + +! C:\> make --version +! GNU Make version 3.77 (...etc...) + + Now you are ready to rock 'n' roll. Unpack the vim sources (look on + www.vim.org for exactly which version of the vim files you need). +--- 244,253 ---- + Test if gcc is on your path. From a CMD (or COMMAND on '95/98) window: + + C:\> gcc --version +! gcc (GCC) 4.8.1 + +! C:\> mingw32-make --version +! GNU Make 3.82.90 (...etc...) + + Now you are ready to rock 'n' roll. Unpack the vim sources (look on + www.vim.org for exactly which version of the vim files you need). +*************** +*** 255,261 **** + + and you type: + +! make -f Make_ming.mak gvim.exe + + After churning for a while, you will end up with 'gvim.exe' in the 'vim\src' + directory. +--- 259,265 ---- + + and you type: + +! mingw32-make -f Make_ming.mak gvim.exe + + After churning for a while, you will end up with 'gvim.exe' in the 'vim\src' + directory. +*************** +*** 264,270 **** + way. If, for some reason, you want the console-mode-only version of vim (this + is NOT recommended on Win32, especially on '95/'98!!!), you can use: + +! make -f Make_ming.mak GUI=no vim.exe + + If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX' + (also free!) and compress the file (typical compression is 50%). UPX can be +--- 268,274 ---- + way. If, for some reason, you want the console-mode-only version of vim (this + is NOT recommended on Win32, especially on '95/'98!!!), you can use: + +! mingw32-make -f Make_ming.mak GUI=no vim.exe + + If you are dismayed by how big the EXE is, I strongly recommend you get 'UPX' + (also free!) and compress the file (typical compression is 50%). UPX can be +*************** +*** 291,298 **** + Use Make_cyg.mak with Cygwin's GCC. See + http://users.skynet.be/antoine.mechelynck/vim/compile.htm + +! The Cygnus one many not fully work yet. +! With Cygnus gcc you can use the Unix Makefile instead (you need to get the + Unix archive then). Then you get a Cygwin application (feels like Vim is + running on Unix), while with Make_cyg.mak you get a Windows application (like + with the other makefiles). +--- 295,301 ---- + Use Make_cyg.mak with Cygwin's GCC. See + http://users.skynet.be/antoine.mechelynck/vim/compile.htm + +! With Cygnus gcc you should use the Unix Makefile instead (you need to get the + Unix archive then). Then you get a Cygwin application (feels like Vim is + running on Unix), while with Make_cyg.mak you get a Windows application (like + with the other makefiles). +*************** +*** 316,324 **** + http://www.mingw.org/wiki/LinuxCrossMinGW + http://www.libsdl.org/extras/win32/cross/README.txt + 2) Get and unpack both the Unix sources and the extra archive +! 3) in 'Make_ming.mak', set 'CROSS' to 'yes' instead of 'no'. +! Make further changes to 'Make_ming.mak' as you wish. +! If your cross-compiler prefix differs from the predefined value, + set 'CROSS_COMPILE' corresponding. + 4) make -f Make_ming.mak gvim.exe + +--- 319,327 ---- + http://www.mingw.org/wiki/LinuxCrossMinGW + http://www.libsdl.org/extras/win32/cross/README.txt + 2) Get and unpack both the Unix sources and the extra archive +! 3) in 'Make_cyg_ming.mak', set 'CROSS' to 'yes' instead of 'no'. +! Make further changes to 'Make_cyg_ming.mak' and 'Make_ming.mak' as you +! wish. If your cross-compiler prefix differs from the predefined value, + set 'CROSS_COMPILE' corresponding. + 4) make -f Make_ming.mak gvim.exe + +*** ../vim-7.4.495/src/Make_cyg.mak 2014-11-05 13:43:18.352820831 +0100 +--- src/Make_cyg.mak 2014-11-05 13:49:27.076811946 +0100 +*************** +*** 1,754 **** + # +! # Makefile for VIM on Win32, using Cygnus gcc +! # Updated by Dan Sharp. +! # Last Change: 2014 Aug 10 + # + # Also read INSTALLpc.txt! + # + # This compiles Vim as a Windows application. If you want Vim to run as a + # Cygwin application use the Makefile (just like on Unix). + # +! # GUI no or yes: set to yes if you want the GUI version (yes) +! # DIRECTX no or yes: set to yes if you want use DirectWrite (no) +! # PERL define to path to Perl dir to get Perl support (not defined) +! # PERL_VER define to version of Perl being used (56) +! # DYNAMIC_PERL no or yes: set to yes to load the Perl DLL dynamically (yes) +! # PYTHON define to path to Python dir to get PYTHON support (not defined) +! # PYTHON_VER define to version of Python being used (22) +! # DYNAMIC_PYTHON no or yes: use yes to load the Python DLL dynamically (yes) +! # PYTHON3 define to path to Python3 dir to get PYTHON3 support (not defined) +! # PYTHON3_VER define to version of Python3 being used (22) +! # DYNAMIC_PYTHON3 no or yes: use yes to load the Python3 DLL dynamically (yes) +! # TCL define to path to TCL dir to get TCL support (not defined) +! # TCL_VER define to version of TCL being used (83) +! # DYNAMIC_TCL no or yes: use yes to load the TCL DLL dynamically (yes) +! # RUBY define to path to Ruby dir to get Ruby support (not defined) +! # RUBY_VER define to version of Ruby being used (16) +! # RUBY_VER_LONG same, but in format with dot. (1.6) +! # You must set RUBY_VER_LONG when changing RUBY_VER. +! # You must set RUBY_API_VER version to RUBY_VER_LONG. +! # Don't set ruby API version to RUBY_VER like 191. +! # DYNAMIC_RUBY no or yes: use yes to load the Ruby DLL dynamically (yes) +! # MZSCHEME define to path to MzScheme dir to get MZSCHEME support (not defined) +! # MZSCHEME_VER define to version of MzScheme being used (209_000) +! # DYNAMIC_MZSCHEME no or yes: use yes to load the MzScheme DLLs dynamically (yes) +! # MZSCHEME_DLLS path to MzScheme DLLs (libmzgc and libmzsch), for "static" build. +! # MZSCHEME_USE_RACKET define to use "racket" instead of "mzsch". +! # LUA define to path to Lua dir to get Lua support (not defined) +! # LUA_VER define to version of Lua being used (51) +! # DYNAMIC_LUA no or yes: use yes to load the Lua DLL dynamically (yes) +! # GETTEXT no or yes: set to yes for dynamic gettext support (yes) +! # ICONV no or yes: set to yes for dynamic iconv support (yes) +! # MBYTE no or yes: set to yes to include multibyte support (yes) +! # IME no or yes: set to yes to include IME support (yes) +! # DYNAMIC_IME no or yes: set to yes to load imm32.dll dynamically (yes) +! # OLE no or yes: set to yes to make OLE gvim (no) +! # DEBUG no or yes: set to yes if you wish a DEBUGging build (no) +! # CPUNR No longer supported, use ARCH. +! # ARCH i386 through pentium4: select -march argument to compile with +! # (i386) +! # USEDLL no or yes: set to yes to use the Runtime library DLL (no) +! # For USEDLL=yes the cygwin1.dll is required to run Vim. +! # For "no" the mingw-gcc-g++ package or the mingw64-i686-gcc-g++ +! # package is required to compile Vim. Or set CC to gcc-3 and add +! # -L/lib/w32api to EXTRA_LIBS. +! # POSTSCRIPT no or yes: set to yes for PostScript printing (no) +! # FEATURES TINY, SMALL, NORMAL, BIG or HUGE (BIG) +! # WINVER Lowest Win32 version to support. (0x0500) +! # CSCOPE no or yes: to include cscope interface support (yes) +! # OPTIMIZE SPACE, SPEED, or MAXSPEED: set optimization level (MAXSPEED) +! # NETBEANS no or yes: to include netbeans interface support (yes when GUI +! # is yes) +! # NBDEBUG no or yes: to include netbeans interface debugging support (no) +! # XPM define to path to XPM dir to get XPM image support (not defined) +! #>>>>> choose options: +! ifndef GUI +! GUI=yes +! endif +! +! ifndef FEATURES +! FEATURES = BIG +! endif +! +! ifndef GETTEXT +! GETTEXT = yes +! endif +! +! ifndef ICONV +! ICONV = yes +! endif +! +! ifndef MBYTE +! MBYTE = yes +! endif +! +! ifndef IME +! IME = yes +! endif +! +! ifndef ARCH +! ARCH = i386 +! endif +! +! ifndef DIRECTX +! DIRECTX = no +! endif +! +! ifndef WINVER +! WINVER = 0x0500 +! endif +! +! ifndef CSCOPE +! CSCOPE = yes +! endif +! +! ifndef NETBEANS +! ifeq ($(GUI),yes) +! NETBEANS = yes +! endif +! endif +! +! ifndef OPTIMIZE +! OPTIMIZE = MAXSPEED +! endif +! +! +! # Link against the shared version of libstdc++ by default. Set +! # STATIC_STDCPLUS to "yes" to link against static version instead. +! ifndef STATIC_STDCPLUS +! STATIC_STDCPLUS=no +! endif +! +! ### See feature.h for a list of optionals. +! ### Any other defines can be included here. +! +! DEFINES = -DWIN32 -DHAVE_PATHDEF -DFEAT_$(FEATURES) \ +! -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) +! ifeq ($(ARCH),x86-64) +! DEFINES+=-DMS_WIN64 +! endif +! INCLUDES = -march=$(ARCH) -Iproto +! +! #>>>>> name of the compiler and linker, name of lib directory +! ifeq (yes, $(USEDLL)) +! # CROSS_COMPILE is used for the gvimext DLL. +! CROSS_COMPILE = i686-pc-mingw32- +! CC = gcc +! RC = windres +! else +! # i686-pc-mingw32-gcc, i686-w64-mingw32-gcc or gcc-3 can be used. + CROSS_COMPILE = i686-pc-mingw32- +! CC = $(CROSS_COMPILE)gcc +! RC = $(CROSS_COMPILE)windres +! endif +! +! ############################## +! # DYNAMIC_PERL=yes and no both work +! ############################## +! ifdef PERL +! DEFINES += -DFEAT_PERL +! INCLUDES += -I$(PERL)/lib/CORE +! EXTRA_OBJS += $(OUTDIR)/if_perl.o +! +! ifndef DYNAMIC_PERL +! DYNAMIC_PERL = yes +! endif +! +! ifndef PERL_VER +! PERL_VER = 56 +! endif +! +! 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 +! +! ############################## +! # DYNAMIC_PYTHON=yes works. +! # DYNAMIC_PYTHON=no does not (unresolved externals on link). +! ############################## +! ifdef PYTHON +! DEFINES += -DFEAT_PYTHON +! EXTRA_OBJS += $(OUTDIR)/if_python.o +! +! ifndef DYNAMIC_PYTHON +! DYNAMIC_PYTHON = yes +! endif +! +! ifndef PYTHON_VER +! PYTHON_VER = 22 +! endif +! +! ifeq (yes, $(DYNAMIC_PYTHON)) +! DEFINES += -DDYNAMIC_PYTHON -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\" +! else +! EXTRA_LIBS += $(PYTHON)/libs/python$(PYTHON_VER).lib +! endif +! endif +! +! ############################## +! # DYNAMIC_PYTHON3=yes works. +! # DYNAMIC_PYTHON3=no does not (unresolved externals on link). +! ############################## +! ifdef PYTHON3 +! DEFINES += -DFEAT_PYTHON3 +! EXTRA_OBJS += $(OUTDIR)/if_python3.o +! +! ifndef DYNAMIC_PYTHON3 +! DYNAMIC_PYTHON3 = yes +! endif +! +! ifndef PYTHON3_VER +! PYTHON3_VER = 31 +! endif +! +! ifeq (yes, $(DYNAMIC_PYTHON3)) +! DEFINES += -DDYNAMIC_PYTHON3 -DDYNAMIC_PYTHON3_DLL=\"python$(PYTHON3_VER).dll\" +! else +! EXTRA_LIBS += $(PYTHON3)/libs/python$(PYTHON3_VER).lib +! endif +! endif +! +! ############################## +! # DYNAMIC_RUBY=yes works. +! # DYNAMIC_RUBY=no does not (process exits). +! ############################## +! ifdef RUBY +! +! ifndef DYNAMIC_RUBY +! DYNAMIC_RUBY=yes +! endif +! # Set default value +! ifndef RUBY_VER +! RUBY_VER = 16 +! endif +! ifndef RUBY_VER_LONG +! RUBY_VER_LONG = 1.6 +! endif +! ifndef RUBY_API_VER +! RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG)) +! endif +! +! ifndef RUBY_PLATFORM +! ifeq ($(RUBY_VER), 16) +! RUBY_PLATFORM = i586-mswin32 +! else +! ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) +! RUBY_PLATFORM = i386-mingw32 +! else +! ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) +! RUBY_PLATFORM = x64-mingw32 +! else +! RUBY_PLATFORM = i386-mswin32 +! endif +! endif +! endif +! endif +! +! ifndef RUBY_INSTALL_NAME +! ifeq ($(RUBY_VER), 16) +! RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) +! else +! ifeq ($(ARCH),x86-64) +! RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) +! else +! RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) +! endif +! endif +! endif +! +! ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) +! RUBY_19_OR_LATER = 1 +! endif +! +! DEFINES += -DFEAT_RUBY +! ifneq ($(findstring w64-mingw32,$(CC)),) +! # A workaround for mingw-w64 +! DEFINES += -DHAVE_STRUCT_TIMESPEC -DHAVE_STRUCT_TIMEZONE +! endif +! INCLUDES += -I$(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +! ifdef RUBY_19_OR_LATER +! INCLUDES += -I$(RUBY)/include/ruby-$(RUBY_VER_LONG) -I$(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +! endif +! EXTRA_OBJS += $(OUTDIR)/if_ruby.o +! +! ifeq (yes, $(DYNAMIC_RUBY)) +! 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 +! +! ############################## +! # DYNAMIC_MZSCHEME=yes works +! # DYNAMIC_MZSCHEME=no works too +! ############################## +! ifdef MZSCHEME +! DEFINES += -DFEAT_MZSCHEME +! INCLUDES += -I$(MZSCHEME)/include +! EXTRA_OBJS += $(OUTDIR)/if_mzsch.o +! +! ifndef DYNAMIC_MZSCHEME +! DYNAMIC_MZSCHEME = yes +! endif +! +! ifndef MZSCHEME_VER +! MZSCHEME_VER = 209_000 +! endif +! +! ifndef MZSCHEME_PRECISE_GC +! MZSCHEME_PRECISE_GC=no +! endif +! +! # for version 4.x we need to generate byte-code for Scheme base +! ifndef MZSCHEME_GENERATE_BASE +! MZSCHEME_GENERATE_BASE=no +! endif +! +! ifndef MZSCHEME_USE_RACKET +! MZSCHEME_MAIN_LIB=mzsch +! else +! MZSCHEME_MAIN_LIB=racket +! endif +! +! ifeq (yes, $(DYNAMIC_MZSCHEME)) +! DEFINES += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\" +! else +! ifndef MZSCHEME_DLLS +! MZSCHEME_DLLS = $(MZSCHEME) +! endif +! ifeq (yes,$(MZSCHEME_PRECISE_GC)) +! MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) +! else +! MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) +! endif +! EXTRA_LIBS += -L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)/lib $(MZSCHEME_LIB) +! endif +! ifeq (yes,$(MZSCHEME_GENERATE_BASE)) +! DEFINES += -DINCLUDE_MZSCHEME_BASE +! MZ_EXTRA_DEP += mzscheme_base.c +! endif +! ifeq (yes,$(MZSCHEME_PRECISE_GC)) +! DEFINES += -DMZ_PRECISE_GC +! endif +! endif +! +! ############################## +! # DYNAMIC_TCL=yes and no both work. +! ############################## +! ifdef TCL +! DEFINES += -DFEAT_TCL +! INCLUDES += -I$(TCL)/include +! EXTRA_OBJS += $(OUTDIR)/if_tcl.o +! +! ifndef DYNAMIC_TCL +! DYNAMIC_TCL = yes +! endif +! +! ifndef TCL_VER +! TCL_VER = 83 +! endif +! +! ifeq (yes, $(DYNAMIC_TCL)) +! DEFINES += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" +! EXTRA_LIBS += $(TCL)/lib/tclstub$(TCL_VER).lib +! else +! EXTRA_LIBS += $(TCL)/lib/tcl$(TCL_VER).lib +! endif +! endif +! +! ############################## +! # DYNAMIC_LUA=yes works. +! # DYNAMIC_LUA=no does not (unresolved externals on link). +! ############################## +! ifdef LUA +! DEFINES += -DFEAT_LUA +! INCLUDES += -I$(LUA)/include +! EXTRA_OBJS += $(OUTDIR)/if_lua.o +! +! ifndef DYNAMIC_LUA +! DYNAMIC_LUA = yes +! endif +! +! ifndef LUA_VER +! LUA_VER = 51 +! endif +! +! ifeq (yes, $(DYNAMIC_LUA)) +! DEFINES += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\" +! else +! EXTRA_LIBS += $(LUA)/lib/lua$(LUA_VER).lib +! endif +! endif +! +! ############################## +! ifeq (yes, $(GETTEXT)) +! DEFINES += -DDYNAMIC_GETTEXT +! endif +! +! ############################## +! ifeq (yes, $(ICONV)) +! DEFINES += -DDYNAMIC_ICONV +! endif +! +! ############################## +! ifeq (yes, $(MBYTE)) +! DEFINES += -DFEAT_MBYTE +! endif +! +! ############################## +! ifeq (yes, $(IME)) +! DEFINES += -DFEAT_MBYTE_IME +! +! ifndef DYNAMIC_IME +! DYNAMIC_IME = yes +! endif +! +! ifeq (yes, $(DYNAMIC_IME)) +! DEFINES += -DDYNAMIC_IME +! else +! EXTRA_LIBS += -limm32 +! endif +! endif +! +! ############################## +! ifeq (yes, $(DEBUG)) +! DEFINES += -DDEBUG +! INCLUDES += -g -fstack-check +! DEBUG_SUFFIX = d +! else +! +! ifeq ($(OPTIMIZE), SIZE) +! OPTFLAG = -Os +! else +! ifeq ($(OPTIMIZE), MAXSPEED) +! OPTFLAG = -O3 -fomit-frame-pointer -freg-struct-return +! else +! OPTFLAG = -O2 +! endif +! endif +! +! # A bug in the GCC <= 3.2 optimizer can cause a crash. The +! # following option removes the problem optimization. +! OPTFLAG += -fno-strength-reduce +! +! INCLUDES += -s +! +! endif +! +! ############################## +! # USEDLL=yes will build a Cygwin32 executable that relies on cygwin1.dll. +! # USEDLL=no will build a Mingw32 executable with no extra dll dependencies. +! ############################## +! ifeq (yes, $(USEDLL)) +! DEFINES += -D_MAX_PATH=256 -D__CYGWIN__ +! endif +! +! ############################## +! ifeq (yes, $(POSTSCRIPT)) +! DEFINES += -DMSWINPS +! endif +! +! ############################## +! ifeq (yes, $(CSCOPE)) +! DEFINES += -DFEAT_CSCOPE +! EXTRA_OBJS += $(OUTDIR)/if_cscope.o +! endif +! +! ############################## +! ifeq ($(GUI),yes) +! +! ############################## +! ifeq (yes, $(NETBEANS)) +! # Only allow NETBEANS for a GUI build. +! DEFINES += -DFEAT_NETBEANS_INTG +! EXTRA_OBJS += $(OUTDIR)/netbeans.o +! EXTRA_LIBS += -lwsock32 +! +! ifeq (yes, $(NBDEBUG)) +! DEFINES += -DNBDEBUG +! NBDEBUG_DEP = nbdebug.h nbdebug.c +! endif +! +! endif +! +! ############################## +! ifeq (yes, $(DIRECTX)) +! # Only allow DIRECTX for a GUI build. +! DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX +! EXTRA_OBJS += $(OUTDIR)/gui_dwrite.o +! EXTRA_LIBS += -ld2d1 -ldwrite +! USE_STDCPLUS = yes +! endif +! +! ############################## +! ifndef XPM +! ifeq ($(ARCH),i386) +! XPM = xpm/x86 +! endif +! ifeq ($(ARCH),i486) +! XPM = xpm/x86 +! endif +! ifeq ($(ARCH),i586) +! XPM = xpm/x86 +! endif +! ifeq ($(ARCH),i686) +! XPM = xpm/x86 +! endif +! ifeq ($(ARCH),x86-64) +! XPM = xpm/x64 +! endif +! endif +! ifdef XPM +! ifneq ($(XPM),no) +! # Only allow XPM for a GUI build. +! DEFINES += -DFEAT_XPM_W32 +! INCLUDES += -I$(XPM)/include -I$(XPM)/../include +! EXTRA_OBJS += $(OUTDIR)/xpm_w32.o +! EXTRA_LIBS += -L$(XPM)/lib -lXpm +! endif +! endif +! +! ############################## +! EXE = gvim$(DEBUG_SUFFIX).exe +! OUTDIR = gobj$(DEBUG_SUFFIX) +! DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD +! EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o +! EXTRA_LIBS += -mwindows -lcomctl32 -lversion +! else +! EXE = vim$(DEBUG_SUFFIX).exe +! OUTDIR = obj$(DEBUG_SUFFIX) +! LIBS += -luser32 -lgdi32 -lcomdlg32 +! endif +! +! ############################## +! ifeq (yes, $(OLE)) +! DEFINES += -DFEAT_OLE +! EXTRA_OBJS += $(OUTDIR)/if_ole.o +! EXTRA_LIBS += -loleaut32 +! USE_STDCPLUS = yes +! endif +! +! ############################## +! ifneq (sh.exe, $(SHELL)) +! DEL = rm +! MKDIR = mkdir -p +! DIRSLASH = / +! else +! DEL = del +! MKDIR = mkdir +! DIRSLASH = \\ +! endif +! +! ############################## +! ifeq (yes, $(USE_STDCPLUS)) +! ifeq (yes, $(STATIC_STDCPLUS)) +! EXTRA_LIBS += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic +! else +! EXTRA_LIBS += -lstdc++ +! endif +! endif +! +! #>>>>> end of choices +! ########################################################################### +! +! INCL = vim.h globals.h option.h keymap.h macros.h ascii.h term.h os_win32.h \ +! structs.h version.h +! +! CFLAGS = $(OPTFLAG) $(DEFINES) $(INCLUDES) +! +! RCFLAGS = -O coff $(DEFINES) +! +! OBJ = \ +! $(OUTDIR)/blowfish.o \ +! $(OUTDIR)/buffer.o \ +! $(OUTDIR)/charset.o \ +! $(OUTDIR)/crypt.o \ +! $(OUTDIR)/crypt_zip.o \ +! $(OUTDIR)/diff.o \ +! $(OUTDIR)/digraph.o \ +! $(OUTDIR)/edit.o \ +! $(OUTDIR)/eval.o \ +! $(OUTDIR)/ex_cmds.o \ +! $(OUTDIR)/ex_cmds2.o \ +! $(OUTDIR)/ex_docmd.o \ +! $(OUTDIR)/ex_eval.o \ +! $(OUTDIR)/ex_getln.o \ +! $(OUTDIR)/fileio.o \ +! $(OUTDIR)/fold.o \ +! $(OUTDIR)/getchar.o \ +! $(OUTDIR)/hardcopy.o \ +! $(OUTDIR)/hashtab.o \ +! $(OUTDIR)/main.o \ +! $(OUTDIR)/mark.o \ +! $(OUTDIR)/memfile.o \ +! $(OUTDIR)/memline.o \ +! $(OUTDIR)/menu.o \ +! $(OUTDIR)/message.o \ +! $(OUTDIR)/misc1.o \ +! $(OUTDIR)/misc2.o \ +! $(OUTDIR)/move.o \ +! $(OUTDIR)/mbyte.o \ +! $(OUTDIR)/normal.o \ +! $(OUTDIR)/ops.o \ +! $(OUTDIR)/option.o \ +! $(OUTDIR)/os_win32.o \ +! $(OUTDIR)/os_mswin.o \ +! $(OUTDIR)/winclip.o \ +! $(OUTDIR)/pathdef.o \ +! $(OUTDIR)/popupmnu.o \ +! $(OUTDIR)/quickfix.o \ +! $(OUTDIR)/regexp.o \ +! $(OUTDIR)/screen.o \ +! $(OUTDIR)/search.o \ +! $(OUTDIR)/sha256.o \ +! $(OUTDIR)/spell.o \ +! $(OUTDIR)/syntax.o \ +! $(OUTDIR)/tag.o \ +! $(OUTDIR)/term.o \ +! $(OUTDIR)/ui.o \ +! $(OUTDIR)/undo.o \ +! $(OUTDIR)/version.o \ +! $(OUTDIR)/vimrc.o \ +! $(OUTDIR)/window.o \ +! $(EXTRA_OBJS) +! +! all: $(EXE) xxd/xxd.exe vimrun.exe install.exe uninstal.exe GvimExt/gvimext.dll +! +! # According to the Cygwin doc 1.2 FAQ, kernel32 should not be specified for +! # linking unless calling ld directly. +! # See /usr/doc/cygwin-doc-1.2/html/faq_toc.html#TOC93 for more information. +! $(EXE): $(OUTDIR) $(OBJ) +! $(CC) $(CFLAGS) -o $(EXE) $(OBJ) $(LIBS) -luuid -lole32 $(EXTRA_LIBS) +! +! xxd/xxd.exe: xxd/xxd.c +! $(MAKE) -C xxd -f Make_cyg.mak CC=$(CC) USEDLL=$(USEDLL) +! +! GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h +! $(MAKE) -C GvimExt -f Make_cyg.mak CROSS_COMPILE=$(CROSS_COMPILE) +! +! vimrun.exe: vimrun.c +! $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIBS) +! +! install.exe: dosinst.c +! $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIBS) -luuid -lole32 +! +! uninstal.exe: uninstal.c +! $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIBS) +! +! $(OUTDIR): +! $(MKDIR) $(OUTDIR) +! +! tags: +! command /c ctags *.c $(INCL) +! +! clean: +! -$(DEL) $(OUTDIR)$(DIRSLASH)*.o +! -rmdir $(OUTDIR) +! -$(DEL) $(EXE) vimrun.exe install.exe uninstal.exe +! ifdef PERL +! -$(DEL) if_perl.c +! endif +! ifdef MZSCHEME +! -$(DEL) mzscheme_base.c +! endif +! -$(DEL) pathdef.c +! $(MAKE) -C xxd -f Make_cyg.mak clean +! $(MAKE) -C GvimExt -f Make_cyg.mak clean +! +! distclean: clean +! -$(DEL) obj$(DIRSLASH)*.o +! -rmdir obj +! -$(DEL) gobj$(DIRSLASH)*.o +! -rmdir gobj +! -$(DEL) objd$(DIRSLASH)*.o +! -rmdir objd +! -$(DEL) gobjd$(DIRSLASH)*.o +! -rmdir gobjd +! -$(DEL) *.exe +! +! ########################################################################### +! +! $(OUTDIR)/%.o : %.c $(INCL) +! $(CC) -c $(CFLAGS) $< -o $@ +! +! $(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h +! $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o +! +! $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h +! $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o +! +! $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL) +! $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o +! +! $(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h +! $(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o +! +! $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h +! $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o +! +! $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) +! $(CC) -c $(CFLAGS) if_ole.cpp -o $(OUTDIR)/if_ole.o +! +! $(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL) +! $(CC) -c $(CFLAGS) -I$(PYTHON)/include $< -o $@ +! +! $(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL) +! $(CC) -c $(CFLAGS) -I$(PYTHON3)/include $< -o $@ +! +! if_perl.c: if_perl.xs typemap +! $(PERL)/bin/perl `cygpath -d $(PERL)/lib/ExtUtils/xsubpp` \ +! -prototypes -typemap \ +! `cygpath -d $(PERL)/lib/ExtUtils/typemap` if_perl.xs > $@ +! +! $(OUTDIR)/if_perl.o: if_perl.c $(INCL) +! ifeq (yes, $(USEDLL)) +! $(CC) -c $(CFLAGS) -I/usr/include/mingw -D__MINGW32__ if_perl.c -o $(OUTDIR)/if_perl.o +! endif +! +! $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL) +! ifeq (16, $(RUBY_VER)) +! $(CC) -c $(CFLAGS) -U_WIN32 if_ruby.c -o $(OUTDIR)/if_ruby.o +! endif +! +! $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_DEP) +! $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o +! +! $(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL) +! $(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o +! +! $(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP) +! $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o +! +! $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h +! $(RC) $(RCFLAGS) vim.rc -o $(OUTDIR)/vimrc.o +! +! mzscheme_base.c: +! $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base +! +! pathdef.c: $(INCL) +! ifneq (sh.exe, $(SHELL)) +! @echo creating pathdef.c +! @echo '/* pathdef.c */' > pathdef.c +! @echo '#include "vim.h"' >> pathdef.c +! @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c +! @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c +! @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c +! @echo 'char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)";' >> pathdef.c +! @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c +! @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c +! else +! @echo creating pathdef.c +! @echo /* pathdef.c */ > pathdef.c +! @echo #include "vim.h" >> pathdef.c +! @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c +! @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c +! @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c +! @echo char_u *all_lflags = (char_u *)"$(CC) -s -o $(EXE) $(LIBS) -luuid -lole32 $(EXTRA_LIBS)"; >> pathdef.c +! @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c +! @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c +! endif + +--- 1,52 ---- + # +! # Makefile for VIM on Win32, using MinGW cross compiler on Cygwin + # + # Also read INSTALLpc.txt! + # + # This compiles Vim as a Windows application. If you want Vim to run as a + # Cygwin application use the Makefile (just like on Unix). + # +! # The old Make_cyg.mak (maintained by Dan Sharp et al.) was merged into +! # Make_cyg_ming.mak. Note: USEDLL option was removed. +! # This file contains Cygwin specific settings. Common settings are contained +! # in Make_cyg_ming.mak. +! # +! # Last updated by Ken Takata. +! # Last Change: 2014 Oct 21 +! +! +! # uncomment 'PERL' if you want a perl-enabled version +! #PERL=/cygdrive/c/perl +! +! # uncomment 'LUA' if you want a Lua-enabled version +! #LUA=/cygdrive/c/lua +! +! # uncomment 'MZSCHEME' if you want a MzScheme-enabled version +! #MZSCHEME=/cygdrive/d/plt +! +! # uncomment 'PYTHON' if you want a python-enabled version +! #PYTHON=/cygdrive/c/python20 +! +! # uncomment 'PYTHON3' if you want a python3-enabled version +! #PYTHON3=/cygdrive/c/python31 +! +! # uncomment 'TCL' if you want a Tcl-enabled version +! #TCL=/cygdrive/c/tcl +! +! # uncomment 'RUBY' if you want a Ruby-enabled version +! #RUBY=/cygdribe/c/ruby +! +! +! # Use MinGW(-w64) cross compiler. +! # There are three MinGW packages in Cygwin: +! # 32-bit: mingw-gcc-g++ and mingw64-i686-gcc-g++ +! # 64-bit: mingw64-x86_64-gcc-g++ +! # You may also need to set 'ARCH' in Make_cyg_ming.mak. + CROSS_COMPILE = i686-pc-mingw32- +! #CROSS_COMPILE = i686-w64-mingw32- +! #CROSS_COMPILE = x86_64-w64-mingw32- +! + ++ # Do not change this. ++ UNDER_CYGWIN = yes ++ include Make_cyg_ming.mak +*** ../vim-7.4.495/src/Make_cyg_ming.mak 2014-11-05 13:51:13.916809371 +0100 +--- src/Make_cyg_ming.mak 2014-11-05 13:49:27.076811946 +0100 +*************** +*** 0 **** +--- 1,847 ---- ++ # Makefile for VIM on Win32 (Cygwin and MinGW) ++ # ++ # This file contains common part for Cygwin and MinGW and it is included ++ # from Make_cyg.mak and Make_ming.mak. ++ # ++ # Info at http://www.mingw.org ++ # Alternative x86 and 64-builds: http://mingw-w64.sourceforge.net ++ # Also requires GNU make, which you can download from the same sites. ++ # Get missing libraries from http://gnuwin32.sf.net. ++ # ++ # Tested on Win32 NT 4 and Win95. ++ # ++ # To make everything, just 'make -f Make_ming.mak'. ++ # To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'. ++ # After a run, you can 'make -f Make_ming.mak clean' to clean up. ++ # ++ # NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think ++ # it's just run out of memory or something. Run again, and it will continue ++ # with 'xxd'. ++ # ++ # "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs, ++ # using the excellent UPX compressor: ++ # http://upx.sourceforge.net/ ++ # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs: ++ # http://www.matcode.com/mpress.htm ++ # ++ # Maintained by Ron Aaron et al. ++ # Updated 2014 Oct 13. ++ ++ #>>>>> choose options: ++ # set to yes for a debug build ++ DEBUG=no ++ # set to SIZE for size, SPEED for speed, MAXSPEED for maximum optimization ++ OPTIMIZE=MAXSPEED ++ # set to yes to make gvim, no for vim ++ GUI=yes ++ # set to yes if you want to use DirectWrite (DirectX) ++ # MinGW-w64 is needed, and ARCH should be set to i686 or x86-64. ++ DIRECTX=no ++ # FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE] ++ # Set to TINY to make minimal version (few features). ++ FEATURES=BIG ++ # Set to one of i386, i486, i586, i686 as the minimum target processor. ++ # For amd64/x64 architecture set ARCH=x86-64 . ++ ARCH=i386 ++ # Set to yes to cross-compile from unix; no=native Windows (and Cygwin). ++ CROSS=no ++ # Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'. ++ #ICONV="." ++ ICONV=yes ++ GETTEXT=yes ++ # Set to yes to include multibyte support. ++ MBYTE=yes ++ # Set to yes to include IME support. ++ IME=yes ++ DYNAMIC_IME=yes ++ # Set to yes to enable writing a postscript file with :hardcopy. ++ POSTSCRIPT=no ++ # Set to yes to enable OLE support. ++ OLE=no ++ # Set the default $(WINVER) to make it work with pre-Win2k. ++ ifndef WINVER ++ WINVER = 0x0500 ++ endif ++ # Set to yes to enable Cscope support. ++ CSCOPE=yes ++ # Set to yes to enable Netbeans support. ++ NETBEANS=$(GUI) ++ ++ ++ # Link against the shared version of libstdc++ by default. Set ++ # STATIC_STDCPLUS to "yes" to link against static version instead. ++ ifndef STATIC_STDCPLUS ++ STATIC_STDCPLUS=no ++ endif ++ ++ # If the user doesn't want gettext, undefine it. ++ ifeq (no, $(GETTEXT)) ++ GETTEXT= ++ endif ++ # Added by E.F. Amatria 2001 Feb 23 ++ # Uncomment the first line and one of the following three if you want Native Language ++ # Support. You'll need gnu_gettext.win32, a MINGW32 Windows PORT of gettext by ++ # Franco Bez . It may be found at ++ # http://home.a-city.de/franco.bez/gettext/gettext_win32_en.html ++ # Tested with mingw32 with GCC-2.95.2 on Win98 ++ # Updated 2001 Jun 9 ++ #GETTEXT=c:/gettext.win32.msvcrt ++ #STATIC_GETTEXT=USE_STATIC_GETTEXT ++ #DYNAMIC_GETTEXT=USE_GETTEXT_DLL ++ #DYNAMIC_GETTEXT=USE_SAFE_GETTEXT_DLL ++ SAFE_GETTEXT_DLL_OBJ = $(GETTEXT)/src/safe_gettext_dll/safe_gettext_dll.o ++ # Alternatively, if you uncomment the two following lines, you get a "safe" version ++ # without linking the safe_gettext_dll.o object file. ++ #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT ++ #GETTEXT_DYNAMIC=gnu_gettext.dll ++ INTLPATH=$(GETTEXT)/lib/mingw32 ++ INTLLIB=gnu_gettext ++ ++ # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext ++ # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/ ++ # uncomment the following, but I can't build a static version with them, ?-(| ++ #GETTEXT=c:/gettext-0.10.37-20010430 ++ #STATIC_GETTEXT=USE_STATIC_GETTEXT ++ #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT ++ #INTLPATH=$(GETTEXT)/lib ++ #INTLLIB=intl ++ ++ # Perl interface: ++ # PERL=[Path to Perl directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_PERL=yes (to load the Perl DLL dynamically) ++ # PERL_VER=[Perl version, eg 56, 58, 510] (default is 56) ++ ifdef PERL ++ ifndef PERL_VER ++ PERL_VER=56 ++ endif ++ ifndef DYNAMIC_PERL ++ DYNAMIC_PERL=yes ++ endif ++ # on Linux, for cross-compile, it's here: ++ #PERLLIB=/home/ron/ActivePerl/lib ++ # on NT, it's here: ++ PERLEXE=$(PERL)/bin/perl ++ PERLLIB=$(PERL)/lib ++ PERLLIBS=$(PERLLIB)/Core ++ ifeq ($(UNDER_CYGWIN),yes) ++ PERLTYPEMAP:=$(shell cygpath -m $(PERLLIB)/ExtUtils/typemap) ++ XSUBPPTRY:=$(shell cygpath -m $(PERLLIB)/ExtUtils/xsubpp) ++ else ++ PERLTYPEMAP=$(PERLLIB)/ExtUtils/typemap ++ XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp ++ endif ++ XSUBPP_EXISTS=$(shell $(PERLEXE) -e "print 1 unless -e '$(XSUBPPTRY)'") ++ ifeq "$(XSUBPP_EXISTS)" "" ++ XSUBPP=$(PERLEXE) "$(XSUBPPTRY)" ++ else ++ XSUBPP=xsubpp ++ endif ++ endif ++ ++ # Lua interface: ++ # LUA=[Path to Lua directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_LUA=yes (to load the Lua DLL dynamically) ++ # LUA_VER=[Lua version, eg 51, 52] (default is 51) ++ ifdef LUA ++ ifndef DYNAMIC_LUA ++ DYNAMIC_LUA=yes ++ endif ++ ++ ifndef LUA_VER ++ LUA_VER=51 ++ endif ++ ++ ifeq (no,$(DYNAMIC_LUA)) ++ LUA_LIB = -L$(LUA)/lib -llua ++ endif ++ ++ endif ++ ++ # MzScheme interface: ++ # MZSCHEME=[Path to MzScheme directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_MZSCHEME=yes (to load the MzScheme DLL dynamically) ++ # MZSCHEME_VER=[MzScheme version] (default is 205_000) ++ # MZSCHEME_DEBUG=no ++ ifdef MZSCHEME ++ ifndef DYNAMIC_MZSCHEME ++ DYNAMIC_MZSCHEME=yes ++ endif ++ ++ ifndef MZSCHEME_VER ++ MZSCHEME_VER=205_000 ++ endif ++ ++ ifndef MZSCHEME_PRECISE_GC ++ MZSCHEME_PRECISE_GC=no ++ endif ++ ++ # for version 4.x we need to generate byte-code for Scheme base ++ ifndef MZSCHEME_GENERATE_BASE ++ MZSCHEME_GENERATE_BASE=no ++ endif ++ ++ ifndef MZSCHEME_USE_RACKET ++ MZSCHEME_MAIN_LIB=mzsch ++ else ++ MZSCHEME_MAIN_LIB=racket ++ endif ++ ++ ifeq (no,$(DYNAMIC_MZSCHEME)) ++ ifeq (yes,$(MZSCHEME_PRECISE_GC)) ++ MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) ++ else ++ MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) ++ endif ++ # the modern MinGW can dynamically link to dlls directly. ++ # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll ++ ifndef MZSCHEME_DLLS ++ MZSCHEME_DLLS=$(MZSCHEME) ++ endif ++ MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)\lib ++ endif ++ ++ endif ++ ++ # Python interface: ++ # PYTHON=[Path to Python directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_PYTHON=yes (to load the Python DLL dynamically) ++ # PYTHON_VER=[Python version, eg 22, 23, ..., 27] (default is 22) ++ ifdef PYTHON ++ ifndef DYNAMIC_PYTHON ++ DYNAMIC_PYTHON=yes ++ endif ++ ++ ifndef PYTHON_VER ++ PYTHON_VER=22 ++ endif ++ ++ ifeq (no,$(DYNAMIC_PYTHON)) ++ PYTHONLIB=-L$(PYTHON)/libs -lpython$(PYTHON_VER) ++ endif ++ # my include files are in 'win32inc' on Linux, and 'include' in the standard ++ # NT distro (ActiveState) ++ ifeq ($(CROSS),no) ++ PYTHONINC=-I $(PYTHON)/include ++ else ++ PYTHONINC=-I $(PYTHON)/win32inc ++ endif ++ endif ++ ++ # Python3 interface: ++ # PYTHON3=[Path to Python3 directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_PYTHON3=yes (to load the Python3 DLL dynamically) ++ # PYTHON3_VER=[Python3 version, eg 31, 32] (default is 31) ++ ifdef PYTHON3 ++ ifndef DYNAMIC_PYTHON3 ++ DYNAMIC_PYTHON3=yes ++ endif ++ ++ ifndef PYTHON3_VER ++ PYTHON3_VER=31 ++ endif ++ ++ ifeq (no,$(DYNAMIC_PYTHON3)) ++ PYTHON3LIB=-L$(PYTHON3)/libs -lPYTHON$(PYTHON3_VER) ++ endif ++ ++ ifeq ($(CROSS),no) ++ PYTHON3INC=-I $(PYTHON3)/include ++ else ++ PYTHON3INC=-I $(PYTHON3)/win32inc ++ endif ++ endif ++ ++ # TCL interface: ++ # TCL=[Path to TCL directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_TCL=yes (to load the TCL DLL dynamically) ++ # TCL_VER=[TCL version, eg 83, 84] (default is 83) ++ ifdef TCL ++ ifndef DYNAMIC_TCL ++ DYNAMIC_TCL=yes ++ endif ++ ifndef TCL_VER ++ TCL_VER = 83 ++ endif ++ TCLINC += -I$(TCL)/include ++ endif ++ ++ ++ # Ruby interface: ++ # RUBY=[Path to Ruby directory] (Set inside Make_cyg.mak or Make_ming.mak) ++ # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically) ++ # RUBY_VER=[Ruby version, eg 18, 19, 20] (default is 18) ++ # RUBY_VER_LONG=[Ruby version, eg 1.8, 1.9.1, 2.0.0] (default is 1.8) ++ # You must set RUBY_VER_LONG when changing RUBY_VER. ++ # RUBY_API_VER is derived from RUBY_VER_LONG. ++ # Note: If you use Ruby 1.9.3, set as follows: ++ # RUBY_VER=19 ++ # RUBY_VER_LONG=1.9.1 (not 1.9.3, because the API version is 1.9.1.) ++ ifdef RUBY ++ ifndef DYNAMIC_RUBY ++ DYNAMIC_RUBY=yes ++ endif ++ # Set default value ++ ifndef RUBY_VER ++ RUBY_VER = 18 ++ endif ++ ifndef RUBY_VER_LONG ++ RUBY_VER_LONG = 1.8 ++ endif ++ ifndef RUBY_API_VER ++ RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG)) ++ endif ++ ++ ifndef RUBY_PLATFORM ++ ifeq ($(RUBY_VER), 16) ++ RUBY_PLATFORM = i586-mswin32 ++ else ++ ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) ++ RUBY_PLATFORM = i386-mingw32 ++ else ++ ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) ++ RUBY_PLATFORM = x64-mingw32 ++ else ++ RUBY_PLATFORM = i386-mswin32 ++ endif ++ endif ++ endif ++ endif ++ ++ ifndef RUBY_INSTALL_NAME ++ ifeq ($(RUBY_VER), 16) ++ RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) ++ else ++ ifeq ($(ARCH),x86-64) ++ RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) ++ else ++ RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) ++ endif ++ endif ++ endif ++ ++ ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) ++ RUBY_19_OR_LATER = 1 ++ endif ++ ++ RUBYINC = -I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) ++ ifdef RUBY_19_OR_LATER ++ RUBYINC += -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) ++ endif ++ ifeq (no, $(DYNAMIC_RUBY)) ++ RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME) ++ endif ++ ++ endif # RUBY ++ ++ # See feature.h for a list of options. ++ # Any other defines can be included here. ++ DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD ++ DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \ ++ -DHAVE_PATHDEF -DFEAT_$(FEATURES) ++ ifeq ($(ARCH),x86-64) ++ DEFINES+=-DMS_WIN64 ++ endif ++ ifeq ($(CROSS),yes) ++ # cross-compiler prefix: ++ ifndef CROSS_COMPILE ++ CROSS_COMPILE = i586-pc-mingw32msvc- ++ endif ++ DEL = rm ++ MKDIR = mkdir -p ++ DIRSLASH = / ++ else ++ # normal (Windows) compilation: ++ ifndef CROSS_COMPILE ++ CROSS_COMPILE = ++ endif ++ ifneq (sh.exe, $(SHELL)) ++ DEL = rm ++ MKDIR = mkdir -p ++ DIRSLASH = / ++ else ++ DEL = del ++ MKDIR = mkdir ++ DIRSLASH = \\ ++ endif ++ endif ++ CC := $(CROSS_COMPILE)gcc ++ CXX := $(CROSS_COMPILE)g++ ++ WINDRES := $(CROSS_COMPILE)windres ++ WINDRES_CC = $(CC) ++ ++ #>>>>> end of choices ++ ########################################################################### ++ ++ 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 ++ GETTEXTINCLUDE = $(GETTEXT)/include ++ GETTEXTLIB = $(INTLPATH) ++ ifeq (yes, $(GETTEXT)) ++ DEFINES += -DDYNAMIC_GETTEXT ++ else ++ ifdef DYNAMIC_GETTEXT ++ DEFINES += -D$(DYNAMIC_GETTEXT) ++ ifdef GETTEXT_DYNAMIC ++ DEFINES += -DGETTEXT_DYNAMIC -DGETTEXT_DLL=\"$(GETTEXT_DYNAMIC)\" ++ endif ++ endif ++ endif ++ 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 ++ ++ ifdef LUA ++ CFLAGS += -I$(LUA)/include -I$(LUA) -DFEAT_LUA ++ ifeq (yes, $(DYNAMIC_LUA)) ++ CFLAGS += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\" ++ endif ++ endif ++ ++ ifdef MZSCHEME ++ CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\" ++ ifeq (yes, $(DYNAMIC_MZSCHEME)) ++ CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\" ++ endif ++ ifeq (yes, "$(MZSCHEME_DEBUG)") ++ CFLAGS += -DMZSCHEME_FORCE_GC ++ endif ++ endif ++ ++ ifdef RUBY ++ CFLAGS += -DFEAT_RUBY $(RUBYINC) ++ ifeq (yes, $(DYNAMIC_RUBY)) ++ CFLAGS += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\" ++ CFLAGS += -DDYNAMIC_RUBY_VER=$(RUBY_VER) ++ endif ++ ifneq ($(findstring w64-mingw32,$(CC)),) ++ # A workaround for MinGW-w64 ++ CFLAGS += -DHAVE_STRUCT_TIMESPEC -DHAVE_STRUCT_TIMEZONE ++ endif ++ endif ++ ++ ifdef PYTHON ++ CFLAGS += -DFEAT_PYTHON ++ ifeq (yes, $(DYNAMIC_PYTHON)) ++ CFLAGS += -DDYNAMIC_PYTHON ++ endif ++ endif ++ ++ ifdef PYTHON3 ++ CFLAGS += -DFEAT_PYTHON3 ++ ifeq (yes, $(DYNAMIC_PYTHON3)) ++ CFLAGS += -DDYNAMIC_PYTHON3 ++ endif ++ endif ++ ++ ifdef TCL ++ CFLAGS += -DFEAT_TCL $(TCLINC) ++ ifeq (yes, $(DYNAMIC_TCL)) ++ CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" ++ endif ++ endif ++ ++ ifeq ($(POSTSCRIPT),yes) ++ DEFINES += -DMSWINPS ++ endif ++ ++ ifeq (yes, $(OLE)) ++ DEFINES += -DFEAT_OLE ++ endif ++ ++ ifeq ($(CSCOPE),yes) ++ DEFINES += -DFEAT_CSCOPE ++ endif ++ ++ ifeq ($(NETBEANS),yes) ++ # Only allow NETBEANS for a GUI build. ++ ifeq (yes, $(GUI)) ++ DEFINES += -DFEAT_NETBEANS_INTG ++ ++ ifeq ($(NBDEBUG), yes) ++ DEFINES += -DNBDEBUG ++ NBDEBUG_INCL = nbdebug.h ++ NBDEBUG_SRC = nbdebug.c ++ endif ++ endif ++ endif ++ ++ # DirectWrite (DirectX) ++ ifeq ($(DIRECTX),yes) ++ # Only allow DirectWrite for a GUI build. ++ ifeq (yes, $(GUI)) ++ DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX ++ endif ++ endif ++ ++ # Only allow XPM for a GUI build. ++ ifeq (yes, $(GUI)) ++ ++ ifndef XPM ++ ifeq ($(ARCH),i386) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),i486) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),i586) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),i686) ++ XPM = xpm/x86 ++ endif ++ ifeq ($(ARCH),x86-64) ++ XPM = xpm/x64 ++ endif ++ endif ++ ifdef XPM ++ ifneq ($(XPM),no) ++ CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include -I $(XPM)/../include ++ endif ++ endif ++ ++ endif ++ ++ ifeq ($(DEBUG),yes) ++ CFLAGS += -g -fstack-check ++ DEBUG_SUFFIX=d ++ else ++ ifeq ($(OPTIMIZE), SIZE) ++ CFLAGS += -Os ++ else ++ ifeq ($(OPTIMIZE), MAXSPEED) ++ CFLAGS += -O3 ++ CFLAGS += -fomit-frame-pointer -freg-struct-return ++ else # SPEED ++ CFLAGS += -O2 ++ endif ++ endif ++ CFLAGS += -s ++ endif ++ ++ LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion ++ GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o ++ OBJ = \ ++ $(OUTDIR)/blowfish.o \ ++ $(OUTDIR)/buffer.o \ ++ $(OUTDIR)/charset.o \ ++ $(OUTDIR)/crypt.o \ ++ $(OUTDIR)/crypt_zip.o \ ++ $(OUTDIR)/diff.o \ ++ $(OUTDIR)/digraph.o \ ++ $(OUTDIR)/edit.o \ ++ $(OUTDIR)/eval.o \ ++ $(OUTDIR)/ex_cmds.o \ ++ $(OUTDIR)/ex_cmds2.o \ ++ $(OUTDIR)/ex_docmd.o \ ++ $(OUTDIR)/ex_eval.o \ ++ $(OUTDIR)/ex_getln.o \ ++ $(OUTDIR)/fileio.o \ ++ $(OUTDIR)/fold.o \ ++ $(OUTDIR)/getchar.o \ ++ $(OUTDIR)/hardcopy.o \ ++ $(OUTDIR)/hashtab.o \ ++ $(OUTDIR)/main.o \ ++ $(OUTDIR)/mark.o \ ++ $(OUTDIR)/memfile.o \ ++ $(OUTDIR)/memline.o \ ++ $(OUTDIR)/menu.o \ ++ $(OUTDIR)/message.o \ ++ $(OUTDIR)/misc1.o \ ++ $(OUTDIR)/misc2.o \ ++ $(OUTDIR)/move.o \ ++ $(OUTDIR)/mbyte.o \ ++ $(OUTDIR)/normal.o \ ++ $(OUTDIR)/ops.o \ ++ $(OUTDIR)/option.o \ ++ $(OUTDIR)/os_win32.o \ ++ $(OUTDIR)/os_mswin.o \ ++ $(OUTDIR)/winclip.o \ ++ $(OUTDIR)/pathdef.o \ ++ $(OUTDIR)/popupmnu.o \ ++ $(OUTDIR)/quickfix.o \ ++ $(OUTDIR)/regexp.o \ ++ $(OUTDIR)/screen.o \ ++ $(OUTDIR)/search.o \ ++ $(OUTDIR)/sha256.o \ ++ $(OUTDIR)/spell.o \ ++ $(OUTDIR)/syntax.o \ ++ $(OUTDIR)/tag.o \ ++ $(OUTDIR)/term.o \ ++ $(OUTDIR)/ui.o \ ++ $(OUTDIR)/undo.o \ ++ $(OUTDIR)/version.o \ ++ $(OUTDIR)/vimrc.o \ ++ $(OUTDIR)/window.o ++ ++ ifdef PERL ++ OBJ += $(OUTDIR)/if_perl.o ++ endif ++ ifdef LUA ++ OBJ += $(OUTDIR)/if_lua.o ++ endif ++ ifdef MZSCHEME ++ OBJ += $(OUTDIR)/if_mzsch.o ++ MZSCHEME_INCL = if_mzsch.h ++ ifeq (yes,$(MZSCHEME_GENERATE_BASE)) ++ CFLAGS += -DINCLUDE_MZSCHEME_BASE ++ MZ_EXTRA_DEP += mzscheme_base.c ++ endif ++ ifeq (yes,$(MZSCHEME_PRECISE_GC)) ++ CFLAGS += -DMZ_PRECISE_GC ++ endif ++ endif ++ ifdef PYTHON ++ OBJ += $(OUTDIR)/if_python.o ++ endif ++ ifdef PYTHON3 ++ OBJ += $(OUTDIR)/if_python3.o ++ endif ++ ifdef RUBY ++ OBJ += $(OUTDIR)/if_ruby.o ++ endif ++ ifdef TCL ++ OBJ += $(OUTDIR)/if_tcl.o ++ endif ++ ifeq ($(CSCOPE),yes) ++ OBJ += $(OUTDIR)/if_cscope.o ++ endif ++ ifeq ($(NETBEANS),yes) ++ # Only allow NETBEANS for a GUI build. ++ ifeq (yes, $(GUI)) ++ OBJ += $(OUTDIR)/netbeans.o ++ LIB += -lwsock32 ++ endif ++ endif ++ ifeq ($(DIRECTX),yes) ++ # Only allow DIRECTX for a GUI build. ++ ifeq (yes, $(GUI)) ++ OBJ += $(OUTDIR)/gui_dwrite.o ++ LIB += -ld2d1 -ldwrite ++ USE_STDCPLUS = yes ++ endif ++ endif ++ ifneq ($(XPM),no) ++ # Only allow XPM for a GUI build. ++ 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 ++ ++ ++ ifdef MZSCHEME ++ MZSCHEME_SUFFIX = Z ++ endif ++ ++ ifeq ($(GUI),yes) ++ TARGET := gvim$(DEBUG_SUFFIX).exe ++ DEFINES += $(DEF_GUI) ++ OBJ += $(GUIOBJ) ++ LFLAGS += -mwindows ++ OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH) ++ else ++ TARGET := vim$(DEBUG_SUFFIX).exe ++ OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH) ++ endif ++ ++ ifdef GETTEXT ++ ifneq (yes, $(GETTEXT)) ++ CFLAGS += -I$(GETTEXTINCLUDE) ++ ifndef STATIC_GETTEXT ++ LIB += -L$(GETTEXTLIB) -l$(INTLLIB) ++ ifeq (USE_SAFE_GETTEXT_DLL, $(DYNAMIC_GETTEXT)) ++ OBJ+=$(SAFE_GETTEXT_DLL_OBJ) ++ endif ++ else ++ LIB += -L$(GETTEXTLIB) -lintl ++ endif ++ endif ++ endif ++ ++ ifdef PERL ++ ifeq (no, $(DYNAMIC_PERL)) ++ LIB += -L$(PERLLIBS) -lperl$(PERL_VER) ++ endif ++ endif ++ ++ ifdef TCL ++ LIB += -L$(TCL)/lib ++ ifeq (yes, $(DYNAMIC_TCL)) ++ LIB += -ltclstub$(TCL_VER) ++ else ++ LIB += -ltcl$(TCL_VER) ++ endif ++ endif ++ ++ ifeq (yes, $(OLE)) ++ LIB += -loleaut32 ++ OBJ += $(OUTDIR)/if_ole.o ++ USE_STDCPLUS = yes ++ endif ++ ++ ifeq (yes, $(MBYTE)) ++ DEFINES += -DFEAT_MBYTE ++ endif ++ ++ ifeq (yes, $(IME)) ++ DEFINES += -DFEAT_MBYTE_IME ++ ifeq (yes, $(DYNAMIC_IME)) ++ DEFINES += -DDYNAMIC_IME ++ else ++ LIB += -limm32 ++ endif ++ endif ++ ++ ifdef ICONV ++ ifneq (yes, $(ICONV)) ++ LIB += -L$(ICONV) ++ CFLAGS += -I$(ICONV) ++ endif ++ DEFINES+=-DDYNAMIC_ICONV ++ endif ++ ++ ifeq (yes, $(USE_STDCPLUS)) ++ ifeq (yes, $(STATIC_STDCPLUS)) ++ LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic ++ else ++ LIB += -lstdc++ ++ endif ++ endif ++ ++ all: $(TARGET) vimrun.exe xxd/xxd.exe install.exe uninstal.exe GvimExt/gvimext.dll ++ ++ vimrun.exe: vimrun.c ++ $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIB) ++ ++ install.exe: dosinst.c ++ $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIB) -lole32 -luuid ++ ++ uninstal.exe: uninstal.c ++ $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) ++ ++ $(TARGET): $(OUTDIR) $(OBJ) ++ $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB) ++ ++ upx: exes ++ upx gvim.exe ++ upx vim.exe ++ ++ mpress: exes ++ mpress gvim.exe ++ mpress vim.exe ++ ++ xxd/xxd.exe: xxd/xxd.c ++ $(MAKE) -C xxd -f Make_ming.mak CC='$(CC)' ++ ++ GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h ++ $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE) CXX='$(CXX)' STATIC_STDCPLUS=$(STATIC_STDCPLUS) ++ ++ clean: ++ -$(DEL) $(OUTDIR)$(DIRSLASH)*.o ++ -$(DEL) $(OUTDIR)$(DIRSLASH)*.res ++ -rmdir $(OUTDIR) ++ -$(DEL) *.exe ++ -$(DEL) pathdef.c ++ ifdef PERL ++ -$(DEL) if_perl.c ++ endif ++ ifdef MZSCHEME ++ -$(DEL) mzscheme_base.c ++ endif ++ $(MAKE) -C GvimExt -f Make_ming.mak clean ++ $(MAKE) -C xxd -f Make_ming.mak clean ++ ++ ########################################################################### ++ INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \ ++ structs.h regexp.h option.h ex_cmds.h proto.h globals.h farsi.h \ ++ gui.h ++ ++ $(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL) ++ $(CC) -c $(CFLAGS) $(PYTHONINC) -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\" $< -o $@ ++ ++ $(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL) ++ $(CC) -c $(CFLAGS) $(PYTHON3INC) -DDYNAMIC_PYTHON3_DLL=\"PYTHON$(PYTHON3_VER).dll\" $< -o $@ ++ ++ $(OUTDIR)/%.o : %.c $(INCL) ++ $(CC) -c $(CFLAGS) $< -o $@ ++ ++ $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h ++ $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \ ++ --input-format=rc --output-format=coff -i vim.rc -o $@ ++ ++ $(OUTDIR): ++ $(MKDIR) $(OUTDIR) ++ ++ $(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h ++ $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o ++ ++ $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h ++ $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o ++ ++ $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL) ++ $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o ++ ++ $(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h ++ $(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o ++ ++ $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h ++ $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o ++ ++ # Remove -D__IID_DEFINED__ for newer versions of the w32api ++ $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) ++ $(CC) $(CFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp ++ ++ $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL) ++ ifeq (16, $(RUBY)) ++ $(CC) $(CFLAGS) -U_WIN32 -c -o $(OUTDIR)/if_ruby.o if_ruby.c ++ endif ++ ++ if_perl.c: if_perl.xs typemap ++ $(XSUBPP) -prototypes -typemap \ ++ "$(PERLTYPEMAP)" if_perl.xs > $@ ++ ++ $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC) ++ $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o ++ ++ $(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL) ++ $(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o ++ ++ $(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP) ++ $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o ++ ++ mzscheme_base.c: ++ $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base ++ ++ pathdef.c: $(INCL) ++ ifneq (sh.exe, $(SHELL)) ++ @echo creating pathdef.c ++ @echo '/* pathdef.c */' > pathdef.c ++ @echo '#include "vim.h"' >> pathdef.c ++ @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c ++ @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c ++ @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c ++ @echo 'char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)";' >> pathdef.c ++ @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c ++ @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c ++ else ++ @echo creating pathdef.c ++ @echo /* pathdef.c */ > pathdef.c ++ @echo #include "vim.h" >> pathdef.c ++ @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c ++ @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c ++ @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c ++ @echo char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)"; >> pathdef.c ++ @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c ++ @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c ++ endif +*** ../vim-7.4.495/src/Make_ming.mak 2014-10-15 12:07:07.610009454 +0200 +--- src/Make_ming.mak 2014-11-05 13:49:27.076811946 +0100 +*************** +*** 1,193 **** +- # Makefile for VIM on Win32 + # +! # Info at http://www.mingw.org +! # Alternative x86 and 64-builds: http://mingw-w64.sourceforge.net +! # Also requires GNU make, which you can download from the same sites. +! # Get missing libraries from http://gnuwin32.sf.net. + # +! # Tested on Win32 NT 4 and Win95. + # +! # To make everything, just 'make -f Make_ming.mak'. +! # To make just e.g. gvim.exe, 'make -f Make_ming.mak gvim.exe'. +! # After a run, you can 'make -f Make_ming.mak clean' to clean up. + # +! # NOTE: Sometimes 'GNU Make' will stop after building vimrun.exe -- I think +! # it's just run out of memory or something. Run again, and it will continue +! # with 'xxd'. +! # +! # "make upx" makes *compressed* versions of the 32 bit GUI and console EXEs, +! # using the excellent UPX compressor: +! # http://upx.sourceforge.net/ +! # "make mpress" uses the MPRESS compressor for 32- and 64-bit EXEs: +! # http://www.matcode.com/mpress.htm +! # +! # Maintained by Ron Aaron et al. +! # Updated 2014 Oct 13. +! +! #>>>>> choose options: +! # set to yes for a debug build +! DEBUG=no +! # set to SIZE for size, SPEED for speed, MAXSPEED for maximum optimization +! OPTIMIZE=MAXSPEED +! # set to yes to make gvim, no for vim +! GUI=yes +! # set to yes if you want to use DirectWrite (DirectX) +! DIRECTX=no +! # FEATURES=[TINY | SMALL | NORMAL | BIG | HUGE] +! # Set to TINY to make minimal version (few features). +! FEATURES=BIG +! # Set to one of i386, i486, i586, i686 as the minimum target processor. +! # For amd64/x64 architecture set ARCH=x86-64 . +! ARCH=i386 +! # Set to yes to cross-compile from unix; no=native Windows. +! CROSS=no +! # Set to path to iconv.h and libiconv.a to enable using 'iconv.dll'. +! #ICONV="." +! ICONV=yes +! GETTEXT=yes +! # Set to yes to include multibyte support. +! MBYTE=yes +! # Set to yes to include IME support. +! IME=yes +! DYNAMIC_IME=yes +! # Set to yes to enable writing a postscript file with :hardcopy. +! POSTSCRIPT=no +! # Set to yes to enable OLE support. +! OLE=no +! # Set the default $(WINVER) to make it work with pre-Win2k. +! ifndef WINVER +! WINVER = 0x0500 +! endif +! # Set to yes to enable Cscope support. +! CSCOPE=yes +! # Set to yes to enable Netbeans support. +! NETBEANS=$(GUI) +! +! +! # Link against the shared version of libstdc++ by default. Set +! # STATIC_STDCPLUS to "yes" to link against static version instead. +! ifndef STATIC_STDCPLUS +! STATIC_STDCPLUS=no +! endif +! +! # If the user doesn't want gettext, undefine it. +! ifeq (no, $(GETTEXT)) +! GETTEXT= +! endif +! # Added by E.F. Amatria 2001 Feb 23 +! # Uncomment the first line and one of the following three if you want Native Language +! # Support. You'll need gnu_gettext.win32, a MINGW32 Windows PORT of gettext by +! # Franco Bez . It may be found at +! # http://home.a-city.de/franco.bez/gettext/gettext_win32_en.html +! # Tested with mingw32 with GCC-2.95.2 on Win98 +! # Updated 2001 Jun 9 +! #GETTEXT=c:/gettext.win32.msvcrt +! #STATIC_GETTEXT=USE_STATIC_GETTEXT +! #DYNAMIC_GETTEXT=USE_GETTEXT_DLL +! #DYNAMIC_GETTEXT=USE_SAFE_GETTEXT_DLL +! SAFE_GETTEXT_DLL_OBJ = $(GETTEXT)/src/safe_gettext_dll/safe_gettext_dll.o +! # Alternatively, if you uncomment the two following lines, you get a "safe" version +! # without linking the safe_gettext_dll.o object file. +! #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT +! #GETTEXT_DYNAMIC=gnu_gettext.dll +! INTLPATH=$(GETTEXT)/lib/mingw32 +! INTLLIB=gnu_gettext + +- # If you are using gettext-0.10.35 from http://sourceforge.net/projects/gettext +- # or gettext-0.10.37 from http://sourceforge.net/projects/mingwrep/ +- # uncomment the following, but I can't build a static version with them, ?-(| +- #GETTEXT=c:/gettext-0.10.37-20010430 +- #STATIC_GETTEXT=USE_STATIC_GETTEXT +- #DYNAMIC_GETTEXT=DYNAMIC_GETTEXT +- #INTLPATH=$(GETTEXT)/lib +- #INTLLIB=intl + + # uncomment 'PERL' if you want a perl-enabled version +! #PERL=C:/perl +! ifdef PERL +! ifndef PERL_VER +! PERL_VER=56 +! endif +! ifndef DYNAMIC_PERL +! DYNAMIC_PERL=yes +! endif +! # on Linux, for cross-compile, it's here: +! #PERLLIB=/home/ron/ActivePerl/lib +! # on NT, it's here: +! PERLLIB=$(PERL)/lib +! PERLLIBS=$(PERLLIB)/Core +! XSUBPPTRY=$(PERLLIB)/ExtUtils/xsubpp +! XSUBPP_EXISTS=$(shell perl -e "print 1 unless -e '$(XSUBPPTRY)'") +! ifeq "$(XSUBPP_EXISTS)" "" +! XSUBPP=perl $(XSUBPPTRY) +! else +! XSUBPP=xsubpp +! endif +! endif + + # uncomment 'LUA' if you want a Lua-enabled version +! #LUA=/usr/local +! ifdef LUA +! ifndef DYNAMIC_LUA +! DYNAMIC_LUA=yes +! endif +! +! ifndef LUA_VER +! LUA_VER=51 +! endif +! +! ifeq (no,$(DYNAMIC_LUA)) +! LUA_LIB = -L$(LUA)/lib -llua +! endif +! +! endif + + # uncomment 'MZSCHEME' if you want a MzScheme-enabled version + #MZSCHEME=d:/plt +- ifdef MZSCHEME +- ifndef DYNAMIC_MZSCHEME +- DYNAMIC_MZSCHEME=yes +- endif +- +- ifndef MZSCHEME_VER +- MZSCHEME_VER=205_000 +- endif +- +- ifndef MZSCHEME_PRECISE_GC +- MZSCHEME_PRECISE_GC=no +- endif +- +- # for version 4.x we need to generate byte-code for Scheme base +- ifndef MZSCHEME_GENERATE_BASE +- MZSCHEME_GENERATE_BASE=no +- endif + +! ifndef MZSCHEME_USE_RACKET +! MZSCHEME_MAIN_LIB=mzsch +! else +! MZSCHEME_MAIN_LIB=racket +! endif +! +! ifeq (no,$(DYNAMIC_MZSCHEME)) +! ifeq (yes,$(MZSCHEME_PRECISE_GC)) +! MZSCHEME_LIB=-l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) +! else +! MZSCHEME_LIB = -l$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER) -lmzgc$(MZSCHEME_VER) +! endif +! # the modern MinGW can dynamically link to dlls directly. +! # point MZSCHEME_DLLS to where you put libmzschXXXXXXX.dll and libgcXXXXXXX.dll +! ifndef MZSCHEME_DLLS +! MZSCHEME_DLLS=$(MZSCHEME) +! endif +! MZSCHEME_LIBDIR=-L$(MZSCHEME_DLLS) -L$(MZSCHEME_DLLS)\lib +! endif +! +! endif +! +! # Python support -- works with the ActiveState python 2.0 release (and others +! # too, probably) +! # +! # uncomment 'PYTHON' to make python-enabled version + # Put the path to the python distro here. If cross compiling from Linux, you + # will also need to convert the header files to unix instead of dos format: + # for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil +--- 1,27 ---- + # +! # Makefile for VIM on Win32, using MinGW + # +! # Also read INSTALLpc.txt! + # +! # The old Make_ming.mak (maintained by Ron Aaron et al.) was merged into +! # Make_cyg_ming.mak. +! # This file contains MinGW specific settings. Common settings are contained +! # in Make_cyg_ming.mak. + # +! # Last updated by Ken Takata. +! # Last Change: 2014 Oct 21 + + + # uncomment 'PERL' if you want a perl-enabled version +! #PERL=c:/perl + + # uncomment 'LUA' if you want a Lua-enabled version +! #LUA=c:/lua + + # uncomment 'MZSCHEME' if you want a MzScheme-enabled version + #MZSCHEME=d:/plt + +! # uncomment 'PYTHON' if you want a python-enabled version + # Put the path to the python distro here. If cross compiling from Linux, you + # will also need to convert the header files to unix instead of dos format: + # for fil in *.h ; do vim -e -c 'set ff=unix|w|q' $fil +*************** +*** 200,830 **** + # on my NT box, it's here: + #PYTHON=c:/python20 + +! ifdef PYTHON +! ifndef DYNAMIC_PYTHON +! DYNAMIC_PYTHON=yes +! endif +! +! ifndef PYTHON_VER +! PYTHON_VER=22 +! endif +! +! ifeq (no,$(DYNAMIC_PYTHON)) +! PYTHONLIB=-L$(PYTHON)/libs -lpython$(PYTHON_VER) +! endif +! # my include files are in 'win32inc' on Linux, and 'include' in the standard +! # NT distro (ActiveState) +! ifeq ($(CROSS),no) +! PYTHONINC=-I $(PYTHON)/include +! else +! PYTHONINC=-I $(PYTHON)/win32inc +! endif +! endif +! +! #PYTHON3: See comment for Python 2 above +! +! ifdef PYTHON3 +! ifndef DYNAMIC_PYTHON3 +! DYNAMIC_PYTHON3=yes +! endif +! +! ifndef PYTHON3_VER +! PYTHON3_VER=31 +! endif +! +! ifeq (no,$(DYNAMIC_PYTHON3)) +! PYTHON3LIB=-L$(PYTHON3)/libs -lPYTHON$(PYTHON3_VER) +! endif +! +! ifeq ($(CROSS),no) +! PYTHON3INC=-I $(PYTHON3)/include +! else +! PYTHON3INC=-I $(PYTHON3)/win32inc +! endif +! endif + +! # TCL interface: +! # TCL=[Path to TCL directory] +! # DYNAMIC_TCL=yes (to load the TCL DLL dynamically) +! # TCL_VER=[TCL version, eg 83, 84] (default is 83) + #TCL=c:/tcl +- ifdef TCL +- ifndef DYNAMIC_TCL +- DYNAMIC_TCL=yes +- endif +- ifndef TCL_VER +- TCL_VER = 83 +- endif +- TCLINC += -I$(TCL)/include +- endif + +! +! # Ruby interface: +! # RUBY=[Path to Ruby directory] +! # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically) +! # RUBY_VER=[Ruby version, eg 16, 17] (default is 16) +! # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.6) +! # You must set RUBY_VER_LONG when changing RUBY_VER. +! # You must set RUBY_API_VER version to RUBY_VER_LONG. +! # Don't set ruby API version to RUBY_VER like 191. + #RUBY=c:/ruby +- ifdef RUBY +- ifndef DYNAMIC_RUBY +- DYNAMIC_RUBY=yes +- endif +- # Set default value +- ifndef RUBY_VER +- RUBY_VER = 16 +- endif +- ifndef RUBY_VER_LONG +- RUBY_VER_LONG = 1.6 +- endif +- ifndef RUBY_API_VER +- RUBY_API_VER = $(subst .,,$(RUBY_VER_LONG)) +- endif +- +- ifndef RUBY_PLATFORM +- ifeq ($(RUBY_VER), 16) +- RUBY_PLATFORM = i586-mswin32 +- else +- ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/i386-mingw32),) +- RUBY_PLATFORM = i386-mingw32 +- else +- ifneq ($(wildcard $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/x64-mingw32),) +- RUBY_PLATFORM = x64-mingw32 +- else +- RUBY_PLATFORM = i386-mswin32 +- endif +- endif +- endif +- endif +- +- ifndef RUBY_INSTALL_NAME +- ifeq ($(RUBY_VER), 16) +- RUBY_INSTALL_NAME = mswin32-ruby$(RUBY_API_VER) +- else +- ifeq ($(ARCH),x86-64) +- RUBY_INSTALL_NAME = x64-msvcrt-ruby$(RUBY_API_VER) +- else +- RUBY_INSTALL_NAME = msvcrt-ruby$(RUBY_API_VER) +- endif +- endif +- endif +- +- ifeq (19, $(word 1,$(sort 19 $(RUBY_VER)))) +- RUBY_19_OR_LATER = 1 +- endif +- +- RUBYINC = -I $(RUBY)/lib/ruby/$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +- ifdef RUBY_19_OR_LATER +- RUBYINC += -I $(RUBY)/include/ruby-$(RUBY_VER_LONG) -I $(RUBY)/include/ruby-$(RUBY_VER_LONG)/$(RUBY_PLATFORM) +- endif +- ifeq (no, $(DYNAMIC_RUBY)) +- RUBYLIB = -L$(RUBY)/lib -l$(RUBY_INSTALL_NAME) +- endif +- +- endif # RUBY +- +- # See feature.h for a list of options. +- # Any other defines can be included here. +- DEF_GUI=-DFEAT_GUI_W32 -DFEAT_CLIPBOARD +- DEFINES=-DWIN32 -DWINVER=$(WINVER) -D_WIN32_WINNT=$(WINVER) \ +- -DHAVE_PATHDEF -DFEAT_$(FEATURES) +- ifeq ($(ARCH),x86-64) +- DEFINES+=-DMS_WIN64 +- endif +- ifeq ($(CROSS),yes) +- # cross-compiler prefix: +- CROSS_COMPILE = i586-pc-mingw32msvc- +- DEL = rm +- MKDIR = mkdir -p +- DIRSLASH = / +- else +- # normal (Windows) compilation: +- CROSS_COMPILE = +- ifneq (sh.exe, $(SHELL)) +- DEL = rm +- MKDIR = mkdir -p +- DIRSLASH = / +- else +- DEL = del +- MKDIR = mkdir +- DIRSLASH = \\ +- endif +- endif +- CC := $(CROSS_COMPILE)gcc +- WINDRES := $(CROSS_COMPILE)windres +- WINDRES_CC = $(CC) +- +- #>>>>> end of choices +- ########################################################################### +- +- 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 +- GETTEXTINCLUDE = $(GETTEXT)/include +- GETTEXTLIB = $(INTLPATH) +- ifeq (yes, $(GETTEXT)) +- DEFINES += -DDYNAMIC_GETTEXT +- else +- ifdef DYNAMIC_GETTEXT +- DEFINES += -D$(DYNAMIC_GETTEXT) +- ifdef GETTEXT_DYNAMIC +- DEFINES += -DGETTEXT_DYNAMIC -DGETTEXT_DLL=\"$(GETTEXT_DYNAMIC)\" +- endif +- endif +- endif +- 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 +- +- ifdef LUA +- CFLAGS += -I$(LUA)/include -DFEAT_LUA +- ifeq (yes, $(DYNAMIC_LUA)) +- CFLAGS += -DDYNAMIC_LUA -DDYNAMIC_LUA_DLL=\"lua$(LUA_VER).dll\" +- endif +- endif +- +- ifdef MZSCHEME +- CFLAGS += -I$(MZSCHEME)/include -DFEAT_MZSCHEME -DMZSCHEME_COLLECTS=\"$(MZSCHEME)/collects\" +- ifeq (yes, $(DYNAMIC_MZSCHEME)) +- CFLAGS += -DDYNAMIC_MZSCHEME -DDYNAMIC_MZSCH_DLL=\"lib$(MZSCHEME_MAIN_LIB)$(MZSCHEME_VER).dll\" -DDYNAMIC_MZGC_DLL=\"libmzgc$(MZSCHEME_VER).dll\" +- endif +- ifeq (yes, "$(MZSCHEME_DEBUG)") +- CFLAGS += -DMZSCHEME_FORCE_GC +- endif +- endif +- +- ifdef RUBY +- CFLAGS += -DFEAT_RUBY $(RUBYINC) +- ifeq (yes, $(DYNAMIC_RUBY)) +- CFLAGS += -DDYNAMIC_RUBY -DDYNAMIC_RUBY_DLL=\"$(RUBY_INSTALL_NAME).dll\" +- CFLAGS += -DDYNAMIC_RUBY_VER=$(RUBY_VER) +- endif +- endif +- +- ifdef PYTHON +- CFLAGS += -DFEAT_PYTHON +- ifeq (yes, $(DYNAMIC_PYTHON)) +- CFLAGS += -DDYNAMIC_PYTHON +- endif +- endif +- +- ifdef PYTHON3 +- CFLAGS += -DFEAT_PYTHON3 +- ifeq (yes, $(DYNAMIC_PYTHON3)) +- CFLAGS += -DDYNAMIC_PYTHON3 +- endif +- endif +- +- ifdef TCL +- CFLAGS += -DFEAT_TCL $(TCLINC) +- ifeq (yes, $(DYNAMIC_TCL)) +- CFLAGS += -DDYNAMIC_TCL -DDYNAMIC_TCL_DLL=\"tcl$(TCL_VER).dll\" +- endif +- endif +- +- ifeq ($(POSTSCRIPT),yes) +- DEFINES += -DMSWINPS +- endif +- +- ifeq (yes, $(OLE)) +- DEFINES += -DFEAT_OLE +- endif +- +- ifeq ($(CSCOPE),yes) +- DEFINES += -DFEAT_CSCOPE +- endif +- +- ifeq ($(NETBEANS),yes) +- # Only allow NETBEANS for a GUI build. +- ifeq (yes, $(GUI)) +- DEFINES += -DFEAT_NETBEANS_INTG +- +- ifeq ($(NBDEBUG), yes) +- DEFINES += -DNBDEBUG +- NBDEBUG_INCL = nbdebug.h +- NBDEBUG_SRC = nbdebug.c +- endif +- endif +- endif +- +- # DirectWrite (DirectX) +- ifeq ($(DIRECTX),yes) +- # Only allow DirectWrite for a GUI build. +- ifeq (yes, $(GUI)) +- DEFINES += -DFEAT_DIRECTX -DDYNAMIC_DIRECTX +- endif +- endif +- +- # Only allow XPM for a GUI build. +- ifeq (yes, $(GUI)) +- +- ifndef XPM +- ifeq ($(ARCH),i386) +- XPM = xpm/x86 +- endif +- ifeq ($(ARCH),i486) +- XPM = xpm/x86 +- endif +- ifeq ($(ARCH),i586) +- XPM = xpm/x86 +- endif +- ifeq ($(ARCH),i686) +- XPM = xpm/x86 +- endif +- ifeq ($(ARCH),x86-64) +- XPM = xpm/x64 +- endif +- endif +- ifdef XPM +- ifneq ($(XPM),no) +- CFLAGS += -DFEAT_XPM_W32 -I $(XPM)/include -I $(XPM)/../include +- endif +- endif +- +- endif +- +- ifeq ($(DEBUG),yes) +- CFLAGS += -g -fstack-check +- DEBUG_SUFFIX=d +- else +- ifeq ($(OPTIMIZE), SIZE) +- CFLAGS += -Os +- else +- ifeq ($(OPTIMIZE), MAXSPEED) +- CFLAGS += -O3 +- CFLAGS += -fomit-frame-pointer -freg-struct-return +- else # SPEED +- CFLAGS += -O2 +- endif +- endif +- CFLAGS += -s +- endif +- +- LIB = -lkernel32 -luser32 -lgdi32 -ladvapi32 -lcomdlg32 -lcomctl32 -lversion +- GUIOBJ = $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o +- OBJ = \ +- $(OUTDIR)/blowfish.o \ +- $(OUTDIR)/buffer.o \ +- $(OUTDIR)/charset.o \ +- $(OUTDIR)/crypt.o \ +- $(OUTDIR)/crypt_zip.o \ +- $(OUTDIR)/diff.o \ +- $(OUTDIR)/digraph.o \ +- $(OUTDIR)/edit.o \ +- $(OUTDIR)/eval.o \ +- $(OUTDIR)/ex_cmds.o \ +- $(OUTDIR)/ex_cmds2.o \ +- $(OUTDIR)/ex_docmd.o \ +- $(OUTDIR)/ex_eval.o \ +- $(OUTDIR)/ex_getln.o \ +- $(OUTDIR)/fileio.o \ +- $(OUTDIR)/fold.o \ +- $(OUTDIR)/getchar.o \ +- $(OUTDIR)/hardcopy.o \ +- $(OUTDIR)/hashtab.o \ +- $(OUTDIR)/main.o \ +- $(OUTDIR)/mark.o \ +- $(OUTDIR)/memfile.o \ +- $(OUTDIR)/memline.o \ +- $(OUTDIR)/menu.o \ +- $(OUTDIR)/message.o \ +- $(OUTDIR)/misc1.o \ +- $(OUTDIR)/misc2.o \ +- $(OUTDIR)/move.o \ +- $(OUTDIR)/mbyte.o \ +- $(OUTDIR)/normal.o \ +- $(OUTDIR)/ops.o \ +- $(OUTDIR)/option.o \ +- $(OUTDIR)/os_win32.o \ +- $(OUTDIR)/os_mswin.o \ +- $(OUTDIR)/winclip.o \ +- $(OUTDIR)/pathdef.o \ +- $(OUTDIR)/popupmnu.o \ +- $(OUTDIR)/quickfix.o \ +- $(OUTDIR)/regexp.o \ +- $(OUTDIR)/screen.o \ +- $(OUTDIR)/search.o \ +- $(OUTDIR)/sha256.o \ +- $(OUTDIR)/spell.o \ +- $(OUTDIR)/syntax.o \ +- $(OUTDIR)/tag.o \ +- $(OUTDIR)/term.o \ +- $(OUTDIR)/ui.o \ +- $(OUTDIR)/undo.o \ +- $(OUTDIR)/version.o \ +- $(OUTDIR)/vimrc.o \ +- $(OUTDIR)/window.o +- +- ifdef PERL +- OBJ += $(OUTDIR)/if_perl.o +- endif +- ifdef LUA +- OBJ += $(OUTDIR)/if_lua.o +- endif +- ifdef MZSCHEME +- OBJ += $(OUTDIR)/if_mzsch.o +- MZSCHEME_INCL = if_mzsch.h +- ifeq (yes,$(MZSCHEME_GENERATE_BASE)) +- CFLAGS += -DINCLUDE_MZSCHEME_BASE +- MZ_EXTRA_DEP += mzscheme_base.c +- endif +- ifeq (yes,$(MZSCHEME_PRECISE_GC)) +- CFLAGS += -DMZ_PRECISE_GC +- endif +- endif +- ifdef PYTHON +- OBJ += $(OUTDIR)/if_python.o +- endif +- ifdef PYTHON3 +- OBJ += $(OUTDIR)/if_python3.o +- endif +- ifdef RUBY +- OBJ += $(OUTDIR)/if_ruby.o +- endif +- ifdef TCL +- OBJ += $(OUTDIR)/if_tcl.o +- endif +- ifeq ($(CSCOPE),yes) +- OBJ += $(OUTDIR)/if_cscope.o +- endif +- ifeq ($(NETBEANS),yes) +- # Only allow NETBEANS for a GUI build. +- ifeq (yes, $(GUI)) +- OBJ += $(OUTDIR)/netbeans.o +- LIB += -lwsock32 +- endif +- endif +- ifeq ($(DIRECTX),yes) +- # Only allow DIRECTX for a GUI build. +- ifeq (yes, $(GUI)) +- OBJ += $(OUTDIR)/gui_dwrite.o +- LIB += -ld2d1 -ldwrite +- USE_STDCPLUS = yes +- endif +- endif +- ifneq ($(XPM),no) +- # Only allow XPM for a GUI build. +- 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 +- +- +- ifdef MZSCHEME +- MZSCHEME_SUFFIX = Z +- endif +- +- ifeq ($(GUI),yes) +- TARGET := gvim$(DEBUG_SUFFIX).exe +- DEFINES += $(DEF_GUI) +- OBJ += $(GUIOBJ) +- LFLAGS += -mwindows +- OUTDIR = gobj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH) +- else +- TARGET := vim$(DEBUG_SUFFIX).exe +- OUTDIR = obj$(DEBUG_SUFFIX)$(MZSCHEME_SUFFIX)$(ARCH) +- endif +- +- ifdef GETTEXT +- ifneq (yes, $(GETTEXT)) +- CFLAGS += -I$(GETTEXTINCLUDE) +- ifndef STATIC_GETTEXT +- LIB += -L$(GETTEXTLIB) -l$(INTLLIB) +- ifeq (USE_SAFE_GETTEXT_DLL, $(DYNAMIC_GETTEXT)) +- OBJ+=$(SAFE_GETTEXT_DLL_OBJ) +- endif +- else +- LIB += -L$(GETTEXTLIB) -lintl +- endif +- endif +- endif +- +- ifdef PERL +- ifeq (no, $(DYNAMIC_PERL)) +- LIB += -L$(PERLLIBS) -lperl$(PERL_VER) +- endif +- endif +- +- ifdef TCL +- LIB += -L$(TCL)/lib +- ifeq (yes, $(DYNAMIC_TCL)) +- LIB += -ltclstub$(TCL_VER) +- else +- LIB += -ltcl$(TCL_VER) +- endif +- endif +- +- ifeq (yes, $(OLE)) +- LIB += -loleaut32 +- OBJ += $(OUTDIR)/if_ole.o +- USE_STDCPLUS = yes +- endif +- +- ifeq (yes, $(MBYTE)) +- DEFINES += -DFEAT_MBYTE +- endif +- +- ifeq (yes, $(IME)) +- DEFINES += -DFEAT_MBYTE_IME +- ifeq (yes, $(DYNAMIC_IME)) +- DEFINES += -DDYNAMIC_IME +- else +- LIB += -limm32 +- endif +- endif +- +- ifdef ICONV +- ifneq (yes, $(ICONV)) +- LIB += -L$(ICONV) +- CFLAGS += -I$(ICONV) +- endif +- DEFINES+=-DDYNAMIC_ICONV +- endif +- +- ifeq (yes, $(USE_STDCPLUS)) +- ifeq (yes, $(STATIC_STDCPLUS)) +- LIB += -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic +- else +- LIB += -lstdc++ +- endif +- endif +- +- all: $(TARGET) vimrun.exe xxd/xxd.exe install.exe uninstal.exe GvimExt/gvimext.dll +- +- vimrun.exe: vimrun.c +- $(CC) $(CFLAGS) -o vimrun.exe vimrun.c $(LIB) +- +- install.exe: dosinst.c +- $(CC) $(CFLAGS) -o install.exe dosinst.c $(LIB) -lole32 -luuid +- +- uninstal.exe: uninstal.c +- $(CC) $(CFLAGS) -o uninstal.exe uninstal.c $(LIB) +- +- $(TARGET): $(OUTDIR) $(OBJ) +- $(CC) $(CFLAGS) $(LFLAGS) -o $@ $(OBJ) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB) +- +- upx: exes +- upx gvim.exe +- upx vim.exe +- +- mpress: exes +- mpress gvim.exe +- mpress vim.exe +- +- xxd/xxd.exe: xxd/xxd.c +- $(MAKE) -C xxd -f Make_ming.mak CC=$(CC) +- +- GvimExt/gvimext.dll: GvimExt/gvimext.cpp GvimExt/gvimext.rc GvimExt/gvimext.h +- $(MAKE) -C GvimExt -f Make_ming.mak CROSS=$(CROSS) CROSS_COMPILE=$(CROSS_COMPILE) +- +- clean: +- -$(DEL) $(OUTDIR)$(DIRSLASH)*.o +- -$(DEL) $(OUTDIR)$(DIRSLASH)*.res +- -rmdir $(OUTDIR) +- -$(DEL) *.exe +- -$(DEL) pathdef.c +- ifdef PERL +- -$(DEL) if_perl.c +- endif +- ifdef MZSCHEME +- -$(DEL) mzscheme_base.c +- endif +- $(MAKE) -C GvimExt -f Make_ming.mak clean +- $(MAKE) -C xxd -f Make_ming.mak clean +- +- ########################################################################### +- INCL = vim.h feature.h os_win32.h os_dos.h ascii.h keymap.h term.h macros.h \ +- structs.h regexp.h option.h ex_cmds.h proto.h globals.h farsi.h \ +- gui.h +- +- $(OUTDIR)/if_python.o : if_python.c if_py_both.h $(INCL) +- $(CC) -c $(CFLAGS) $(PYTHONINC) -DDYNAMIC_PYTHON_DLL=\"python$(PYTHON_VER).dll\" $< -o $@ +- +- $(OUTDIR)/if_python3.o : if_python3.c if_py_both.h $(INCL) +- $(CC) -c $(CFLAGS) $(PYTHON3INC) -DDYNAMIC_PYTHON3_DLL=\"PYTHON$(PYTHON3_VER).dll\" $< -o $@ +- +- $(OUTDIR)/%.o : %.c $(INCL) +- $(CC) -c $(CFLAGS) $< -o $@ +- +- $(OUTDIR)/vimrc.o: vim.rc version.h gui_w32_rc.h +- $(WINDRES) $(WINDRES_FLAGS) $(DEFINES) \ +- --input-format=rc --output-format=coff -i vim.rc -o $@ +- +- $(OUTDIR): +- $(MKDIR) $(OUTDIR) +- +- $(OUTDIR)/ex_docmd.o: ex_docmd.c $(INCL) ex_cmds.h +- $(CC) -c $(CFLAGS) ex_docmd.c -o $(OUTDIR)/ex_docmd.o +- +- $(OUTDIR)/ex_eval.o: ex_eval.c $(INCL) ex_cmds.h +- $(CC) -c $(CFLAGS) ex_eval.c -o $(OUTDIR)/ex_eval.o +- +- $(OUTDIR)/gui_w32.o: gui_w32.c gui_w48.c $(INCL) +- $(CC) -c $(CFLAGS) gui_w32.c -o $(OUTDIR)/gui_w32.o +- +- $(OUTDIR)/gui_dwrite.o: gui_dwrite.cpp $(INCL) gui_dwrite.h +- $(CC) -c $(CFLAGS) gui_dwrite.cpp -o $(OUTDIR)/gui_dwrite.o +- +- $(OUTDIR)/if_cscope.o: if_cscope.c $(INCL) if_cscope.h +- $(CC) -c $(CFLAGS) if_cscope.c -o $(OUTDIR)/if_cscope.o +- +- # Remove -D__IID_DEFINED__ for newer versions of the w32api +- $(OUTDIR)/if_ole.o: if_ole.cpp $(INCL) +- $(CC) $(CFLAGS) -c -o $(OUTDIR)/if_ole.o if_ole.cpp +- +- $(OUTDIR)/if_ruby.o: if_ruby.c $(INCL) +- ifeq (16, $(RUBY)) +- $(CC) $(CFLAGS) -U_WIN32 -c -o $(OUTDIR)/if_ruby.o if_ruby.c +- endif +- +- if_perl.c: if_perl.xs typemap +- $(XSUBPP) -prototypes -typemap \ +- $(PERLLIB)/ExtUtils/typemap if_perl.xs > $@ +- +- $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC) +- $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o +- +- $(OUTDIR)/regexp.o: regexp.c regexp_nfa.c $(INCL) +- $(CC) -c $(CFLAGS) regexp.c -o $(OUTDIR)/regexp.o +- +- $(OUTDIR)/if_mzsch.o: if_mzsch.c $(INCL) if_mzsch.h $(MZ_EXTRA_DEP) +- $(CC) -c $(CFLAGS) if_mzsch.c -o $(OUTDIR)/if_mzsch.o + +- mzscheme_base.c: +- $(MZSCHEME)/mzc --c-mods mzscheme_base.c ++lib scheme/base + +! pathdef.c: $(INCL) +! ifneq (sh.exe, $(SHELL)) +! @echo creating pathdef.c +! @echo '/* pathdef.c */' > pathdef.c +! @echo '#include "vim.h"' >> pathdef.c +! @echo 'char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)";' >> pathdef.c +! @echo 'char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)";' >> pathdef.c +! @echo 'char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)";' >> pathdef.c +! @echo 'char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)";' >> pathdef.c +! @echo 'char_u *compiled_user = (char_u *)"$(USERNAME)";' >> pathdef.c +! @echo 'char_u *compiled_sys = (char_u *)"$(USERDOMAIN)";' >> pathdef.c +! else +! @echo creating pathdef.c +! @echo /* pathdef.c */ > pathdef.c +! @echo #include "vim.h" >> pathdef.c +! @echo char_u *default_vim_dir = (char_u *)"$(VIMRCLOC)"; >> pathdef.c +! @echo char_u *default_vimruntime_dir = (char_u *)"$(VIMRUNTIMEDIR)"; >> pathdef.c +! @echo char_u *all_cflags = (char_u *)"$(CC) $(CFLAGS)"; >> pathdef.c +! @echo char_u *all_lflags = (char_u *)"$(CC) $(CFLAGS) $(LFLAGS) -o $(TARGET) $(LIB) -lole32 -luuid $(LUA_LIB) $(MZSCHEME_LIBDIR) $(MZSCHEME_LIB) $(PYTHONLIB) $(PYTHON3LIB) $(RUBYLIB)"; >> pathdef.c +! @echo char_u *compiled_user = (char_u *)"$(USERNAME)"; >> pathdef.c +! @echo char_u *compiled_sys = (char_u *)"$(USERDOMAIN)"; >> pathdef.c +! endif +--- 34,49 ---- + # on my NT box, it's here: + #PYTHON=c:/python20 + +! # uncomment 'PYTHON3' if you want a python3-enabled version +! #PYTHON3=c:/python31 + +! # uncomment 'TCL' if you want a Tcl-enabled version + #TCL=c:/tcl + +! # uncomment 'RUBY' if you want a Ruby-enabled version + #RUBY=c:/ruby + + +! # Do not change this. +! UNDER_CYGWIN = no +! include Make_cyg_ming.mak +*** ../vim-7.4.495/src/Make_mvc.mak 2014-08-22 18:12:53.995244049 +0200 +--- src/Make_mvc.mak 2014-11-05 13:49:27.080811946 +0100 +*************** +*** 50,62 **** + # Perl interface: + # PERL=[Path to Perl directory] + # DYNAMIC_PERL=yes (to load the Perl DLL dynamically) +! # PERL_VER=[Perl version, in the form 55 (5.005), 56 (5.6.x), etc] + # (default is 56) + # + # Python interface: + # PYTHON=[Path to Python directory] + # DYNAMIC_PYTHON=yes (to load the Python DLL dynamically) +! # PYTHON_VER=[Python version, eg 15, 20] (default is 22) + # + # Python3 interface: + # PYTHON3=[Path to Python3 directory] +--- 50,63 ---- + # Perl interface: + # PERL=[Path to Perl directory] + # DYNAMIC_PERL=yes (to load the Perl DLL dynamically) +! # PERL_VER=[Perl version, in the form 55 (5.005), 56 (5.6.x), +! # 510 (5.10.x), etc] + # (default is 56) + # + # Python interface: + # PYTHON=[Path to Python directory] + # DYNAMIC_PYTHON=yes (to load the Python DLL dynamically) +! # PYTHON_VER=[Python version, eg 22, 23, ..., 27] (default is 22) + # + # Python3 interface: + # PYTHON3=[Path to Python3 directory] +*************** +*** 66,76 **** + # Ruby interface: + # RUBY=[Path to Ruby directory] + # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically) +! # RUBY_VER=[Ruby version, eg 16, 17] (default is 18) +! # RUBY_VER_LONG=[Ruby version, eg 1.6, 1.7] (default is 1.8) + # You must set RUBY_VER_LONG when change RUBY_VER. +! # You must set RUBY_API_VER to RUBY_VER_LONG. +! # Don't set ruby API version to RUBY_VER like 191. + # + # Tcl interface: + # TCL=[Path to Tcl directory] +--- 67,79 ---- + # Ruby interface: + # RUBY=[Path to Ruby directory] + # DYNAMIC_RUBY=yes (to load the Ruby DLL dynamically) +! # RUBY_VER=[Ruby version, eg 18, 19, 20] (default is 18) +! # RUBY_VER_LONG=[Ruby version, eg 1.8, 1.9.1, 2.0.0] (default is 1.8) + # You must set RUBY_VER_LONG when change RUBY_VER. +! # RUBY_API_VER is derived from RUBY_VER_LONG. +! # Note: If you use Ruby 1.9.3, set as follows: +! # RUBY_VER=19 +! # RUBY_VER_LONG=1.9.1 (not 1.9.3, because the API version is 1.9.1.) + # + # Tcl interface: + # TCL=[Path to Tcl directory] +*** ../vim-7.4.495/Filelist 2014-08-29 15:12:50.950447798 +0200 +--- Filelist 2014-11-05 13:52:11.840807976 +0100 +*************** +*** 277,282 **** +--- 277,283 ---- + src/Make_bc3.mak \ + src/Make_bc5.mak \ + src/Make_cyg.mak \ ++ src/Make_cyg_ming.mak \ + src/Make_djg.mak \ + src/Make_ivc.mak \ + src/Make_dvc.mak \ +*** ../vim-7.4.495/src/version.c 2014-11-05 13:43:18.352820831 +0100 +--- src/version.c 2014-11-05 13:51:22.216809171 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 496, + /**/ + +-- +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 d0518466336497cf80d9bdfadca959e8c5ef6f3a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:13 +0100 Subject: [PATCH 0104/1616] - patchlevel 497 --- 7.4.497 | 854 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 854 insertions(+) create mode 100644 7.4.497 diff --git a/7.4.497 b/7.4.497 new file mode 100644 index 00000000..d29eb204 --- /dev/null +++ b/7.4.497 @@ -0,0 +1,854 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.497 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.497 +Problem: With some regexp patterns the NFA engine uses many states and + becomes very slow. To the user it looks like Vim freezes. +Solution: When the number of states reaches a limit fall back to the old + engine. (Christian Brabandt) +Files: runtime/doc/options.txt, src/Makefile, src/regexp.c, src/regexp.h, + src/regexp_nfa.c, src/testdir/Make_dos.mak, + src/testdir/Make_ming.mak, src/testdir/Make_os2.mak, + src/testdir/Makefile, src/testdir/samples/re.freeze.txt, + src/testdir/bench_re_freeze.in, src/testdir/bench_re_freeze.vim, + Filelist + + +*** ../vim-7.4.496/runtime/doc/options.txt 2014-09-23 15:45:04.866801055 +0200 +--- runtime/doc/options.txt 2014-11-05 12:06:16.664961112 +0100 +*************** +*** 5622,5627 **** +--- 5626,5635 ---- + Note that when using the NFA engine and the pattern contains something + that is not supported the pattern will not match. This is only useful + for debugging the regexp engine. ++ Using automatic selection enables Vim to switch the engine, if the ++ default engine becomes too costly. E.g., when the NFA engine uses too ++ many states. This should prevent Vim from hanging on a combination of ++ a complex pattern with long text. + + *'relativenumber'* *'rnu'* *'norelativenumber'* *'nornu'* + 'relativenumber' 'rnu' boolean (default off) +*** ../vim-7.4.496/src/Makefile 2014-08-17 17:05:39.155057796 +0200 +--- src/Makefile 2014-11-05 12:01:58.704967328 +0100 +*************** +*** 1879,1884 **** +--- 1879,1887 ---- + cd testdir; $(MAKE) -f Makefile $(GUI_TESTTARGET) VIMPROG=../$(VIMTARGET) $(GUI_TESTARG) SCRIPTSOURCE=../$(SCRIPTSOURCE) + $(MAKE) -f Makefile unittest + ++ benchmark: ++ cd testdir; $(MAKE) -f Makefile benchmark VIMPROG=../$(VIMTARGET) SCRIPTSOURCE=../$(SCRIPTSOURCE) ++ + unittesttargets: + $(MAKE) -f Makefile $(UNITTEST_TARGETS) + +*** ../vim-7.4.496/src/regexp.c 2014-09-09 17:18:44.008540299 +0200 +--- src/regexp.c 2014-11-05 14:05:40.544788489 +0100 +*************** +*** 8011,8023 **** + bt_regcomp, + bt_regfree, + bt_regexec_nl, +! bt_regexec_multi +! #ifdef DEBUG +! ,(char_u *)"" +! #endif + }; + +- + #include "regexp_nfa.c" + + static regengine_T nfa_regengine = +--- 8011,8020 ---- + bt_regcomp, + bt_regfree, + bt_regexec_nl, +! bt_regexec_multi, +! (char_u *)"" + }; + + #include "regexp_nfa.c" + + static regengine_T nfa_regengine = +*************** +*** 8025,8042 **** + nfa_regcomp, + nfa_regfree, + nfa_regexec_nl, +! nfa_regexec_multi +! #ifdef DEBUG +! ,(char_u *)"" +! #endif + }; + + /* Which regexp engine to use? Needed for vim_regcomp(). + * Must match with 'regexpengine'. */ + static int regexp_engine = 0; +! #define AUTOMATIC_ENGINE 0 +! #define BACKTRACKING_ENGINE 1 +! #define NFA_ENGINE 2 + #ifdef DEBUG + static char_u regname[][30] = { + "AUTOMATIC Regexp Engine", +--- 8022,8035 ---- + nfa_regcomp, + nfa_regfree, + nfa_regexec_nl, +! nfa_regexec_multi, +! (char_u *)"" + }; + + /* Which regexp engine to use? Needed for vim_regcomp(). + * Must match with 'regexpengine'. */ + static int regexp_engine = 0; +! + #ifdef DEBUG + static char_u regname[][30] = { + "AUTOMATIC Regexp Engine", +*************** +*** 8083,8092 **** + regexp_engine = AUTOMATIC_ENGINE; + } + } +- #ifdef DEBUG + bt_regengine.expr = expr; + nfa_regengine.expr = expr; +- #endif + + /* + * First try the NFA engine, unless backtracking was requested. +--- 8076,8083 ---- +*************** +*** 8096,8102 **** + else + prog = bt_regengine.regcomp(expr, re_flags); + +! if (prog == NULL) /* error compiling regexp with initial engine */ + { + #ifdef BT_REGEXP_DEBUG_LOG + if (regexp_engine != BACKTRACKING_ENGINE) /* debugging log for NFA */ +--- 8087,8094 ---- + else + prog = bt_regengine.regcomp(expr, re_flags); + +! /* Check for error compiling regexp with initial engine. */ +! if (prog == NULL) + { + #ifdef BT_REGEXP_DEBUG_LOG + if (regexp_engine != BACKTRACKING_ENGINE) /* debugging log for NFA */ +*************** +*** 8114,8126 **** + } + #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; + } + +--- 8106,8132 ---- + } + #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) ++ { ++ /* Store the info needed to call regcomp() again when the engine turns ++ * out to be very slow when executing it. */ ++ prog->re_engine = regexp_engine; ++ prog->re_flags = re_flags; ++ } ++ + return prog; + } + +*************** +*** 8135,8154 **** + prog->engine->regfree(prog); + } + + /* + * Match a regexp against a string. + * "rmp->regprog" is a compiled regexp as returned by vim_regcomp(). + * Uses curbuf for line count and 'iskeyword'. + * + * Return TRUE if there is a match, FALSE if not. + */ + int + vim_regexec(rmp, line, col) +! regmatch_T *rmp; +! char_u *line; /* string to match against */ +! colnr_T col; /* column to start looking for match */ + { +! return rmp->regprog->engine->regexec_nl(rmp, line, col, FALSE); + } + + #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \ +--- 8141,8215 ---- + prog->engine->regfree(prog); + } + ++ #ifdef FEAT_EVAL ++ static void report_re_switch __ARGS((char_u *pat)); ++ ++ static void ++ report_re_switch(pat) ++ char_u *pat; ++ { ++ if (p_verbose > 0) ++ { ++ verbose_enter(); ++ MSG_PUTS(_("Switching to backtracking RE engine for pattern: ")); ++ MSG_PUTS(pat); ++ verbose_leave(); ++ } ++ } ++ #endif ++ ++ static int vim_regexec_both __ARGS((regmatch_T *rmp, char_u *line, colnr_T col, int nl)); ++ + /* + * Match a regexp against a string. + * "rmp->regprog" is a compiled regexp as returned by vim_regcomp(). + * Uses curbuf for line count and 'iskeyword'. ++ * When "nl" is TRUE consider a "\n" in "line" to be a line break. + * + * Return TRUE if there is a match, FALSE if not. + */ ++ static int ++ vim_regexec_both(rmp, line, col, nl) ++ regmatch_T *rmp; ++ char_u *line; /* string to match against */ ++ colnr_T col; /* column to start looking for match */ ++ int nl; ++ { ++ int result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl); ++ ++ /* NFA engine aborted because it's very slow. */ ++ if (rmp->regprog->re_engine == AUTOMATIC_ENGINE ++ && result == NFA_TOO_EXPENSIVE) ++ { ++ int save_p_re = p_re; ++ int re_flags = rmp->regprog->re_flags; ++ char_u *pat = vim_strsave(((nfa_regprog_T *)rmp->regprog)->pattern); ++ ++ p_re = BACKTRACKING_ENGINE; ++ vim_regfree(rmp->regprog); ++ if (pat != NULL) ++ { ++ #ifdef FEAT_EVAL ++ report_re_switch(pat); ++ #endif ++ rmp->regprog = vim_regcomp(pat, re_flags); ++ if (rmp->regprog != NULL) ++ result = rmp->regprog->engine->regexec_nl(rmp, line, col, nl); ++ vim_free(pat); ++ } ++ ++ p_re = save_p_re; ++ } ++ return result; ++ } ++ + int + vim_regexec(rmp, line, col) +! regmatch_T *rmp; +! char_u *line; +! colnr_T col; + { +! return vim_regexec_both(rmp, line, col, FALSE); + } + + #if defined(FEAT_MODIFY_FNAME) || defined(FEAT_EVAL) \ +*************** +*** 8158,8168 **** + */ + int + vim_regexec_nl(rmp, line, col) +! regmatch_T *rmp; +! char_u *line; +! colnr_T col; + { +! return rmp->regprog->engine->regexec_nl(rmp, line, col, TRUE); + } + #endif + +--- 8219,8229 ---- + */ + int + vim_regexec_nl(rmp, line, col) +! regmatch_T *rmp; +! char_u *line; +! colnr_T col; + { +! return vim_regexec_both(rmp, line, col, TRUE); + } + #endif + +*************** +*** 8183,8187 **** + colnr_T col; /* column to start looking for match */ + proftime_T *tm; /* timeout limit or NULL */ + { +! return rmp->regprog->engine->regexec_multi(rmp, win, buf, lnum, col, tm); + } +--- 8244,8275 ---- + colnr_T col; /* column to start looking for match */ + proftime_T *tm; /* timeout limit or NULL */ + { +! int result = rmp->regprog->engine->regexec_multi( +! rmp, win, buf, lnum, col, tm); +! +! /* NFA engine aborted because it's very slow. */ +! if (rmp->regprog->re_engine == AUTOMATIC_ENGINE +! && result == NFA_TOO_EXPENSIVE) +! { +! int save_p_re = p_re; +! int re_flags = rmp->regprog->re_flags; +! char_u *pat = vim_strsave(((nfa_regprog_T *)rmp->regprog)->pattern); +! +! p_re = BACKTRACKING_ENGINE; +! vim_regfree(rmp->regprog); +! if (pat != NULL) +! { +! #ifdef FEAT_EVAL +! report_re_switch(pat); +! #endif +! rmp->regprog = vim_regcomp(pat, re_flags); +! if (rmp->regprog != NULL) +! result = rmp->regprog->engine->regexec_multi( +! rmp, win, buf, lnum, col, tm); +! vim_free(pat); +! } +! p_re = save_p_re; +! } +! +! return result; + } +*** ../vim-7.4.496/src/regexp.h 2014-04-23 19:06:33.702828771 +0200 +--- src/regexp.h 2014-11-05 13:09:14.136870089 +0100 +*************** +*** 27,32 **** +--- 27,44 ---- + */ + #define NFA_MAX_BRACES 20 + ++ /* ++ * In the NFA engine: how many states are allowed ++ */ ++ #define NFA_MAX_STATES 100000 ++ #define NFA_TOO_EXPENSIVE -1 ++ ++ /* Which regexp engine to use? Needed for vim_regcomp(). ++ * Must match with 'regexpengine'. */ ++ #define AUTOMATIC_ENGINE 0 ++ #define BACKTRACKING_ENGINE 1 ++ #define NFA_ENGINE 2 ++ + typedef struct regengine regengine_T; + + /* +*************** +*** 38,43 **** +--- 50,57 ---- + { + regengine_T *engine; + unsigned regflags; ++ unsigned re_engine; /* automatic, backtracking or nfa engine */ ++ unsigned re_flags; /* second argument for vim_regcomp() */ + } regprog_T; + + /* +*************** +*** 47,55 **** + */ + typedef struct + { +! /* These two members implement regprog_T */ + regengine_T *engine; + unsigned regflags; + + int regstart; + char_u reganch; +--- 61,71 ---- + */ + typedef struct + { +! /* These four members implement regprog_T */ + regengine_T *engine; + unsigned regflags; ++ unsigned re_engine; ++ unsigned re_flags; /* second argument for vim_regcomp() */ + + int regstart; + char_u reganch; +*************** +*** 81,89 **** + */ + typedef struct + { +! /* These two members implement regprog_T */ + regengine_T *engine; + unsigned regflags; + + nfa_state_T *start; /* points into state[] */ + +--- 97,107 ---- + */ + typedef struct + { +! /* These three members implement regprog_T */ + regengine_T *engine; + unsigned regflags; ++ unsigned re_engine; ++ unsigned re_flags; /* second argument for vim_regcomp() */ + + nfa_state_T *start; /* points into state[] */ + +*************** +*** 96,104 **** + #ifdef FEAT_SYN_HL + int reghasz; + #endif +- #ifdef DEBUG + char_u *pattern; +- #endif + int nsubexp; /* number of () */ + int nstate; + nfa_state_T state[1]; /* actually longer.. */ +--- 114,120 ---- +*************** +*** 151,159 **** + void (*regfree)(regprog_T *); + int (*regexec_nl)(regmatch_T*, char_u*, colnr_T, int); + long (*regexec_multi)(regmmatch_T*, win_T*, buf_T*, linenr_T, colnr_T, proftime_T*); +- #ifdef DEBUG + char_u *expr; +- #endif + }; + + #endif /* _REGEXP_H */ +--- 167,173 ---- +*** ../vim-7.4.496/src/regexp_nfa.c 2014-10-11 12:48:22.541259950 +0200 +--- src/regexp_nfa.c 2014-11-05 13:08:43.876870818 +0100 +*************** +*** 5522,5527 **** +--- 5522,5534 ---- + nextlist->n = 0; /* clear nextlist */ + nextlist->has_pim = FALSE; + ++nfa_listid; ++ if (prog->re_engine == AUTOMATIC_ENGINE && nfa_listid >= NFA_MAX_STATES) ++ { ++ /* too many states, retry with old engine */ ++ nfa_match = NFA_TOO_EXPENSIVE; ++ goto theend; ++ } ++ + thislist->id = nfa_listid; + nextlist->id = nfa_listid + 1; + +*************** +*** 5704,5709 **** +--- 5711,5721 ---- + */ + result = recursive_regmatch(t->state, NULL, prog, + submatch, m, &listids); ++ if (result == NFA_TOO_EXPENSIVE) ++ { ++ nfa_match = result; ++ goto theend; ++ } + + /* for \@! and \@state, NULL, prog, + submatch, m, &listids); ++ if (result == NFA_TOO_EXPENSIVE) ++ { ++ nfa_match = result; ++ goto theend; ++ } + if (result) + { + int bytelen; +*************** +*** 6760,6765 **** +--- 6777,6783 ---- + int i; + regsubs_T subs, m; + nfa_state_T *start = prog->start; ++ int result; + #ifdef ENABLE_LOG + FILE *f; + #endif +*************** +*** 6791,6798 **** + clear_sub(&m.synt); + #endif + +! if (nfa_regmatch(prog, start, &subs, &m) == FALSE) + return 0; + + cleanup_subexpr(); + if (REG_MULTI) +--- 6809,6819 ---- + clear_sub(&m.synt); + #endif + +! result = nfa_regmatch(prog, start, &subs, &m); +! if (result == FALSE) + return 0; ++ else if (result == NFA_TOO_EXPENSIVE) ++ return result; + + cleanup_subexpr(); + if (REG_MULTI) +*************** +*** 6929,6937 **** + nfa_nsubexpr = prog->nsubexp; + nfa_listid = 1; + nfa_alt_listid = 2; +- #ifdef DEBUG + nfa_regengine.expr = prog->pattern; +- #endif + + if (prog->reganch && col > 0) + return 0L; +--- 6950,6956 ---- +*************** +*** 6979,6987 **** + + retval = nfa_regtry(prog, col); + +- #ifdef DEBUG + nfa_regengine.expr = NULL; +- #endif + + theend: + return retval; +--- 6998,7004 ---- +*************** +*** 7003,7011 **** + if (expr == NULL) + return NULL; + +- #ifdef DEBUG + nfa_regengine.expr = expr; +- #endif + + init_class_tab(); + +--- 7020,7026 ---- +*************** +*** 7082,7091 **** + /* Remember whether this pattern has any \z specials in it. */ + prog->reghasz = re_has_z; + #endif +- #ifdef DEBUG + prog->pattern = vim_strsave(expr); + nfa_regengine.expr = NULL; +- #endif + + out: + vim_free(post_start); +--- 7097,7104 ---- +*************** +*** 7099,7107 **** + #ifdef ENABLE_LOG + nfa_postfix_dump(expr, FAIL); + #endif +- #ifdef DEBUG + nfa_regengine.expr = NULL; +- #endif + goto out; + } + +--- 7112,7118 ---- +*************** +*** 7115,7123 **** + if (prog != NULL) + { + vim_free(((nfa_regprog_T *)prog)->match_text); +- #ifdef DEBUG + vim_free(((nfa_regprog_T *)prog)->pattern); +- #endif + vim_free(prog); + } + } +--- 7126,7132 ---- +*** ../vim-7.4.496/src/testdir/Make_dos.mak 2014-10-21 20:57:11.534295006 +0200 +--- src/testdir/Make_dos.mak 2014-11-05 14:14:56.536775091 +0100 +*************** +*** 87,92 **** +--- 87,93 ---- + -if exist Xfind rd /s /q Xfind + -if exist viminfo del viminfo + -del test.log ++ -if exists benchmark.out del benchmark.out + + .in.out: + -if exist $*.failed del $*.failed +*************** +*** 103,105 **** +--- 104,114 ---- + + nolog: + -del test.log ++ ++ benchmark: ++ bench_re_freeze.out ++ ++ bench_re_freeze.out: bench_re_freeze.vim ++ -if exist benchmark.out del benchmark.out ++ $(VIMPROG) -u dos.vim -U NONE --noplugin $*.in ++ @IF EXIST benchmark.out ( type benchmark.out ) +*** ../vim-7.4.496/src/testdir/Make_ming.mak 2014-10-21 20:57:11.534295006 +0200 +--- src/testdir/Make_ming.mak 2014-11-05 14:15:09.608774776 +0100 +*************** +*** 12,22 **** +--- 12,24 ---- + DEL = rm -f + MV = mv + CP = cp ++ CAT = cat + DIRSLASH = / + else + DEL = del + MV = rename + CP = copy ++ CAT = type + DIRSLASH = \\ + endif + +*************** +*** 72,77 **** +--- 74,81 ---- + + SCRIPTS_GUI = test16.out + ++ SCRIPTS_BENCH = bench_re_freeze.out ++ + .SUFFIXES: .in .out + + vimall: fixff $(SCRIPTS16) $(SCRIPTS) $(SCRIPTS_GUI) $(SCRIPTS32) +*************** +*** 80,85 **** +--- 84,91 ---- + nongui: fixff $(SCRIPTS16) $(SCRIPTS) + echo ALL DONE + ++ benchmark: $(SCRIPTS_BENCH) ++ + small: + echo ALL DONE + +*************** +*** 114,116 **** +--- 120,127 ---- + -$(DEL) X* + -$(DEL) test.ok + -$(DEL) viminfo ++ ++ bench_re_freeze.out: bench_re_freeze.vim ++ -$(DEL) benchmark.out ++ $(VIMPROG) -u dos.vim -U NONE --noplugin $*.in ++ $(CAT) benchmark.out +*** ../vim-7.4.496/src/testdir/Make_os2.mak 2014-10-21 20:57:11.538295006 +0200 +--- src/testdir/Make_os2.mak 2014-11-05 12:57:59.616886342 +0100 +*************** +*** 50,55 **** +--- 50,57 ---- + test_signs.out \ + test_utf8.out + ++ SCRIPTS_BENCH = bench_re_freeze.out ++ + .SUFFIXES: .in .out + + all: /tmp $(SCRIPTS) +*************** +*** 57,62 **** +--- 59,66 ---- + + $(SCRIPTS): $(VIMPROG) + ++ benchmark: $(SCRIPTS_BENCH) ++ + clean: + -rm -rf *.out Xdotest test.ok tiny.vim small.vim mbyte.vim viminfo + +*************** +*** 75,77 **** +--- 79,88 ---- + # Create a directory for temp files + /tmp: + -mkdir /tmp ++ ++ bench_re_freeze.out: bench_re_freeze.vim ++ -del $*.failed test.ok benchmark.out ++ copy $*.ok test.ok ++ $(VIMPROG) -u os2.vim --noplugin -s dotest.in $*.in ++ type benchmark.out ++ +*** ../vim-7.4.496/src/testdir/Makefile 2014-10-21 20:57:11.538295006 +0200 +--- src/testdir/Makefile 2014-11-05 14:15:13.320774687 +0100 +*************** +*** 48,59 **** +--- 48,63 ---- + + SCRIPTS_GUI = test16.out + ++ SCRIPTS_BENCH = bench_re_freeze.out ++ + .SUFFIXES: .in .out + + nongui: nolog $(SCRIPTS) report + + gui: nolog $(SCRIPTS) $(SCRIPTS_GUI) report + ++ benchmark: $(SCRIPTS_BENCH) ++ + report: + @echo + @echo 'Test results:' +*************** +*** 65,71 **** + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + RM_ON_RUN = test.out X* viminfo +! RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok + RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in + + clean: +--- 69,75 ---- + $(SCRIPTS) $(SCRIPTS_GUI): $(VIMPROG) + + RM_ON_RUN = test.out X* viminfo +! RM_ON_START = tiny.vim small.vim mbyte.vim mzscheme.vim lua.vim test.ok benchmark.out + RUN_VIM = VIMRUNTIME=$(SCRIPTSOURCE); export VIMRUNTIME; $(VALGRIND) $(VIMPROG) -u unix.vim -U NONE --noplugin -s dotest.in + + clean: +*************** +*** 120,124 **** +--- 124,137 ---- + + test60.out: test60.vim + ++ bench_re_freeze.out: bench_re_freeze.vim ++ -rm -rf benchmark.out $(RM_ON_RUN) ++ # Sleep a moment to avoid that the xterm title is messed up. ++ # 200 msec is sufficient, but only modern sleep supports a fraction of ++ # a second, fall back to a second if it fails. ++ @-/bin/sh -c "sleep .2 > /dev/null 2>&1 || sleep 1" ++ -$(RUN_VIM) $*.in ++ @/bin/sh -c "if test -f benchmark.out; then cat benchmark.out; fi" ++ + nolog: + -rm -f test.log +*** ../vim-7.4.496/src/testdir/samples/re.freeze.txt 1970-01-01 01:00:00.000000000 +0100 +--- src/testdir/samples/re.freeze.txt 2014-11-05 11:50:44.176983582 +0100 +*************** +*** 0 **** +--- 1,6 ---- ++ :set re=0 or 2 ++ Search for the pattern: /\s\+\%#\@55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555 ++ +*** ../vim-7.4.496/src/testdir/bench_re_freeze.in 2014-11-05 14:02:46.420792685 +0100 +--- src/testdir/bench_re_freeze.in 2014-11-05 14:24:33.000761201 +0100 +*************** +*** 0 **** +--- 1,13 ---- ++ Test for Benchmarking RE engine ++ ++ STARTTEST ++ :so small.vim ++ :if !has("reltime") | qa! | endif ++ :set nocp cpo&vim ++ :so bench_re_freeze.vim ++ :call Measure('samples/re.freeze.txt', '\s\+\%#\@ Date: Wed, 5 Nov 2014 18:00:13 +0100 Subject: [PATCH 0105/1616] - patchlevel 498 --- 7.4.498 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.498 diff --git a/7.4.498 b/7.4.498 new file mode 100644 index 00000000..bd74d771 --- /dev/null +++ b/7.4.498 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.498 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.498 (after 7.4.497) +Problem: Typo in DOS makefile. +Solution: Change exists to exist. (Ken Takata) +Files: src/testdir/Make_dos.mak + + +*** ../vim-7.4.497/src/testdir/Make_dos.mak 2014-11-05 14:26:30.764758363 +0100 +--- src/testdir/Make_dos.mak 2014-11-05 15:44:09.476646105 +0100 +*************** +*** 87,93 **** + -if exist Xfind rd /s /q Xfind + -if exist viminfo del viminfo + -del test.log +! -if exists benchmark.out del benchmark.out + + .in.out: + -if exist $*.failed del $*.failed +--- 87,93 ---- + -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 +*** ../vim-7.4.497/src/version.c 2014-11-05 14:26:30.768758363 +0100 +--- src/version.c 2014-11-05 15:44:54.832645012 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 498, + /**/ + +-- +BLACK KNIGHT: I move for no man. +ARTHUR: So be it! + [hah] [parry thrust] + [ARTHUR chops the BLACK KNIGHT's left arm off] +ARTHUR: Now stand aside, worthy adversary. +BLACK KNIGHT: 'Tis but a scratch. + 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 6e6846ce8d5ea80b670a9b7dcd2711c17c111ff6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:14 +0100 Subject: [PATCH 0106/1616] - patchlevel 499 --- 7.4.499 | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 7.4.499 diff --git a/7.4.499 b/7.4.499 new file mode 100644 index 00000000..74a47ac9 --- /dev/null +++ b/7.4.499 @@ -0,0 +1,76 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.499 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.499 +Problem: substitute() can be slow with long strings. +Solution: Store a pointer to the end, instead of calling strlen() every + time. (Ozaki Kiichi) +Files: src/eval.c + + +*** ../vim-7.4.498/src/eval.c 2014-10-31 15:45:49.171053328 +0100 +--- src/eval.c 2014-11-05 15:49:49.040637923 +0100 +*************** +*** 25076,25081 **** +--- 25076,25082 ---- + int i; + int do_all; + char_u *tail; ++ char_u *end; + garray_T ga; + char_u *ret; + char_u *save_cpo; +*************** +*** 25094,25099 **** +--- 25095,25101 ---- + if (regmatch.regprog != NULL) + { + tail = str; ++ end = str + STRLEN(str); + while (vim_regexec_nl(®match, str, (colnr_T)(tail - str))) + { + /* Skip empty match except for first match. */ +*************** +*** 25120,25126 **** + * - The text after the match. + */ + sublen = vim_regsub(®match, sub, tail, FALSE, TRUE, FALSE); +! if (ga_grow(&ga, (int)(STRLEN(tail) + sublen - + (regmatch.endp[0] - regmatch.startp[0]))) == FAIL) + { + ga_clear(&ga); +--- 25122,25128 ---- + * - The text after the match. + */ + sublen = vim_regsub(®match, sub, tail, FALSE, TRUE, FALSE); +! if (ga_grow(&ga, (int)((end - tail) + sublen - + (regmatch.endp[0] - regmatch.startp[0]))) == FAIL) + { + ga_clear(&ga); +*** ../vim-7.4.498/src/version.c 2014-11-05 15:46:06.212643292 +0100 +--- src/version.c 2014-11-05 15:50:52.880636385 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 499, + /**/ + +-- +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 eb8fb35e96ad27330ac5bf71290e64338b7dc7e7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:15 +0100 Subject: [PATCH 0107/1616] - patchlevel 500 --- 7.4.500 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 7.4.500 diff --git a/7.4.500 b/7.4.500 new file mode 100644 index 00000000..0f6089cd --- /dev/null +++ b/7.4.500 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.500 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.500 +Problem: Test 72 still fails once in a while. +Solution: Don't set 'fileformat' to unix, reset it. (Ken Takata) +Files: src/testdir/test72.in + + +*** ../vim-7.4.499/src/testdir/test72.in 2014-08-16 17:34:31.186128463 +0200 +--- src/testdir/test72.in 2014-11-05 16:34:30.068573320 +0100 +*************** +*** 8,14 **** + :" Test 'undofile': first a simple one-line change. + :set nocompatible viminfo+=nviminfo visualbell + :set ul=100 undofile nomore +- :set ff=unix + :e! Xtestfile + ggdGithis is one line:set ul=100 + :s/one/ONE/ +--- 8,13 ---- +*************** +*** 83,89 **** + :" With encryption, cryptmethod=blowfish + :e! Xtestfile + rubbish +! :set undofile cm=blowfish + ggdGijan + feb + mar +--- 82,88 ---- + :" With encryption, cryptmethod=blowfish + :e! Xtestfile + rubbish +! :set undofile cm=blowfish ff& + ggdGijan + feb + mar +*************** +*** 109,115 **** + :" With encryption, cryptmethod=blowfish2 + :e! Xtestfile + rubbish +! :set undofile cm=blowfish2 + ggdGijan + feb + mar +--- 108,114 ---- + :" With encryption, cryptmethod=blowfish2 + :e! Xtestfile + rubbish +! :set undofile cm=blowfish2 ff& + ggdGijan + feb + mar +*** ../vim-7.4.499/src/version.c 2014-11-05 16:03:40.588617886 +0100 +--- src/version.c 2014-11-05 16:34:20.368573554 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 500, + /**/ + +-- +No letters of the alphabet were harmed in the creation of this message. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 780fcd75f125cc5ea7e888cd41c60123151c9735 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:16 +0100 Subject: [PATCH 0108/1616] - patchlevel 502 --- 7.4.502 | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 7.4.502 diff --git a/7.4.502 b/7.4.502 new file mode 100644 index 00000000..812ef79e --- /dev/null +++ b/7.4.502 @@ -0,0 +1,191 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.502 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.502 +Problem: Language mapping also applies to mapped characters. +Solution: Add the 'langnoremap' option, when on 'langmap' does not apply to + mapped characters. (Christian Brabandt) +Files: runtime/doc/options.txt, runtime/vimrc_example.vim, src/macros.h, + src/option.c, src/option.h + + +*** ../vim-7.4.501/runtime/doc/options.txt 2014-11-05 14:26:30.760758363 +0100 +--- runtime/doc/options.txt 2014-11-05 17:21:15.676505715 +0100 +*************** +*** 4533,4538 **** +--- 4534,4543 ---- + be able to execute Normal mode commands. + This is the opposite of the 'keymap' option, where characters are + mapped in Insert mode. ++ Also consider setting 'langnoremap' to avoid 'langmap' applies to ++ characters resulting from a mapping. ++ This option cannot be set from a |modeline| or in the |sandbox|, for ++ security reasons. + + Example (for Greek, in UTF-8): *greek* > + :set langmap=ΑA,Î’B,ΨC,ΔD,ΕE,ΦF,ΓG,ΗH,ΙI,ÎJ,ÎK,ΛL,ΜM,ÎN,ΟO,ΠP,QQ,ΡR,ΣS,ΤT,ΘU,ΩV,WW,ΧX,Î¥Y,ΖZ,αa,βb,ψc,δd,εe,φf,γg,ηh,ιi,ξj,κk,λl,μm,νn,οo,Ï€p,qq,Ïr,σs,Ï„t,θu,ωv,Ï‚w,χx,Ï…y,ζz +*************** +*** 4586,4591 **** +--- 4591,4608 ---- + :source $VIMRUNTIME/menu.vim + < Warning: This deletes all menus that you defined yourself! + ++ *'langnoremap'* *'lnr'* ++ 'langnoremap' 'lnr' boolean (default off) ++ global ++ {not in Vi} ++ {only available when compiled with the |+langmap| ++ feature} ++ When on, setting 'langmap' does not apply to characters resulting from ++ a mapping. This basically means, if you noticed that setting ++ 'langmap' disables some of your mappings, try setting this option. ++ This option defaults to off for backwards compatibility. Set it on if ++ that works for you to avoid mappings to break. ++ + *'laststatus'* *'ls'* + 'laststatus' 'ls' number (default 1) + global +*** ../vim-7.4.501/runtime/vimrc_example.vim 2014-02-05 22:01:56.686546587 +0100 +--- runtime/vimrc_example.vim 2014-11-05 17:23:26.808502555 +0100 +*************** +*** 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 +--- 1,7 ---- + " An example for a vimrc file. + " + " Maintainer: Bram Moolenaar +! " Last change: 2014 Nov 05 + " + " To use it, copy it to + " for Unix and OS/2: ~/.vimrc +*************** +*** 95,97 **** +--- 95,104 ---- + command DiffOrig vert new | set bt=nofile | r ++edit # | 0d_ | diffthis + \ | wincmd p | diffthis + endif ++ ++ if has('langmap') && exists('+langnoremap') ++ " Prevent that the langmap option applies to characters that result from a ++ " mapping. If unset (default), this may break plugins (but it's backward ++ " compatible). ++ set langnoremap ++ endif +*** ../vim-7.4.501/src/macros.h 2014-05-13 20:19:53.569808877 +0200 +--- src/macros.h 2014-11-05 17:26:42.172497848 +0100 +*************** +*** 128,140 **** + * Adjust chars in a language according to 'langmap' option. + * NOTE that there is no noticeable overhead if 'langmap' is not set. + * When set the overhead for characters < 256 is small. +! * Don't apply 'langmap' if the character comes from the Stuff buffer. + * The do-while is just to ignore a ';' after the macro. + */ + # ifdef FEAT_MBYTE + # define LANGMAP_ADJUST(c, condition) \ + do { \ +! if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0) \ + { \ + if ((c) < 256) \ + c = langmap_mapchar[c]; \ +--- 128,145 ---- + * Adjust chars in a language according to 'langmap' option. + * NOTE that there is no noticeable overhead if 'langmap' is not set. + * When set the overhead for characters < 256 is small. +! * Don't apply 'langmap' if the character comes from the Stuff buffer or from +! * a mapping and the langnoremap option was set. + * The do-while is just to ignore a ';' after the macro. + */ + # ifdef FEAT_MBYTE + # define LANGMAP_ADJUST(c, condition) \ + do { \ +! if (*p_langmap \ +! && (condition) \ +! && (!p_lnr || (p_lnr && typebuf_maplen() == 0)) \ +! && !KeyStuffed \ +! && (c) >= 0) \ + { \ + if ((c) < 256) \ + c = langmap_mapchar[c]; \ +*************** +*** 145,151 **** + # else + # define LANGMAP_ADJUST(c, condition) \ + do { \ +! if (*p_langmap && (condition) && !KeyStuffed && (c) >= 0 && (c) < 256) \ + c = langmap_mapchar[c]; \ + } while (0) + # endif +--- 150,160 ---- + # else + # define LANGMAP_ADJUST(c, condition) \ + do { \ +! if (*p_langmap \ +! && (condition) \ +! && (!p_lnr || (p_lnr && typebuf_maplen() == 0)) \ +! && !KeyStuffed \ +! && (c) >= 0 && (c) < 256) \ + c = langmap_mapchar[c]; \ + } while (0) + # endif +*** ../vim-7.4.501/src/option.c 2014-09-29 17:15:09.963945227 +0200 +--- src/option.c 2014-11-05 17:17:44.208510810 +0100 +*************** +*** 1691,1696 **** +--- 1691,1703 ---- + (char_u *)NULL, PV_NONE, + #endif + {(char_u *)"", (char_u *)0L} SCRIPTID_INIT}, ++ {"langnoremap", "lnr", P_BOOL|P_VI_DEF, ++ #ifdef FEAT_LANGMAP ++ (char_u *)&p_lnr, PV_NONE, ++ #else ++ (char_u *)NULL, PV_NONE, ++ #endif ++ {(char_u *)FALSE, (char_u *)0L} SCRIPTID_INIT}, + {"laststatus", "ls", P_NUM|P_VI_DEF|P_RALL, + #ifdef FEAT_WINDOWS + (char_u *)&p_ls, PV_NONE, +*** ../vim-7.4.501/src/option.h 2014-09-23 15:45:04.870801055 +0200 +--- src/option.h 2014-11-05 17:17:44.212510810 +0100 +*************** +*** 576,581 **** +--- 576,582 ---- + EXTERN char_u *p_km; /* 'keymodel' */ + #ifdef FEAT_LANGMAP + EXTERN char_u *p_langmap; /* 'langmap'*/ ++ EXTERN int p_lnr; /* 'langnoremap' */ + #endif + #if defined(FEAT_MENU) && defined(FEAT_MULTI_LANG) + EXTERN char_u *p_lm; /* 'langmenu' */ +*** ../vim-7.4.501/src/version.c 2014-11-05 17:04:10.516530418 +0100 +--- src/version.c 2014-11-05 17:15:31.820514001 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 502, + /**/ + +-- +MARTHA'S WAY: Don't throw out all that leftover wine. Freeze into ice cubes + for future use in casseroles and sauces. +MY WAY: What leftover wine? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 31dc0a351abada177f819ea0e337a9a0832659a1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 5 Nov 2014 18:00:17 +0100 Subject: [PATCH 0109/1616] - patchlevel 502 --- 7.4.501 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++ README.patches | 10 ++++++++++ vim.spec | 25 +++++++++++++++++++++++- 3 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 7.4.501 diff --git a/7.4.501 b/7.4.501 new file mode 100644 index 00000000..e21745ac --- /dev/null +++ b/7.4.501 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.501 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.501 (after 7.4.497) +Problem: Typo in file pattern. +Solution: Insert a slash and remove a dot. +Files: Filelist + + +*** ../vim-7.4.500/Filelist 2014-11-05 14:29:27.708754099 +0100 +--- Filelist 2014-11-05 17:03:41.104531126 +0100 +*************** +*** 104,110 **** + src/testdir/python_before/*.py \ + src/testdir/bench*.in \ + src/testdir/bench*.vim \ +! src/testdir/samples.*.txt \ + src/proto.h \ + src/proto/blowfish.pro \ + src/proto/buffer.pro \ +--- 104,110 ---- + src/testdir/python_before/*.py \ + src/testdir/bench*.in \ + src/testdir/bench*.vim \ +! src/testdir/samples/*.txt \ + src/proto.h \ + src/proto/blowfish.pro \ + src/proto/buffer.pro \ +*** ../vim-7.4.500/src/version.c 2014-11-05 16:39:24.712566220 +0100 +--- src/version.c 2014-11-05 17:03:19.828531639 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 501, + /**/ + +-- +"It's so simple to be wise. Just think of something stupid to say +and then don't say it." -- Sam Levenson + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for 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/README.patches b/README.patches index 6e863d67..3f430385 100644 --- a/README.patches +++ b/README.patches @@ -514,3 +514,13 @@ Individual patches for Vim 7.4: 6856 7.4.490 cannot specify the buffer to use for "do" and "dp" 1907 7.4.491 negative "topline" value for winrestview() has display errors 2917 7.4.492 Ctrl-O in Insert mode moves right after insert comment leader + 1686 7.4.493 a TextChanged autocommand is triggered when saving a file + 1968 7.4.494 cursor shape is wrong after a CompleteDone autocommand + 2484 7.4.495 XPM isn't used correctly in the Cygwin Makefile + 78227 7.4.496 many lines are both in Make_cyg.mak and Make_ming.mak +118187 7.4.497 NFA engine is very slow with some regexp patterns + 1770 7.4.498 (after 7.4.497) typo in DOS makefile + 2341 7.4.499 substitute() can be slow with long strings + 1991 7.4.500 test 72 still fails once in a while + 1577 7.4.501 (after 7.4.497) typo in file pattern + 6672 7.4.502 language mapping also applies to mapped characters diff --git a/vim.spec b/vim.spec index 39bd8c93..dd1a4102 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 492 +%define patchlevel 502 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -539,6 +539,16 @@ Patch489: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.489 Patch490: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.490 Patch491: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.491 Patch492: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.492 +Patch493: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.493 +Patch494: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.494 +Patch495: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.495 +Patch496: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.496 +Patch497: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.497 +Patch498: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.498 +Patch499: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.499 +Patch500: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.500 +Patch501: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.501 +Patch502: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.502 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1178,6 +1188,16 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch490 -p0 %patch491 -p0 %patch492 -p0 +%patch493 -p0 +%patch494 -p0 +%patch495 -p0 +%patch496 -p0 +%patch497 -p0 +%patch498 -p0 +%patch499 -p0 +%patch500 -p0 +%patch501 -p0 +%patch502 -p0 # install spell files %if %{withvimspell} @@ -1695,6 +1715,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Nov 05 2014 Karsten Hopp 7.4.502-1 +- patchlevel 502 + * Sat Nov 01 2014 Karsten Hopp 7.4.492-1 - patchlevel 492 From fddb2518d6752919dc9c700e9fc273715b4356c6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 6 Nov 2014 18:00:09 +0100 Subject: [PATCH 0110/1616] - patchlevel 503 --- 7.4.503 | 193 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 7.4.503 diff --git a/7.4.503 b/7.4.503 new file mode 100644 index 00000000..9cad01c2 --- /dev/null +++ b/7.4.503 @@ -0,0 +1,193 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.503 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.503 +Problem: Cannot append a list of lines to a file. +Solution: Add the append option to writefile(). (Yasuhiro Matsumoto) +Files: runtime/doc/eval.txt, src/Makefile, src/eval.c, + src/testdir/test_writefile.in, src/testdir/test_writefile.ok + + +*** ../vim-7.4.502/runtime/doc/eval.txt 2014-09-09 16:13:05.040531695 +0200 +--- runtime/doc/eval.txt 2014-11-05 17:57:01.592454006 +0100 +*************** +*** 2040,2046 **** + winrestview( {dict}) none restore view of current window + winsaveview() Dict save view of current window + winwidth( {nr}) Number width of window {nr} +! writefile( {list}, {fname} [, {binary}]) + Number write list of lines to file {fname} + xor( {expr}, {expr}) Number bitwise XOR + +--- 2041,2047 ---- + winrestview( {dict}) none restore view of current window + winsaveview() Dict save view of current window + winwidth( {nr}) Number width of window {nr} +! writefile( {list}, {fname} [, {flags}]) + Number write list of lines to file {fname} + xor( {expr}, {expr}) Number bitwise XOR + +*************** +*** 6532,6545 **** + :endif + < + *writefile()* +! writefile({list}, {fname} [, {binary}]) + Write |List| {list} to file {fname}. Each list item is + separated with a NL. Each list item must be a String or + Number. +! When {binary} is equal to "b" binary mode is used: There will + not be a NL after the last list item. An empty item at the + end does cause the last line in the file to end in a NL. +! All NL characters are replaced with a NUL character. + Inserting CR characters needs to be done before passing {list} + to writefile(). + An existing file is overwritten, if possible. +--- 6555,6574 ---- + :endif + < + *writefile()* +! writefile({list}, {fname} [, {flags}]) + Write |List| {list} to file {fname}. Each list item is + separated with a NL. Each list item must be a String or + Number. +! When {flags} contains "b" then binary mode is used: There will + not be a NL after the last list item. An empty item at the + end does cause the last line in the file to end in a NL. +! +! When {flags} contains "a" then append mode is used, lines are +! append to the file: > +! :call writefile(["foo"], "event.log", "a") +! :call writefile(["bar"], "event.log", "a") +! > +! < All NL characters are replaced with a NUL character. + Inserting CR characters needs to be done before passing {list} + to writefile(). + An existing file is overwritten, if possible. +*** ../vim-7.4.502/src/Makefile 2014-11-05 14:26:30.760758363 +0100 +--- src/Makefile 2014-11-05 17:54:36.864457494 +0100 +*************** +*** 1899,1906 **** +--- 1899,1910 ---- + test_insertcount \ + test_listlbr \ + test_listlbr_utf8 \ ++ test_mapping \ + test_options \ + test_qf_title \ ++ test_signs \ ++ test_utf8 \ ++ test_writefile \ + test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 \ + test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \ + test30 test31 test32 test33 test34 test35 test36 test37 test38 test39 \ +*** ../vim-7.4.502/src/eval.c 2014-11-05 16:03:40.588617886 +0100 +--- src/eval.c 2014-11-05 17:59:15.388450782 +0100 +*************** +*** 19689,19694 **** +--- 19689,19695 ---- + typval_T *rettv; + { + int binary = FALSE; ++ int append = FALSE; + char_u *fname; + FILE *fd; + int ret = 0; +*************** +*** 19704,19717 **** + if (argvars[0].vval.v_list == NULL) + return; + +! if (argvars[2].v_type != VAR_UNKNOWN +! && STRCMP(get_tv_string(&argvars[2]), "b") == 0) +! binary = TRUE; + + /* Always open the file in binary mode, library functions have a mind of + * their own about CR-LF conversion. */ + fname = get_tv_string(&argvars[1]); +! if (*fname == NUL || (fd = mch_fopen((char *)fname, WRITEBIN)) == NULL) + { + EMSG2(_(e_notcreate), *fname == NUL ? (char_u *)_("") : fname); + ret = -1; +--- 19705,19723 ---- + if (argvars[0].vval.v_list == NULL) + return; + +! if (argvars[2].v_type != VAR_UNKNOWN) +! { +! if (vim_strchr(get_tv_string(&argvars[2]), 'b') != NULL) +! binary = TRUE; +! if (vim_strchr(get_tv_string(&argvars[2]), 'a') != NULL) +! append = TRUE; +! } + + /* Always open the file in binary mode, library functions have a mind of + * their own about CR-LF conversion. */ + fname = get_tv_string(&argvars[1]); +! if (*fname == NUL || (fd = mch_fopen((char *)fname, +! append ? APPENDBIN : WRITEBIN)) == NULL) + { + EMSG2(_(e_notcreate), *fname == NUL ? (char_u *)_("") : fname); + ret = -1; +*** ../vim-7.4.502/src/testdir/test_writefile.in 2014-11-05 18:04:54.912442601 +0100 +--- src/testdir/test_writefile.in 2014-11-05 18:01:07.408448083 +0100 +*************** +*** 0 **** +--- 1,18 ---- ++ Tests for writefile() ++ ++ STARTTEST ++ :source small.vim ++ :%delete _ ++ :let f = tempname() ++ :call writefile(["over","written"], f, "b") ++ :call writefile(["hello","world"], f, "b") ++ :call writefile(["!", "good"], f, "a") ++ :call writefile(["morning"], f, "ab") ++ :call writefile(["", "vimmers"], f, "ab") ++ :bwipeout! ++ :$put =readfile(f) ++ :1 delete _ ++ :w! test.out ++ :qa! ++ ENDTEST ++ +*** ../vim-7.4.502/src/testdir/test_writefile.ok 2014-11-05 18:04:54.916442601 +0100 +--- src/testdir/test_writefile.ok 2014-11-05 17:53:19.776459351 +0100 +*************** +*** 0 **** +--- 1,5 ---- ++ hello ++ world! ++ good ++ morning ++ vimmers +*** ../vim-7.4.502/src/version.c 2014-11-05 17:44:47.676471691 +0100 +--- src/version.c 2014-11-05 17:55:08.508456731 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 503, + /**/ + +-- +BLACK KNIGHT: Come on you pansy! + [hah] [parry thrust] + [ARTHUR chops the BLACK KNIGHT's right arm off] +ARTHUR: Victory is mine! [kneeling] + We thank thee Lord, that in thy merc- + [Black Knight kicks Arthur in the head while he is praying] + 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 fdd32d17369d134ffb55f48a35892c389c97991c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 6 Nov 2014 18:00:09 +0100 Subject: [PATCH 0111/1616] - patchlevel 504 --- 7.4.504 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.4.504 diff --git a/7.4.504 b/7.4.504 new file mode 100644 index 00000000..536853e9 --- /dev/null +++ b/7.4.504 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.504 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.504 +Problem: Restriction of the MS-Windows installer that the path must end in + "Vim" prevents installing more than one version. +Solution: Remove the restriction. (Tim Lebedkov) +Files: nsis/gvim.nsi + + +*** ../vim-7.4.503/nsis/gvim.nsi 2013-08-10 13:25:08.000000000 +0200 +--- nsis/gvim.nsi 2014-11-05 18:17:11.096424861 +0100 +*************** +*** 1,6 **** + # NSIS file to create a self-installing exe for Vim. + # It requires NSIS version 2.0 or later. +! # Last Change: 2010 Jul 30 + + # WARNING: if you make changes to this script, look out for $0 to be valid, + # because uninstall deletes most files in $0. +--- 1,6 ---- + # NSIS file to create a self-installing exe for Vim. + # It requires NSIS version 2.0 or later. +! # Last Change: 2014 Nov 5 + + # WARNING: if you make changes to this script, look out for $0 to be valid, + # because uninstall deletes most files in $0. +*************** +*** 38,44 **** + RequestExecutionLevel highest + + ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer." +! DirText "Choose a directory to install Vim (must end in 'vim')" + Icon icons\vim_16c.ico + # NSIS2 uses a different strategy with six different images in a strip... + #EnabledBitmap icons\enabled.bmp +--- 38,44 ---- + RequestExecutionLevel highest + + ComponentText "This will install Vim ${VER_MAJOR}.${VER_MINOR} on your computer." +! DirText "Choose a directory to install Vim (should contain 'vim')" + Icon icons\vim_16c.ico + # NSIS2 uses a different strategy with six different images in a strip... + #EnabledBitmap icons\enabled.bmp +*************** +*** 135,145 **** + # We only accept the directory if it ends in "vim". Using .onVerifyInstDir has + # the disadvantage that the browse dialog is difficult to use. + Function CheckInstallDir +- StrCpy $0 $INSTDIR 3 -3 +- StrCmp $0 "vim" PathGood +- MessageBox MB_OK "The path must end in 'vim'." +- Abort +- PathGood: + FunctionEnd + + Function .onInstSuccess +--- 135,140 ---- +*** ../vim-7.4.503/src/version.c 2014-11-05 18:05:48.660441306 +0100 +--- src/version.c 2014-11-05 18:14:51.076428235 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 504, + /**/ + +-- +-rwxr-xr-x 1 root 24 Oct 29 1929 /bin/ed +-rwxr-xr-t 4 root 131720 Jan 1 1970 /usr/ucb/vi +-rwxr-xr-x 1 root 5.89824e37 Oct 22 1990 /usr/bin/emacs + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 1ce6e62506bcdf15331590aa257340b53fe51d2d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 6 Nov 2014 18:00:10 +0100 Subject: [PATCH 0112/1616] - patchlevel 505 --- 7.4.505 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.4.505 diff --git a/7.4.505 b/7.4.505 new file mode 100644 index 00000000..54f1558e --- /dev/null +++ b/7.4.505 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.505 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.505 +Problem: On MS-Windows when 'encoding' is a double-byte encoding a file + name longer than MAX_PATH bytes but shorter than that in + characters causes problems. +Solution: Fail on file names longer than MAX_PATH bytes. (Ken Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.504/src/os_win32.c 2014-10-16 16:16:33.970230873 +0200 +--- src/os_win32.c 2014-11-05 18:32:54.624402126 +0100 +*************** +*** 6139,6144 **** +--- 6139,6151 ---- + } + # endif + ++ /* open() can open a file which name is longer than _MAX_PATH bytes ++ * and shorter than _MAX_PATH characters successfully, but sometimes it ++ * causes unexpected error in another part. We make it an error explicitly ++ * here. */ ++ if (strlen(name) >= _MAX_PATH) ++ return -1; ++ + return open(name, flags, mode); + } + +*************** +*** 6188,6193 **** +--- 6195,6207 ---- + * the _wfopen() fails for missing wide functions. */ + } + ++ /* fopen() can open a file which name is longer than _MAX_PATH bytes ++ * and shorter than _MAX_PATH characters successfully, but sometimes it ++ * causes unexpected error in another part. We make it an error explicitly ++ * here. */ ++ if (strlen(name) >= _MAX_PATH) ++ return NULL; ++ + return fopen(name, mode); + } + #endif +*** ../vim-7.4.504/src/version.c 2014-11-05 18:18:13.156423366 +0100 +--- src/version.c 2014-11-05 18:33:06.684401835 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 505, + /**/ + +-- +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 27c1b032573d9ef1ffa337cebbcd58ba6f2b51f0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 6 Nov 2014 18:00:11 +0100 Subject: [PATCH 0113/1616] - patchlevel 506 --- 7.4.506 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.506 diff --git a/7.4.506 b/7.4.506 new file mode 100644 index 00000000..d55aaba7 --- /dev/null +++ b/7.4.506 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.506 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.506 +Problem: MS-Windows: Cannot open a file with 259 characters. +Solution: Fix off-by-one error. (Ken Takata) +Files: src/os_mswin.c + + +*** ../vim-7.4.505/src/os_mswin.c 2014-10-16 20:35:32.146264814 +0200 +--- src/os_mswin.c 2014-11-05 19:32:59.748315256 +0100 +*************** +*** 411,417 **** + * - convert the result from UCS2 to 'encoding'. + */ + wname = enc_to_utf16(fname, NULL); +! if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH - 1) != NULL) + { + cname = utf16_to_enc((short_u *)wbuf, NULL); + if (cname != NULL) +--- 411,417 ---- + * - convert the result from UCS2 to 'encoding'. + */ + wname = enc_to_utf16(fname, NULL); +! if (wname != NULL && _wfullpath(wbuf, wname, MAX_PATH) != NULL) + { + cname = utf16_to_enc((short_u *)wbuf, NULL); + if (cname != NULL) +*** ../vim-7.4.505/src/version.c 2014-11-05 18:35:59.104397681 +0100 +--- src/version.c 2014-11-05 19:27:04.520323815 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 506, + /**/ + +-- +Trees moving back and forth is what makes the wind blow. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 35bfbff07b219a9a01bc4466ebc778cfd36ad4e6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 6 Nov 2014 18:00:11 +0100 Subject: [PATCH 0114/1616] - patchlevel 507 --- 7.4.507 | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 7.4.507 diff --git a/7.4.507 b/7.4.507 new file mode 100644 index 00000000..408dbdf7 --- /dev/null +++ b/7.4.507 @@ -0,0 +1,68 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.507 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.507 (after 7.4.496) +Problem: Building with MingW and Perl may fail. +Solution: Remove quotes. (Ken Takata) +Files: src/Make_cyg_ming.mak + + +*** ../vim-7.4.506/src/Make_cyg_ming.mak 2014-11-05 13:53:13.188806497 +0100 +--- src/Make_cyg_ming.mak 2014-11-06 09:59:51.523061961 +0100 +*************** +*** 132,138 **** + endif + XSUBPP_EXISTS=$(shell $(PERLEXE) -e "print 1 unless -e '$(XSUBPPTRY)'") + ifeq "$(XSUBPP_EXISTS)" "" +! XSUBPP=$(PERLEXE) "$(XSUBPPTRY)" + else + XSUBPP=xsubpp + endif +--- 132,138 ---- + endif + XSUBPP_EXISTS=$(shell $(PERLEXE) -e "print 1 unless -e '$(XSUBPPTRY)'") + ifeq "$(XSUBPP_EXISTS)" "" +! XSUBPP=$(PERLEXE) $(XSUBPPTRY) + else + XSUBPP=xsubpp + endif +*************** +*** 809,815 **** + + if_perl.c: if_perl.xs typemap + $(XSUBPP) -prototypes -typemap \ +! "$(PERLTYPEMAP)" if_perl.xs > $@ + + $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC) + $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o +--- 809,815 ---- + + if_perl.c: if_perl.xs typemap + $(XSUBPP) -prototypes -typemap \ +! $(PERLTYPEMAP) if_perl.xs > $@ + + $(OUTDIR)/netbeans.o: netbeans.c $(INCL) $(NBDEBUG_INCL) $(NBDEBUG_SRC) + $(CC) -c $(CFLAGS) netbeans.c -o $(OUTDIR)/netbeans.o +*** ../vim-7.4.506/src/version.c 2014-11-05 19:33:19.552314778 +0100 +--- src/version.c 2014-11-06 10:02:45.647057766 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 507, + /**/ + +-- +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 ee25fdb5579578a814abd1fe9714ac0b838245b2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 6 Nov 2014 18:00:13 +0100 Subject: [PATCH 0115/1616] - patchlevel 507 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 3f430385..42b99b2e 100644 --- a/README.patches +++ b/README.patches @@ -524,3 +524,8 @@ Individual patches for Vim 7.4: 1991 7.4.500 test 72 still fails once in a while 1577 7.4.501 (after 7.4.497) typo in file pattern 6672 7.4.502 language mapping also applies to mapped characters + 6560 7.4.503 cannot append a list of lines to a file + 2930 7.4.504 MS-Windows installer restricts install path to end in "vim" + 2125 7.4.505 problem on MS-Windows file name longer than MAX_PATH bytes + 1680 7.4.506 MS-Windows: Cannot open a file with 259 characters + 2027 7.4.507 (after 7.4.496) building with MingW and Perl may fail diff --git a/vim.spec b/vim.spec index dd1a4102..7c9d91b5 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 502 +%define patchlevel 507 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -549,6 +549,11 @@ Patch499: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.499 Patch500: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.500 Patch501: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.501 Patch502: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.502 +Patch503: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.503 +Patch504: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.504 +Patch505: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.505 +Patch506: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.506 +Patch507: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.507 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1198,6 +1203,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch500 -p0 %patch501 -p0 %patch502 -p0 +%patch503 -p0 +%patch504 -p0 +%patch505 -p0 +%patch506 -p0 +%patch507 -p0 # install spell files %if %{withvimspell} @@ -1715,6 +1725,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Nov 06 2014 Karsten Hopp 7.4.507-1 +- patchlevel 507 + * Wed Nov 05 2014 Karsten Hopp 7.4.502-1 - patchlevel 502 From c9351d3580b1678687e045d804907b8f9048fac8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 12 Nov 2014 18:00:11 +0100 Subject: [PATCH 0116/1616] - patchlevel 508 --- 7.4.508 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.508 diff --git a/7.4.508 b/7.4.508 new file mode 100644 index 00000000..b5871175 --- /dev/null +++ b/7.4.508 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.508 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.508 +Problem: When generating ja.sjis.po the header is not correctly adjusted. +Solution: Check for the right header string. (Ken Takata) +Files: src/po/sjiscorr.c + + +*** ../vim-7.4.507/src/po/sjiscorr.c 2013-05-19 05:15:15.000000000 +0200 +--- src/po/sjiscorr.c 2014-11-12 13:01:37.574369693 +0100 +*************** +*** 23,31 **** + fputs("charset=cp932", stdout); + p += 12; + } +! else if (strncmp(p, "ja.po - Japanese message file", 29) == 0) + { +- fputs("ja.sjis.po - Japanese message file for Vim (version 6.x)\n", stdout); + fputs("# generated from ja.po, DO NOT EDIT", stdout); + while (p[1] != '\n') + ++p; +--- 23,30 ---- + fputs("charset=cp932", stdout); + p += 12; + } +! else if (strncmp(p, "# Original translations", 23) == 0) + { + fputs("# generated from ja.po, DO NOT EDIT", stdout); + while (p[1] != '\n') + ++p; +*** ../vim-7.4.507/src/version.c 2014-11-06 10:02:57.023057491 +0100 +--- src/version.c 2014-11-12 13:04:27.308402708 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 508, + /**/ + +-- +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 f7e34476bf725fe90c69ffe74040d2bb915299ad Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 12 Nov 2014 18:00:12 +0100 Subject: [PATCH 0117/1616] - patchlevel 509 --- 7.4.509 | 115 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 7.4.509 diff --git a/7.4.509 b/7.4.509 new file mode 100644 index 00000000..e4ed1054 --- /dev/null +++ b/7.4.509 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.509 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.509 +Problem: Users are not aware their encryption is weak. +Solution: Give a warning when prompting for the key. +Files: src/crypt.c, src/ex_docmd.c, src/fileio.c, src/main.c, + src/proto/crypt.pro + + +*** ../vim-7.4.508/src/crypt.c 2014-08-13 22:05:49.032892299 +0200 +--- src/crypt.c 2014-11-12 15:10:22.359161977 +0100 +*************** +*** 504,509 **** +--- 504,529 ---- + } + + /* ++ * Check the crypt method and give a warning if it's outdated. ++ */ ++ void ++ crypt_check_method(method) ++ int method; ++ { ++ if (method < CRYPT_M_BF2) ++ { ++ msg_scroll = TRUE; ++ MSG(_("Warning: Using a weak encryption method; see :help 'cm'")); ++ } ++ } ++ ++ void ++ crypt_check_current_method() ++ { ++ crypt_check_method(crypt_get_method_nr(curbuf)); ++ } ++ ++ /* + * Ask the user for a crypt key. + * When "store" is TRUE, the new key is stored in the 'key' option, and the + * 'key' option value is returned: Don't free it. +*** ../vim-7.4.508/src/ex_docmd.c 2014-11-05 09:53:19.989153321 +0100 +--- src/ex_docmd.c 2014-11-12 14:53:09.621921631 +0100 +*************** +*** 11524,11529 **** +--- 11524,11530 ---- + ex_X(eap) + exarg_T *eap UNUSED; + { ++ crypt_check_current_method(); + (void)crypt_get_key(TRUE, TRUE); + } + #endif +*** ../vim-7.4.508/src/fileio.c 2014-10-31 19:51:33.010698056 +0100 +--- src/fileio.c 2014-11-12 15:10:44.986925300 +0100 +*************** +*** 2958,2963 **** +--- 2958,2964 ---- + * Happens when retrying to detect encoding. */ + smsg((char_u *)_(need_key_msg), fname); + msg_scroll = TRUE; ++ crypt_check_method(method); + cryptkey = crypt_get_key(newfile, FALSE); + *did_ask = TRUE; + +*** ../vim-7.4.508/src/main.c 2014-09-19 13:46:49.550399801 +0200 +--- src/main.c 2014-11-12 14:52:47.866169622 +0100 +*************** +*** 854,859 **** +--- 854,860 ---- + #ifdef FEAT_CRYPT + if (params.ask_for_key) + { ++ crypt_check_current_method(); + (void)crypt_get_key(TRUE, TRUE); + TIME_MSG("getting crypt key"); + } +*** ../vim-7.4.508/src/proto/crypt.pro 2014-08-10 13:34:59.060785459 +0200 +--- src/proto/crypt.pro 2014-11-12 15:06:51.349363319 +0100 +*************** +*** 19,24 **** +--- 19,26 ---- + void crypt_encode_inplace __ARGS((cryptstate_T *state, char_u *buf, size_t len)); + void crypt_decode_inplace __ARGS((cryptstate_T *state, char_u *buf, size_t len)); + void crypt_free_key __ARGS((char_u *key)); ++ void crypt_check_method __ARGS((int method)); ++ void crypt_check_current_method __ARGS((void)); + char_u *crypt_get_key __ARGS((int store, int twice)); + void crypt_append_msg __ARGS((buf_T *buf)); + /* vim: set ft=c : */ +*** ../vim-7.4.508/src/version.c 2014-11-12 13:07:48.774069557 +0100 +--- src/version.c 2014-11-12 14:45:09.979391243 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 509, + /**/ + +-- +Q: How do you tell the difference between a female cat and a male cat? +A: You ask it a question and if HE answers, it's a male but, if SHE + answers, it's a female. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From c86e7c86b6975bc36f459bf285891902db467294 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 12 Nov 2014 18:00:12 +0100 Subject: [PATCH 0118/1616] - patchlevel 510 --- 7.4.510 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 7.4.510 diff --git a/7.4.510 b/7.4.510 new file mode 100644 index 00000000..e140bba9 --- /dev/null +++ b/7.4.510 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.510 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.510 +Problem: "-fwrapv" argument breaks use of cproto. +Solution: Remove the alphabetic arguments in a drastic way. +Files: src/Makefile + + +*** ../vim-7.4.509/src/Makefile 2014-11-05 18:05:48.652441306 +0100 +--- src/Makefile 2014-11-12 15:24:56.357941730 +0100 +*************** +*** 1779,1791 **** + proto: $(PRO_AUTO) $(PRO_MANUAL) + + # Filter out arguments that cproto doesn't support. +! # Don't pass "-pthread" to cproto, it sees it as a list of individual flags. +! # Don't pass "-fstack-protector" to cproto, for the same reason. +! # Don't pass "-g" to cproto. + # The -E"gcc -E" argument must be separate to avoid problems with shell + # quoting. + CPROTO = cproto $(PROTO_FLAGS) -DPROTO \ +! `echo '$(LINT_CFLAGS)' | sed -e 's/-pthread//g' -e 's/-fstack-protector//g' -e 's/\ -g\ / /g'` + + ### Would be nice if this would work for "normal" make. + ### Currently it only works for (Free)BSD make. +--- 1779,1790 ---- + proto: $(PRO_AUTO) $(PRO_MANUAL) + + # Filter out arguments that cproto doesn't support. +! # Don't pass "-pthread", "-fwrapv" and similar arguments to cproto, it sees +! # them as a list of individual flags. + # The -E"gcc -E" argument must be separate to avoid problems with shell + # quoting. + CPROTO = cproto $(PROTO_FLAGS) -DPROTO \ +! `echo '$(LINT_CFLAGS)' | sed -e 's/ -[a-z-]\+//g'` + + ### Would be nice if this would work for "normal" make. + ### Currently it only works for (Free)BSD make. +*** ../vim-7.4.509/src/version.c 2014-11-12 15:15:34.983882077 +0100 +--- src/version.c 2014-11-12 15:37:34.401182559 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 510, + /**/ + +-- + [Autumn changed into Winter ... Winter changed into Spring ... Spring + changed back into Autumn and Autumn gave Winter and Spring a miss and + went straight on into Summer ... Until one day ...] + "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 aaaa04a256b813229d978d107087fd2eab7edd73 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 12 Nov 2014 18:00:13 +0100 Subject: [PATCH 0119/1616] - patchlevel 511 --- 7.4.511 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.511 diff --git a/7.4.511 b/7.4.511 new file mode 100644 index 00000000..547ac633 --- /dev/null +++ b/7.4.511 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.511 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.511 +Problem: Generating proto for if_ruby.c uses type not defined elsewhere. +Solution: Do not generate a prototype for + rb_gc_writebarrier_unprotect_promoted() +Files: src/if_ruby.c + + +*** ../vim-7.4.510/src/if_ruby.c 2014-03-28 21:58:17.878256914 +0100 +--- src/if_ruby.c 2014-11-12 15:28:07.971812917 +0100 +*************** +*** 418,424 **** + # 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); +--- 418,425 ---- + # endif + # endif + +! /* Do not generate a prototype here, VALUE isn't always defined. */ +! # if defined(USE_RGENGC) && USE_RGENGC && !defined(PROTO) + void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj) + { + return dll_rb_gc_writebarrier_unprotect_promoted(obj); +*** ../vim-7.4.510/src/version.c 2014-11-12 15:45:16.595789120 +0100 +--- src/version.c 2014-11-12 16:04:18.698532684 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 511, + /**/ + +-- +TIM: To the north there lies a cave, the cave of Caerbannog, wherein, carved + in mystic runes, upon the very living rock, the last words of Olfin + Bedwere of Rheged make plain the last resting place of the most Holy + Grail. + "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 82fb6b38c66062bf31590b235bd91f4621dc25fb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 12 Nov 2014 18:00:14 +0100 Subject: [PATCH 0120/1616] - patchlevel 512 --- 7.4.512 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 7.4.512 diff --git a/7.4.512 b/7.4.512 new file mode 100644 index 00000000..0dd19458 --- /dev/null +++ b/7.4.512 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.512 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.512 +Problem: Cannot generate prototypes for Win32 files and VMS. +Solution: Add typedefs and #ifdef +Files: src/os_win32.c, src/gui_w32.c, src/os_vms.c + + +*** ../vim-7.4.511/src/os_win32.c 2014-11-05 18:35:59.104397681 +0100 +--- src/os_win32.c 2014-11-12 15:33:13.136237810 +0100 +*************** +*** 135,140 **** +--- 135,142 ---- + typedef int SE_OBJECT_TYPE; + typedef int PSNSECINFO; + typedef int PSNSECINFOW; ++ typedef int STARTUPINFO; ++ typedef int PROCESS_INFORMATION; + #endif + + #ifndef FEAT_GUI_W32 +*** ../vim-7.4.511/src/gui_w32.c 2014-10-06 18:10:04.521273516 +0200 +--- src/gui_w32.c 2014-11-12 15:30:44.309980459 +0100 +*************** +*** 29,40 **** + # include "gui_dwrite.h" + #endif + +! #if defined(FEAT_DIRECTX) || defined(PROTO) + static DWriteContext *s_dwc = NULL; + static int s_directx_enabled = 0; + static int s_directx_load_attempted = 0; + # define IS_ENABLE_DIRECTX() (s_directx_enabled && s_dwc != NULL) + + int + directx_enabled(void) + { +--- 29,42 ---- + # include "gui_dwrite.h" + #endif + +! #if defined(FEAT_DIRECTX) + static DWriteContext *s_dwc = NULL; + static int s_directx_enabled = 0; + static int s_directx_load_attempted = 0; + # define IS_ENABLE_DIRECTX() (s_directx_enabled && s_dwc != NULL) ++ #endif + ++ #if defined(FEAT_DIRECTX) || defined(PROTO) + int + directx_enabled(void) + { +*** ../vim-7.4.511/src/os_vms.c 2014-04-01 21:00:45.436733663 +0200 +--- src/os_vms.c 2014-11-12 15:34:04.223639992 +0100 +*************** +*** 12,18 **** + #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 */ +--- 12,18 ---- + #include "vim.h" + + /* define _generic_64 for use in time functions */ +! #if !defined(VAX) && !defined(PROTO) + # include + #else + /* based on Alpha's gen64def.h; the file is absent on VAX */ +*** ../vim-7.4.511/src/version.c 2014-11-12 16:05:01.142042845 +0100 +--- src/version.c 2014-11-12 16:05:52.861446039 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 512, + /**/ + +-- +TIM: But follow only if you are men of valour. For the entrance to this cave + is guarded by a monster, a creature so foul and cruel that no man yet has + fought with it and lived. Bones of full fifty men lie strewn about its + lair ... + "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 e52c92ade15a4381206a76e8c9bb76e6b7b2beb1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 12 Nov 2014 18:00:15 +0100 Subject: [PATCH 0121/1616] - patchlevel 512 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 42b99b2e..368f3bba 100644 --- a/README.patches +++ b/README.patches @@ -529,3 +529,8 @@ Individual patches for Vim 7.4: 2125 7.4.505 problem on MS-Windows file name longer than MAX_PATH bytes 1680 7.4.506 MS-Windows: Cannot open a file with 259 characters 2027 7.4.507 (after 7.4.496) building with MingW and Perl may fail + 1928 7.4.508 when generating ja.sjis.po, header is not correctly adjusted + 3558 7.4.509 users are not aware their encryption is weak + 2508 7.4.510 "-fwrapv" argument breaks use of cproto + 1938 7.4.511 generating proto for if_ruby.c uses type not defined elsewhere + 3016 7.4.512 cannot generate prototypes for Win32 files and VMS diff --git a/vim.spec b/vim.spec index 7c9d91b5..8181a8d1 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 507 +%define patchlevel 512 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -554,6 +554,11 @@ Patch504: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.504 Patch505: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.505 Patch506: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.506 Patch507: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.507 +Patch508: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.508 +Patch509: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.509 +Patch510: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.510 +Patch511: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.511 +Patch512: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.512 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1208,6 +1213,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch505 -p0 %patch506 -p0 %patch507 -p0 +%patch508 -p0 +%patch509 -p0 +%patch510 -p0 +%patch511 -p0 +%patch512 -p0 # install spell files %if %{withvimspell} @@ -1725,6 +1735,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Nov 12 2014 Karsten Hopp 7.4.512-1 +- patchlevel 512 + * Thu Nov 06 2014 Karsten Hopp 7.4.507-1 - patchlevel 507 From 8bd20a7bf25c0d312363a6f6900ab3e944ddf3db Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 13 Nov 2014 18:00:10 +0100 Subject: [PATCH 0122/1616] - patchlevel 513 --- 7.4.513 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.513 diff --git a/7.4.513 b/7.4.513 new file mode 100644 index 00000000..aff5d6a3 --- /dev/null +++ b/7.4.513 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.513 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.513 +Problem: Crash because reference count is wrong for list returned by + getreg(). +Solution: Increment the reference count. (Kimmy Lindvall) +Files: src/eval.c + + +*** ../vim-7.4.512/src/eval.c 2014-11-05 18:05:48.656441306 +0100 +--- src/eval.c 2014-11-12 17:07:32.695012604 +0100 +*************** +*** 12008,12013 **** +--- 12008,12015 ---- + rettv->v_type = VAR_LIST; + rettv->vval.v_list = (list_T *)get_reg_contents(regname, + (arg2 ? GREG_EXPR_SRC : 0) | GREG_LIST); ++ if (rettv->vval.v_list != NULL) ++ ++rettv->vval.v_list->lv_refcount; + } + else + { +*** ../vim-7.4.512/src/version.c 2014-11-12 16:10:44.258085148 +0100 +--- src/version.c 2014-11-12 17:06:37.443703083 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 513, + /**/ + +-- +Save the plankton - eat a whale. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 660970ad6a5d90ee663fe82cf038677412f5e7e8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 13 Nov 2014 18:00:11 +0100 Subject: [PATCH 0123/1616] - patchlevel 514 --- 7.4.514 | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 7.4.514 diff --git a/7.4.514 b/7.4.514 new file mode 100644 index 00000000..ed818594 --- /dev/null +++ b/7.4.514 @@ -0,0 +1,46 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.514 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.514 (after 7.4.492) +Problem: Memory access error. (Dominique Pelle) +Solution: Update tpos. (Christian Brabandt) +Files: src/edit.c + + +*** ../vim-7.4.513/src/edit.c 2014-10-31 19:20:30.782742928 +0100 +--- src/edit.c 2014-11-12 18:53:10.890098796 +0100 +*************** +*** 6918,6923 **** +--- 6918,6925 ---- + curwin->w_cursor = tpos; + else + { ++ /* reset tpos, could have been invalidated in the loop above */ ++ tpos = curwin->w_cursor; + tpos.col++; + if (cc != NUL && gchar_pos(&tpos) == NUL) + ++curwin->w_cursor.col; /* put cursor back on the NUL */ +*** ../vim-7.4.513/src/version.c 2014-11-12 18:49:12.992752234 +0100 +--- src/version.c 2014-11-12 18:52:50.738323726 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 514, + /**/ + +-- +My girlfriend told me I should be more affectionate. +So I got TWO girlfriends. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 3c5cc77e7f5ed2d4d922f309fe63b884014f4fae Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 13 Nov 2014 18:00:12 +0100 Subject: [PATCH 0124/1616] - patchlevel 515 --- 7.4.515 | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 7.4.515 diff --git a/7.4.515 b/7.4.515 new file mode 100644 index 00000000..0f57a6a4 --- /dev/null +++ b/7.4.515 @@ -0,0 +1,208 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.515 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.515 +Problem: In a help buffer the global 'foldmethod' is used. (Paul Marshall) +Solution: Reset 'foldmethod' when starting to edit a help file. Move the + code to a separate function. +Files: src/ex_cmds.c + + +*** ../vim-7.4.514/src/ex_cmds.c 2014-09-19 22:23:22.398467500 +0200 +--- src/ex_cmds.c 2014-11-12 19:23:48.357576278 +0100 +*************** +*** 34,39 **** +--- 34,40 ---- + _RTLENTRYF + #endif + help_compare __ARGS((const void *s1, const void *s2)); ++ static void prepare_help_buffer __ARGS((void)); + + /* + * ":ascii" and "ga". +*************** +*** 3531,3601 **** + oldbuf = (flags & ECMD_OLDBUF); + } + +- if ((flags & ECMD_SET_HELP) || keep_help_flag) +- { +- char_u *p; +- +- curbuf->b_help = TRUE; +- #ifdef FEAT_QUICKFIX +- set_string_option_direct((char_u *)"buftype", -1, +- (char_u *)"help", OPT_FREE|OPT_LOCAL, 0); +- #endif +- +- /* +- * Always set these options after jumping to a help tag, because the +- * user may have an autocommand that gets in the way. +- * Accept all ASCII chars for keywords, except ' ', '*', '"', '|', and +- * latin1 word characters (for translated help files). +- * Only set it when needed, buf_init_chartab() is some work. +- */ +- p = +- #ifdef EBCDIC +- (char_u *)"65-255,^*,^|,^\""; +- #else +- (char_u *)"!-~,^*,^|,^\",192-255"; +- #endif +- if (STRCMP(curbuf->b_p_isk, p) != 0) +- { +- set_string_option_direct((char_u *)"isk", -1, p, +- OPT_FREE|OPT_LOCAL, 0); +- check_buf_options(curbuf); +- (void)buf_init_chartab(curbuf, FALSE); +- } +- +- curbuf->b_p_ts = 8; /* 'tabstop' is 8 */ +- curwin->w_p_list = FALSE; /* no list mode */ +- +- curbuf->b_p_ma = FALSE; /* not modifiable */ +- curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */ +- curwin->w_p_nu = 0; /* no line numbers */ +- curwin->w_p_rnu = 0; /* no relative line numbers */ +- RESET_BINDING(curwin); /* no scroll or cursor binding */ +- #ifdef FEAT_ARABIC +- curwin->w_p_arab = FALSE; /* no arabic mode */ +- #endif +- #ifdef FEAT_RIGHTLEFT +- curwin->w_p_rl = FALSE; /* help window is left-to-right */ +- #endif +- #ifdef FEAT_FOLDING +- curwin->w_p_fen = FALSE; /* No folding in the help window */ +- #endif +- #ifdef FEAT_DIFF +- curwin->w_p_diff = FALSE; /* No 'diff' */ +- #endif +- #ifdef FEAT_SPELL +- curwin->w_p_spell = FALSE; /* No spell checking */ +- #endif +- + #ifdef FEAT_AUTOCMD +! buf = curbuf; + #endif +! set_buflisted(FALSE); + } + else + { +- #ifdef FEAT_AUTOCMD +- buf = curbuf; +- #endif + /* Don't make a buffer listed if it's a help buffer. Useful when + * using CTRL-O to go back to a help file. */ + if (!curbuf->b_help) +--- 3532,3546 ---- + oldbuf = (flags & ECMD_OLDBUF); + } + + #ifdef FEAT_AUTOCMD +! buf = curbuf; + #endif +! if ((flags & ECMD_SET_HELP) || keep_help_flag) +! { +! prepare_help_buffer(); + } + else + { + /* Don't make a buffer listed if it's a help buffer. Useful when + * using CTRL-O to go back to a help file. */ + if (!curbuf->b_help) +*************** +*** 6222,6227 **** +--- 6167,6237 ---- + } + + /* ++ * Called when starting to edit a buffer for a help file. ++ */ ++ static void ++ prepare_help_buffer() ++ { ++ char_u *p; ++ ++ curbuf->b_help = TRUE; ++ #ifdef FEAT_QUICKFIX ++ set_string_option_direct((char_u *)"buftype", -1, ++ (char_u *)"help", OPT_FREE|OPT_LOCAL, 0); ++ #endif ++ ++ /* ++ * Always set these options after jumping to a help tag, because the ++ * user may have an autocommand that gets in the way. ++ * Accept all ASCII chars for keywords, except ' ', '*', '"', '|', and ++ * latin1 word characters (for translated help files). ++ * Only set it when needed, buf_init_chartab() is some work. ++ */ ++ p = ++ #ifdef EBCDIC ++ (char_u *)"65-255,^*,^|,^\""; ++ #else ++ (char_u *)"!-~,^*,^|,^\",192-255"; ++ #endif ++ if (STRCMP(curbuf->b_p_isk, p) != 0) ++ { ++ set_string_option_direct((char_u *)"isk", -1, p, OPT_FREE|OPT_LOCAL, 0); ++ check_buf_options(curbuf); ++ (void)buf_init_chartab(curbuf, FALSE); ++ } ++ ++ /* Don't use the global foldmethod.*/ ++ set_string_option_direct((char_u *)"fdm", -1, (char_u *)"manual", ++ OPT_FREE|OPT_LOCAL, 0); ++ ++ curbuf->b_p_ts = 8; /* 'tabstop' is 8 */ ++ curwin->w_p_list = FALSE; /* no list mode */ ++ ++ curbuf->b_p_ma = FALSE; /* not modifiable */ ++ curbuf->b_p_bin = FALSE; /* reset 'bin' before reading file */ ++ curwin->w_p_nu = 0; /* no line numbers */ ++ curwin->w_p_rnu = 0; /* no relative line numbers */ ++ RESET_BINDING(curwin); /* no scroll or cursor binding */ ++ #ifdef FEAT_ARABIC ++ curwin->w_p_arab = FALSE; /* no arabic mode */ ++ #endif ++ #ifdef FEAT_RIGHTLEFT ++ curwin->w_p_rl = FALSE; /* help window is left-to-right */ ++ #endif ++ #ifdef FEAT_FOLDING ++ curwin->w_p_fen = FALSE; /* No folding in the help window */ ++ #endif ++ #ifdef FEAT_DIFF ++ curwin->w_p_diff = FALSE; /* No 'diff' */ ++ #endif ++ #ifdef FEAT_SPELL ++ curwin->w_p_spell = FALSE; /* No spell checking */ ++ #endif ++ ++ set_buflisted(FALSE); ++ } ++ ++ /* + * After reading a help file: May cleanup a help buffer when syntax + * highlighting is not used. + */ +*** ../vim-7.4.514/src/version.c 2014-11-12 18:59:17.602000656 +0100 +--- src/version.c 2014-11-12 19:27:25.471182666 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 515, + /**/ + +-- +If "R" is Reverse, how come "D" is FORWARD? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 3436047c34e06c222337e344179f2334147c2648 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 13 Nov 2014 18:00:12 +0100 Subject: [PATCH 0125/1616] - patchlevel 516 --- 7.4.516 | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 7.4.516 diff --git a/7.4.516 b/7.4.516 new file mode 100644 index 00000000..19941d84 --- /dev/null +++ b/7.4.516 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.516 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.516 +Problem: Completing a function name containing a # does not work. Issue + 253. +Solution: Recognize the # character. (Christian Brabandt) +Files: src/eval.c + + +*** ../vim-7.4.515/src/eval.c 2014-11-12 18:49:12.992752234 +0100 +--- src/eval.c 2014-11-12 20:05:35.609826215 +0100 +*************** +*** 3368,3378 **** + got_eq = TRUE; + xp->xp_context = EXPAND_EXPRESSION; + } +! else if (c == '<' + && xp->xp_context == EXPAND_FUNCTIONS + && vim_strchr(xp->xp_pattern, '(') == NULL) + { +! /* Function name can start with "" */ + break; + } + else if (cmdidx != CMD_let || got_eq) +--- 3368,3378 ---- + got_eq = TRUE; + xp->xp_context = EXPAND_EXPRESSION; + } +! else if ((c == '<' || c == '#') + && xp->xp_context == EXPAND_FUNCTIONS + && vim_strchr(xp->xp_pattern, '(') == NULL) + { +! /* Function name can start with "" and contain '#'. */ + break; + } + else if (cmdidx != CMD_let || got_eq) +*** ../vim-7.4.515/src/version.c 2014-11-12 19:28:12.682661756 +0100 +--- src/version.c 2014-11-12 20:05:00.730212577 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 516, + /**/ + +-- +The Law of VIM: +For each member b of the possible behaviour space B of program P, there exists +a finite time t before which at least one user u in the total user space U of +program P will request b becomes a member of the allowed behaviour space B' +(B' <= B). +In other words: Sooner or later everyone wants everything as an option. + -- Vince Negri + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From c45eb252c4e87e67287b0cd3242d58b29b03a79a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 13 Nov 2014 18:00:14 +0100 Subject: [PATCH 0126/1616] - patchlevel 516 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 368f3bba..3f205bbd 100644 --- a/README.patches +++ b/README.patches @@ -534,3 +534,7 @@ Individual patches for Vim 7.4: 2508 7.4.510 "-fwrapv" argument breaks use of cproto 1938 7.4.511 generating proto for if_ruby.c uses type not defined elsewhere 3016 7.4.512 cannot generate prototypes for Win32 files and VMS + 1408 7.4.513 crash because reference count is wrong for list from getreg() + 1444 7.4.514 (after 7.4.492) memory access error + 6056 7.4.515 in a help buffer the global 'foldmethod' is used + 2134 7.4.516 issue 253: completing function name with a # does not work diff --git a/vim.spec b/vim.spec index 8181a8d1..8bb3a910 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 512 +%define patchlevel 516 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -559,6 +559,10 @@ Patch509: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.509 Patch510: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.510 Patch511: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.511 Patch512: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.512 +Patch513: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.513 +Patch514: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.514 +Patch515: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.515 +Patch516: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.516 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1218,6 +1222,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch510 -p0 %patch511 -p0 %patch512 -p0 +%patch513 -p0 +%patch514 -p0 +%patch515 -p0 +%patch516 -p0 # install spell files %if %{withvimspell} @@ -1735,6 +1743,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Nov 13 2014 Karsten Hopp 7.4.516-1 +- patchlevel 516 + * Wed Nov 12 2014 Karsten Hopp 7.4.512-1 - patchlevel 512 From 0574c1e518adc2198cb50e84c3b9edbd131dc05a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Nov 2014 18:00:14 +0100 Subject: [PATCH 0127/1616] - patchlevel 517 --- 7.4.517 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.4.517 diff --git a/7.4.517 b/7.4.517 new file mode 100644 index 00000000..40a0d96a --- /dev/null +++ b/7.4.517 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.517 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.517 +Problem: With a wrapping line the cursor may not end up in the right place. + (Nazri Ramliy) +Solution: Adjust n_extra for a Tab that wraps. (Christian Brabandt) +Files: src/screen.c + + +*** ../vim-7.4.516/src/screen.c 2014-10-10 15:28:41.985092234 +0200 +--- src/screen.c 2014-11-19 12:53:37.351818719 +0100 +*************** +*** 4456,4461 **** +--- 4456,4465 ---- + /* TODO: is passing p for start of the line OK? */ + n_extra = win_lbr_chartabsize(wp, line, p, (colnr_T)vcol, + NULL) - 1; ++ if (c == TAB && n_extra + col > W_WIDTH(wp)) ++ n_extra = (int)wp->w_buffer->b_p_ts ++ - vcol % (int)wp->w_buffer->b_p_ts - 1; ++ + c_extra = ' '; + if (vim_iswhite(c)) + { +*** ../vim-7.4.516/src/version.c 2014-11-12 20:09:02.879529412 +0100 +--- src/version.c 2014-11-19 12:56:19.421955598 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 517, + /**/ + +-- +Permission is granted to read this message out aloud on Kings Cross Road, +London, under the condition that the orator is properly dressed. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 2a302468e18aa4936395182d49bcc07a67b9caef Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Nov 2014 18:00:15 +0100 Subject: [PATCH 0128/1616] - patchlevel 518 --- 7.4.518 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.518 diff --git a/7.4.518 b/7.4.518 new file mode 100644 index 00000000..f3a360ea --- /dev/null +++ b/7.4.518 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.518 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.518 +Problem: Using status line height in width computations. +Solution: Use one instead. (Hirohito Higashi) +Files: src/window.c + + +*** ../vim-7.4.517/src/window.c 2014-10-21 20:57:11.534295006 +0200 +--- src/window.c 2014-11-19 13:36:46.758016634 +0100 +*************** +*** 796,802 **** + if (frp->fr_win != oldwin && frp->fr_win != NULL + && (frp->fr_win->w_width > new_size + || frp->fr_win->w_width > oldwin->w_width +! - new_size - STATUS_HEIGHT)) + { + do_equal = TRUE; + break; +--- 796,802 ---- + if (frp->fr_win != oldwin && frp->fr_win != NULL + && (frp->fr_win->w_width > new_size + || frp->fr_win->w_width > oldwin->w_width +! - new_size - 1)) + { + do_equal = TRUE; + break; +*** ../vim-7.4.517/src/version.c 2014-11-19 13:21:24.984724043 +0100 +--- src/version.c 2014-11-19 13:39:59.875774316 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 518, + /**/ + +-- +BRIDGEKEEPER: What is your favorite colour? +GAWAIN: Blue ... No yelloooooww! + "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 c9fe6090d283348f52ffec7004f3dc485d96d29c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Nov 2014 18:00:15 +0100 Subject: [PATCH 0129/1616] - patchlevel 519 --- 7.4.519 | 866 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 866 insertions(+) create mode 100644 7.4.519 diff --git a/7.4.519 b/7.4.519 new file mode 100644 index 00000000..5b7e02ba --- /dev/null +++ b/7.4.519 @@ -0,0 +1,866 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.519 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.519 (after 7.4.497) +Problem: Crash when using syntax highlighting. +Solution: When regprog is freed and replaced, store the result. +Files: src/buffer.c, src/regexp.c, src/syntax.c, src/spell.c, + src/ex_cmds2.c, src/fileio.c, src/proto/fileio.pro, + src/proto/regexp.pro, src/os_unix.c + + +*** ../vim-7.4.518/src/buffer.c 2014-09-23 15:45:04.870801055 +0200 +--- src/buffer.c 2014-11-19 15:50:34.129292586 +0100 +*************** +*** 28,36 **** + #include "vim.h" + + #if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) +! static char_u *buflist_match __ARGS((regprog_T *prog, buf_T *buf, int ignore_case)); + # define HAVE_BUFLIST_MATCH +! static char_u *fname_match __ARGS((regprog_T *prog, char_u *name, int ignore_case)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); + static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); +--- 28,36 ---- + #include "vim.h" + + #if defined(FEAT_CMDL_COMPL) || defined(FEAT_LISTCMDS) || defined(FEAT_EVAL) || defined(FEAT_PERL) +! static char_u *buflist_match __ARGS((regmatch_T *rmp, buf_T *buf, int ignore_case)); + # define HAVE_BUFLIST_MATCH +! static char_u *fname_match __ARGS((regmatch_T *rmp, char_u *name, int ignore_case)); + #endif + static void buflist_setfpos __ARGS((buf_T *buf, win_T *win, linenr_T lnum, colnr_T col, int copy_options)); + static wininfo_T *find_wininfo __ARGS((buf_T *buf, int skip_diff_buffer)); +*************** +*** 2220,2226 **** + int curtab_only; /* find buffers in current tab only */ + { + buf_T *buf; +- regprog_T *prog; + int match = -1; + int find_listed; + char_u *pat; +--- 2220,2225 ---- +*************** +*** 2265,2278 **** + { + for (attempt = 0; attempt <= 3; ++attempt) + { + /* may add '^' and '$' */ + if (toggledollar) + *patend = (attempt < 2) ? NUL : '$'; /* add/remove '$' */ + p = pat; + if (*p == '^' && !(attempt & 1)) /* add/remove '^' */ + ++p; +! prog = vim_regcomp(p, p_magic ? RE_MAGIC : 0); +! if (prog == NULL) + { + vim_free(pat); + return -1; +--- 2264,2279 ---- + { + for (attempt = 0; attempt <= 3; ++attempt) + { ++ regmatch_T regmatch; ++ + /* may add '^' and '$' */ + if (toggledollar) + *patend = (attempt < 2) ? NUL : '$'; /* add/remove '$' */ + p = pat; + if (*p == '^' && !(attempt & 1)) /* add/remove '^' */ + ++p; +! regmatch.regprog = vim_regcomp(p, p_magic ? RE_MAGIC : 0); +! if (regmatch.regprog == NULL) + { + vim_free(pat); + return -1; +*************** +*** 2283,2289 **** + #ifdef FEAT_DIFF + && (!diffmode || diff_mode_buf(buf)) + #endif +! && buflist_match(prog, buf, FALSE) != NULL) + { + if (curtab_only) + { +--- 2284,2290 ---- + #ifdef FEAT_DIFF + && (!diffmode || diff_mode_buf(buf)) + #endif +! && buflist_match(®match, buf, FALSE) != NULL) + { + if (curtab_only) + { +*************** +*** 2310,2316 **** + match = buf->b_fnum; /* remember first match */ + } + +! vim_regfree(prog); + if (match >= 0) /* found one match */ + break; + } +--- 2311,2317 ---- + match = buf->b_fnum; /* remember first match */ + } + +! vim_regfree(regmatch.regprog); + if (match >= 0) /* found one match */ + break; + } +*************** +*** 2352,2358 **** + int round; + char_u *p; + int attempt; +- regprog_T *prog; + char_u *patc; + + *num_file = 0; /* return values in case of FAIL */ +--- 2353,2358 ---- +*************** +*** 2376,2385 **** + */ + for (attempt = 0; attempt <= 1; ++attempt) + { + if (attempt > 0 && patc == pat) + break; /* there was no anchor, no need to try again */ +! prog = vim_regcomp(patc + attempt * 11, RE_MAGIC); +! if (prog == NULL) + { + if (patc != pat) + vim_free(patc); +--- 2376,2387 ---- + */ + for (attempt = 0; attempt <= 1; ++attempt) + { ++ regmatch_T regmatch; ++ + if (attempt > 0 && patc == pat) + break; /* there was no anchor, no need to try again */ +! regmatch.regprog = vim_regcomp(patc + attempt * 11, RE_MAGIC); +! if (regmatch.regprog == NULL) + { + if (patc != pat) + vim_free(patc); +*************** +*** 2397,2403 **** + { + if (!buf->b_p_bl) /* skip unlisted buffers */ + continue; +! p = buflist_match(prog, buf, p_wic); + if (p != NULL) + { + if (round == 1) +--- 2399,2405 ---- + { + if (!buf->b_p_bl) /* skip unlisted buffers */ + continue; +! p = buflist_match(®match, buf, p_wic); + if (p != NULL) + { + if (round == 1) +*************** +*** 2419,2432 **** + *file = (char_u **)alloc((unsigned)(count * sizeof(char_u *))); + if (*file == NULL) + { +! vim_regfree(prog); + if (patc != pat) + vim_free(patc); + return FAIL; + } + } + } +! vim_regfree(prog); + if (count) /* match(es) found, break here */ + break; + } +--- 2421,2434 ---- + *file = (char_u **)alloc((unsigned)(count * sizeof(char_u *))); + if (*file == NULL) + { +! vim_regfree(regmatch.regprog); + if (patc != pat) + vim_free(patc); + return FAIL; + } + } + } +! vim_regfree(regmatch.regprog); + if (count) /* match(es) found, break here */ + break; + } +*************** +*** 2445,2461 **** + * Check for a match on the file name for buffer "buf" with regprog "prog". + */ + static char_u * +! buflist_match(prog, buf, ignore_case) +! regprog_T *prog; + buf_T *buf; + int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */ + { + char_u *match; + + /* First try the short file name, then the long file name. */ +! match = fname_match(prog, buf->b_sfname, ignore_case); + if (match == NULL) +! match = fname_match(prog, buf->b_ffname, ignore_case); + + return match; + } +--- 2447,2463 ---- + * Check for a match on the file name for buffer "buf" with regprog "prog". + */ + static char_u * +! buflist_match(rmp, buf, ignore_case) +! regmatch_T *rmp; + buf_T *buf; + int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */ + { + char_u *match; + + /* First try the short file name, then the long file name. */ +! match = fname_match(rmp, buf->b_sfname, ignore_case); + if (match == NULL) +! match = fname_match(rmp, buf->b_ffname, ignore_case); + + return match; + } +*************** +*** 2465,2491 **** + * Return "name" when there is a match, NULL when not. + */ + static char_u * +! fname_match(prog, name, ignore_case) +! regprog_T *prog; + char_u *name; + int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */ + { + char_u *match = NULL; + char_u *p; +- regmatch_T regmatch; + + if (name != NULL) + { +- regmatch.regprog = prog; + /* Ignore case when 'fileignorecase' or the argument is set. */ +! regmatch.rm_ic = p_fic || ignore_case; +! if (vim_regexec(®match, name, (colnr_T)0)) + match = name; + else + { + /* Replace $(HOME) with '~' and try matching again. */ + p = home_replace_save(NULL, name); +! if (p != NULL && vim_regexec(®match, p, (colnr_T)0)) + match = name; + vim_free(p); + } +--- 2467,2491 ---- + * Return "name" when there is a match, NULL when not. + */ + static char_u * +! fname_match(rmp, name, ignore_case) +! regmatch_T *rmp; + char_u *name; + int ignore_case; /* when TRUE ignore case, when FALSE use 'fic' */ + { + char_u *match = NULL; + char_u *p; + + if (name != NULL) + { + /* Ignore case when 'fileignorecase' or the argument is set. */ +! rmp->rm_ic = p_fic || ignore_case; +! if (vim_regexec(rmp, name, (colnr_T)0)) + match = name; + else + { + /* Replace $(HOME) with '~' and try matching again. */ + p = home_replace_save(NULL, name); +! if (p != NULL && vim_regexec(rmp, p, (colnr_T)0)) + match = name; + vim_free(p); + } +*** ../vim-7.4.518/src/regexp.c 2014-11-05 14:26:30.760758363 +0100 +--- src/regexp.c 2014-11-19 16:10:43.203390451 +0100 +*************** +*** 8163,8168 **** +--- 8163,8169 ---- + /* + * Match a regexp against a string. + * "rmp->regprog" is a compiled regexp as returned by vim_regcomp(). ++ * Note: "rmp->regprog" may be freed and changed. + * Uses curbuf for line count and 'iskeyword'. + * When "nl" is TRUE consider a "\n" in "line" to be a line break. + * +*************** +*** 8203,8208 **** +--- 8204,8232 ---- + return result; + } + ++ /* ++ * Note: "*prog" may be freed and changed. ++ */ ++ int ++ vim_regexec_prog(prog, ignore_case, line, col) ++ regprog_T **prog; ++ int ignore_case; ++ char_u *line; ++ colnr_T col; ++ { ++ int r; ++ regmatch_T regmatch; ++ ++ regmatch.regprog = *prog; ++ regmatch.rm_ic = ignore_case; ++ r = vim_regexec_both(®match, line, col, FALSE); ++ *prog = regmatch.regprog; ++ return r; ++ } ++ ++ /* ++ * Note: "rmp->regprog" may be freed and changed. ++ */ + int + vim_regexec(rmp, line, col) + regmatch_T *rmp; +*************** +*** 8216,8221 **** +--- 8240,8246 ---- + || defined(FIND_REPLACE_DIALOG) || defined(PROTO) + /* + * Like vim_regexec(), but consider a "\n" in "line" to be a line break. ++ * Note: "rmp->regprog" may be freed and changed. + */ + int + vim_regexec_nl(rmp, line, col) +*************** +*** 8230,8235 **** +--- 8255,8261 ---- + /* + * Match a regexp against multiple lines. + * "rmp->regprog" is a compiled regexp as returned by vim_regcomp(). ++ * Note: "rmp->regprog" may be freed and changed. + * Uses curbuf for line count and 'iskeyword'. + * + * Return zero if there is no match. Return number of lines contained in the +*** ../vim-7.4.518/src/syntax.c 2014-06-12 12:20:50.191541385 +0200 +--- src/syntax.c 2014-11-19 15:39:08.493182536 +0100 +*************** +*** 992,1004 **** + linenr_T lnum; + { + regmmatch_T regmatch; + + if (syn_block->b_syn_linecont_prog != NULL) + { + regmatch.rmm_ic = syn_block->b_syn_linecont_ic; + regmatch.regprog = syn_block->b_syn_linecont_prog; +! return syn_regexec(®match, lnum, (colnr_T)0, + IF_SYN_TIME(&syn_block->b_syn_linecont_time)); + } + return FALSE; + } +--- 992,1007 ---- + linenr_T lnum; + { + regmmatch_T regmatch; ++ int r; + + if (syn_block->b_syn_linecont_prog != NULL) + { + regmatch.rmm_ic = syn_block->b_syn_linecont_ic; + regmatch.regprog = syn_block->b_syn_linecont_prog; +! r = syn_regexec(®match, lnum, (colnr_T)0, + IF_SYN_TIME(&syn_block->b_syn_linecont_time)); ++ syn_block->b_syn_linecont_prog = regmatch.regprog; ++ return r; + } + return FALSE; + } +*************** +*** 2075,2080 **** +--- 2078,2085 ---- + cur_si->si_cont_list, &spp->sp_syn, + spp->sp_flags & HL_CONTAINED)))) + { ++ int r; ++ + /* If we already tried matching in this line, and + * there isn't a match before next_match_col, skip + * this item. */ +*************** +*** 2089,2098 **** + + regmatch.rmm_ic = spp->sp_ic; + regmatch.regprog = spp->sp_prog; +! if (!syn_regexec(®match, + current_lnum, + (colnr_T)lc_col, +! IF_SYN_TIME(&spp->sp_time))) + { + /* no match in this line, try another one */ + spp->sp_startcol = MAXCOL; +--- 2094,2105 ---- + + regmatch.rmm_ic = spp->sp_ic; + regmatch.regprog = spp->sp_prog; +! r = syn_regexec(®match, + current_lnum, + (colnr_T)lc_col, +! IF_SYN_TIME(&spp->sp_time)); +! spp->sp_prog = regmatch.regprog; +! if (!r) + { + /* no match in this line, try another one */ + spp->sp_startcol = MAXCOL; +*************** +*** 2963,2968 **** +--- 2970,2976 ---- + for (idx = start_idx; idx < syn_block->b_syn_patterns.ga_len; ++idx) + { + int lc_col = matchcol; ++ int r; + + spp = &(SYN_ITEMS(syn_block)[idx]); + if (spp->sp_type != SPTYPE_END) /* past last END pattern */ +*************** +*** 2973,2980 **** + + regmatch.rmm_ic = spp->sp_ic; + regmatch.regprog = spp->sp_prog; +! if (syn_regexec(®match, startpos->lnum, lc_col, +! IF_SYN_TIME(&spp->sp_time))) + { + if (best_idx == -1 || regmatch.startpos[0].col + < best_regmatch.startpos[0].col) +--- 2981,2990 ---- + + regmatch.rmm_ic = spp->sp_ic; + regmatch.regprog = spp->sp_prog; +! r = syn_regexec(®match, startpos->lnum, lc_col, +! IF_SYN_TIME(&spp->sp_time)); +! spp->sp_prog = regmatch.regprog; +! if (r) + { + if (best_idx == -1 || regmatch.startpos[0].col + < best_regmatch.startpos[0].col) +*************** +*** 3000,3013 **** + if (spp_skip != NULL) + { + int lc_col = matchcol - spp_skip->sp_offsets[SPO_LC_OFF]; + + if (lc_col < 0) + lc_col = 0; + regmatch.rmm_ic = spp_skip->sp_ic; + regmatch.regprog = spp_skip->sp_prog; +! if (syn_regexec(®match, startpos->lnum, lc_col, +! IF_SYN_TIME(&spp_skip->sp_time)) +! && regmatch.startpos[0].col + <= best_regmatch.startpos[0].col) + { + /* Add offset to skip pattern match */ +--- 3010,3025 ---- + if (spp_skip != NULL) + { + int lc_col = matchcol - spp_skip->sp_offsets[SPO_LC_OFF]; ++ int r; + + if (lc_col < 0) + lc_col = 0; + regmatch.rmm_ic = spp_skip->sp_ic; + regmatch.regprog = spp_skip->sp_prog; +! r = syn_regexec(®match, startpos->lnum, lc_col, +! IF_SYN_TIME(&spp_skip->sp_time)); +! spp_skip->sp_prog = regmatch.regprog; +! if (r && regmatch.startpos[0].col + <= best_regmatch.startpos[0].col) + { + /* Add offset to skip pattern match */ +*** ../vim-7.4.518/src/spell.c 2014-09-19 16:04:08.050417797 +0200 +--- src/spell.c 2014-11-19 16:28:49.798964748 +0100 +*************** +*** 1154,1164 **** + if (capcol != NULL && wp->w_s->b_cap_prog != NULL) + { + regmatch_T regmatch; + + /* Check for end of sentence. */ + regmatch.regprog = wp->w_s->b_cap_prog; + regmatch.rm_ic = FALSE; +! if (vim_regexec(®match, ptr, 0)) + *capcol = (int)(regmatch.endp[0] - ptr); + } + +--- 1154,1167 ---- + if (capcol != NULL && wp->w_s->b_cap_prog != NULL) + { + regmatch_T regmatch; ++ int r; + + /* Check for end of sentence. */ + regmatch.regprog = wp->w_s->b_cap_prog; + regmatch.rm_ic = FALSE; +! r = vim_regexec(®match, ptr, 0); +! wp->w_s->b_cap_prog = regmatch.regprog; +! if (r) + *capcol = (int)(regmatch.endp[0] - ptr); + } + +*************** +*** 1786,1792 **** + char_u *word; + char_u *flags; + { +- regmatch_T regmatch; + #ifdef FEAT_MBYTE + char_u uflags[MAXWLEN * 2]; + int i; +--- 1789,1794 ---- +*************** +*** 1808,1816 **** + else + #endif + p = flags; +! regmatch.regprog = slang->sl_compprog; +! regmatch.rm_ic = FALSE; +! if (!vim_regexec(®match, p, 0)) + return FALSE; + + /* Count the number of syllables. This may be slow, do it last. If there +--- 1810,1816 ---- + else + #endif + p = flags; +! if (!vim_regexec_prog(&slang->sl_compprog, FALSE, p, 0)) + return FALSE; + + /* Count the number of syllables. This may be slow, do it last. If there +*************** +*** 1930,1937 **** + { + int prefcnt; + int pidx; +! regprog_T *rp; +! regmatch_T regmatch; + int prefid; + + prefid = (unsigned)flags >> 24; +--- 1930,1936 ---- + { + int prefcnt; + int pidx; +! regprog_T **rp; + int prefid; + + prefid = (unsigned)flags >> 24; +*************** +*** 1950,1961 **** + + /* Check the condition, if there is one. The condition index is + * stored in the two bytes above the prefix ID byte. */ +! rp = slang->sl_prefprog[((unsigned)pidx >> 8) & 0xffff]; +! if (rp != NULL) + { +! regmatch.regprog = rp; +! regmatch.rm_ic = FALSE; +! if (!vim_regexec(®match, word, 0)) + continue; + } + else if (cond_req) +--- 1949,1958 ---- + + /* Check the condition, if there is one. The condition index is + * stored in the two bytes above the prefix ID byte. */ +! rp = &slang->sl_prefprog[((unsigned)pidx >> 8) & 0xffff]; +! if (*rp != NULL) + { +! if (!vim_regexec_prog(rp, FALSE, word, 0)) + continue; + } + else if (cond_req) +*************** +*** 6903,6909 **** + hashitem_T *hi; + affheader_T *ah; + affentry_T *ae; +- regmatch_T regmatch; + char_u newword[MAXWLEN]; + int retval = OK; + int i, j; +--- 6900,6905 ---- +*************** +*** 6944,6958 **** + * When a previously added affix had CIRCUMFIX this one + * must have it too, if it had not then this one must not + * have one either. */ +- regmatch.regprog = ae->ae_prog; +- regmatch.rm_ic = FALSE; + if ((xht != NULL || !affile->af_pfxpostpone + || ae->ae_chop != NULL + || ae->ae_flags != NULL) + && (ae->ae_chop == NULL + || STRLEN(ae->ae_chop) < wordlen) + && (ae->ae_prog == NULL +! || vim_regexec(®match, word, (colnr_T)0)) + && (((condit & CONDIT_CFIX) == 0) + == ((condit & CONDIT_AFF) == 0 + || ae->ae_flags == NULL +--- 6940,6953 ---- + * When a previously added affix had CIRCUMFIX this one + * must have it too, if it had not then this one must not + * have one either. */ + if ((xht != NULL || !affile->af_pfxpostpone + || ae->ae_chop != NULL + || ae->ae_flags != NULL) + && (ae->ae_chop == NULL + || STRLEN(ae->ae_chop) < wordlen) + && (ae->ae_prog == NULL +! || vim_regexec_prog(&ae->ae_prog, FALSE, +! word, (colnr_T)0)) + && (((condit & CONDIT_CFIX) == 0) + == ((condit & CONDIT_AFF) == 0 + || ae->ae_flags == NULL +*************** +*** 10478,10483 **** +--- 10473,10479 ---- + break; + } + } ++ curwin->w_s->b_cap_prog = regmatch.regprog; + } + + vim_free(line_copy); +*** ../vim-7.4.518/src/ex_cmds2.c 2014-08-06 18:17:03.471147780 +0200 +--- src/ex_cmds2.c 2014-11-19 16:24:22.162013396 +0100 +*************** +*** 739,745 **** + struct debuggy *bp; + int i; + linenr_T lnum = 0; +- regmatch_T regmatch; + char_u *name = fname; + int prev_got_int; + +--- 739,744 ---- +*************** +*** 771,778 **** + #endif + (bp->dbg_lnum > after && (lnum == 0 || bp->dbg_lnum < lnum))))) + { +- regmatch.regprog = bp->dbg_prog; +- regmatch.rm_ic = FALSE; + /* + * Save the value of got_int and reset it. We don't want a + * previous interruption cancel matching, only hitting CTRL-C +--- 770,775 ---- +*************** +*** 780,786 **** + */ + prev_got_int = got_int; + got_int = FALSE; +! if (vim_regexec(®match, name, (colnr_T)0)) + { + lnum = bp->dbg_lnum; + if (fp != NULL) +--- 777,783 ---- + */ + prev_got_int = got_int; + got_int = FALSE; +! if (vim_regexec_prog(&bp->dbg_prog, FALSE, name, (colnr_T)0)) + { + lnum = bp->dbg_lnum; + if (fp != NULL) +*** ../vim-7.4.518/src/fileio.c 2014-11-12 15:15:34.983882077 +0100 +--- src/fileio.c 2014-11-19 15:57:01.496837984 +0100 +*************** +*** 7772,7777 **** +--- 7772,7780 ---- + static int do_autocmd_event __ARGS((event_T event, char_u *pat, int nested, char_u *cmd, int forceit, int group)); + static int apply_autocmds_group __ARGS((event_T event, char_u *fname, char_u *fname_io, int force, int group, buf_T *buf, exarg_T *eap)); + static void auto_next_pat __ARGS((AutoPatCmd *apc, int stop_at_last)); ++ #if defined(FEAT_AUTOCMD) || defined(FEAT_WILDIGN) ++ static int match_file_pat __ARGS((char_u *pattern, regprog_T **prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs)); ++ #endif + + + static event_T last_event; +*************** +*** 9640,9646 **** + { + /* execution-condition */ + if (ap->buflocal_nr == 0 +! ? (match_file_pat(NULL, ap->reg_prog, apc->fname, + apc->sfname, apc->tail, ap->allow_dirs)) + : ap->buflocal_nr == apc->arg_bufnr) + { +--- 9643,9649 ---- + { + /* execution-condition */ + if (ap->buflocal_nr == 0 +! ? (match_file_pat(NULL, &ap->reg_prog, apc->fname, + apc->sfname, apc->tail, ap->allow_dirs)) + : ap->buflocal_nr == apc->arg_bufnr) + { +*************** +*** 9774,9780 **** + for (ap = first_autopat[(int)event]; ap != NULL; ap = ap->next) + if (ap->pat != NULL && ap->cmds != NULL + && (ap->buflocal_nr == 0 +! ? match_file_pat(NULL, ap->reg_prog, + fname, sfname, tail, ap->allow_dirs) + : buf != NULL && ap->buflocal_nr == buf->b_fnum + )) +--- 9777,9783 ---- + for (ap = first_autopat[(int)event]; ap != NULL; ap = ap->next) + if (ap->pat != NULL && ap->cmds != NULL + && (ap->buflocal_nr == 0 +! ? match_file_pat(NULL, &ap->reg_prog, + fname, sfname, tail, ap->allow_dirs) + : buf != NULL && ap->buflocal_nr == buf->b_fnum + )) +*************** +*** 10035,10044 **** + * Used for autocommands and 'wildignore'. + * Returns TRUE if there is a match, FALSE otherwise. + */ +! int + match_file_pat(pattern, prog, fname, sfname, tail, allow_dirs) + char_u *pattern; /* pattern to match with */ +! regprog_T *prog; /* pre-compiled regprog or NULL */ + char_u *fname; /* full path of file name */ + char_u *sfname; /* short file name or NULL */ + char_u *tail; /* tail of path */ +--- 10038,10047 ---- + * Used for autocommands and 'wildignore'. + * Returns TRUE if there is a match, FALSE otherwise. + */ +! static int + match_file_pat(pattern, prog, fname, sfname, tail, allow_dirs) + char_u *pattern; /* pattern to match with */ +! regprog_T **prog; /* pre-compiled regprog or NULL */ + char_u *fname; /* full path of file name */ + char_u *sfname; /* short file name or NULL */ + char_u *tail; /* tail of path */ +*************** +*** 10093,10099 **** + #endif + { + if (prog != NULL) +! regmatch.regprog = prog; + else + regmatch.regprog = vim_regcomp(pattern, RE_MAGIC); + } +--- 10096,10102 ---- + #endif + { + if (prog != NULL) +! regmatch.regprog = *prog; + else + regmatch.regprog = vim_regcomp(pattern, RE_MAGIC); + } +*************** +*** 10119,10125 **** + || (!allow_dirs && vim_regexec(®match, tail, (colnr_T)0))))) + result = TRUE; + +! if (prog == NULL) + vim_regfree(regmatch.regprog); + return result; + } +--- 10122,10130 ---- + || (!allow_dirs && vim_regexec(®match, tail, (colnr_T)0))))) + result = TRUE; + +! if (prog != NULL) +! *prog = regmatch.regprog; +! else + vim_regfree(regmatch.regprog); + return result; + } +*** ../vim-7.4.518/src/proto/fileio.pro 2014-08-22 23:05:50.106606614 +0200 +--- src/proto/fileio.pro 2014-11-19 15:55:55.013602515 +0100 +*************** +*** 59,65 **** + char_u *get_event_name __ARGS((expand_T *xp, int idx)); + int autocmd_supported __ARGS((char_u *name)); + int au_exists __ARGS((char_u *arg)); +- int match_file_pat __ARGS((char_u *pattern, regprog_T *prog, char_u *fname, char_u *sfname, char_u *tail, int allow_dirs)); + int match_file_list __ARGS((char_u *list, char_u *sfname, char_u *ffname)); + char_u *file_pat_to_reg_pat __ARGS((char_u *pat, char_u *pat_end, char *allow_dirs, int no_bslash)); + long read_eintr __ARGS((int fd, void *buf, size_t bufsize)); +--- 59,64 ---- +*** ../vim-7.4.518/src/proto/regexp.pro 2014-04-02 19:00:53.043644100 +0200 +--- src/proto/regexp.pro 2014-11-19 16:11:34.522800480 +0100 +*************** +*** 13,18 **** +--- 13,19 ---- + list_T *reg_submatch_list __ARGS((int no)); + regprog_T *vim_regcomp __ARGS((char_u *expr_arg, int re_flags)); + void vim_regfree __ARGS((regprog_T *prog)); ++ int vim_regexec_prog __ARGS((regprog_T **prog, int ignore_case, char_u *line, colnr_T col)); + int vim_regexec __ARGS((regmatch_T *rmp, char_u *line, colnr_T col)); + int vim_regexec_nl __ARGS((regmatch_T *rmp, char_u *line, colnr_T col)); + long vim_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm)); +*** ../vim-7.4.518/src/os_unix.c 2014-10-11 14:47:22.829275547 +0200 +--- src/os_unix.c 2014-11-19 16:26:48.504346537 +0100 +*************** +*** 1610,1617 **** + static int + x_connect_to_server() + { +- regmatch_T regmatch; +- + #if defined(FEAT_CLIENTSERVER) + if (x_force_connect) + return TRUE; +--- 1610,1615 ---- +*************** +*** 1622,1630 **** + /* Check for a match with "exclude:" from 'clipboard'. */ + if (clip_exclude_prog != NULL) + { +! regmatch.rm_ic = FALSE; /* Don't ignore case */ +! regmatch.regprog = clip_exclude_prog; +! if (vim_regexec(®match, T_NAME, (colnr_T)0)) + return FALSE; + } + return TRUE; +--- 1620,1626 ---- + /* Check for a match with "exclude:" from 'clipboard'. */ + if (clip_exclude_prog != NULL) + { +! if (vim_regexec_prog(&clip_exclude_prog, FALSE, T_NAME, (colnr_T)0)) + return FALSE; + } + return TRUE; +*** ../vim-7.4.518/src/version.c 2014-11-19 13:40:04.903715962 +0100 +--- src/version.c 2014-11-19 15:22:36.464620036 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 519, + /**/ + +-- +BRIDGEKEEPER: What is your favorite editor? +GAWAIN: Emacs ... No, Viiiiiiiiiiimmmmmmm! + "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 3d2fb30535db6a765638e7d287b9dab0b1fe4daf Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Nov 2014 18:00:16 +0100 Subject: [PATCH 0130/1616] - patchlevel 520 --- 7.4.520 | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 7.4.520 diff --git a/7.4.520 b/7.4.520 new file mode 100644 index 00000000..4b5928e6 --- /dev/null +++ b/7.4.520 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.520 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.520 +Problem: Sun PCK locale is not recognzed. +Solution: Add PCK in the table. (Keiichi Oono) +Files: src/mbyte.c + + +*** ../vim-7.4.519/src/mbyte.c 2014-09-15 14:25:51.305650006 +0200 +--- src/mbyte.c 2014-11-19 16:48:14.205705174 +0100 +*************** +*** 405,410 **** +--- 405,411 ---- + {"unix-jis", IDX_EUC_JP}, + {"ujis", IDX_EUC_JP}, + {"shift-jis", IDX_SJIS}, ++ {"pck", IDX_SJIS}, /* Sun: PCK */ + {"euckr", IDX_EUC_KR}, + {"5601", IDX_EUC_KR}, /* Sun: KS C 5601 */ + {"euccn", IDX_EUC_CN}, +*** ../vim-7.4.519/src/version.c 2014-11-19 16:38:01.520679869 +0100 +--- src/version.c 2014-11-19 16:49:28.404860112 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 520, + /**/ + +-- +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 da866a8c0d12c6f06ec0f5f51cb2e5844f291635 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Nov 2014 18:00:17 +0100 Subject: [PATCH 0131/1616] - patchlevel 521 --- 7.4.521 | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 7.4.521 diff --git a/7.4.521 b/7.4.521 new file mode 100644 index 00000000..20f13b41 --- /dev/null +++ b/7.4.521 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.521 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.521 +Problem: When using "vep" a mark is moved to the next line. (Maxi Padulo, + Issue 283) +Solution: Decrement the line number. (Christian Brabandt) +Files: src/ops.c + + +*** ../vim-7.4.520/src/ops.c 2014-08-16 18:36:38.593993280 +0200 +--- src/ops.c 2014-11-19 17:29:55.697280694 +0100 +*************** +*** 3831,3836 **** +--- 3831,3839 ---- + lnum++; + } while (VIsual_active && lnum <= curbuf->b_visual.vi_end.lnum); + ++ if (VIsual_active) /* reset lnum to the last visual line */ ++ lnum--; ++ + 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.520/src/version.c 2014-11-19 17:05:52.209648533 +0100 +--- src/version.c 2014-11-19 17:30:30.220890822 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 521, + /**/ + +-- +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 1871919a5240a402283485a2a637626b8ba90ead Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 19 Nov 2014 18:00:18 +0100 Subject: [PATCH 0132/1616] - patchlevel 521 --- README.patches | 5 +++++ vim.spec | 15 ++++++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 3f205bbd..ad9ff7a7 100644 --- a/README.patches +++ b/README.patches @@ -538,3 +538,8 @@ Individual patches for Vim 7.4: 1444 7.4.514 (after 7.4.492) memory access error 6056 7.4.515 in a help buffer the global 'foldmethod' is used 2134 7.4.516 issue 253: completing function name with a # does not work + 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 + 1687 7.4.521 when using "vep" a mark is moved to the next line diff --git a/vim.spec b/vim.spec index 8bb3a910..22503a4f 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 516 +%define patchlevel 521 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -563,6 +563,11 @@ Patch513: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.513 Patch514: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.514 Patch515: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.515 Patch516: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.516 +Patch517: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.517 +Patch518: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.518 +Patch519: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.519 +Patch520: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.520 +Patch521: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.521 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1226,6 +1231,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch514 -p0 %patch515 -p0 %patch516 -p0 +%patch517 -p0 +%patch518 -p0 +%patch519 -p0 +%patch520 -p0 +%patch521 -p0 # install spell files %if %{withvimspell} @@ -1743,6 +1753,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Nov 19 2014 Karsten Hopp 7.4.521-1 +- patchlevel 521 + * Thu Nov 13 2014 Karsten Hopp 7.4.516-1 - patchlevel 516 From e848c3d364733c7bc32101a38a291c9fa38bf43e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 20 Nov 2014 18:00:10 +0100 Subject: [PATCH 0133/1616] - patchlevel 522 --- 7.4.522 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.522 diff --git a/7.4.522 b/7.4.522 new file mode 100644 index 00000000..fa23c23b --- /dev/null +++ b/7.4.522 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.522 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.522 +Problem: Specifying wrong buffer size for GetLongPathName(). +Solution: Use the actual size. (Ken Takata) +Files: src/eval.c + + +*** ../vim-7.4.521/src/eval.c 2014-11-12 20:09:02.875529458 +0100 +--- src/eval.c 2014-11-19 18:01:14.560028682 +0100 +*************** +*** 24762,24768 **** + p = alloc(_MAX_PATH + 1); + if (p != NULL) + { +! if (GetLongPathName(*fnamep, p, MAXPATHL)) + { + vim_free(*bufp); + *bufp = *fnamep = p; +--- 24762,24768 ---- + p = alloc(_MAX_PATH + 1); + if (p != NULL) + { +! if (GetLongPathName(*fnamep, p, _MAX_PATH)) + { + vim_free(*bufp); + *bufp = *fnamep = p; +*** ../vim-7.4.521/src/version.c 2014-11-19 17:35:35.085446649 +0100 +--- src/version.c 2014-11-19 18:02:02.003491140 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 522, + /**/ + +-- +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 df50d8f261c32923dd137e8bac3764fb6211c2f4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 20 Nov 2014 18:00:10 +0100 Subject: [PATCH 0134/1616] - patchlevel 523 --- 7.4.523 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 7.4.523 diff --git a/7.4.523 b/7.4.523 new file mode 100644 index 00000000..488e8fdf --- /dev/null +++ b/7.4.523 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.523 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.523 +Problem: When the X11 server is stopped and restarted, while Vim is kept in + the background, copy/paste no longer works. (Issue 203) +Solution: Setup the clipboard again. (Christian Brabandt) +Files: src/os_unix.c + + +*** ../vim-7.4.522/src/os_unix.c 2014-11-19 16:38:01.520679869 +0100 +--- src/os_unix.c 2014-11-19 18:34:45.505245180 +0100 +*************** +*** 1586,1597 **** +--- 1586,1600 ---- + * An X IO Error handler, used to catch terminal errors. + */ + static int x_IOerror_handler __ARGS((Display *dpy)); ++ static void may_restore_clipboard __ARGS((void)); ++ static int xterm_dpy_was_reset = FALSE; + + static int + x_IOerror_handler(dpy) + Display *dpy UNUSED; + { + xterm_dpy = NULL; ++ xterm_dpy_was_reset = TRUE; + x11_window = 0; + x11_display = NULL; + xterm_Shell = (Widget)0; +*************** +*** 1602,1607 **** +--- 1605,1626 ---- + return 0; /* avoid the compiler complains about missing return value */ + # endif + } ++ ++ /* ++ * If the X11 connection was lost try to restore it. ++ * Helps when the X11 server was stopped and restarted while Vim was inactive ++ * (e.g. though tmux). ++ */ ++ static void ++ may_restore_clipboard() ++ { ++ if (xterm_dpy_was_reset) ++ { ++ xterm_dpy_was_reset = FALSE; ++ setup_term_clip(); ++ get_x11_title(FALSE); ++ } ++ } + #endif + + /* +*************** +*** 5274,5279 **** +--- 5293,5299 ---- + } + # endif + # ifdef FEAT_XCLIPBOARD ++ may_restore_clipboard(); + if (xterm_Shell != (Widget)0) + { + xterm_idx = nfd; +*************** +*** 5426,5431 **** +--- 5446,5452 ---- + } + # endif + # ifdef FEAT_XCLIPBOARD ++ may_restore_clipboard(); + if (xterm_Shell != (Widget)0) + { + FD_SET(ConnectionNumber(xterm_dpy), &rfds); +*** ../vim-7.4.522/src/version.c 2014-11-19 18:03:24.202559721 +0100 +--- src/version.c 2014-11-19 18:48:06.140215792 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 523, + /**/ + +-- +There is no right or wrong, there is only your personal opinion. + (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 ca1ddae0df82d03dccd2811d5524c873b69290c9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 20 Nov 2014 18:00:11 +0100 Subject: [PATCH 0135/1616] - patchlevel 524 --- 7.4.524 | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 7.4.524 diff --git a/7.4.524 b/7.4.524 new file mode 100644 index 00000000..3553ca1b --- /dev/null +++ b/7.4.524 @@ -0,0 +1,96 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.524 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.524 +Problem: When using ":ownsyntax" spell checking is messed up. (Issue 78) +Solution: Use the window-local option values. (Christian Brabandt) +Files: src/option.c, src/syntax.c + + +*** ../vim-7.4.523/src/option.c 2014-11-05 17:44:47.676471691 +0100 +--- src/option.c 2014-11-19 19:29:49.351843116 +0100 +*************** +*** 6706,6720 **** + #ifdef FEAT_SPELL + /* When 'spelllang' or 'spellfile' is set and there is a window for this + * buffer in which 'spell' is set load the wordlists. */ +! else if (varp == &(curbuf->b_s.b_p_spl) || varp == &(curbuf->b_s.b_p_spf)) + { + win_T *wp; + int l; + +! if (varp == &(curbuf->b_s.b_p_spf)) + { +! l = (int)STRLEN(curbuf->b_s.b_p_spf); +! if (l > 0 && (l < 4 || STRCMP(curbuf->b_s.b_p_spf + l - 4, + ".add") != 0)) + errmsg = e_invarg; + } +--- 6706,6721 ---- + #ifdef FEAT_SPELL + /* When 'spelllang' or 'spellfile' is set and there is a window for this + * buffer in which 'spell' is set load the wordlists. */ +! 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; + } +*** ../vim-7.4.523/src/syntax.c 2014-11-19 16:38:01.512679964 +0100 +--- src/syntax.c 2014-11-19 19:24:56.431160659 +0100 +*************** +*** 6304,6314 **** + curwin->w_s = (synblock_T *)alloc(sizeof(synblock_T)); + memset(curwin->w_s, 0, sizeof(synblock_T)); + #ifdef FEAT_SPELL + curwin->w_p_spell = FALSE; /* No spell checking */ + clear_string_option(&curwin->w_s->b_p_spc); + clear_string_option(&curwin->w_s->b_p_spf); +- vim_regfree(curwin->w_s->b_cap_prog); +- curwin->w_s->b_cap_prog = NULL; + clear_string_option(&curwin->w_s->b_p_spl); + #endif + } +--- 6304,6313 ---- + curwin->w_s = (synblock_T *)alloc(sizeof(synblock_T)); + memset(curwin->w_s, 0, sizeof(synblock_T)); + #ifdef FEAT_SPELL ++ /* TODO: keep the spell checking as it was. */ + curwin->w_p_spell = FALSE; /* No spell checking */ + clear_string_option(&curwin->w_s->b_p_spc); + clear_string_option(&curwin->w_s->b_p_spf); + clear_string_option(&curwin->w_s->b_p_spl); + #endif + } +*** ../vim-7.4.523/src/version.c 2014-11-19 18:48:41.515814987 +0100 +--- src/version.c 2014-11-19 19:26:00.158438943 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 524, + /**/ + +-- +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 fad0d98fb8fcdf42890ae8828a19ba9179859178 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 20 Nov 2014 18:00:12 +0100 Subject: [PATCH 0136/1616] - patchlevel 525 --- 7.4.525 | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 7.4.525 diff --git a/7.4.525 b/7.4.525 new file mode 100644 index 00000000..63f584e6 --- /dev/null +++ b/7.4.525 @@ -0,0 +1,87 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.525 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.525 +Problem: map() leaks memory when there is an error in the expression. +Solution: Call clear_tv(). (Christian Brabandt) +Files: src/eval.c + + +*** ../vim-7.4.524/src/eval.c 2014-11-19 18:03:24.198559765 +0100 +--- src/eval.c 2014-11-19 20:01:36.426226654 +0100 +*************** +*** 10720,10737 **** + { + if (!HASHITEM_EMPTY(hi)) + { + --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); +! if (filter_map_one(&di->di_tv, expr, map, &rem) == FAIL +! || did_emsg) + break; + if (!map && rem) + dictitem_remove(d, di); +- clear_tv(&vimvars[VV_KEY].vv_tv); + } + } + hash_unlock(ht); +--- 10720,10739 ---- + { + if (!HASHITEM_EMPTY(hi)) + { ++ int r; ++ + --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); +! clear_tv(&vimvars[VV_KEY].vv_tv); +! if (r == FAIL || did_emsg) + break; + if (!map && rem) + dictitem_remove(d, di); + } + } + hash_unlock(ht); +*************** +*** 10782,10787 **** +--- 10784,10790 ---- + if (*s != NUL) /* check for trailing chars after expr */ + { + EMSG2(_(e_invexpr2), s); ++ clear_tv(&rettv); + goto theend; + } + if (map) +*** ../vim-7.4.524/src/version.c 2014-11-19 19:33:13.373532135 +0100 +--- src/version.c 2014-11-19 19:58:41.356215390 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 525, + /**/ + +-- +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 293a40c5ccc086b4e9013dafe76ee0c383f8c311 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 20 Nov 2014 18:00:13 +0100 Subject: [PATCH 0137/1616] - patchlevel 525 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index ad9ff7a7..1f862b9d 100644 --- a/README.patches +++ b/README.patches @@ -543,3 +543,7 @@ Individual patches for Vim 7.4: 26031 7.4.519 (after 7.4.497) crash when using syntax highlighting 1629 7.4.520 Sun PCK locale is not recognzed 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 + 3292 7.4.524 when using ":ownsyntax" spell checking is messed up + 2460 7.4.525 map() leaks memory when there is an error in the expression diff --git a/vim.spec b/vim.spec index 22503a4f..25643da5 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 521 +%define patchlevel 525 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -568,6 +568,10 @@ Patch518: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.518 Patch519: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.519 Patch520: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.520 Patch521: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.521 +Patch522: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.522 +Patch523: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.523 +Patch524: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.524 +Patch525: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.525 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1236,6 +1240,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch519 -p0 %patch520 -p0 %patch521 -p0 +%patch522 -p0 +%patch523 -p0 +%patch524 -p0 +%patch525 -p0 # install spell files %if %{withvimspell} @@ -1753,6 +1761,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Nov 20 2014 Karsten Hopp 7.4.525-1 +- patchlevel 525 + * Wed Nov 19 2014 Karsten Hopp 7.4.521-1 - patchlevel 521 From a13be45a9549eea90d061d53286e18ea5627c00c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 21 Nov 2014 18:00:08 +0100 Subject: [PATCH 0138/1616] - patchlevel 526 --- 7.4.526 | 191 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 7.4.526 diff --git a/7.4.526 b/7.4.526 new file mode 100644 index 00000000..7d120ca4 --- /dev/null +++ b/7.4.526 @@ -0,0 +1,191 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.526 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.526 +Problem: matchstr() fails on long text. Daniel Hahler) +Solution: Return NFA_TOO_EXPENSIVE from regexec_nl(). (Christian Brabandt) +Files: src/regexp.c, src/regexec_nfa.c + + +*** ../vim-7.4.525/src/regexp.c 2014-11-19 16:38:01.508680012 +0100 +--- src/regexp.c 2014-11-20 22:59:03.865027911 +0100 +*************** +*** 3739,3745 **** + * Uses curbuf for line count and 'iskeyword'. + * if "line_lbr" is TRUE consider a "\n" in "line" to be a line break. + * +! * Return TRUE if there is a match, FALSE if not. + */ + static int + bt_regexec_nl(rmp, line, col, line_lbr) +--- 3739,3745 ---- + * Uses curbuf for line count and 'iskeyword'. + * if "line_lbr" is TRUE consider a "\n" in "line" to be a line break. + * +! * Returns 0 for failure, number of lines contained in the match otherwise. + */ + static int + bt_regexec_nl(rmp, line, col, line_lbr) +*************** +*** 3759,3765 **** + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return (bt_regexec_both(line, col, NULL) != 0); + } + + static long bt_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm)); +--- 3759,3766 ---- + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! +! return bt_regexec_both(line, col, NULL); + } + + static long bt_regexec_multi __ARGS((regmmatch_T *rmp, win_T *win, buf_T *buf, linenr_T lnum, colnr_T col, proftime_T *tm)); +*************** +*** 3781,3788 **** + colnr_T col; /* column to start looking for match */ + proftime_T *tm; /* timeout limit or NULL */ + { +- long r; +- + reg_match = NULL; + reg_mmatch = rmp; + reg_buf = buf; +--- 3782,3787 ---- +*************** +*** 3796,3809 **** + #endif + ireg_maxcol = rmp->rmm_maxcol; + +! r = bt_regexec_both(NULL, col, tm); +! +! return r; + } + + /* + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + */ + static long + bt_regexec_both(line, col, tm) +--- 3795,3807 ---- + #endif + ireg_maxcol = rmp->rmm_maxcol; + +! return bt_regexec_both(NULL, col, tm); + } + + /* + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). ++ * Returns 0 for failure, number of lines contained in the match otherwise. + */ + static long + bt_regexec_both(line, col, tm) +*************** +*** 3811,3819 **** + colnr_T col; /* column to start looking for match */ + proftime_T *tm UNUSED; /* timeout limit or NULL */ + { +! bt_regprog_T *prog; +! char_u *s; +! long retval = 0L; + + /* Create "regstack" and "backpos" if they are not allocated yet. + * We allocate *_INITIAL amount of bytes first and then set the grow size +--- 3809,3817 ---- + colnr_T col; /* column to start looking for match */ + proftime_T *tm UNUSED; /* timeout limit or NULL */ + { +! bt_regprog_T *prog; +! char_u *s; +! long retval = 0L; + + /* Create "regstack" and "backpos" if they are not allocated yet. + * We allocate *_INITIAL amount of bytes first and then set the grow size +*************** +*** 8201,8211 **** + + p_re = save_p_re; + } +! return result; + } + + /* + * Note: "*prog" may be freed and changed. + */ + int + vim_regexec_prog(prog, ignore_case, line, col) +--- 8199,8210 ---- + + p_re = save_p_re; + } +! return result > 0; + } + + /* + * Note: "*prog" may be freed and changed. ++ * Return TRUE if there is a match, FALSE if not. + */ + int + vim_regexec_prog(prog, ignore_case, line, col) +*************** +*** 8226,8231 **** +--- 8225,8231 ---- + + /* + * Note: "rmp->regprog" may be freed and changed. ++ * Return TRUE if there is a match, FALSE if not. + */ + int + vim_regexec(rmp, line, col) +*************** +*** 8241,8246 **** +--- 8241,8247 ---- + /* + * Like vim_regexec(), but consider a "\n" in "line" to be a line break. + * Note: "rmp->regprog" may be freed and changed. ++ * Return TRUE if there is a match, FALSE if not. + */ + int + vim_regexec_nl(rmp, line, col) +*************** +*** 8297,8301 **** + p_re = save_p_re; + } + +! return result; + } +--- 8298,8302 ---- + p_re = save_p_re; + } + +! return result <= 0 ? 0 : result; + } +*** ../vim-7.4.525/src/version.c 2014-11-19 20:04:43.656099839 +0100 +--- src/version.c 2014-11-20 22:55:15.899663148 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 526, + /**/ + +-- +Why don't cannibals eat clowns? +Because they taste funny. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From f78df6cc5f9b012f9a17e164a410a20afcf7990c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 21 Nov 2014 18:00:10 +0100 Subject: [PATCH 0139/1616] - patchlevel 526 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 1f862b9d..535035a0 100644 --- a/README.patches +++ b/README.patches @@ -547,3 +547,4 @@ Individual patches for Vim 7.4: 2626 7.4.523 copy/paste no longer works is X11 server is restarted 3292 7.4.524 when using ":ownsyntax" spell checking is messed up 2460 7.4.525 map() leaks memory when there is an error in the expression + 5139 7.4.526 matchstr() fails on long text diff --git a/vim.spec b/vim.spec index 25643da5..e6d37cee 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 525 +%define patchlevel 526 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -572,6 +572,7 @@ Patch522: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.522 Patch523: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.523 Patch524: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.524 Patch525: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.525 +Patch526: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.526 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1244,6 +1245,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch523 -p0 %patch524 -p0 %patch525 -p0 +%patch526 -p0 # install spell files %if %{withvimspell} @@ -1761,6 +1763,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Nov 21 2014 Karsten Hopp 7.4.526-1 +- patchlevel 526 + * Thu Nov 20 2014 Karsten Hopp 7.4.525-1 - patchlevel 525 From fd0342e2b2d22d35a6bc064ae0f56f4e76f45df9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 23 Nov 2014 18:00:09 +0100 Subject: [PATCH 0140/1616] - patchlevel 527 --- 7.4.527 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.527 diff --git a/7.4.527 b/7.4.527 new file mode 100644 index 00000000..ac2edcfa --- /dev/null +++ b/7.4.527 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.527 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.527 +Problem: Still confusing regexp failure and NFA_TOO_EXPENSIVE. +Solution: NFA changes equivalent of 7.4.526. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.526/src/regexp_nfa.c 2014-11-05 14:26:30.764758363 +0100 +--- src/regexp_nfa.c 2014-11-23 15:50:57.980625347 +0100 +*************** +*** 6767,6773 **** + + /* + * Try match of "prog" with at regline["col"]. +! * Returns 0 for failure, number of lines contained in the match otherwise. + */ + static long + nfa_regtry(prog, col) +--- 6767,6773 ---- + + /* + * Try match of "prog" with at regline["col"]. +! * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static long + nfa_regtry(prog, col) +*************** +*** 6897,6903 **** + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + * +! * Returns 0 for failure, number of lines contained in the match otherwise. + */ + static long + nfa_regexec_both(line, startcol) +--- 6897,6903 ---- + * Match a regexp against a string ("line" points to the string) or multiple + * lines ("line" is NULL, use reg_getline()). + * +! * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static long + nfa_regexec_both(line, startcol) +*************** +*** 7137,7143 **** + * Uses curbuf for line count and 'iskeyword'. + * If "line_lbr" is TRUE consider a "\n" in "line" to be a line break. + * +! * Return TRUE if there is a match, FALSE if not. + */ + static int + nfa_regexec_nl(rmp, line, col, line_lbr) +--- 7137,7143 ---- + * Uses curbuf for line count and 'iskeyword'. + * If "line_lbr" is TRUE consider a "\n" in "line" to be a line break. + * +! * Returns <= 0 for failure, number of lines contained in the match otherwise. + */ + static int + nfa_regexec_nl(rmp, line, col, line_lbr) +*************** +*** 7157,7163 **** + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return (nfa_regexec_both(line, col) != 0); + } + + +--- 7157,7163 ---- + ireg_icombine = FALSE; + #endif + ireg_maxcol = 0; +! return nfa_regexec_both(line, col); + } + + +*************** +*** 7166,7172 **** + * "rmp->regprog" is a compiled regexp as returned by vim_regcomp(). + * Uses curbuf for line count and 'iskeyword'. + * +! * Return zero if there is no match. Return number of lines contained in the + * match otherwise. + * + * Note: the body is the same as bt_regexec() except for nfa_regexec_both() +--- 7166,7172 ---- + * "rmp->regprog" is a compiled regexp as returned by vim_regcomp(). + * Uses curbuf for line count and 'iskeyword'. + * +! * Return <= 0 if there is no match. Return number of lines contained in the + * match otherwise. + * + * Note: the body is the same as bt_regexec() except for nfa_regexec_both() +*** ../vim-7.4.526/src/version.c 2014-11-20 23:07:00.515474686 +0100 +--- src/version.c 2014-11-23 15:53:23.170981186 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 527, + /**/ + +-- +"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 /// From 527bbdfb6557a4d03202431eafcb62e9a9f19ed2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 23 Nov 2014 18:00:10 +0100 Subject: [PATCH 0141/1616] - patchlevel 527 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 535035a0..9478a470 100644 --- a/README.patches +++ b/README.patches @@ -548,3 +548,4 @@ Individual patches for Vim 7.4: 3292 7.4.524 when using ":ownsyntax" spell checking is messed up 2460 7.4.525 map() leaks memory when there is an error in the expression 5139 7.4.526 matchstr() fails on long text + 3709 7.4.527 still confusing regexp failure and NFA_TOO_EXPENSIVE diff --git a/vim.spec b/vim.spec index e6d37cee..4e17a859 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 526 +%define patchlevel 527 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -573,6 +573,7 @@ Patch523: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.523 Patch524: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.524 Patch525: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.525 Patch526: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.526 +Patch527: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.527 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1246,6 +1247,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch524 -p0 %patch525 -p0 %patch526 -p0 +%patch527 -p0 # install spell files %if %{withvimspell} @@ -1763,6 +1765,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Nov 23 2014 Karsten Hopp 7.4.527-1 +- patchlevel 527 + * Fri Nov 21 2014 Karsten Hopp 7.4.526-1 - patchlevel 526 From 877f90a5123073d34848603c8f811da85f859f39 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:09 +0100 Subject: [PATCH 0142/1616] - patchlevel 528 --- 7.4.528 | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 7.4.528 diff --git a/7.4.528 b/7.4.528 new file mode 100644 index 00000000..decf8fb9 --- /dev/null +++ b/7.4.528 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.528 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.528 +Problem: Crash when using matchadd() (Yasuhiro Matsumoto) +Solution: Copy the match regprog. +Files: src/screen.c + + +*** ../vim-7.4.527/src/screen.c 2014-11-19 13:21:24.984724043 +0100 +--- src/screen.c 2014-11-27 13:26:05.754837048 +0100 +*************** +*** 7588,7593 **** +--- 7588,7599 ---- + shl->lnum = lnum; + if (shl->rm.regprog != NULL) + { ++ /* Remember whether shl->rm is using a copy of the regprog in ++ * cur->match. */ ++ int regprog_is_copy = (shl != &search_hl && cur != NULL ++ && shl == &cur->hl ++ && cur->match.regprog == cur->hl.rm.regprog); ++ + nmatched = vim_regexec_multi(&shl->rm, win, shl->buf, lnum, + matchcol, + #ifdef FEAT_RELTIME +*************** +*** 7596,7601 **** +--- 7602,7611 ---- + NULL + #endif + ); ++ /* Copy the regprog, in case it got freed and recompiled. */ ++ if (regprog_is_copy) ++ cur->match.regprog = cur->hl.rm.regprog; ++ + if (called_emsg || got_int) + { + /* Error while handling regexp: stop using this regexp. */ +*** ../vim-7.4.527/src/version.c 2014-11-23 15:57:45.568009419 +0100 +--- src/version.c 2014-11-27 13:28:07.393495013 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 528, + /**/ + +-- +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 604c7610f4167d0c08904e9c6387b57ec73a25f0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:10 +0100 Subject: [PATCH 0143/1616] - patchlevel 529 --- 7.4.529 | 224 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 224 insertions(+) create mode 100644 7.4.529 diff --git a/7.4.529 b/7.4.529 new file mode 100644 index 00000000..68c35e88 --- /dev/null +++ b/7.4.529 @@ -0,0 +1,224 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.529 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.529 +Problem: No test for what 7.4.517 fixes. +Solution: Adjust the tests for breakindent. (Christian Brabandt) +Files: src/testdir/test_breakindent.in, src/testdir/test_breakindent.ok + + +*** ../vim-7.4.528/src/testdir/test_breakindent.in 2014-08-24 21:39:45.488526954 +0200 +--- src/testdir/test_breakindent.in 2014-11-27 14:04:39.349335102 +0100 +*************** +*** 6,23 **** + :10new|:vsp|:vert resize 20 + :put =\"\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\" + :set ts=4 sw=4 sts=4 breakindent +! :fu! ScreenChar(width) + : let c='' + : for i in range(1,a:width) +! : let c.=nr2char(screenchar(line('.'), i)) + : endfor + : let c.="\n" + : for i in range(1,a:width) +! : let c.=nr2char(screenchar(line('.')+1, i)) + : endfor + : let c.="\n" + : for i in range(1,a:width) +! : let c.=nr2char(screenchar(line('.')+2, i)) + : endfor + : return c + :endfu +--- 6,23 ---- + :10new|:vsp|:vert resize 20 + :put =\"\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\" + :set ts=4 sw=4 sts=4 breakindent +! :fu! ScreenChar(line, width) + : let c='' + : for i in range(1,a:width) +! : let c.=nr2char(screenchar(a:line, i)) + : endfor + : let c.="\n" + : for i in range(1,a:width) +! : let c.=nr2char(screenchar(a:line+1, i)) + : endfor + : let c.="\n" + : for i in range(1,a:width) +! : let c.=nr2char(screenchar(a:line+2, i)) + : endfor + : return c + :endfu +*************** +*** 29,71 **** + :endfu + :set briopt=min:0 + :let g:test="Test 1: Simple breakindent" +! :let line1=ScreenChar(8) + :call DoRecordScreen() + :let g:test="Test 2: Simple breakindent + sbr=>>" + :set sbr=>> +! :let line1=ScreenChar(8) + :call DoRecordScreen() + :let g:test ="Test 3: Simple breakindent + briopt:sbr" + :set briopt=sbr,min:0 sbr=++ +! :let line1=ScreenChar(8) + :call DoRecordScreen() + :let g:test ="Test 4: Simple breakindent + min width: 18" + :set sbr= briopt=min:18 +! :let line1=ScreenChar(8) + :call DoRecordScreen() + :let g:test =" Test 5: Simple breakindent + shift by 2" + :set briopt=shift:2,min:0 +! :let line1=ScreenChar(8) + :call DoRecordScreen() + :let g:test=" Test 6: Simple breakindent + shift by -1" + :set briopt=shift:-1,min:0 +! :let line1=ScreenChar(8) + :call DoRecordScreen() + :let g:test=" Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr" + :set briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 +! :let line1=ScreenChar(10) + :call DoRecordScreen() + :let g:test=" Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr" + :set briopt=shift:1,sbr,min:0 nu sbr=# list +! :let line1=ScreenChar(10) + :call DoRecordScreen() + :let g:test=" Test 9: breakindent + shift by +1 + 'nu' + sbr=# list" + :set briopt-=sbr +! :let line1=ScreenChar(10) + :call DoRecordScreen() + :let g:test=" Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n" + :set cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0 +! :let line1=ScreenChar(10) + :call DoRecordScreen() + :wincmd p + :let g:test="\n Test 11: strdisplaywidth when breakindent is on" +--- 29,71 ---- + :endfu + :set briopt=min:0 + :let g:test="Test 1: Simple breakindent" +! :let line1=ScreenChar(line('.'),8) + :call DoRecordScreen() + :let g:test="Test 2: Simple breakindent + sbr=>>" + :set sbr=>> +! :let line1=ScreenChar(line('.'),8) + :call DoRecordScreen() + :let g:test ="Test 3: Simple breakindent + briopt:sbr" + :set briopt=sbr,min:0 sbr=++ +! :let line1=ScreenChar(line('.'),8) + :call DoRecordScreen() + :let g:test ="Test 4: Simple breakindent + min width: 18" + :set sbr= briopt=min:18 +! :let line1=ScreenChar(line('.'),8) + :call DoRecordScreen() + :let g:test =" Test 5: Simple breakindent + shift by 2" + :set briopt=shift:2,min:0 +! :let line1=ScreenChar(line('.'),8) + :call DoRecordScreen() + :let g:test=" Test 6: Simple breakindent + shift by -1" + :set briopt=shift:-1,min:0 +! :let line1=ScreenChar(line('.'),8) + :call DoRecordScreen() + :let g:test=" Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr" + :set briopt=shift:1,sbr,min:0 nu sbr=? nuw=4 +! :let line1=ScreenChar(line('.'),10) + :call DoRecordScreen() + :let g:test=" Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr" + :set briopt=shift:1,sbr,min:0 nu sbr=# list +! :let line1=ScreenChar(line('.'),10) + :call DoRecordScreen() + :let g:test=" Test 9: breakindent + shift by +1 + 'nu' + sbr=# list" + :set briopt-=sbr +! :let line1=ScreenChar(line('.'),10) + :call DoRecordScreen() + :let g:test=" Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n" + :set cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0 +! :let line1=ScreenChar(line('.'),10) + :call DoRecordScreen() + :wincmd p + :let g:test="\n Test 11: strdisplaywidth when breakindent is on" +*************** +*** 74,79 **** +--- 74,87 ---- + :let width = strlen(text[1:])+indent(2)*4+strlen(&sbr)*3 " text wraps 3 times + :$put =g:test + :$put =printf(\"strdisplaywidth: %d == calculated: %d\", strdisplaywidth(text), width) ++ :let g:str="\t\t\t\t\t{" ++ :let g:test=" Test 12: breakindent + long indent" ++ :wincmd p ++ :set all& breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4 ++ :$put =g:str ++ zt:let line1=ScreenChar(1,10) ++ :wincmd p ++ :call DoRecordScreen() + :" + :" Test, that the string " a\tb\tc\td\te" is correctly + :" displayed in a 20 column wide window (see bug report +*************** +*** 87,93 **** + :?^\s*z + fygjyl:let line2 = @0 + :quit! +! :$put ='Test 12: breakindent with wrapping Tab' + :$put =line1 + :$put =line2 + :" +--- 95,101 ---- + :?^\s*z + fygjyl:let line2 = @0 + :quit! +! :$put ='Test 13: breakindent with wrapping Tab' + :$put =line1 + :$put =line2 + :" +*** ../vim-7.4.528/src/testdir/test_breakindent.ok 2014-08-24 21:19:22.220571318 +0200 +--- src/testdir/test_breakindent.ok 2014-11-27 14:04:39.349335102 +0100 +*************** +*** 53,58 **** + + Test 11: strdisplaywidth when breakindent is on + strdisplaywidth: 46 == calculated: 64 +! Test 12: breakindent with wrapping Tab + d + w +--- 53,64 ---- + + Test 11: strdisplaywidth when breakindent is on + strdisplaywidth: 46 == calculated: 64 +! { +! +! Test 12: breakindent + long indent +! 56 +! +! ~ +! Test 13: breakindent with wrapping Tab + d + w +*** ../vim-7.4.528/src/version.c 2014-11-27 13:37:07.403539956 +0100 +--- src/version.c 2014-11-27 14:05:44.240619187 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 529, + /**/ + +-- +(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 a2a49ba84dba1d6cc8f5c816410774267cd5cf1e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:10 +0100 Subject: [PATCH 0144/1616] - patchlevel 530 --- 7.4.530 | 4727 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4727 insertions(+) create mode 100644 7.4.530 diff --git a/7.4.530 b/7.4.530 new file mode 100644 index 00000000..fcda204a --- /dev/null +++ b/7.4.530 @@ -0,0 +1,4727 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.530 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.530 +Problem: Many commands take a count or range that is not using line + numbers. +Solution: For each command specify what kind of count it uses. For windows, + buffers and arguments have "$" and "." have a relevant meaning. + (Marcin Szamotulski) +Files: runtime/doc/editing.txt, runtime/doc/tabpage.txt, + runtime/doc/windows.txt, src/Makefile, src/ex_cmds.h, + src/ex_docmd.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_argument_count.in, + src/testdir/test_argument_count.ok, + src/testdir/test_close_count.in, src/testdir/test_close_count.ok, + src/window.c + + +*** ../vim-7.4.529/runtime/doc/editing.txt 2014-08-10 13:34:59.048785459 +0200 +--- runtime/doc/editing.txt 2014-11-27 14:36:09.312502238 +0100 +*************** +*** 608,614 **** + {not in Vi} + + :[count]arga[dd] {name} .. *:arga* *:argadd* *E479* +! Add the {name}s to the argument list. + If [count] is omitted, the {name}s are added just + after the current entry in the argument list. + Otherwise they are added after the [count]'th file. +--- 609,618 ---- + {not in Vi} + + :[count]arga[dd] {name} .. *:arga* *:argadd* *E479* +! :[count]arga[dd] +! Add the {name}s to the argument list. When {name} is +! omitted at the current buffer name to the argument +! list. + If [count] is omitted, the {name}s are added just + after the current entry in the argument list. + Otherwise they are added after the [count]'th file. +*************** +*** 618,624 **** + :argadd x a b x c + :0argadd x x a b c + :1argadd x a x b c +! :99argadd x a b c x + There is no check for duplicates, it is possible to + add a file to the argument list twice. + The currently edited file is not changed. +--- 622,629 ---- + :argadd x a b x c + :0argadd x x a b c + :1argadd x a x b c +! :$argadd x a b c x +! :+2argadd y a b c x y + There is no check for duplicates, it is possible to + add a file to the argument list twice. + The currently edited file is not changed. +*************** +*** 640,650 **** + < {not in Vi} {not available when compiled without the + |+listcmds| feature} + +! :{range}argd[elete] Delete the {range} files from the argument list. + When the last number in the range is too high, up to +! the last argument is deleted. Example: > +! :10,1000argdel +! < Deletes arguments 10 and further, keeping 1-9. + {not in Vi} {not available when compiled without the + |+listcmds| feature} + +--- 645,663 ---- + < {not in Vi} {not available when compiled without the + |+listcmds| feature} + +! :[range]argd[elete] Delete the {range} files from the argument list. +! Example: > +! :10,$argdel +! < Deletes arguments 10 and further, keeping 1-9. > +! :$argd +! < Deletes just the last one. > +! :argd +! :.argd +! < Deletes the current argument. > +! :%argd +! < Removes all the files from the arglist. + When the last number in the range is too high, up to +! the last argument is deleted. + {not in Vi} {not available when compiled without the + |+listcmds| feature} + +*************** +*** 1076,1084 **** + the last file in the argument list has not been + edited. See |:confirm| and 'confirm'. {not in Vi} + +! :q[uit]! Quit without writing, also when visible buffers have +! changes. Does not exit when there are changed hidden +! buffers. Use ":qall!" to exit always. + + :cq[uit] Quit always, without writing, and return an error + code. See |:cq|. Used for Manx's QuickFix mode (see +--- 1089,1100 ---- + the last file in the argument list has not been + edited. See |:confirm| and 'confirm'. {not in Vi} + +! :q[uit]! Quit without writing, also when currently visible +! buffers have changes. Does not exit when this is the +! last window and there are is a changed hidden buffer. +! In this case, the first changed hidden buffer becomes +! the current buffer. +! Use ":qall!" to exit always. + + :cq[uit] Quit always, without writing, and return an error + code. See |:cq|. Used for Manx's QuickFix mode (see +*** ../vim-7.4.529/runtime/doc/tabpage.txt 2013-08-10 13:25:01.000000000 +0200 +--- runtime/doc/tabpage.txt 2014-11-27 14:42:13.340492837 +0100 +*************** +*** 61,76 **** + :[count]tabe[dit] *:tabe* *:tabedit* *:tabnew* + :[count]tabnew + Open a new tab page with an empty window, after the current +! tab page. For [count] see |:tab| below. + + :[count]tabe[dit] [++opt] [+cmd] {file} + :[count]tabnew [++opt] [+cmd] {file} + Open a new tab page and edit {file}, like with |:edit|. +! For [count] see |:tab| below. + + :[count]tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind* + Open a new tab page and edit {file} in 'path', like with +! |:find|. For [count] see |:tab| below. + {not available when the |+file_in_path| feature was disabled + at compile time} + +--- 61,85 ---- + :[count]tabe[dit] *:tabe* *:tabedit* *:tabnew* + :[count]tabnew + Open a new tab page with an empty window, after the current +! tab page. If [count] is given the new tab page appears after +! the tab page [count] otherwise the new tab page will appear +! after the current one. > +! :tabnew " opens tabpage after the current one +! :.tabnew " as above +! :+tabnew " opens tabpage after the next tab page +! " note: it is one further than :tabnew +! :-tabnew " opens tabpage before the current one +! :0tabnew " opens tabpage before the first one +! :$tabnew " opens tabpage after the last one + + :[count]tabe[dit] [++opt] [+cmd] {file} + :[count]tabnew [++opt] [+cmd] {file} + Open a new tab page and edit {file}, like with |:edit|. +! For [count] see |:tabnew| above. + + :[count]tabf[ind] [++opt] [+cmd] {file} *:tabf* *:tabfind* + Open a new tab page and edit {file} in 'path', like with +! |:find|. For [count] see |:tabnew| above. + {not available when the |+file_in_path| feature was disabled + at compile time} + +*************** +*** 110,121 **** + - When 'hidden' is not set, [!] is not used, a buffer has + changes, and there is no other window on this buffer. + Changes to the buffer are not written and won't get lost, so +! this is a "safe" command. + + :tabc[lose][!] {count} + Close tab page {count}. Fails in the same way as `:tabclose` +! above. +! + *:tabo* *:tabonly* + :tabo[nly][!] Close all other tab pages. + When the 'hidden' option is set, all buffers in closed windows +--- 119,136 ---- + - When 'hidden' is not set, [!] is not used, a buffer has + changes, and there is no other window on this buffer. + Changes to the buffer are not written and won't get lost, so +! this is a "safe" command. > +! :tabclose " close the current tab page + ++ :{count}tabc[lose][!] + :tabc[lose][!] {count} + Close tab page {count}. Fails in the same way as `:tabclose` +! above. > +! :-tabclose " close the previous tab page +! :+tabclose " close the next tab page +! :1tabclose " close the first tab page +! :$tabclose " close the last tab page +! < + *:tabo* *:tabonly* + :tabo[nly][!] Close all other tab pages. + When the 'hidden' option is set, all buffers in closed windows +*************** +*** 124,130 **** + modified buffers are written. Otherwise, windows that have + buffers that are modified are not removed, unless the [!] is + given, then they become hidden. But modified buffers are +! never abandoned, so changes cannot get lost. + + + SWITCHING TO ANOTHER TAB PAGE: +--- 139,155 ---- + modified buffers are written. Otherwise, windows that have + buffers that are modified are not removed, unless the [!] is + given, then they become hidden. But modified buffers are +! never abandoned, so changes cannot get lost. > +! :tabonly " close all tab pages except the current +! +! :{count}tabo[nly][!] +! Close all tab pages except the {count}th one. > +! :.tabonly " one +! :-tabonly " close all tab pages except the previous +! " one +! :+tabonly " close all tab pages except the next one +! :1tabonly " close all tab pages except the first one +! :$tabonly " close all tab pages except the last one + + + SWITCHING TO ANOTHER TAB PAGE: +*************** +*** 176,182 **** + :[N]tabm[ove] + 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. + + :tabm[ove] +[N] + :tabm[ove] -[N] +--- 201,215 ---- + :[N]tabm[ove] + 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 begining of the tab +! " list +! :$tabmove " move the tab page to the end of the tab list +! < + + :tabm[ove] +[N] + :tabm[ove] -[N] +*** ../vim-7.4.529/runtime/doc/windows.txt 2014-09-19 20:07:22.542449677 +0200 +--- runtime/doc/windows.txt 2014-11-27 14:52:42.261566503 +0100 +*************** +*** 263,290 **** + Closing a window + ---------------- + + CTRL-W q *CTRL-W_q* + CTRL-W CTRL-Q *CTRL-W_CTRL-Q* +! :q[uit] Quit current window. When quitting the last window (not +! counting a help window), exit Vim. + When 'hidden' is set, and there is only one window for the +! current buffer, it becomes hidden. +! When 'hidden' is not set, and there is only one window for the +! current buffer, and the buffer was changed, the command fails. +! (Note: CTRL-Q does not work on all terminals) +! +! :q[uit]! Quit current window. If this was the last window for a buffer, +! any changes to that buffer are lost. When quitting the last +! window (not counting help windows), exit Vim. The contents of +! the buffer are lost, even when 'hidden' is set. + + CTRL-W c *CTRL-W_c* *:clo* *:close* +! :clo[se][!] Close current window. When the 'hidden' option is set, or +! when the buffer was changed and the [!] is used, the buffer +! becomes hidden (unless there is another window editing it). + When there is only one window in the current tab page and + there is another tab page, this closes the current tab page. + |tab-page|. + This command fails when: *E444* + - There is only one window on the screen. + - When 'hidden' is not set, [!] is not used, the buffer has +--- 263,318 ---- + Closing a window + ---------------- + ++ :q[uit] ++ :{count}q[uit] + CTRL-W q *CTRL-W_q* + CTRL-W CTRL-Q *CTRL-W_CTRL-Q* +! Without {count}: Quit the current window. If {count} is +! given quit the {count} window. +! +! When quitting the last window (not counting a help window), +! exit Vim. +! + When 'hidden' is set, and there is only one window for the +! current buffer, it becomes hidden. When 'hidden' is not set, +! and there is only one window for the current buffer, and the +! buffer was changed, the command fails. +! +! (Note: CTRL-Q does not +! work on all terminals). If [count] is greater than +! the last window number the last window will be closed: > +! :1quit " quit the first window +! :$quit " quit the last window +! :9quit " quit the last window +! " if there are less than 9 windows opened +! :-quit " quit the previews window +! :+quit " quit the next window +! :+2quit " will also work as expected +! < +! :q[uit]! +! :{count}q[uit]! +! Without {count}: Quit the current window. If {count} is +! given quit the {count} window. +! +! If this was the last window for a buffer, any changes to that +! buffer are lost. When quitting the last window (not counting +! help windows), exit Vim. The contents of the buffer are lost, +! even when 'hidden' is set. + ++ :clo[se][!] ++ :{count}clo[se][!] + CTRL-W c *CTRL-W_c* *:clo* *:close* +! Without {count}: Close the current window. If {count} is +! given close the {count} window. +! +! When the 'hidden' option is set, or when the buffer was +! changed and the [!] is used, the buffer becomes hidden (unless +! there is another window editing it). +! + When there is only one window in the current tab page and + there is another tab page, this closes the current tab page. + |tab-page|. ++ + This command fails when: *E444* + - There is only one window on the screen. + - When 'hidden' is not set, [!] is not used, the buffer has +*************** +*** 298,311 **** + command. + + *:hide* +! :hid[e] Quit current window, unless it is the last window on the +! screen. The buffer becomes hidden (unless there is another +! window editing it or 'bufhidden' is "unload" or "delete"). +! If the window is the last one in the current tab page the tab +! page is closed. |tab-page| +! The value of 'hidden' is irrelevant for this command. +! Changes to the buffer are not written and won't get lost, so +! this is a "safe" command. + + :hid[e] {cmd} Execute {cmd} with 'hidden' is set. The previous value of + 'hidden' is restored after {cmd} has been executed. +--- 326,344 ---- + command. + + *:hide* +! :hid[e] +! :{count}hid[e] +! Quit the current window, unless it is the last window on the +! screen. For {count} see |:quit| command. +! +! The buffer becomes hidden (unless there is another window +! editing it or 'bufhidden' is "unload" or "delete"). If the +! window is the last one in the current tab page the tab page is +! closed. |tab-page| +! +! The value of 'hidden' is irrelevant for this command. Changes +! to the buffer are not written and won't get lost, so this is a +! "safe" command. + + :hid[e] {cmd} Execute {cmd} with 'hidden' is set. The previous value of + 'hidden' is restored after {cmd} has been executed. +*************** +*** 314,325 **** + < This will edit "Makefile", and hide the current buffer if it + has any changes. + + CTRL-W o *CTRL-W_o* *E445* + CTRL-W CTRL-O *CTRL-W_CTRL-O* *:on* *:only* +! :on[ly][!] Make the current window the only one on the screen. All other +! windows are closed. + When the 'hidden' option is set, all buffers in closed windows + become hidden. + When 'hidden' is not set, and the 'autowrite' option is set, + modified buffers are written. Otherwise, windows that have + buffers that are modified are not removed, unless the [!] is +--- 347,362 ---- + < This will edit "Makefile", and hide the current buffer if it + has any changes. + ++ :on[ly][!] ++ :{count}on[ly][!] + CTRL-W o *CTRL-W_o* *E445* + CTRL-W CTRL-O *CTRL-W_CTRL-O* *:on* *:only* +! Make the current window the only one on the screen. All other +! windows are closed. For {count} see |:quit| command. +! + When the 'hidden' option is set, all buffers in closed windows + become hidden. ++ + When 'hidden' is not set, and the 'autowrite' option is set, + modified buffers are written. Otherwise, windows that have + buffers that are modified are not removed, unless the [!] is +*** ../vim-7.4.529/src/Makefile 2014-11-12 15:45:16.591789174 +0100 +--- src/Makefile 2014-11-27 14:23:18.260995560 +0100 +*************** +*** 1890,1899 **** + done + + # Run individual test, assuming that Vim was already compiled. +! test1 test2 test3 test4 test5 test6 test7 test8 test9 \ + test_autoformat_join \ + test_breakindent \ + test_changelist \ + test_eval \ + test_insertcount \ + test_listlbr \ +--- 1890,1901 ---- + done + + # Run individual test, assuming that Vim was already compiled. +! test1 \ +! test_argument_count \ + test_autoformat_join \ + test_breakindent \ + test_changelist \ ++ test_close_count \ + test_eval \ + test_insertcount \ + test_listlbr \ +*************** +*** 1904,1909 **** +--- 1906,1912 ---- + test_signs \ + test_utf8 \ + test_writefile \ ++ test2 test3 test4 test5 test6 test7 test8 test9 \ + test10 test11 test12 test13 test14 test15 test16 test17 test18 test19 \ + test20 test21 test22 test23 test24 test25 test26 test27 test28 test29 \ + test30 test31 test32 test33 test34 test35 test36 test37 test38 test39 \ +*** ../vim-7.4.529/src/ex_cmds.h 2014-10-21 20:01:54.986287762 +0200 +--- src/ex_cmds.h 2014-11-27 14:56:55.146781659 +0100 +*************** +*** 58,63 **** +--- 58,71 ---- + #define WORD1 (EXTRA | NOSPC) /* one extra word allowed */ + #define FILE1 (FILES | NOSPC) /* 1 file allowed, defaults to current file */ + ++ /* values for cmd_addr_type */ ++ #define ADDR_LINES 0 ++ #define ADDR_WINDOWS 1 ++ #define ADDR_ARGUMENTS 2 ++ #define ADDR_LOADED_BUFFERS 3 ++ #define ADDR_UNLOADED_BUFFERS 4 ++ #define ADDR_TABS 5 ++ + #ifndef DO_DECLARE_EXCMD + typedef struct exarg exarg_T; + #endif +*************** +*** 74,80 **** + # undef EX /* just in case */ + #endif + #ifdef DO_DECLARE_EXCMD +! # define EX(a, b, c, d) {(char_u *)b, c, (long_u)(d)} + + typedef void (*ex_func_T) __ARGS((exarg_T *eap)); + +--- 82,88 ---- + # undef EX /* just in case */ + #endif + #ifdef DO_DECLARE_EXCMD +! # define EX(a, b, c, d, e) {(char_u *)b, c, (long_u)(d), e} + + typedef void (*ex_func_T) __ARGS((exarg_T *eap)); + +*************** +*** 83,1146 **** + char_u *cmd_name; /* name of the command */ + ex_func_T cmd_func; /* function for this command */ + long_u cmd_argt; /* flags declared above */ + } + # if defined(FEAT_GUI_W16) + _far + # endif + cmdnames[] = + #else +! # define EX(a, b, c, d) a + enum CMD_index + #endif + { + EX(CMD_append, "append", ex_append, +! BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY), + EX(CMD_abbreviate, "abbreviate", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_abclear, "abclear", ex_abclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_all, "all", ex_all, +! BANG|RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_amenu, "amenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_anoremenu, "anoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_args, "args", ex_args, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_argadd, "argadd", ex_argadd, +! BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR), + EX(CMD_argdelete, "argdelete", ex_argdelete, +! BANG|RANGE|NOTADR|FILES|TRLBAR), + EX(CMD_argdo, "argdo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_argedit, "argedit", ex_argedit, +! BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_argglobal, "argglobal", ex_args, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_arglocal, "arglocal", ex_args, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_argument, "argument", ex_argument, +! BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_ascii, "ascii", do_ascii, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_autocmd, "autocmd", ex_autocmd, +! BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_augroup, "augroup", ex_autocmd, +! BANG|WORD1|TRLBAR|CMDWIN), + EX(CMD_aunmenu, "aunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_buffer, "buffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR), + EX(CMD_bNext, "bNext", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_ball, "ball", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_badd, "badd", ex_edit, +! NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN), + EX(CMD_bdelete, "bdelete", ex_bunload, +! BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR), + EX(CMD_behave, "behave", ex_behave, +! NEEDARG|WORD1|TRLBAR|CMDWIN), + EX(CMD_belowright, "belowright", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bfirst, "bfirst", ex_brewind, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR), + EX(CMD_blast, "blast", ex_blast, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR), + EX(CMD_bmodified, "bmodified", ex_bmodified, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_bnext, "bnext", ex_bnext, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_botright, "botright", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bprevious, "bprevious", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_brewind, "brewind", ex_brewind, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR), + EX(CMD_break, "break", ex_break, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_breakadd, "breakadd", ex_breakadd, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_breakdel, "breakdel", ex_breakdel, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_breaklist, "breaklist", ex_breaklist, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_browse, "browse", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM|CMDWIN), + EX(CMD_buffers, "buffers", buflist_list, +! BANG|TRLBAR|CMDWIN), + EX(CMD_bufdo, "bufdo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_bunload, "bunload", ex_bunload, +! BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR), + EX(CMD_bwipeout, "bwipeout", ex_bunload, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR), + EX(CMD_change, "change", ex_change, +! BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY), + EX(CMD_cNext, "cNext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cNfile, "cNfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cabbrev, "cabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cabclear, "cabclear", ex_abclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR), + EX(CMD_caddexpr, "caddexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR), + EX(CMD_caddfile, "caddfile", ex_cfile, +! TRLBAR|FILE1), + EX(CMD_call, "call", ex_call, +! RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_catch, "catch", ex_catch, +! EXTRA|SBOXOK|CMDWIN), + EX(CMD_cbuffer, "cbuffer", ex_cbuffer, +! BANG|RANGE|NOTADR|WORD1|TRLBAR), + EX(CMD_cc, "cc", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cclose, "cclose", ex_cclose, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_cd, "cd", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_center, "center", ex_align, +! TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_cexpr, "cexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG), + EX(CMD_cfile, "cfile", ex_cfile, +! TRLBAR|FILE1|BANG), + EX(CMD_cfirst, "cfirst", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cgetfile, "cgetfile", ex_cfile, +! TRLBAR|FILE1), + EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR), + EX(CMD_cgetexpr, "cgetexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR), + EX(CMD_chdir, "chdir", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_changes, "changes", ex_changes, +! TRLBAR|CMDWIN), + EX(CMD_checkpath, "checkpath", ex_checkpath, +! TRLBAR|BANG|CMDWIN), + EX(CMD_checktime, "checktime", ex_checktime, +! RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR), + EX(CMD_clist, "clist", qf_list, +! BANG|EXTRA|TRLBAR|CMDWIN), + EX(CMD_clast, "clast", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_close, "close", ex_close, +! BANG|TRLBAR|CMDWIN), + EX(CMD_cmap, "cmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cmapclear, "cmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_cmenu, "cmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cnext, "cnext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cnewer, "cnewer", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_cnfile, "cnfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cnoremap, "cnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cnoreabbrev, "cnoreabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cnoremenu, "cnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_copy, "copy", ex_copymove, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY), + EX(CMD_colder, "colder", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_colorscheme, "colorscheme", ex_colorscheme, +! WORD1|TRLBAR|CMDWIN), + EX(CMD_command, "command", ex_command, +! EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_comclear, "comclear", ex_comclear, +! TRLBAR|CMDWIN), + EX(CMD_compiler, "compiler", ex_compiler, +! BANG|TRLBAR|WORD1|CMDWIN), + EX(CMD_continue, "continue", ex_continue, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_confirm, "confirm", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM|CMDWIN), + EX(CMD_copen, "copen", ex_copen, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_cprevious, "cprevious", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cpfile, "cpfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cquit, "cquit", ex_cquit, +! TRLBAR|BANG), + EX(CMD_crewind, "crewind", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_cscope, "cscope", do_cscope, +! EXTRA|NOTRLCOM|XFILE), + EX(CMD_cstag, "cstag", do_cstag, +! BANG|TRLBAR|WORD1), + EX(CMD_cunmap, "cunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cunabbrev, "cunabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cunmenu, "cunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_cwindow, "cwindow", ex_cwindow, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_delete, "delete", ex_operators, +! RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY), + EX(CMD_delmarks, "delmarks", ex_delmarks, +! BANG|EXTRA|TRLBAR|CMDWIN), + EX(CMD_debug, "debug", ex_debug, +! NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy, +! RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN), + EX(CMD_delcommand, "delcommand", ex_delcommand, +! NEEDARG|WORD1|TRLBAR|CMDWIN), + EX(CMD_delfunction, "delfunction", ex_delfunction, +! NEEDARG|WORD1|CMDWIN), + EX(CMD_display, "display", ex_display, +! EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_diffupdate, "diffupdate", ex_diffupdate, +! BANG|TRLBAR), + EX(CMD_diffget, "diffget", ex_diffgetput, +! RANGE|EXTRA|TRLBAR|MODIFY), + EX(CMD_diffoff, "diffoff", ex_diffoff, +! BANG|TRLBAR), + EX(CMD_diffpatch, "diffpatch", ex_diffpatch, +! EXTRA|FILE1|TRLBAR|MODIFY), + EX(CMD_diffput, "diffput", ex_diffgetput, +! RANGE|EXTRA|TRLBAR), + EX(CMD_diffsplit, "diffsplit", ex_diffsplit, +! EXTRA|FILE1|TRLBAR), + EX(CMD_diffthis, "diffthis", ex_diffthis, +! TRLBAR), + EX(CMD_digraphs, "digraphs", ex_digraphs, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_djump, "djump", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), + EX(CMD_dlist, "dlist", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_doautocmd, "doautocmd", ex_doautocmd, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_doautoall, "doautoall", ex_doautoall, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_drop, "drop", ex_drop, +! FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR), + EX(CMD_dsearch, "dsearch", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_dsplit, "dsplit", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), + EX(CMD_edit, "edit", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_earlier, "earlier", ex_later, +! TRLBAR|EXTRA|NOSPC|CMDWIN), + EX(CMD_echo, "echo", ex_echo, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_echoerr, "echoerr", ex_execute, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_echohl, "echohl", ex_echohl, +! EXTRA|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_echomsg, "echomsg", ex_execute, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_echon, "echon", ex_echo, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_else, "else", ex_else, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_elseif, "elseif", ex_else, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_emenu, "emenu", ex_emenu, +! NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN), + EX(CMD_endif, "endif", ex_endif, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_endfunction, "endfunction", ex_endfunction, +! TRLBAR|CMDWIN), + EX(CMD_endfor, "endfor", ex_endwhile, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_endtry, "endtry", ex_endtry, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_endwhile, "endwhile", ex_endwhile, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_enew, "enew", ex_edit, +! BANG|TRLBAR), + EX(CMD_ex, "ex", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_execute, "execute", ex_execute, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_exit, "exit", ex_exit, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), + EX(CMD_exusage, "exusage", ex_exusage, +! TRLBAR), + EX(CMD_file, "file", ex_file, +! RANGE|NOTADR|ZEROR|BANG|FILE1|TRLBAR), + EX(CMD_files, "files", buflist_list, +! BANG|TRLBAR|CMDWIN), + EX(CMD_filetype, "filetype", ex_filetype, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_find, "find", ex_find, +! RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_finally, "finally", ex_finally, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_finish, "finish", ex_finish, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_first, "first", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_fixdel, "fixdel", do_fixdel, +! TRLBAR|CMDWIN), + EX(CMD_fold, "fold", ex_fold, +! RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_foldclose, "foldclose", ex_foldopen, +! RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_folddoopen, "folddoopen", ex_folddo, +! RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_folddoclosed, "folddoclosed", ex_folddo, +! RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_foldopen, "foldopen", ex_foldopen, +! RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_for, "for", ex_while, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_function, "function", ex_function, +! EXTRA|BANG|CMDWIN), + EX(CMD_global, "global", ex_global, +! RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN), + EX(CMD_goto, "goto", ex_goto, +! RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_grep, "grep", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_grepadd, "grepadd", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_gui, "gui", ex_gui, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN), + EX(CMD_gvim, "gvim", ex_gui, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN), + EX(CMD_help, "help", ex_help, +! BANG|EXTRA|NOTRLCOM), + EX(CMD_helpclose, "helpclose", ex_helpclose, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_helpfind, "helpfind", ex_helpfind, +! EXTRA|NOTRLCOM), + EX(CMD_helpgrep, "helpgrep", ex_helpgrep, +! EXTRA|NOTRLCOM|NEEDARG), + EX(CMD_helptags, "helptags", ex_helptags, +! NEEDARG|FILES|TRLBAR|CMDWIN), + EX(CMD_hardcopy, "hardcopy", ex_hardcopy, +! RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG), + EX(CMD_highlight, "highlight", ex_highlight, +! BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_hide, "hide", ex_hide, +! BANG|EXTRA|NOTRLCOM), + EX(CMD_history, "history", ex_history, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_insert, "insert", ex_append, +! BANG|RANGE|TRLBAR|CMDWIN|MODIFY), + EX(CMD_iabbrev, "iabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_iabclear, "iabclear", ex_abclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_if, "if", ex_if, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_ijump, "ijump", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), + EX(CMD_ilist, "ilist", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_imap, "imap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_imapclear, "imapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_imenu, "imenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_inoremap, "inoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_inoreabbrev, "inoreabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_inoremenu, "inoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_intro, "intro", ex_intro, +! TRLBAR|CMDWIN), + EX(CMD_isearch, "isearch", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_isplit, "isplit", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA), + EX(CMD_iunmap, "iunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_iunabbrev, "iunabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_iunmenu, "iunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_join, "join", ex_join, +! BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), + EX(CMD_jumps, "jumps", ex_jumps, +! TRLBAR|CMDWIN), + EX(CMD_k, "k", ex_mark, +! RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier, +! 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, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), + EX(CMD_lNext, "lNext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_lNfile, "lNfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_last, "last", ex_last, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_language, "language", ex_language, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_laddexpr, "laddexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR), + EX(CMD_laddbuffer, "laddbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR), + EX(CMD_laddfile, "laddfile", ex_cfile, +! TRLBAR|FILE1), + EX(CMD_later, "later", ex_later, +! TRLBAR|EXTRA|NOSPC|CMDWIN), + EX(CMD_lbuffer, "lbuffer", ex_cbuffer, +! BANG|RANGE|NOTADR|WORD1|TRLBAR), + EX(CMD_lcd, "lcd", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_lchdir, "lchdir", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_lclose, "lclose", ex_cclose, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lcscope, "lcscope", do_cscope, +! EXTRA|NOTRLCOM|XFILE), + EX(CMD_left, "left", ex_align, +! TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_leftabove, "leftabove", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_let, "let", ex_let, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_lexpr, "lexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG), + EX(CMD_lfile, "lfile", ex_cfile, +! TRLBAR|FILE1|BANG), + EX(CMD_lfirst, "lfirst", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_lgetfile, "lgetfile", ex_cfile, +! TRLBAR|FILE1), + EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR), + EX(CMD_lgetexpr, "lgetexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR), + EX(CMD_lgrep, "lgrep", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_lgrepadd, "lgrepadd", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_lhelpgrep, "lhelpgrep", ex_helpgrep, +! EXTRA|NOTRLCOM|NEEDARG), + EX(CMD_ll, "ll", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_llast, "llast", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_llist, "llist", qf_list, +! BANG|EXTRA|TRLBAR|CMDWIN), + EX(CMD_lmap, "lmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_lmapclear, "lmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_lmake, "lmake", ex_make, +! BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_lnoremap, "lnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_lnext, "lnext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_lnewer, "lnewer", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lnfile, "lnfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_loadview, "loadview", ex_loadview, +! FILE1|TRLBAR), + EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap, +! CMDWIN), + EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_lockvar, "lockvar", ex_lockvar, +! BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN), + EX(CMD_lolder, "lolder", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lopen, "lopen", ex_copen, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_lprevious, "lprevious", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_lpfile, "lpfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_lrewind, "lrewind", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG), + EX(CMD_ltag, "ltag", ex_tag, +! NOTADR|TRLBAR|BANG|WORD1), + EX(CMD_lunmap, "lunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_lua, "lua", ex_lua, +! RANGE|EXTRA|NEEDARG|CMDWIN), + EX(CMD_luado, "luado", ex_luado, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN), + EX(CMD_luafile, "luafile", ex_luafile, +! RANGE|FILE1|NEEDARG|CMDWIN), + EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_lvimgrepadd, "lvimgrepadd", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_lwindow, "lwindow", ex_cwindow, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_ls, "ls", buflist_list, +! BANG|TRLBAR|CMDWIN), + EX(CMD_move, "move", ex_copymove, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY), + EX(CMD_mark, "mark", ex_mark, +! RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_make, "make", ex_make, +! BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_map, "map", ex_map, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_mapclear, "mapclear", ex_mapclear, +! EXTRA|BANG|TRLBAR|CMDWIN), + EX(CMD_marks, "marks", do_marks, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_match, "match", ex_match, +! RANGE|NOTADR|EXTRA|CMDWIN), + EX(CMD_menu, "menu", ex_menu, +! RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_menutranslate, "menutranslate", ex_menutranslate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_messages, "messages", ex_messages, +! TRLBAR|CMDWIN), + EX(CMD_mkexrc, "mkexrc", ex_mkrc, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_mksession, "mksession", ex_mkrc, +! BANG|FILE1|TRLBAR), + EX(CMD_mkspell, "mkspell", ex_mkspell, +! BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_mkvimrc, "mkvimrc", ex_mkrc, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_mkview, "mkview", ex_mkrc, +! BANG|FILE1|TRLBAR), + EX(CMD_mode, "mode", ex_mode, +! WORD1|TRLBAR|CMDWIN), + EX(CMD_mzscheme, "mzscheme", ex_mzscheme, +! RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK), + EX(CMD_mzfile, "mzfile", ex_mzfile, +! RANGE|FILE1|NEEDARG|CMDWIN), + EX(CMD_next, "next", ex_next, +! RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_nbkey, "nbkey", ex_nbkey, +! EXTRA|NOTADR|NEEDARG), + EX(CMD_nbclose, "nbclose", ex_nbclose, +! TRLBAR|CMDWIN), + EX(CMD_nbstart, "nbstart", ex_nbstart, +! WORD1|TRLBAR|CMDWIN), + EX(CMD_new, "new", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_nmap, "nmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_nmapclear, "nmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_nmenu, "nmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_nnoremap, "nnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_nnoremenu, "nnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noremap, "noremap", ex_map, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noremenu, "noremenu", ex_menu, +! RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_noswapfile, "noswapfile", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_normal, "normal", ex_normal, +! RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN), + EX(CMD_number, "number", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), + EX(CMD_nunmap, "nunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_nunmenu, "nunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_open, "open", ex_open, +! RANGE|BANG|EXTRA), + EX(CMD_oldfiles, "oldfiles", ex_oldfiles, +! BANG|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_omap, "omap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_omapclear, "omapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_omenu, "omenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_only, "only", ex_only, +! BANG|TRLBAR), + EX(CMD_onoremap, "onoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_onoremenu, "onoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_options, "options", ex_options, +! TRLBAR), + EX(CMD_ounmap, "ounmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_ounmenu, "ounmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_ownsyntax, "ownsyntax", ex_ownsyntax, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_print, "print", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK), + EX(CMD_pclose, "pclose", ex_pclose, +! BANG|TRLBAR), + EX(CMD_perl, "perl", ex_perl, +! RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN), + EX(CMD_perldo, "perldo", ex_perldo, +! RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN), + EX(CMD_pedit, "pedit", ex_pedit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_pop, "pop", ex_tag, +! RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR), + EX(CMD_popup, "popup", ex_popup, +! NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN), + EX(CMD_ppop, "ppop", ex_ptag, +! RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR), + EX(CMD_preserve, "preserve", ex_preserve, +! TRLBAR), + EX(CMD_previous, "previous", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_promptfind, "promptfind", gui_mch_find_dialog, +! EXTRA|NOTRLCOM|CMDWIN), + EX(CMD_promptrepl, "promptrepl", gui_mch_replace_dialog, +! EXTRA|NOTRLCOM|CMDWIN), + EX(CMD_profile, "profile", ex_profile, +! BANG|EXTRA|TRLBAR|CMDWIN), + EX(CMD_profdel, "profdel", ex_breakdel, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_psearch, "psearch", ex_psearch, +! BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA), + EX(CMD_ptag, "ptag", ex_ptag, +! RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), + EX(CMD_ptNext, "ptNext", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_ptfirst, "ptfirst", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_ptjump, "ptjump", ex_ptag, +! BANG|TRLBAR|WORD1), + EX(CMD_ptlast, "ptlast", ex_ptag, +! BANG|TRLBAR), + EX(CMD_ptnext, "ptnext", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_ptprevious, "ptprevious", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_ptrewind, "ptrewind", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_ptselect, "ptselect", ex_ptag, +! BANG|TRLBAR|WORD1), + EX(CMD_put, "put", ex_put, +! RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY), + EX(CMD_pwd, "pwd", ex_pwd, +! TRLBAR|CMDWIN), + EX(CMD_python, "python", ex_python, +! RANGE|EXTRA|NEEDARG|CMDWIN), + EX(CMD_pydo, "pydo", ex_pydo, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN), + EX(CMD_pyfile, "pyfile", ex_pyfile, +! RANGE|FILE1|NEEDARG|CMDWIN), + EX(CMD_py3, "py3", ex_py3, +! RANGE|EXTRA|NEEDARG|CMDWIN), + EX(CMD_py3do, "py3do", ex_py3do, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN), + EX(CMD_python3, "python3", ex_py3, +! RANGE|EXTRA|NEEDARG|CMDWIN), + EX(CMD_py3file, "py3file", ex_py3file, +! RANGE|FILE1|NEEDARG|CMDWIN), + EX(CMD_quit, "quit", ex_quit, +! BANG|TRLBAR|CMDWIN), + EX(CMD_quitall, "quitall", ex_quit_all, +! BANG|TRLBAR), + EX(CMD_qall, "qall", ex_quit_all, +! BANG|TRLBAR|CMDWIN), + EX(CMD_read, "read", ex_read, +! BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY), + EX(CMD_recover, "recover", ex_recover, +! BANG|FILE1|TRLBAR), + EX(CMD_redo, "redo", ex_redo, +! TRLBAR|CMDWIN), + EX(CMD_redir, "redir", ex_redir, +! BANG|FILES|TRLBAR|CMDWIN), + EX(CMD_redraw, "redraw", ex_redraw, +! BANG|TRLBAR|CMDWIN), + EX(CMD_redrawstatus, "redrawstatus", ex_redrawstatus, +! BANG|TRLBAR|CMDWIN), + EX(CMD_registers, "registers", ex_display, +! EXTRA|NOTRLCOM|TRLBAR|CMDWIN), + EX(CMD_resize, "resize", ex_resize, +! RANGE|NOTADR|TRLBAR|WORD1), + EX(CMD_retab, "retab", ex_retab, +! TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY), + EX(CMD_return, "return", ex_return, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_rewind, "rewind", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_right, "right", ex_align, +! TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_rightbelow, "rightbelow", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_runtime, "runtime", ex_runtime, +! BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_ruby, "ruby", ex_ruby, +! RANGE|EXTRA|NEEDARG|CMDWIN), + EX(CMD_rubydo, "rubydo", ex_rubydo, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN), + EX(CMD_rubyfile, "rubyfile", ex_rubyfile, +! RANGE|FILE1|NEEDARG|CMDWIN), + EX(CMD_rundo, "rundo", ex_rundo, +! NEEDARG|FILE1), + EX(CMD_rviminfo, "rviminfo", ex_viminfo, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_substitute, "substitute", do_sub, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_sNext, "sNext", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_sargument, "sargument", ex_argument, +! BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_sall, "sall", ex_all, +! BANG|RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sandbox, "sandbox", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_saveas, "saveas", ex_write, +! BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR), + EX(CMD_sbuffer, "sbuffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR), + EX(CMD_sbNext, "sbNext", ex_bprevious, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sball, "sball", ex_buffer_all, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbfirst, "sbfirst", ex_brewind, +! EDITCMD|TRLBAR), + EX(CMD_sblast, "sblast", ex_blast, +! EDITCMD|TRLBAR), + EX(CMD_sbmodified, "sbmodified", ex_bmodified, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbnext, "sbnext", ex_bnext, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbprevious, "sbprevious", ex_bprevious, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR), + EX(CMD_sbrewind, "sbrewind", ex_brewind, +! EDITCMD|TRLBAR), + EX(CMD_scriptnames, "scriptnames", ex_scriptnames, +! TRLBAR|CMDWIN), + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, +! WORD1|TRLBAR|CMDWIN), + EX(CMD_scscope, "scscope", do_scscope, +! EXTRA|NOTRLCOM), + EX(CMD_set, "set", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, +! TRLBAR|EXTRA|NEEDARG|CMDWIN), + EX(CMD_setglobal, "setglobal", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_setlocal, "setlocal", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK), + EX(CMD_sfind, "sfind", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_sfirst, "sfirst", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_shell, "shell", ex_shell, +! TRLBAR|CMDWIN), + EX(CMD_simalt, "simalt", ex_simalt, +! NEEDARG|WORD1|TRLBAR|CMDWIN), + EX(CMD_sign, "sign", ex_sign, +! NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN), + EX(CMD_silent, "silent", ex_wrongmodifier, +! NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_sleep, "sleep", ex_sleep, +! RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN), + EX(CMD_slast, "slast", ex_last, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_smagic, "smagic", ex_submagic, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_smap, "smap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_smapclear, "smapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_smenu, "smenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_snext, "snext", ex_next, +! RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_sniff, "sniff", ex_sniff, +! EXTRA|TRLBAR), + EX(CMD_snomagic, "snomagic", ex_submagic, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN), + EX(CMD_snoremap, "snoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_snoremenu, "snoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_source, "source", ex_source, +! BANG|FILE1|TRLBAR|SBOXOK|CMDWIN), + EX(CMD_sort, "sort", ex_sort, +! RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY), + EX(CMD_split, "split", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_spellgood, "spellgood", ex_spell, +! BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR), + EX(CMD_spelldump, "spelldump", ex_spelldump, +! BANG|TRLBAR), + EX(CMD_spellinfo, "spellinfo", ex_spellinfo, +! TRLBAR), + EX(CMD_spellrepall, "spellrepall", ex_spellrepall, +! TRLBAR), + EX(CMD_spellundo, "spellundo", ex_spell, +! BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR), + EX(CMD_spellwrong, "spellwrong", ex_spell, +! BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR), + EX(CMD_sprevious, "sprevious", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_srewind, "srewind", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_stop, "stop", ex_stop, +! TRLBAR|BANG|CMDWIN), + EX(CMD_stag, "stag", ex_stag, +! RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), + EX(CMD_startinsert, "startinsert", ex_startinsert, +! BANG|TRLBAR|CMDWIN), + EX(CMD_startgreplace, "startgreplace", ex_startinsert, +! BANG|TRLBAR|CMDWIN), + EX(CMD_startreplace, "startreplace", ex_startinsert, +! BANG|TRLBAR|CMDWIN), + EX(CMD_stopinsert, "stopinsert", ex_stopinsert, +! BANG|TRLBAR|CMDWIN), + EX(CMD_stjump, "stjump", ex_stag, +! BANG|TRLBAR|WORD1), + EX(CMD_stselect, "stselect", ex_stag, +! BANG|TRLBAR|WORD1), + EX(CMD_sunhide, "sunhide", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_sunmap, "sunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_sunmenu, "sunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_suspend, "suspend", ex_stop, +! TRLBAR|BANG|CMDWIN), + EX(CMD_sview, "sview", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_swapname, "swapname", ex_swapname, +! TRLBAR|CMDWIN), + EX(CMD_syntax, "syntax", ex_syntax, +! EXTRA|NOTRLCOM|CMDWIN), + EX(CMD_syntime, "syntime", ex_syntime, +! NEEDARG|WORD1|TRLBAR|CMDWIN), + EX(CMD_syncbind, "syncbind", ex_syncbind, +! TRLBAR), + EX(CMD_t, "t", ex_copymove, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY), + EX(CMD_tNext, "tNext", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_tag, "tag", ex_tag, +! RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR), + EX(CMD_tags, "tags", do_tags, +! TRLBAR|CMDWIN), + EX(CMD_tab, "tab", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_tabclose, "tabclose", ex_tabclose, +! RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN), + EX(CMD_tabdo, "tabdo", ex_listdo, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_tabedit, "tabedit", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_tabfind, "tabfind", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR), + EX(CMD_tabfirst, "tabfirst", ex_tabnext, +! TRLBAR), + EX(CMD_tabmove, "tabmove", ex_tabmove, +! RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR), + EX(CMD_tablast, "tablast", ex_tabnext, +! TRLBAR), + EX(CMD_tabnext, "tabnext", ex_tabnext, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_tabnew, "tabnew", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_tabonly, "tabonly", ex_tabonly, +! BANG|TRLBAR|CMDWIN), + EX(CMD_tabprevious, "tabprevious", ex_tabnext, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_tabNext, "tabNext", ex_tabnext, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_tabrewind, "tabrewind", ex_tabnext, +! TRLBAR), + EX(CMD_tabs, "tabs", ex_tabs, +! TRLBAR|CMDWIN), + EX(CMD_tcl, "tcl", ex_tcl, +! RANGE|EXTRA|NEEDARG|CMDWIN), + EX(CMD_tcldo, "tcldo", ex_tcldo, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN), + EX(CMD_tclfile, "tclfile", ex_tclfile, +! RANGE|FILE1|NEEDARG|CMDWIN), + EX(CMD_tearoff, "tearoff", ex_tearoff, +! NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN), + EX(CMD_tfirst, "tfirst", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_throw, "throw", ex_throw, +! EXTRA|NEEDARG|SBOXOK|CMDWIN), + EX(CMD_tjump, "tjump", ex_tag, +! BANG|TRLBAR|WORD1), + EX(CMD_tlast, "tlast", ex_tag, +! BANG|TRLBAR), + EX(CMD_tmenu, "tmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_tnext, "tnext", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_topleft, "topleft", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_tprevious, "tprevious", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_trewind, "trewind", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR), + EX(CMD_try, "try", ex_try, +! TRLBAR|SBOXOK|CMDWIN), + EX(CMD_tselect, "tselect", ex_tag, +! BANG|TRLBAR|WORD1), + EX(CMD_tunmenu, "tunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_undo, "undo", ex_undo, +! RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN), + EX(CMD_undojoin, "undojoin", ex_undojoin, +! TRLBAR|CMDWIN), + EX(CMD_undolist, "undolist", ex_undolist, +! TRLBAR|CMDWIN), + EX(CMD_unabbreviate, "unabbreviate", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_unhide, "unhide", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR), + EX(CMD_unlet, "unlet", ex_unlet, +! BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN), + EX(CMD_unlockvar, "unlockvar", ex_lockvar, +! BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN), + EX(CMD_unmap, "unmap", ex_unmap, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_unmenu, "unmenu", ex_menu, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_unsilent, "unsilent", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_update, "update", ex_update, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR), + EX(CMD_vglobal, "vglobal", ex_global, +! RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN), + EX(CMD_version, "version", ex_version, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_verbose, "verbose", ex_wrongmodifier, +! NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_vertical, "vertical", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_visual, "visual", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_view, "view", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_vimgrep, "vimgrep", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE), + EX(CMD_viusage, "viusage", ex_viusage, +! TRLBAR), + EX(CMD_vmap, "vmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_vmapclear, "vmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_vmenu, "vmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_vnoremap, "vnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_vnew, "vnew", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_vnoremenu, "vnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_vsplit, "vsplit", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_vunmap, "vunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_vunmenu, "vunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_write, "write", ex_write, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), + EX(CMD_wNext, "wNext", ex_wnext, +! RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR), + EX(CMD_wall, "wall", do_wqall, +! BANG|TRLBAR|CMDWIN), + EX(CMD_while, "while", ex_while, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN), + EX(CMD_winsize, "winsize", ex_winsize, +! EXTRA|NEEDARG|TRLBAR), + EX(CMD_wincmd, "wincmd", ex_wincmd, +! NEEDARG|WORD1|RANGE|NOTADR), + EX(CMD_windo, "windo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM), + EX(CMD_winpos, "winpos", ex_winpos, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_wnext, "wnext", ex_wnext, +! RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR), + EX(CMD_wprevious, "wprevious", ex_wnext, +! RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR), + EX(CMD_wq, "wq", ex_exit, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR), + EX(CMD_wqall, "wqall", do_wqall, +! BANG|FILE1|ARGOPT|DFLALL|TRLBAR), + EX(CMD_wsverb, "wsverb", ex_wsverb, +! EXTRA|NOTADR|NEEDARG), + EX(CMD_wundo, "wundo", ex_wundo, +! BANG|NEEDARG|FILE1), + EX(CMD_wviminfo, "wviminfo", ex_viminfo, +! BANG|FILE1|TRLBAR|CMDWIN), + EX(CMD_xit, "xit", ex_exit, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN), + EX(CMD_xall, "xall", do_wqall, +! BANG|TRLBAR), + EX(CMD_xmap, "xmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_xmapclear, "xmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN), + EX(CMD_xmenu, "xmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_xnoremap, "xnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_xnoremenu, "xnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_xunmap, "xunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_xunmenu, "xunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN), + EX(CMD_yank, "yank", ex_operators, +! RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN), + EX(CMD_z, "z", ex_z, +! RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN), + + /* commands that don't start with a lowercase letter */ + EX(CMD_bang, "!", ex_bang, +! RANGE|WHOLEFOLD|BANG|FILES|CMDWIN), + EX(CMD_pound, "#", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), + EX(CMD_and, "&", do_sub, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + EX(CMD_star, "*", ex_at, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), + EX(CMD_lshift, "<", ex_operators, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), + EX(CMD_equal, "=", ex_equal, +! RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN), + EX(CMD_rshift, ">", ex_operators, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY), + EX(CMD_at, "@", ex_at, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN), + EX(CMD_Next, "Next", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR), + EX(CMD_Print, "Print", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN), + EX(CMD_X, "X", ex_X, +! TRLBAR), + EX(CMD_tilde, "~", do_sub, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY), + + #ifndef DO_DECLARE_EXCMD + #ifdef FEAT_USR_CMDS +--- 91,1678 ---- + char_u *cmd_name; /* name of the command */ + ex_func_T cmd_func; /* function for this command */ + long_u cmd_argt; /* flags declared above */ ++ int cmd_addr_type; /* flag for address type */ + } + # if defined(FEAT_GUI_W16) + _far + # endif + cmdnames[] = + #else +! # define EX(a, b, c, d, e) a + enum CMD_index + #endif + { + EX(CMD_append, "append", ex_append, +! BANG|RANGE|ZEROR|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_abbreviate, "abbreviate", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_abclear, "abclear", ex_abclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_aboveleft, "aboveleft", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_all, "all", ex_all, +! BANG|RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_amenu, "amenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_anoremenu, "anoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_args, "args", ex_args, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_argadd, "argadd", ex_argadd, +! BANG|NEEDARG|RANGE|NOTADR|ZEROR|FILES|TRLBAR, +! ADDR_ARGUMENTS), + EX(CMD_argdelete, "argdelete", ex_argdelete, +! BANG|RANGE|NOTADR|FILES|TRLBAR, +! ADDR_ARGUMENTS), + EX(CMD_argdo, "argdo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + 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, +! ADDR_LINES), + EX(CMD_arglocal, "arglocal", ex_args, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_argument, "argument", ex_argument, +! BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR, +! ADDR_ARGUMENTS), + EX(CMD_ascii, "ascii", do_ascii, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_autocmd, "autocmd", ex_autocmd, +! BANG|EXTRA|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_augroup, "augroup", ex_autocmd, +! BANG|WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_aunmenu, "aunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_buffer, "buffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR, +! ADDR_UNLOADED_BUFFERS), + EX(CMD_bNext, "bNext", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_ball, "ball", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_badd, "badd", ex_edit, +! NEEDARG|FILE1|EDITCMD|TRLBAR|CMDWIN, +! 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), + EX(CMD_belowright, "belowright", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_bfirst, "bfirst", ex_brewind, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_blast, "blast", ex_blast, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_bmodified, "bmodified", ex_bmodified, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_bnext, "bnext", ex_bnext, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_botright, "botright", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_bprevious, "bprevious", ex_bprevious, +! BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_brewind, "brewind", ex_brewind, +! BANG|RANGE|NOTADR|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_break, "break", ex_break, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_breakadd, "breakadd", ex_breakadd, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_breakdel, "breakdel", ex_breakdel, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_breaklist, "breaklist", ex_breaklist, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_browse, "browse", ex_wrongmodifier, +! 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, +! ADDR_LINES), + EX(CMD_bunload, "bunload", ex_bunload, +! BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR, +! ADDR_LOADED_BUFFERS), + EX(CMD_bwipeout, "bwipeout", ex_bunload, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR, +! ADDR_UNLOADED_BUFFERS), + EX(CMD_change, "change", ex_change, +! BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_cNext, "cNext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cNfile, "cNfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cabbrev, "cabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cabclear, "cabclear", ex_abclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_caddbuffer, "caddbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR, +! ADDR_LINES), + EX(CMD_caddexpr, "caddexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR, +! ADDR_LINES), + EX(CMD_caddfile, "caddfile", ex_cfile, +! TRLBAR|FILE1, +! ADDR_LINES), + EX(CMD_call, "call", ex_call, +! RANGE|NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_catch, "catch", ex_catch, +! EXTRA|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_cbuffer, "cbuffer", ex_cbuffer, +! BANG|RANGE|NOTADR|WORD1|TRLBAR, +! ADDR_LINES), + EX(CMD_cc, "cc", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cclose, "cclose", ex_cclose, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_cd, "cd", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_center, "center", ex_align, +! TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_cexpr, "cexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cfile, "cfile", ex_cfile, +! TRLBAR|FILE1|BANG, +! ADDR_LINES), + EX(CMD_cfirst, "cfirst", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cgetfile, "cgetfile", ex_cfile, +! TRLBAR|FILE1, +! ADDR_LINES), + EX(CMD_cgetbuffer, "cgetbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR, +! ADDR_LINES), + EX(CMD_cgetexpr, "cgetexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR, +! ADDR_LINES), + EX(CMD_chdir, "chdir", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_changes, "changes", ex_changes, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_checkpath, "checkpath", ex_checkpath, +! TRLBAR|BANG|CMDWIN, +! ADDR_LINES), + EX(CMD_checktime, "checktime", ex_checktime, +! RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR, +! ADDR_LINES), + EX(CMD_clist, "clist", qf_list, +! BANG|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_clast, "clast", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_close, "close", ex_close, +! BANG|RANGE|NOTADR|COUNT|TRLBAR|CMDWIN, +! ADDR_WINDOWS), + EX(CMD_cmap, "cmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cmapclear, "cmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_cmenu, "cmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cnext, "cnext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cnewer, "cnewer", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_cnfile, "cnfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cnoremap, "cnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cnoreabbrev, "cnoreabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cnoremenu, "cnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_copy, "copy", ex_copymove, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_colder, "colder", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_colorscheme, "colorscheme", ex_colorscheme, +! WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_command, "command", ex_command, +! EXTRA|BANG|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_comclear, "comclear", ex_comclear, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_compiler, "compiler", ex_compiler, +! BANG|TRLBAR|WORD1|CMDWIN, +! ADDR_LINES), + EX(CMD_continue, "continue", ex_continue, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_confirm, "confirm", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM|CMDWIN, +! ADDR_LINES), + EX(CMD_copen, "copen", ex_copen, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_cprevious, "cprevious", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cpfile, "cpfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cquit, "cquit", ex_cquit, +! TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_crewind, "crewind", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_cscope, "cscope", do_cscope, +! EXTRA|NOTRLCOM|XFILE, +! ADDR_LINES), + EX(CMD_cstag, "cstag", do_cstag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_cunmap, "cunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cunabbrev, "cunabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cunmenu, "cunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_cwindow, "cwindow", ex_cwindow, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_delete, "delete", ex_operators, +! RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_delmarks, "delmarks", ex_delmarks, +! BANG|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_debug, "debug", ex_debug, +! NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_debuggreedy, "debuggreedy", ex_debuggreedy, +! RANGE|NOTADR|ZEROR|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_delcommand, "delcommand", ex_delcommand, +! NEEDARG|WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_delfunction, "delfunction", ex_delfunction, +! NEEDARG|WORD1|CMDWIN, +! ADDR_LINES), + EX(CMD_display, "display", ex_display, +! EXTRA|NOTRLCOM|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_diffupdate, "diffupdate", ex_diffupdate, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_diffget, "diffget", ex_diffgetput, +! RANGE|EXTRA|TRLBAR|MODIFY, +! ADDR_LINES), + EX(CMD_diffoff, "diffoff", ex_diffoff, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_diffpatch, "diffpatch", ex_diffpatch, +! EXTRA|FILE1|TRLBAR|MODIFY, +! ADDR_LINES), + EX(CMD_diffput, "diffput", ex_diffgetput, +! RANGE|EXTRA|TRLBAR, +! ADDR_LINES), + EX(CMD_diffsplit, "diffsplit", ex_diffsplit, +! EXTRA|FILE1|TRLBAR, +! ADDR_LINES), + EX(CMD_diffthis, "diffthis", ex_diffthis, +! TRLBAR, +! ADDR_LINES), + EX(CMD_digraphs, "digraphs", ex_digraphs, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_djump, "djump", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA, +! ADDR_LINES), + EX(CMD_dlist, "dlist", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_doautocmd, "doautocmd", ex_doautocmd, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_doautoall, "doautoall", ex_doautoall, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_drop, "drop", ex_drop, +! FILES|EDITCMD|NEEDARG|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_dsearch, "dsearch", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_dsplit, "dsplit", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA, +! ADDR_LINES), + EX(CMD_edit, "edit", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_earlier, "earlier", ex_later, +! TRLBAR|EXTRA|NOSPC|CMDWIN, +! ADDR_LINES), + EX(CMD_echo, "echo", ex_echo, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_echoerr, "echoerr", ex_execute, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_echohl, "echohl", ex_echohl, +! EXTRA|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_echomsg, "echomsg", ex_execute, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_echon, "echon", ex_echo, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_else, "else", ex_else, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_elseif, "elseif", ex_else, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_emenu, "emenu", ex_emenu, +! NEEDARG|EXTRA|TRLBAR|NOTRLCOM|RANGE|NOTADR|CMDWIN, +! ADDR_LINES), + EX(CMD_endif, "endif", ex_endif, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_endfunction, "endfunction", ex_endfunction, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_endfor, "endfor", ex_endwhile, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_endtry, "endtry", ex_endtry, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_endwhile, "endwhile", ex_endwhile, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_enew, "enew", ex_edit, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_ex, "ex", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_execute, "execute", ex_execute, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_exit, "exit", ex_exit, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_exusage, "exusage", ex_exusage, +! TRLBAR, +! ADDR_LINES), + EX(CMD_file, "file", ex_file, +! 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, +! ADDR_LINES), + EX(CMD_find, "find", ex_find, +! RANGE|NOTADR|BANG|FILE1|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_finally, "finally", ex_finally, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_finish, "finish", ex_finish, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_first, "first", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_fixdel, "fixdel", do_fixdel, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_fold, "fold", ex_fold, +! RANGE|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_foldclose, "foldclose", ex_foldopen, +! RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_folddoopen, "folddoopen", ex_folddo, +! RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_folddoclosed, "folddoclosed", ex_folddo, +! RANGE|DFLALL|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_foldopen, "foldopen", ex_foldopen, +! RANGE|BANG|WHOLEFOLD|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_for, "for", ex_while, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_function, "function", ex_function, +! EXTRA|BANG|CMDWIN, +! ADDR_LINES), + EX(CMD_global, "global", ex_global, +! RANGE|WHOLEFOLD|BANG|EXTRA|DFLALL|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_goto, "goto", ex_goto, +! RANGE|NOTADR|COUNT|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_grep, "grep", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_grepadd, "grepadd", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_gui, "gui", ex_gui, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_gvim, "gvim", ex_gui, +! BANG|FILES|EDITCMD|ARGOPT|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_help, "help", ex_help, +! BANG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_helpclose, "helpclose", ex_helpclose, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_helpfind, "helpfind", ex_helpfind, +! EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_helpgrep, "helpgrep", ex_helpgrep, +! EXTRA|NOTRLCOM|NEEDARG, +! ADDR_LINES), + EX(CMD_helptags, "helptags", ex_helptags, +! NEEDARG|FILES|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_hardcopy, "hardcopy", ex_hardcopy, +! RANGE|COUNT|EXTRA|TRLBAR|DFLALL|BANG, +! ADDR_LINES), + EX(CMD_highlight, "highlight", ex_highlight, +! BANG|EXTRA|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_hide, "hide", ex_hide, +! BANG|RANGE|NOTADR|COUNT|EXTRA|NOTRLCOM, +! ADDR_WINDOWS), + EX(CMD_history, "history", ex_history, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_insert, "insert", ex_append, +! BANG|RANGE|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_iabbrev, "iabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_iabclear, "iabclear", ex_abclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_if, "if", ex_if, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_ijump, "ijump", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA, +! ADDR_LINES), + EX(CMD_ilist, "ilist", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_imap, "imap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_imapclear, "imapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_imenu, "imenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_inoremap, "inoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_inoreabbrev, "inoreabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_inoremenu, "inoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_intro, "intro", ex_intro, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_isearch, "isearch", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_isplit, "isplit", ex_findpat, +! BANG|RANGE|DFLALL|WHOLEFOLD|EXTRA, +! ADDR_LINES), + EX(CMD_iunmap, "iunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_iunabbrev, "iunabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_iunmenu, "iunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_join, "join", ex_join, +! BANG|RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_jumps, "jumps", ex_jumps, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_k, "k", ex_mark, +! RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_keepmarks, "keepmarks", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_keepjumps, "keepjumps", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_keeppatterns, "keeppatterns", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_keepalt, "keepalt", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_list, "list", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_lNext, "lNext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_lNfile, "lNfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_last, "last", ex_last, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_language, "language", ex_language, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_laddexpr, "laddexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR, +! ADDR_LINES), + EX(CMD_laddbuffer, "laddbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR, +! ADDR_LINES), + EX(CMD_laddfile, "laddfile", ex_cfile, +! TRLBAR|FILE1, +! ADDR_LINES), + EX(CMD_later, "later", ex_later, +! TRLBAR|EXTRA|NOSPC|CMDWIN, +! ADDR_LINES), + EX(CMD_lbuffer, "lbuffer", ex_cbuffer, +! BANG|RANGE|NOTADR|WORD1|TRLBAR, +! ADDR_LINES), + EX(CMD_lcd, "lcd", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_lchdir, "lchdir", ex_cd, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_lclose, "lclose", ex_cclose, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_lcscope, "lcscope", do_cscope, +! EXTRA|NOTRLCOM|XFILE, +! ADDR_LINES), + EX(CMD_left, "left", ex_align, +! TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_leftabove, "leftabove", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_let, "let", ex_let, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_lexpr, "lexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_lfile, "lfile", ex_cfile, +! TRLBAR|FILE1|BANG, +! ADDR_LINES), + EX(CMD_lfirst, "lfirst", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_lgetfile, "lgetfile", ex_cfile, +! TRLBAR|FILE1, +! ADDR_LINES), + EX(CMD_lgetbuffer, "lgetbuffer", ex_cbuffer, +! RANGE|NOTADR|WORD1|TRLBAR, +! ADDR_LINES), + EX(CMD_lgetexpr, "lgetexpr", ex_cexpr, +! NEEDARG|WORD1|NOTRLCOM|TRLBAR, +! ADDR_LINES), + EX(CMD_lgrep, "lgrep", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_lgrepadd, "lgrepadd", ex_make, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_lhelpgrep, "lhelpgrep", ex_helpgrep, +! EXTRA|NOTRLCOM|NEEDARG, +! ADDR_LINES), + EX(CMD_ll, "ll", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_llast, "llast", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_llist, "llist", qf_list, +! BANG|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_lmap, "lmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_lmapclear, "lmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_lmake, "lmake", ex_make, +! BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_lnoremap, "lnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_lnext, "lnext", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_lnewer, "lnewer", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_lnfile, "lnfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_loadview, "loadview", ex_loadview, +! FILE1|TRLBAR, +! ADDR_LINES), + EX(CMD_loadkeymap, "loadkeymap", ex_loadkeymap, +! CMDWIN, +! ADDR_LINES), + EX(CMD_lockmarks, "lockmarks", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_lockvar, "lockvar", ex_lockvar, +! BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_lolder, "lolder", qf_age, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_lopen, "lopen", ex_copen, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_lprevious, "lprevious", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_lpfile, "lpfile", ex_cnext, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_lrewind, "lrewind", ex_cc, +! RANGE|NOTADR|COUNT|TRLBAR|BANG, +! ADDR_LINES), + EX(CMD_ltag, "ltag", ex_tag, +! NOTADR|TRLBAR|BANG|WORD1, +! ADDR_LINES), + EX(CMD_lunmap, "lunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_lua, "lua", ex_lua, +! RANGE|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_luado, "luado", ex_luado, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_luafile, "luafile", ex_luafile, +! RANGE|FILE1|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_lvimgrep, "lvimgrep", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_lvimgrepadd, "lvimgrepadd", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_lwindow, "lwindow", ex_cwindow, +! 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, +! ADDR_LINES), + EX(CMD_mark, "mark", ex_mark, +! RANGE|WORD1|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_make, "make", ex_make, +! BANG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_map, "map", ex_map, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_mapclear, "mapclear", ex_mapclear, +! EXTRA|BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_marks, "marks", do_marks, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_match, "match", ex_match, +! RANGE|NOTADR|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_menu, "menu", ex_menu, +! RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_menutranslate, "menutranslate", ex_menutranslate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_messages, "messages", ex_messages, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_mkexrc, "mkexrc", ex_mkrc, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_mksession, "mksession", ex_mkrc, +! BANG|FILE1|TRLBAR, +! ADDR_LINES), + EX(CMD_mkspell, "mkspell", ex_mkspell, +! BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_mkvimrc, "mkvimrc", ex_mkrc, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_mkview, "mkview", ex_mkrc, +! BANG|FILE1|TRLBAR, +! ADDR_LINES), + EX(CMD_mode, "mode", ex_mode, +! WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_mzscheme, "mzscheme", ex_mzscheme, +! RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN|SBOXOK, +! ADDR_LINES), + EX(CMD_mzfile, "mzfile", ex_mzfile, +! RANGE|FILE1|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_next, "next", ex_next, +! RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_nbkey, "nbkey", ex_nbkey, +! EXTRA|NOTADR|NEEDARG, +! ADDR_LINES), + EX(CMD_nbclose, "nbclose", ex_nbclose, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_nbstart, "nbstart", ex_nbstart, +! WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_new, "new", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_nmap, "nmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_nmapclear, "nmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_nmenu, "nmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_nnoremap, "nnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_nnoremenu, "nnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_noremap, "noremap", ex_map, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_noautocmd, "noautocmd", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_nohlsearch, "nohlsearch", ex_nohlsearch, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_noreabbrev, "noreabbrev", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_noremenu, "noremenu", ex_menu, +! RANGE|NOTADR|ZEROR|BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_noswapfile, "noswapfile", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_normal, "normal", ex_normal, +! RANGE|BANG|EXTRA|NEEDARG|NOTRLCOM|USECTRLV|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_number, "number", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_nunmap, "nunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_nunmenu, "nunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_open, "open", ex_open, +! RANGE|BANG|EXTRA, +! ADDR_LINES), + EX(CMD_oldfiles, "oldfiles", ex_oldfiles, +! BANG|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_omap, "omap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_omapclear, "omapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_omenu, "omenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_only, "only", ex_only, +! BANG|NOTADR|RANGE|COUNT|TRLBAR, +! ADDR_WINDOWS), + EX(CMD_onoremap, "onoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_onoremenu, "onoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_options, "options", ex_options, +! TRLBAR, +! ADDR_LINES), + EX(CMD_ounmap, "ounmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_ounmenu, "ounmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_ownsyntax, "ownsyntax", ex_ownsyntax, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_print, "print", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|SBOXOK, +! ADDR_LINES), + EX(CMD_pclose, "pclose", ex_pclose, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_perl, "perl", ex_perl, +! RANGE|EXTRA|DFLALL|NEEDARG|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_perldo, "perldo", ex_perldo, +! RANGE|EXTRA|DFLALL|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_pedit, "pedit", ex_pedit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_pop, "pop", ex_tag, +! RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_popup, "popup", ex_popup, +! NEEDARG|EXTRA|BANG|TRLBAR|NOTRLCOM|CMDWIN, +! ADDR_LINES), + EX(CMD_ppop, "ppop", ex_ptag, +! RANGE|NOTADR|BANG|COUNT|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_preserve, "preserve", ex_preserve, +! TRLBAR, +! ADDR_LINES), + EX(CMD_previous, "previous", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_promptfind, "promptfind", gui_mch_find_dialog, +! EXTRA|NOTRLCOM|CMDWIN, +! ADDR_LINES), + EX(CMD_promptrepl, "promptrepl", gui_mch_replace_dialog, +! EXTRA|NOTRLCOM|CMDWIN, +! ADDR_LINES), + EX(CMD_profile, "profile", ex_profile, +! BANG|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_profdel, "profdel", ex_breakdel, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_psearch, "psearch", ex_psearch, +! BANG|RANGE|WHOLEFOLD|DFLALL|EXTRA, +! ADDR_LINES), + EX(CMD_ptag, "ptag", ex_ptag, +! RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_ptNext, "ptNext", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_ptfirst, "ptfirst", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_ptjump, "ptjump", ex_ptag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_ptlast, "ptlast", ex_ptag, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_ptnext, "ptnext", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_ptprevious, "ptprevious", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_ptrewind, "ptrewind", ex_ptag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_ptselect, "ptselect", ex_ptag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_put, "put", ex_put, +! RANGE|WHOLEFOLD|BANG|REGSTR|TRLBAR|ZEROR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_pwd, "pwd", ex_pwd, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_python, "python", ex_python, +! RANGE|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_pydo, "pydo", ex_pydo, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_pyfile, "pyfile", ex_pyfile, +! RANGE|FILE1|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_py3, "py3", ex_py3, +! RANGE|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_py3do, "py3do", ex_py3do, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_python3, "python3", ex_py3, +! RANGE|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_py3file, "py3file", ex_py3file, +! RANGE|FILE1|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_quit, "quit", ex_quit, +! BANG|RANGE|COUNT|NOTADR|TRLBAR|CMDWIN, +! ADDR_WINDOWS), + EX(CMD_quitall, "quitall", ex_quit_all, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_qall, "qall", ex_quit_all, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_read, "read", ex_read, +! BANG|RANGE|WHOLEFOLD|FILE1|ARGOPT|TRLBAR|ZEROR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_recover, "recover", ex_recover, +! BANG|FILE1|TRLBAR, +! ADDR_LINES), + EX(CMD_redo, "redo", ex_redo, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_redir, "redir", ex_redir, +! BANG|FILES|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_redraw, "redraw", ex_redraw, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_redrawstatus, "redrawstatus", ex_redrawstatus, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_registers, "registers", ex_display, +! EXTRA|NOTRLCOM|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_resize, "resize", ex_resize, +! RANGE|NOTADR|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_retab, "retab", ex_retab, +! TRLBAR|RANGE|WHOLEFOLD|DFLALL|BANG|WORD1|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_return, "return", ex_return, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_rewind, "rewind", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_right, "right", ex_align, +! TRLBAR|RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_rightbelow, "rightbelow", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_runtime, "runtime", ex_runtime, +! BANG|NEEDARG|FILES|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_ruby, "ruby", ex_ruby, +! RANGE|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_rubydo, "rubydo", ex_rubydo, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_rubyfile, "rubyfile", ex_rubyfile, +! RANGE|FILE1|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_rundo, "rundo", ex_rundo, +! NEEDARG|FILE1, +! ADDR_LINES), + EX(CMD_rviminfo, "rviminfo", ex_viminfo, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_substitute, "substitute", do_sub, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_sNext, "sNext", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_sargument, "sargument", ex_argument, +! BANG|RANGE|NOTADR|COUNT|EXTRA|EDITCMD|ARGOPT|TRLBAR, +! ADDR_ARGUMENTS), + EX(CMD_sall, "sall", ex_all, +! BANG|RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_sandbox, "sandbox", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_saveas, "saveas", ex_write, +! BANG|DFLALL|FILE1|ARGOPT|CMDWIN|TRLBAR, +! ADDR_LINES), + EX(CMD_sbuffer, "sbuffer", ex_buffer, +! BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR, +! ADDR_UNLOADED_BUFFERS), + EX(CMD_sbNext, "sbNext", ex_bprevious, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sball, "sball", ex_buffer_all, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sbfirst, "sbfirst", ex_brewind, +! EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sblast, "sblast", ex_blast, +! EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sbmodified, "sbmodified", ex_bmodified, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sbnext, "sbnext", ex_bnext, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sbprevious, "sbprevious", ex_bprevious, +! RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_sbrewind, "sbrewind", ex_brewind, +! EDITCMD|TRLBAR, +! ADDR_LINES), + EX(CMD_scriptnames, "scriptnames", ex_scriptnames, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_scriptencoding, "scriptencoding", ex_scriptencoding, +! WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_scscope, "scscope", do_scscope, +! EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_set, "set", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK, +! ADDR_LINES), + EX(CMD_setfiletype, "setfiletype", ex_setfiletype, +! TRLBAR|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_setglobal, "setglobal", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK, +! ADDR_LINES), + EX(CMD_setlocal, "setlocal", ex_set, +! TRLBAR|EXTRA|CMDWIN|SBOXOK, +! ADDR_LINES), + EX(CMD_sfind, "sfind", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_sfirst, "sfirst", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_shell, "shell", ex_shell, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_simalt, "simalt", ex_simalt, +! NEEDARG|WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_sign, "sign", ex_sign, +! NEEDARG|RANGE|NOTADR|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_silent, "silent", ex_wrongmodifier, +! NEEDARG|EXTRA|BANG|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_sleep, "sleep", ex_sleep, +! RANGE|NOTADR|COUNT|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_slast, "slast", ex_last, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_smagic, "smagic", ex_submagic, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_smap, "smap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_smapclear, "smapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_smenu, "smenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_snext, "snext", ex_next, +! RANGE|NOTADR|BANG|FILES|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_sniff, "sniff", ex_sniff, +! EXTRA|TRLBAR, +! ADDR_LINES), + EX(CMD_snomagic, "snomagic", ex_submagic, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN, +! ADDR_LINES), + EX(CMD_snoremap, "snoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_snoremenu, "snoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_source, "source", ex_source, +! BANG|FILE1|TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_sort, "sort", ex_sort, +! RANGE|DFLALL|WHOLEFOLD|BANG|EXTRA|NOTRLCOM|MODIFY, +! ADDR_LINES), + EX(CMD_split, "split", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_spellgood, "spellgood", ex_spell, +! BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR, +! ADDR_LINES), + EX(CMD_spelldump, "spelldump", ex_spelldump, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_spellinfo, "spellinfo", ex_spellinfo, +! TRLBAR, +! ADDR_LINES), + EX(CMD_spellrepall, "spellrepall", ex_spellrepall, +! TRLBAR, +! ADDR_LINES), + EX(CMD_spellundo, "spellundo", ex_spell, +! BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR, +! ADDR_LINES), + EX(CMD_spellwrong, "spellwrong", ex_spell, +! BANG|RANGE|NOTADR|NEEDARG|EXTRA|TRLBAR, +! ADDR_LINES), + EX(CMD_sprevious, "sprevious", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_srewind, "srewind", ex_rewind, +! EXTRA|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_stop, "stop", ex_stop, +! TRLBAR|BANG|CMDWIN, +! ADDR_LINES), + EX(CMD_stag, "stag", ex_stag, +! RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_startinsert, "startinsert", ex_startinsert, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_startgreplace, "startgreplace", ex_startinsert, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_startreplace, "startreplace", ex_startinsert, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_stopinsert, "stopinsert", ex_stopinsert, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_stjump, "stjump", ex_stag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_stselect, "stselect", ex_stag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_sunhide, "sunhide", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_sunmap, "sunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_sunmenu, "sunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_suspend, "suspend", ex_stop, +! TRLBAR|BANG|CMDWIN, +! ADDR_LINES), + EX(CMD_sview, "sview", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_swapname, "swapname", ex_swapname, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_syntax, "syntax", ex_syntax, +! EXTRA|NOTRLCOM|CMDWIN, +! ADDR_LINES), + EX(CMD_syntime, "syntime", ex_syntime, +! NEEDARG|WORD1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_syncbind, "syncbind", ex_syncbind, +! TRLBAR, +! ADDR_LINES), + EX(CMD_t, "t", ex_copymove, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_tNext, "tNext", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_tag, "tag", ex_tag, +! RANGE|NOTADR|BANG|WORD1|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_tags, "tags", do_tags, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_tab, "tab", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_tabclose, "tabclose", ex_tabclose, +! RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN, +! ADDR_TABS), + EX(CMD_tabdo, "tabdo", ex_listdo, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_tabedit, "tabedit", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_TABS), + EX(CMD_tabfind, "tabfind", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|NEEDARG|TRLBAR, +! ADDR_TABS), + EX(CMD_tabfirst, "tabfirst", ex_tabnext, +! TRLBAR, +! ADDR_LINES), + EX(CMD_tabmove, "tabmove", ex_tabmove, +! RANGE|NOTADR|ZEROR|EXTRA|NOSPC|TRLBAR, +! ADDR_TABS), + EX(CMD_tablast, "tablast", ex_tabnext, +! TRLBAR, +! ADDR_LINES), + EX(CMD_tabnext, "tabnext", ex_tabnext, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_tabnew, "tabnew", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_TABS), + EX(CMD_tabonly, "tabonly", ex_tabonly, +! BANG|RANGE|NOTADR|TRLBAR|CMDWIN, +! ADDR_TABS), + EX(CMD_tabprevious, "tabprevious", ex_tabnext, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_tabNext, "tabNext", ex_tabnext, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_tabrewind, "tabrewind", ex_tabnext, +! TRLBAR, +! ADDR_LINES), + EX(CMD_tabs, "tabs", ex_tabs, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_tcl, "tcl", ex_tcl, +! RANGE|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_tcldo, "tcldo", ex_tcldo, +! RANGE|DFLALL|EXTRA|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_tclfile, "tclfile", ex_tclfile, +! RANGE|FILE1|NEEDARG|CMDWIN, +! ADDR_LINES), + EX(CMD_tearoff, "tearoff", ex_tearoff, +! NEEDARG|EXTRA|TRLBAR|NOTRLCOM|CMDWIN, +! ADDR_LINES), + EX(CMD_tfirst, "tfirst", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_throw, "throw", ex_throw, +! EXTRA|NEEDARG|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_tjump, "tjump", ex_tag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_tlast, "tlast", ex_tag, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_tmenu, "tmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_tnext, "tnext", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_topleft, "topleft", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_tprevious, "tprevious", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_trewind, "trewind", ex_tag, +! RANGE|NOTADR|BANG|TRLBAR|ZEROR, +! ADDR_LINES), + EX(CMD_try, "try", ex_try, +! TRLBAR|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_tselect, "tselect", ex_tag, +! BANG|TRLBAR|WORD1, +! ADDR_LINES), + EX(CMD_tunmenu, "tunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_undo, "undo", ex_undo, +! RANGE|NOTADR|COUNT|ZEROR|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_undojoin, "undojoin", ex_undojoin, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_undolist, "undolist", ex_undolist, +! TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_unabbreviate, "unabbreviate", ex_abbreviate, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_unhide, "unhide", ex_buffer_all, +! RANGE|NOTADR|COUNT|TRLBAR, +! ADDR_LINES), + EX(CMD_unlet, "unlet", ex_unlet, +! BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_unlockvar, "unlockvar", ex_lockvar, +! BANG|EXTRA|NEEDARG|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_unmap, "unmap", ex_unmap, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_unmenu, "unmenu", ex_menu, +! BANG|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_unsilent, "unsilent", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_update, "update", ex_update, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR, +! ADDR_LINES), + EX(CMD_vglobal, "vglobal", ex_global, +! RANGE|WHOLEFOLD|EXTRA|DFLALL|CMDWIN, +! ADDR_LINES), + EX(CMD_version, "version", ex_version, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_verbose, "verbose", ex_wrongmodifier, +! NEEDARG|RANGE|NOTADR|EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_vertical, "vertical", ex_wrongmodifier, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_visual, "visual", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_view, "view", ex_edit, +! BANG|FILE1|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_vimgrep, "vimgrep", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_vimgrepadd, "vimgrepadd", ex_vimgrep, +! RANGE|NOTADR|BANG|NEEDARG|EXTRA|NOTRLCOM|TRLBAR|XFILE, +! ADDR_LINES), + EX(CMD_viusage, "viusage", ex_viusage, +! TRLBAR, +! ADDR_LINES), + EX(CMD_vmap, "vmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_vmapclear, "vmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_vmenu, "vmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_vnoremap, "vnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_vnew, "vnew", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_vnoremenu, "vnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_vsplit, "vsplit", ex_splitview, +! BANG|FILE1|RANGE|NOTADR|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_vunmap, "vunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_vunmenu, "vunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_write, "write", ex_write, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_wNext, "wNext", ex_wnext, +! RANGE|WHOLEFOLD|NOTADR|BANG|FILE1|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_wall, "wall", do_wqall, +! BANG|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_while, "while", ex_while, +! EXTRA|NOTRLCOM|SBOXOK|CMDWIN, +! ADDR_LINES), + EX(CMD_winsize, "winsize", ex_winsize, +! EXTRA|NEEDARG|TRLBAR, +! ADDR_LINES), + EX(CMD_wincmd, "wincmd", ex_wincmd, +! NEEDARG|WORD1|RANGE|NOTADR, +! ADDR_LINES), + EX(CMD_windo, "windo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_winpos, "winpos", ex_winpos, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_wnext, "wnext", ex_wnext, +! RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_wprevious, "wprevious", ex_wnext, +! RANGE|NOTADR|BANG|FILE1|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_wq, "wq", ex_exit, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR, +! ADDR_LINES), + EX(CMD_wqall, "wqall", do_wqall, +! BANG|FILE1|ARGOPT|DFLALL|TRLBAR, +! ADDR_LINES), + EX(CMD_wsverb, "wsverb", ex_wsverb, +! EXTRA|NOTADR|NEEDARG, +! ADDR_LINES), + EX(CMD_wundo, "wundo", ex_wundo, +! BANG|NEEDARG|FILE1, +! ADDR_LINES), + EX(CMD_wviminfo, "wviminfo", ex_viminfo, +! BANG|FILE1|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_xit, "xit", ex_exit, +! RANGE|WHOLEFOLD|BANG|FILE1|ARGOPT|DFLALL|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_xall, "xall", do_wqall, +! BANG|TRLBAR, +! ADDR_LINES), + EX(CMD_xmap, "xmap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_xmapclear, "xmapclear", ex_mapclear, +! EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_xmenu, "xmenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_xnoremap, "xnoremap", ex_map, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_xnoremenu, "xnoremenu", ex_menu, +! RANGE|NOTADR|ZEROR|EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_xunmap, "xunmap", ex_unmap, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_xunmenu, "xunmenu", ex_menu, +! EXTRA|TRLBAR|NOTRLCOM|USECTRLV|CMDWIN, +! ADDR_LINES), + EX(CMD_yank, "yank", ex_operators, +! RANGE|WHOLEFOLD|REGSTR|COUNT|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_z, "z", ex_z, +! RANGE|WHOLEFOLD|EXTRA|EXFLAGS|TRLBAR|CMDWIN, +! ADDR_LINES), + + /* commands that don't start with a lowercase letter */ + EX(CMD_bang, "!", ex_bang, +! RANGE|WHOLEFOLD|BANG|FILES|CMDWIN, +! ADDR_LINES), + EX(CMD_pound, "#", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_and, "&", do_sub, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_star, "*", ex_at, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_lshift, "<", ex_operators, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_equal, "=", ex_equal, +! RANGE|TRLBAR|DFLALL|EXFLAGS|CMDWIN, +! ADDR_LINES), + EX(CMD_rshift, ">", ex_operators, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN|MODIFY, +! ADDR_LINES), + EX(CMD_at, "@", ex_at, +! RANGE|WHOLEFOLD|EXTRA|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_Next, "Next", ex_previous, +! EXTRA|RANGE|NOTADR|COUNT|BANG|EDITCMD|ARGOPT|TRLBAR, +! ADDR_LINES), + EX(CMD_Print, "Print", ex_print, +! RANGE|WHOLEFOLD|COUNT|EXFLAGS|TRLBAR|CMDWIN, +! ADDR_LINES), + EX(CMD_X, "X", ex_X, +! TRLBAR, +! ADDR_LINES), + EX(CMD_tilde, "~", do_sub, +! RANGE|WHOLEFOLD|EXTRA|CMDWIN|MODIFY, +! ADDR_LINES), + + #ifndef DO_DECLARE_EXCMD + #ifdef FEAT_USR_CMDS +*************** +*** 1172,1177 **** +--- 1704,1710 ---- + int addr_count; /* the number of addresses given */ + linenr_T line1; /* the first line number */ + linenr_T line2; /* the second line number or count */ ++ int addr_type; /* type of the count/range */ + int flags; /* extra flags after count: EXFLAG_ */ + char_u *do_ecmd_cmd; /* +command arg to be used in edited file */ + linenr_T do_ecmd_lnum; /* the line number in an edited file */ +*** ../vim-7.4.529/src/ex_docmd.c 2014-11-12 15:15:34.975882161 +0100 +--- src/ex_docmd.c 2014-11-27 15:26:52.667097859 +0100 +*************** +*** 60,65 **** +--- 60,66 ---- + # define IS_USER_CMDIDX(idx) (FALSE) + #endif + ++ static int compute_buffer_local_count __ARGS((int addr_type, int lnum, int local)); + #ifdef FEAT_EVAL + static char_u *do_one_cmd __ARGS((char_u **, int, struct condstack *, char_u *(*fgetline)(int, void *, int), void *cookie)); + #else +*************** +*** 133,139 **** + #endif + + static int check_more __ARGS((int, int)); +! static linenr_T get_address __ARGS((char_u **, int skip, int to_other_file)); + static void get_flags __ARGS((exarg_T *eap)); + #if !defined(FEAT_PERL) \ + || !defined(FEAT_PYTHON) || !defined(FEAT_PYTHON3) \ +--- 134,140 ---- + #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) \ +*************** +*** 1680,1685 **** +--- 1681,1719 ---- + } + #endif + ++ ++ /* ++ * Helper function to apply an offset for buffer commands, i.e. ":bdelete", ++ * ":bwipeout", etc. ++ * Returns the buffer number. ++ */ ++ static int ++ compute_buffer_local_count(addr_type, lnum, offset) ++ int addr_type; ++ int lnum; ++ int offset; ++ { ++ buf_T *buf; ++ int count = offset; ++ ++ buf = firstbuf; ++ while (buf->b_next != NULL && buf->b_fnum < lnum) ++ buf = buf->b_next; ++ while (count != 0) ++ { ++ count += (count < 0) ? 1 : -1; ++ if (buf->b_prev == NULL) ++ break; ++ buf = (count < 0) ? buf->b_prev : buf->b_next; ++ if (addr_type == ADDR_LOADED_BUFFERS) ++ /* skip over unloaded buffers */ ++ while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL) ++ buf = (count < 0) ? buf->b_prev : buf->b_next; ++ } ++ return buf->b_fnum; ++ } ++ ++ + /* + * Execute one Ex command. + * +*************** +*** 1687,1696 **** + * + * 1. skip comment lines and leading space + * 2. handle command modifiers +! * 3. parse range +! * 4. parse command +! * 5. parse arguments +! * 6. switch on command name + * + * Note: "fgetline" can be NULL. + * +--- 1721,1730 ---- + * + * 1. skip comment lines and leading space + * 2. handle command modifiers +! * 3. parse command +! * 4. parse range +! * 6. parse arguments +! * 7. switch on command name + * + * Note: "fgetline" can be NULL. + * +*************** +*** 1730,1735 **** +--- 1764,1772 ---- + #endif + cmdmod_T save_cmdmod; + int ni; /* set when Not Implemented */ ++ win_T *wp; ++ tabpage_T *tp; ++ char_u *cmd; + + vim_memset(&ea, 0, sizeof(ea)); + ea.line1 = 1; +*************** +*** 1769,1775 **** + for (;;) + { + /* +! * 1. skip comment lines and leading white space and colons + */ + while (*ea.cmd == ' ' || *ea.cmd == '\t' || *ea.cmd == ':') + ++ea.cmd; +--- 1806,1812 ---- + for (;;) + { + /* +! * 1. Skip comment lines and leading white space and colons. + */ + while (*ea.cmd == ' ' || *ea.cmd == '\t' || *ea.cmd == ':') + ++ea.cmd; +*************** +*** 1794,1800 **** + } + + /* +! * 2. handle command modifiers. + */ + p = ea.cmd; + if (VIM_ISDIGIT(*ea.cmd)) +--- 1831,1837 ---- + } + + /* +! * 2. Handle command modifiers. + */ + p = ea.cmd; + if (VIM_ISDIGIT(*ea.cmd)) +*************** +*** 2003,2009 **** + #endif + + /* +! * 3. parse a range specifier of the form: addr [,addr] [;addr] .. + * + * where 'addr' is: + * +--- 2040,2057 ---- + #endif + + /* +! * 3. Skip over the range to find the command. Let "p" point to after it. +! * +! * We need the command to know what kind of range it uses. +! */ +! cmd = ea.cmd; +! ea.cmd = skip_range(ea.cmd, NULL); +! if (*ea.cmd == '*' && vim_strchr(p_cpo, CPO_STAR) == NULL) +! ea.cmd = skipwhite(ea.cmd + 1); +! p = find_command(&ea, NULL); +! +! /* +! * 4. parse a range specifier of the form: addr [,addr] [;addr] .. + * + * where 'addr' is: + * +*************** +*** 2019,2031 **** + * is equal to the lower. + */ + + /* repeat for all ',' or ';' separated addresses */ + for (;;) + { + ea.line1 = ea.line2; +! ea.line2 = curwin->w_cursor.lnum; /* default is current line number */ + ea.cmd = skipwhite(ea.cmd); +! lnum = get_address(&ea.cmd, ea.skip, ea.addr_count == 0); + if (ea.cmd == NULL) /* error detected */ + goto doend; + if (lnum == MAXLNUM) +--- 2067,2118 ---- + * is equal to the lower. + */ + ++ if (ea.cmdidx != CMD_SIZE) ++ ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; ++ else ++ ea.addr_type = ADDR_LINES; ++ ea.cmd = cmd; ++ + /* repeat for all ',' or ';' separated addresses */ + for (;;) + { + ea.line1 = ea.line2; +! switch (ea.addr_type) +! { +! case ADDR_LINES: +! /* default is current line number */ +! ea.line2 = curwin->w_cursor.lnum; +! break; +! case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } +! ea.line2 = lnum; +! break; +! case ADDR_ARGUMENTS: +! ea.line2 = curwin->w_arg_idx + 1; +! break; +! case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: +! ea.line2 = curbuf->b_fnum; +! break; +! case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } +! 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) +*************** +*** 2033,2040 **** + if (*ea.cmd == '%') /* '%' - all lines */ + { + ++ea.cmd; +! ea.line1 = 1; +! ea.line2 = curbuf->b_ml.ml_line_count; + ++ea.addr_count; + } + /* '*' - visual area */ +--- 2120,2143 ---- + if (*ea.cmd == '%') /* '%' - all lines */ + { + ++ea.cmd; +! switch (ea.addr_type) +! { +! case ADDR_LINES: +! ea.line1 = 1; +! ea.line2 = curbuf->b_ml.ml_line_count; +! break; +! case ADDR_WINDOWS: +! case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: +! case ADDR_TABS: +! errormsg = (char_u *)_(e_invrange); +! goto doend; +! break; +! case ADDR_ARGUMENTS: +! ea.line1 = 1; +! ea.line2 = ARGCOUNT; +! break; +! } + ++ea.addr_count; + } + /* '*' - visual area */ +*************** +*** 2042,2047 **** +--- 2145,2156 ---- + { + pos_T *fp; + ++ if (ea.addr_type != ADDR_LINES) ++ { ++ errormsg = (char_u *)_(e_invrange); ++ goto doend; ++ } ++ + ++ea.cmd; + if (!ea.skip) + { +*************** +*** 2084,2090 **** + check_cursor_lnum(); + + /* +! * 4. parse command + */ + + /* +--- 2193,2199 ---- + check_cursor_lnum(); + + /* +! * 5. Parse the command. + */ + + /* +*************** +*** 2098,2105 **** + * If we got a line, but no command, then go to the line. + * If we find a '|' or '\n' we set ea.nextcmd. + */ +! if (*ea.cmd == NUL || *ea.cmd == '"' || +! (ea.nextcmd = check_nextcmd(ea.cmd)) != NULL) + { + /* + * strange vi behaviour: +--- 2207,2214 ---- + * If we got a line, but no command, then go to the line. + * If we find a '|' or '\n' we set ea.nextcmd. + */ +! if (*ea.cmd == NUL || *ea.cmd == '"' +! || (ea.nextcmd = check_nextcmd(ea.cmd)) != NULL) + { + /* + * strange vi behaviour: +*************** +*** 2145,2153 **** + goto doend; + } + +- /* Find the command and let "p" point to after it. */ +- p = find_command(&ea, NULL); +- + #ifdef FEAT_AUTOCMD + /* If this looks like an undefined user command and there are CmdUndefined + * autocommands defined, trigger the matching autocommands. */ +--- 2254,2259 ---- +*************** +*** 2229,2235 **** + ea.forceit = FALSE; + + /* +! * 5. parse arguments + */ + if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; +--- 2335,2341 ---- + ea.forceit = FALSE; + + /* +! * 5. Parse arguments. + */ + if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; +*************** +*** 2676,2682 **** + #endif + + /* +! * 6. switch on command name + * + * The "ea" structure holds the arguments that can be used. + */ +--- 2782,2788 ---- + #endif + + /* +! * 6. Switch on command name. + * + * The "ea" structure holds the arguments that can be used. + */ +*************** +*** 4082,4089 **** + * Return MAXLNUM when no Ex address was found. + */ + static linenr_T +! get_address(ptr, skip, to_other_file) + char_u **ptr; + int skip; /* only skip the address, don't use it */ + int to_other_file; /* flag: may jump to other file */ + { +--- 4188,4196 ---- + * 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 */ + int to_other_file; /* flag: may jump to other file */ + { +*************** +*** 4094,4099 **** +--- 4201,4208 ---- + pos_T pos; + pos_T *fp; + linenr_T lnum; ++ win_T *wp; ++ tabpage_T *tp; + + cmd = skipwhite(*ptr); + lnum = MAXLNUM; +*************** +*** 4102,4238 **** + switch (*cmd) + { + case '.': /* '.' - Cursor position */ +! ++cmd; + lnum = curwin->w_cursor.lnum; + break; + + case '$': /* '$' - last line */ +! ++cmd; + lnum = curbuf->b_ml.ml_line_count; + break; + + case '\'': /* ''' - mark */ +! if (*++cmd == NUL) + { + cmd = NULL; + goto error; + } +! if (skip) +! ++cmd; +! else +! { +! /* Only accept a mark in another file when it is +! * used by itself: ":'M". */ +! fp = getmark(*cmd, to_other_file && cmd[1] == NUL); +! ++cmd; +! if (fp == (pos_T *)-1) +! /* Jumped to another file. */ +! lnum = curwin->w_cursor.lnum; +! else +! { +! if (check_mark(fp) == FAIL) +! { +! cmd = NULL; +! goto error; +! } +! lnum = fp->lnum; +! } +! } +! break; + + case '/': + case '?': /* '/' or '?' - search */ +! c = *cmd++; +! if (skip) /* skip "/pat/" */ +! { +! cmd = skip_regexp(cmd, c, (int)p_magic, NULL); +! if (*cmd == c) +! ++cmd; +! } +! else +! { +! pos = curwin->w_cursor; /* save curwin->w_cursor */ +! /* +! * When '/' or '?' follows another address, start +! * from there. +! */ +! if (lnum != MAXLNUM) +! curwin->w_cursor.lnum = lnum; +! /* +! * Start a forward search at the end of the line. +! * Start a backward search at the start of the line. +! * This makes sure we never match in the current +! * line, and can match anywhere in the +! * next/previous line. +! */ +! if (c == '/') +! curwin->w_cursor.col = MAXCOL; +! else +! curwin->w_cursor.col = 0; +! searchcmdlen = 0; +! if (!do_search(NULL, c, cmd, 1L, +! SEARCH_HIS | SEARCH_MSG, NULL)) +! { +! curwin->w_cursor = pos; +! cmd = NULL; +! goto error; +! } +! lnum = curwin->w_cursor.lnum; +! curwin->w_cursor = pos; +! /* adjust command string pointer */ +! cmd += searchcmdlen; +! } +! break; + + case '\\': /* "\?", "\/" or "\&", repeat search */ +! ++cmd; +! if (*cmd == '&') +! i = RE_SUBST; +! else if (*cmd == '?' || *cmd == '/') +! i = RE_SEARCH; +! else +! { +! EMSG(_(e_backslash)); +! cmd = NULL; +! goto error; +! } + +! if (!skip) +! { +! /* +! * When search follows another address, start from +! * there. +! */ +! if (lnum != MAXLNUM) +! pos.lnum = lnum; +! else +! pos.lnum = curwin->w_cursor.lnum; + +! /* +! * Start the search just like for the above +! * do_search(). +! */ +! if (*cmd != '?') +! pos.col = MAXCOL; +! else +! pos.col = 0; +! if (searchit(curwin, curbuf, &pos, +! *cmd == '?' ? BACKWARD : FORWARD, +! (char_u *)"", 1L, SEARCH_MSG, +! i, (linenr_T)0, NULL) != FAIL) +! lnum = pos.lnum; +! else +! { +! cmd = NULL; +! goto error; +! } +! } +! ++cmd; +! break; + + default: +! if (VIM_ISDIGIT(*cmd)) /* absolute line number */ +! lnum = getdigits(&cmd); + } + + for (;;) +--- 4211,4414 ---- + switch (*cmd) + { + case '.': /* '.' - Cursor position */ +! ++cmd; +! switch (addr_type) +! { +! case ADDR_LINES: + lnum = curwin->w_cursor.lnum; + break; ++ case ADDR_WINDOWS: ++ lnum = 0; ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ { ++ lnum++; ++ if (wp == curwin) ++ break; ++ } ++ break; ++ case ADDR_ARGUMENTS: ++ lnum = curwin->w_arg_idx + 1; ++ break; ++ case ADDR_LOADED_BUFFERS: ++ case ADDR_UNLOADED_BUFFERS: ++ lnum = curbuf->b_fnum; ++ break; ++ case ADDR_TABS: ++ lnum = 0; ++ for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) ++ { ++ lnum++; ++ if (tp == curtab) ++ break; ++ } ++ break; ++ } ++ break; + + case '$': /* '$' - last line */ +! ++cmd; +! switch (addr_type) +! { +! case ADDR_LINES: + lnum = curbuf->b_ml.ml_line_count; + break; ++ case ADDR_WINDOWS: ++ lnum = 0; ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ lnum++; ++ break; ++ case ADDR_ARGUMENTS: ++ lnum = ARGCOUNT; ++ break; ++ case ADDR_LOADED_BUFFERS: ++ case ADDR_UNLOADED_BUFFERS: ++ lnum = lastbuf->b_fnum; ++ break; ++ case ADDR_TABS: ++ lnum = 0; ++ for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) ++ lnum++; ++ break; ++ } ++ break; + + case '\'': /* ''' - mark */ +! if (*++cmd == NUL) +! { +! cmd = NULL; +! goto error; +! } +! if (addr_type != ADDR_LINES) +! { +! EMSG(_(e_invaddr)); +! goto error; +! } +! if (skip) +! ++cmd; +! else +! { +! /* Only accept a mark in another file when it is +! * used by itself: ":'M". */ +! fp = getmark(*cmd, to_other_file && cmd[1] == NUL); +! ++cmd; +! if (fp == (pos_T *)-1) +! /* Jumped to another file. */ +! lnum = curwin->w_cursor.lnum; +! else +! { +! if (check_mark(fp) == FAIL) + { + cmd = NULL; + goto error; + } +! lnum = fp->lnum; +! } +! } +! break; + + case '/': + case '?': /* '/' or '?' - search */ +! c = *cmd++; +! if (addr_type != ADDR_LINES) +! { +! EMSG(_(e_invaddr)); +! goto error; +! } +! if (skip) /* skip "/pat/" */ +! { +! cmd = skip_regexp(cmd, c, (int)p_magic, NULL); +! if (*cmd == c) +! ++cmd; +! } +! else +! { +! pos = curwin->w_cursor; /* save curwin->w_cursor */ +! /* +! * When '/' or '?' follows another address, start +! * from there. +! */ +! if (lnum != MAXLNUM) +! curwin->w_cursor.lnum = lnum; +! /* +! * Start a forward search at the end of the line. +! * Start a backward search at the start of the line. +! * This makes sure we never match in the current +! * line, and can match anywhere in the +! * next/previous line. +! */ +! if (c == '/') +! curwin->w_cursor.col = MAXCOL; +! else +! curwin->w_cursor.col = 0; +! searchcmdlen = 0; +! if (!do_search(NULL, c, cmd, 1L, +! SEARCH_HIS | SEARCH_MSG, NULL)) +! { +! curwin->w_cursor = pos; +! cmd = NULL; +! goto error; +! } +! lnum = curwin->w_cursor.lnum; +! curwin->w_cursor = pos; +! /* adjust command string pointer */ +! cmd += searchcmdlen; +! } +! break; + + case '\\': /* "\?", "\/" or "\&", repeat search */ +! ++cmd; +! if (addr_type != ADDR_LINES) +! { +! EMSG(_(e_invaddr)); +! goto error; +! } +! if (*cmd == '&') +! i = RE_SUBST; +! else if (*cmd == '?' || *cmd == '/') +! i = RE_SEARCH; +! else +! { +! EMSG(_(e_backslash)); +! cmd = NULL; +! goto error; +! } + +! if (!skip) +! { +! /* +! * When search follows another address, start from +! * there. +! */ +! if (lnum != MAXLNUM) +! pos.lnum = lnum; +! else +! pos.lnum = curwin->w_cursor.lnum; + +! /* +! * Start the search just like for the above +! * do_search(). +! */ +! if (*cmd != '?') +! pos.col = MAXCOL; +! else +! pos.col = 0; +! if (searchit(curwin, curbuf, &pos, +! *cmd == '?' ? BACKWARD : FORWARD, +! (char_u *)"", 1L, SEARCH_MSG, +! i, (linenr_T)0, NULL) != FAIL) +! lnum = pos.lnum; +! else +! { +! cmd = NULL; +! goto error; +! } +! } +! ++cmd; +! break; + + default: +! if (VIM_ISDIGIT(*cmd)) /* absolute line number */ +! lnum = getdigits(&cmd); + } + + for (;;) +*************** +*** 4242,4248 **** + break; + + if (lnum == MAXLNUM) +! lnum = curwin->w_cursor.lnum; /* "+1" is same as ".+1" */ + if (VIM_ISDIGIT(*cmd)) + i = '+'; /* "number" is same as "+number" */ + else +--- 4418,4457 ---- + break; + + if (lnum == MAXLNUM) +! { +! switch (addr_type) +! { +! case ADDR_LINES: +! lnum = curwin->w_cursor.lnum; /* "+1" is same as ".+1" */ +! break; +! case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } +! break; +! case ADDR_ARGUMENTS: +! lnum = curwin->w_arg_idx + 1; +! break; +! case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: +! lnum = curbuf->b_fnum; +! break; +! case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } +! break; +! } +! } +! + if (VIM_ISDIGIT(*cmd)) + i = '+'; /* "number" is same as "+number" */ + else +*************** +*** 4251,4260 **** + n = 1; + else + n = getdigits(&cmd); +! if (i == '-') + lnum -= n; + else + lnum += n; + } + } while (*cmd == '/' || *cmd == '?'); + +--- 4460,4518 ---- + n = 1; + else + n = getdigits(&cmd); +! if (addr_type == ADDR_LOADED_BUFFERS +! || addr_type == ADDR_UNLOADED_BUFFERS) +! lnum = compute_buffer_local_count(addr_type, lnum, n); +! else if (i == '-') + lnum -= n; + else + lnum += n; ++ ++ switch (addr_type) ++ { ++ case ADDR_LINES: ++ break; ++ case ADDR_ARGUMENTS: ++ if (lnum < 0) ++ lnum = 0; ++ else if (lnum >= ARGCOUNT) ++ lnum = ARGCOUNT; ++ break; ++ case ADDR_TABS: ++ if (lnum < 0) ++ { ++ lnum = 0; ++ break; ++ } ++ c = 0; ++ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) ++ c++; ++ if (lnum >= c) ++ lnum = c; ++ break; ++ case ADDR_WINDOWS: ++ if (lnum < 0) ++ { ++ lnum = 0; ++ break; ++ } ++ c = 0; ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ c++; ++ if (lnum > c) ++ lnum = c; ++ break; ++ case ADDR_LOADED_BUFFERS: ++ case ADDR_UNLOADED_BUFFERS: ++ if (lnum < firstbuf->b_fnum) ++ { ++ lnum = firstbuf->b_fnum; ++ break; ++ } ++ if (lnum > lastbuf->b_fnum) ++ lnum = lastbuf->b_fnum; ++ break; ++ } + } + } while (*cmd == '/' || *cmd == '?'); + +*************** +*** 6556,6561 **** +--- 6814,6823 ---- + ex_quit(eap) + exarg_T *eap; + { ++ win_T *wp; ++ buf_T *buf; ++ int wnr; ++ + #ifdef FEAT_CMDWIN + if (cmdwin_type != 0) + { +*************** +*** 6569,6579 **** + text_locked_msg(); + return; + } + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); + /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (curbuf->b_nwindows == 1 && curbuf->b_closing)) + return; + #endif + +--- 6831,6858 ---- + text_locked_msg(); + return; + } ++ if (eap->addr_count > 0) ++ { ++ wnr = eap->line2; ++ for (wp = firstwin; --wnr > 0; ) ++ { ++ if (wp->w_next == NULL) ++ break; ++ else ++ wp = wp->w_next; ++ } ++ buf = wp->w_buffer; ++ } ++ else ++ { ++ wp = curwin; ++ buf = curbuf; ++ } + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); + /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (buf->b_nwindows == 1 && buf->b_closing)) + return; + #endif + +*************** +*** 6606,6612 **** + need_mouse_correct = TRUE; + # endif + /* close window; may free buffer */ +! win_close(curwin, !P_HID(curwin->w_buffer) || eap->forceit); + #endif + } + } +--- 6885,6891 ---- + need_mouse_correct = TRUE; + # endif + /* close window; may free buffer */ +! win_close(wp, !P_HID(wp->w_buffer) || eap->forceit); + #endif + } + } +*************** +*** 6668,6673 **** +--- 6947,6954 ---- + ex_close(eap) + exarg_T *eap; + { ++ win_T *win; ++ int winnr = 0; + # ifdef FEAT_CMDWIN + if (cmdwin_type != 0) + cmdwin_result = Ctrl_C; +*************** +*** 6678,6684 **** + && !curbuf_locked() + #endif + ) +! ex_win_close(eap->forceit, curwin, NULL); + } + + # ifdef FEAT_QUICKFIX +--- 6959,6979 ---- + && !curbuf_locked() + #endif + ) +! { +! if (eap->addr_count == 0) +! ex_win_close(eap->forceit, curwin, NULL); +! else { +! for (win = firstwin; win != NULL; win = win->w_next) +! { +! winnr++; +! if (winnr == eap->line2) +! break; +! } +! if (win == NULL) +! win = lastwin; +! ex_win_close(eap->forceit, win, NULL); +! } +! } + } + + # ifdef FEAT_QUICKFIX +*************** +*** 6804,6809 **** +--- 7099,7106 ---- + MSG(_("Already only one tab page")); + else + { ++ if (eap->addr_count > 0) ++ goto_tabpage(eap->line2); + /* Repeat this up to a 1000 times, because autocommands may mess + * up the lists. */ + for (done = 0; done < 1000; ++done) +*************** +*** 6882,6890 **** +--- 7179,7201 ---- + ex_only(eap) + exarg_T *eap; + { ++ win_T *wp; ++ int wnr; + # ifdef FEAT_GUI + need_mouse_correct = TRUE; + # endif ++ if (eap->addr_count > 0) ++ { ++ wnr = eap->line2; ++ for (wp = firstwin; --wnr > 0; ) ++ { ++ if (wp->w_next == NULL) ++ break; ++ else ++ wp = wp->w_next; ++ } ++ win_goto(wp); ++ } + close_others(TRUE, eap->forceit); + } + +*************** +*** 6906,6911 **** +--- 7217,7225 ---- + ex_hide(eap) + exarg_T *eap; + { ++ win_T *win; ++ int winnr = 0; ++ + if (*eap->arg != NUL && check_nextcmd(eap->arg) == NULL) + eap->errmsg = e_invarg; + else +*************** +*** 6918,6924 **** + # ifdef FEAT_GUI + need_mouse_correct = TRUE; + # endif +! win_close(curwin, FALSE); /* don't free buffer */ + } + #endif + } +--- 7232,7250 ---- + # ifdef FEAT_GUI + need_mouse_correct = TRUE; + # endif +! if (eap->addr_count == 0) +! win_close(curwin, FALSE); /* don't free buffer */ +! else { +! for (win = firstwin; win != NULL; win = win->w_next) +! { +! winnr++; +! if (winnr == eap->line2) +! break; +! } +! if (win == NULL) +! win = lastwin; +! win_close(win, FALSE); +! } + } + #endif + } +*************** +*** 8652,8658 **** + { + long n; + +! n = get_address(&eap->arg, FALSE, FALSE); + if (eap->arg == NULL) /* error detected */ + { + eap->nextcmd = NULL; +--- 8978,8984 ---- + { + long n; + +! n = get_address(&eap->arg, eap->addr_type, FALSE, FALSE); + if (eap->arg == NULL) /* error detected */ + { + eap->nextcmd = NULL; +*** ../vim-7.4.529/src/testdir/Make_amiga.mak 2014-10-21 20:57:11.534295006 +0200 +--- src/testdir/Make_amiga.mak 2014-11-27 14:26:52.158639284 +0100 +*************** +*** 36,44 **** +--- 36,46 ---- + 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_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_close_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*************** +*** 171,179 **** +--- 173,183 ---- + test105.out: test105.in + test106.out: test106.in + test107.out: test107.in ++ test_argument_count.out: test_argument_count.in + test_autoformat_join.out: test_autoformat_join.in + test_breakindent.out: test_breakindent.in + test_changelist.out: test_changelist.in ++ test_close_count.out: test_close_count.in + test_eval.out: test_eval.in + test_insertcount.out: test_insertcount.in + test_listlbr.out: test_listlbr.in +*** ../vim-7.4.529/src/testdir/Make_dos.mak 2014-11-05 15:46:06.212643292 +0100 +--- src/testdir/Make_dos.mak 2014-11-27 14:26:56.750588700 +0100 +*************** +*** 35,43 **** +--- 35,45 ---- + 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_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_close_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.529/src/testdir/Make_ming.mak 2014-11-05 14:26:30.764758363 +0100 +--- src/testdir/Make_ming.mak 2014-11-27 14:26:59.638556887 +0100 +*************** +*** 57,65 **** +--- 57,67 ---- + 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_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_close_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.529/src/testdir/Make_os2.mak 2014-11-05 14:26:30.764758363 +0100 +--- src/testdir/Make_os2.mak 2014-11-27 14:27:02.438526044 +0100 +*************** +*** 37,45 **** +--- 37,47 ---- + 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_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_close_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.529/src/testdir/Make_vms.mms 2014-10-21 20:57:11.538295006 +0200 +--- src/testdir/Make_vms.mms 2014-11-27 14:27:08.046464270 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2014 Aug 16 + # + # 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 Nov 27 + # + # 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. +*************** +*** 45,51 **** + # 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 +--- 45,51 ---- + # 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 +*************** +*** 54,63 **** + # 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 +--- 54,63 ---- + # 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 +*************** +*** 96,104 **** +--- 96,106 ---- + test95.out test96.out test98.out test99.out \ + test100.out test101.out test103.out test104.out \ + test105.out test106.out test107.out \ ++ test_argument_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_close_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.529/src/testdir/Makefile 2014-11-05 14:26:30.764758363 +0100 +--- src/testdir/Makefile 2014-11-27 14:27:27.670248103 +0100 +*************** +*** 33,41 **** +--- 33,43 ---- + 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_count.out \ + test_autoformat_join.out \ + test_breakindent.out \ + test_changelist.out \ ++ test_close_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.529/src/testdir/test_argument_count.in 2014-11-27 16:17:51.473604272 +0100 +--- src/testdir/test_argument_count.in 2014-11-27 14:21:34.394139791 +0100 +*************** +*** 0 **** +--- 1,47 ---- ++ Tests for :[count]argument! and :[count]argdelete vim: set ft=vim : ++ ++ STARTTEST ++ :%argd ++ :argadd a b c d ++ :set hidden ++ :let buffers = [] ++ :augroup TEST ++ :au BufEnter * call add(buffers, expand('%:t')) ++ :augroup END ++ :$argu ++ :$-argu ++ :-argu ++ :1argu ++ :+2argu ++ :augroup TEST ++ :au! ++ :augroup END ++ :let arglists = [] ++ :.argd ++ :call add(arglists, argv()) ++ :-argd ++ :call add(arglists, argv()) ++ :$argd ++ :call add(arglists, argv()) ++ :1arga c ++ :1arga b ++ :$argu ++ :+arga d ++ :$arga x ++ :call add(arglists, argv()) ++ :$-10arga Y ++ :call add(arglists, argv()) ++ :%argd ++ :call add(arglists, argv()) ++ :arga a b c d e f ++ :2,$-argd ++ :call add(arglists, argv()) ++ :e! test.out ++ :call append(0, buffers) ++ :let lnr = line('$') ++ :call append(lnr, map(copy(arglists), 'join(v:val, " ")')) ++ :w ++ :qa! ++ ENDTEST ++ ++ +*** ../vim-7.4.529/src/testdir/test_argument_count.ok 2014-11-27 16:17:51.477604229 +0100 +--- src/testdir/test_argument_count.ok 2014-11-27 14:21:34.394139791 +0100 +*************** +*** 0 **** +--- 1,13 ---- ++ d ++ c ++ b ++ a ++ c ++ ++ a b d ++ a d ++ a ++ a b c d x ++ Y a b c d x ++ ++ a f +*** ../vim-7.4.529/src/testdir/test_close_count.in 2014-11-27 16:17:51.485604140 +0100 +--- src/testdir/test_close_count.in 2014-11-27 14:21:34.394139791 +0100 +*************** +*** 0 **** +--- 1,156 ---- ++ Tests for :[count]close! and :[count]hide vim: set ft=vim : ++ ++ STARTTEST ++ :let tests = [] ++ :so tiny.vim ++ :for i in range(5) ++ :new ++ :endfor ++ :4wincmd w ++ :close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :$close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1wincmd w ++ :2close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1wincmd w ++ :new ++ :new ++ :2wincmd w ++ :-2close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :2wincmd w ++ :+1close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :e! test.out ++ :call append(0, map(copy(tests), 'join(v:val, " ")')) ++ :w ++ :only! ++ :b1 ++ ENDTEST ++ ++ STARTTEST ++ :let tests = [] ++ :so tiny.vim ++ :for i in range(5) ++ :new ++ :endfor ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :4wincmd w ++ :.hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :9hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1wincmd w ++ :2hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1wincmd w ++ :new ++ :new ++ :3wincmd w ++ :-hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :2wincmd w ++ :+hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :e! test.out ++ :call append(line('$'), map(copy(tests), 'join(v:val, " ")')) ++ Go ++ :w ++ :only! ++ :b1 ++ ENDTEST ++ ++ STARTTEST ++ :let tests = [] ++ :so tiny.vim ++ :set hidden ++ :for i in range(5) ++ :new ++ :endfor ++ :1wincmd w ++ :$ hide ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :$-1 close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1wincmd w ++ :.+close! ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :e! test.out ++ :call append(line('$'), map(copy(tests), 'join(v:val, " ")')) ++ Go ++ :w ++ :only! ++ :b1 ++ ENDTEST ++ ++ STARTTEST ++ :let tests = [] ++ :so tiny.vim ++ :set hidden ++ :for i in range(5) ++ :new ++ :endfor ++ :4wincmd w ++ c ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ 1c ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ 9c ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :1wincmd w ++ 2c ++ :let buffers = [] ++ :windo call add(buffers, bufnr('%')) ++ :call add(tests, buffers) ++ :only! ++ :e! test.out ++ :call append(line('$'), map(copy(tests), 'join(v:val, " ")')) ++ :w ++ :qa! ++ ENDTEST ++ ++ +*** ../vim-7.4.529/src/testdir/test_close_count.ok 2014-11-27 16:17:51.489604097 +0100 +--- src/testdir/test_close_count.ok 2014-11-27 14:21:34.394139791 +0100 +*************** +*** 0 **** +--- 1,23 ---- ++ 6 5 4 2 1 ++ 5 4 2 1 ++ 5 4 2 ++ 5 2 ++ 7 5 2 ++ 7 5 ++ ++ 13 12 11 10 9 1 ++ 13 12 11 9 1 ++ 12 11 9 1 ++ 12 11 9 ++ 12 9 ++ 15 12 9 ++ 15 12 ++ ++ 20 19 18 17 16 ++ 20 19 18 16 ++ 20 18 16 ++ ++ 25 24 23 21 1 ++ 24 23 21 1 ++ 24 23 21 ++ 24 21 +*** ../vim-7.4.529/src/window.c 2014-11-19 13:40:04.903715962 +0100 +--- src/window.c 2014-11-27 14:21:34.394139791 +0100 +*************** +*** 199,212 **** + case Ctrl_Q: + case 'q': + reset_VIsual_and_resel(); /* stop Visual mode */ +! do_cmdline_cmd((char_u *)"quit"); + break; + + /* close current window */ + case Ctrl_C: + case 'c': + reset_VIsual_and_resel(); /* stop Visual mode */ +! do_cmdline_cmd((char_u *)"close"); + break; + + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) +--- 199,220 ---- + case Ctrl_Q: + case 'q': + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "quit"); +! if (Prenum) +! vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 5, +! "%ld", Prenum); +! do_cmdline_cmd(cbuf); + break; + + /* close current window */ + case Ctrl_C: + case 'c': + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "close"); +! if (Prenum) +! vim_snprintf((char *)cbuf + 5, sizeof(cbuf) - 5, +! "%ld", Prenum); +! do_cmdline_cmd(cbuf); + break; + + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) +*************** +*** 235,241 **** + case 'o': + CHECK_CMDWIN + reset_VIsual_and_resel(); /* stop Visual mode */ +! do_cmdline_cmd((char_u *)"only"); + break; + + /* cursor to next window with wrap around */ +--- 243,253 ---- + case 'o': + CHECK_CMDWIN + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "only"); +! if (Prenum > 0) +! vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 4, +! "%ld", Prenum); +! do_cmdline_cmd(cbuf); + break; + + /* cursor to next window with wrap around */ +*** ../vim-7.4.529/src/version.c 2014-11-27 14:09:09.490354943 +0100 +--- src/version.c 2014-11-27 14:21:15.250350688 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 530, + /**/ + +-- +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 6ac91121758b9429d22f1a48ccb69b0cf8c2e96b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:11 +0100 Subject: [PATCH 0145/1616] - patchlevel 531 --- 7.4.531 | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 7.4.531 diff --git a/7.4.531 b/7.4.531 new file mode 100644 index 00000000..6acf9a09 --- /dev/null +++ b/7.4.531 @@ -0,0 +1,165 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.531 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.531 +Problem: Comments about parsing an Ex command are wrong. +Solution: Correct the steop numbers. +Files: src/ex_docmd.c + + +*** ../vim-7.4.530/src/ex_docmd.c 2014-11-27 16:22:42.742413039 +0100 +--- src/ex_docmd.c 2014-11-27 16:37:22.164760647 +0100 +*************** +*** 1721,1728 **** + * + * 1. skip comment lines and leading space + * 2. handle command modifiers +! * 3. parse command + * 4. parse range + * 6. parse arguments + * 7. switch on command name + * +--- 1721,1729 ---- + * + * 1. skip comment lines and leading space + * 2. handle command modifiers +! * 3. find the command + * 4. parse range ++ * 5. Parse the command. + * 6. parse arguments + * 7. switch on command name + * +*************** +*** 2335,2341 **** + ea.forceit = FALSE; + + /* +! * 5. Parse arguments. + */ + if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; +--- 2336,2342 ---- + ea.forceit = FALSE; + + /* +! * 6. Parse arguments. + */ + if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; +*************** +*** 2782,2788 **** + #endif + + /* +! * 6. Switch on command name. + * + * The "ea" structure holds the arguments that can be used. + */ +--- 2783,2789 ---- + #endif + + /* +! * 7. Switch on command name. + * + * The "ea" structure holds the arguments that can be used. + */ +*************** +*** 3319,3325 **** + ea.argt = 0; + + /* +! * 2. skip comment lines and leading space, colons or bars + */ + for (cmd = buff; vim_strchr((char_u *)" \t:|", *cmd) != NULL; cmd++) + ; +--- 3320,3326 ---- + ea.argt = 0; + + /* +! * 1. skip comment lines and leading space, colons or bars + */ + for (cmd = buff; vim_strchr((char_u *)" \t:|", *cmd) != NULL; cmd++) + ; +*************** +*** 3334,3346 **** + } + + /* +! * 3. parse a range specifier of the form: addr [,addr] [;addr] .. + */ + cmd = skip_range(cmd, &xp->xp_context); +- +- /* +- * 4. parse command +- */ + xp->xp_pattern = cmd; + if (*cmd == NUL) + return NULL; +--- 3335,3343 ---- + } + + /* +! * 3. Skip over the range to find the command. + */ + cmd = skip_range(cmd, &xp->xp_context); + xp->xp_pattern = cmd; + if (*cmd == NUL) + return NULL; +*************** +*** 3446,3452 **** + } + + /* +! * 5. parse arguments + */ + if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; +--- 3443,3449 ---- + } + + /* +! * 6. parse arguments + */ + if (!IS_USER_CMDIDX(ea.cmdidx)) + ea.argt = (long)cmdnames[(int)ea.cmdidx].cmd_argt; +*************** +*** 3682,3688 **** + } + + /* +! * 6. switch on command name + */ + switch (ea.cmdidx) + { +--- 3679,3685 ---- + } + + /* +! * 6. Switch on command name. + */ + switch (ea.cmdidx) + { +*** ../vim-7.4.530/src/version.c 2014-11-27 16:22:42.746412995 +0100 +--- src/version.c 2014-11-27 16:30:25.149339297 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 531, + /**/ + +-- +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 /// From 4abf56c9c744c7a7ef5d61f4730c6bacb2ae1d9b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:12 +0100 Subject: [PATCH 0146/1616] - patchlevel 532 --- 7.4.532 | 141 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 7.4.532 diff --git a/7.4.532 b/7.4.532 new file mode 100644 index 00000000..88b12b97 --- /dev/null +++ b/7.4.532 @@ -0,0 +1,141 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.532 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.532 +Problem: When using 'incsearch' "2/pattern/e" highlights the first match. +Solution: Move the code to set extra_col inside the loop for count. (Ozaki + Kiichi) +Files: src/search.c + + +*** ../vim-7.4.531/src/search.c 2014-06-17 13:50:06.148087184 +0200 +--- src/search.c 2014-11-27 17:21:49.579489220 +0100 +*************** +*** 552,557 **** +--- 552,558 ---- + int match_ok; + long nmatched; + int submatch = 0; ++ int first_match = TRUE; + int save_called_emsg = called_emsg; + #ifdef FEAT_SEARCH_EXTRA + int break_loop = FALSE; +*************** +*** 565,597 **** + return FAIL; + } + +- /* 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; +- + /* + * find the string + */ + called_emsg = FALSE; + do /* loop for count */ + { + start_pos = *pos; /* remember start pos for detecting no match */ + found = 0; /* default: not found */ + at_first_line = TRUE; /* default: start in first line */ +--- 566,598 ---- + return FAIL; + } + + /* + * find the string + */ + called_emsg = FALSE; + do /* loop for count */ + { ++ /* 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 */ + at_first_line = TRUE; /* default: start in first line */ +*************** +*** 677,683 **** + * otherwise "/$" will get stuck on end of line. + */ + while (matchpos.lnum == 0 +! && ((options & SEARCH_END) + ? (nmatched == 1 + && (int)endpos.col - 1 + < (int)start_pos.col + extra_col) +--- 678,684 ---- + * otherwise "/$" will get stuck on end of line. + */ + while (matchpos.lnum == 0 +! && ((options & SEARCH_END) && first_match + ? (nmatched == 1 + && (int)endpos.col - 1 + < (int)start_pos.col + extra_col) +*************** +*** 908,913 **** +--- 909,915 ---- + pos->coladd = 0; + #endif + found = 1; ++ first_match = FALSE; + + /* Set variables used for 'incsearch' highlighting. */ + search_match_lines = endpos.lnum - matchpos.lnum; +*** ../vim-7.4.531/src/version.c 2014-11-27 16:38:07.652261234 +0100 +--- src/version.c 2014-11-27 17:29:13.762616760 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 532, + /**/ + +-- +The most powerful force in the universe is gossip. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 94365038cf7361dda9247c3c366a41f840c973d8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:12 +0100 Subject: [PATCH 0147/1616] - patchlevel 533 --- 7.4.533 | 229 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 229 insertions(+) create mode 100644 7.4.533 diff --git a/7.4.533 b/7.4.533 new file mode 100644 index 00000000..3c223955 --- /dev/null +++ b/7.4.533 @@ -0,0 +1,229 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.533 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.533 +Problem: ":hardcopy" leaks memory in case of errors. +Solution: Free memory in all code paths. (Christian Brabandt) +Files: src/hardcopy.c + + +*** ../vim-7.4.532/src/hardcopy.c 2013-05-06 04:00:47.000000000 +0200 +--- src/hardcopy.c 2014-11-27 17:35:48.418285820 +0100 +*************** +*** 2960,2971 **** + if (!prt_find_resource("prolog", res_prolog)) + { + EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\"")); +! return FALSE; + } + if (!prt_open_resource(res_prolog)) +! return FALSE; + if (!prt_check_resource(res_prolog, PRT_PROLOG_VERSION)) +! return FALSE; + #ifdef FEAT_MBYTE + if (prt_out_mbyte) + { +--- 2960,2971 ---- + if (!prt_find_resource("prolog", res_prolog)) + { + EMSG(_("E456: Can't find PostScript resource file \"prolog.ps\"")); +! goto theend; + } + if (!prt_open_resource(res_prolog)) +! goto theend; + if (!prt_check_resource(res_prolog, PRT_PROLOG_VERSION)) +! goto theend; + #ifdef FEAT_MBYTE + if (prt_out_mbyte) + { +*************** +*** 2973,2984 **** + if (!prt_find_resource("cidfont", res_cidfont)) + { + EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\"")); +! return FALSE; + } + if (!prt_open_resource(res_cidfont)) +! return FALSE; + if (!prt_check_resource(res_cidfont, PRT_CID_PROLOG_VERSION)) +! return FALSE; + } + #endif + +--- 2973,2984 ---- + if (!prt_find_resource("cidfont", res_cidfont)) + { + EMSG(_("E456: Can't find PostScript resource file \"cidfont.ps\"")); +! goto theend; + } + if (!prt_open_resource(res_cidfont)) +! goto theend; + if (!prt_check_resource(res_cidfont, PRT_CID_PROLOG_VERSION)) +! goto theend; + } + #endif + +*************** +*** 3012,3023 **** + { + EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""), + p_encoding); +! return FALSE; + } + } + } + if (!prt_open_resource(res_encoding)) +! return FALSE; + /* For the moment there are no checks on encoding resource files to + * perform */ + #ifdef FEAT_MBYTE +--- 3012,3023 ---- + { + EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""), + p_encoding); +! goto theend; + } + } + } + if (!prt_open_resource(res_encoding)) +! goto theend; + /* For the moment there are no checks on encoding resource files to + * perform */ + #ifdef FEAT_MBYTE +*************** +*** 3034,3043 **** + { + EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""), + prt_ascii_encoding); +! return FALSE; + } + if (!prt_open_resource(res_encoding)) +! return FALSE; + /* For the moment there are no checks on encoding resource files to + * perform */ + } +--- 3034,3043 ---- + { + EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""), + prt_ascii_encoding); +! goto theend; + } + if (!prt_open_resource(res_encoding)) +! goto theend; + /* For the moment there are no checks on encoding resource files to + * perform */ + } +*************** +*** 3050,3056 **** + { + EMSG2(_("E620: Unable to convert to print encoding \"%s\""), + p_encoding); +! return FALSE; + } + prt_do_conv = TRUE; + } +--- 3050,3056 ---- + { + EMSG2(_("E620: Unable to convert to print encoding \"%s\""), + p_encoding); +! goto theend; + } + prt_do_conv = TRUE; + } +*************** +*** 3063,3072 **** + { + EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""), + prt_cmap); +! return FALSE; + } + if (!prt_open_resource(res_cmap)) +! return FALSE; + } + #endif + +--- 3063,3072 ---- + { + EMSG2(_("E456: Can't find PostScript resource file \"%s.ps\""), + prt_cmap); +! goto theend; + } + if (!prt_open_resource(res_cmap)) +! goto theend; + } + #endif + +*************** +*** 3140,3154 **** + + /* Add required procsets - NOTE: order is important! */ + if (!prt_add_resource(res_prolog)) +! return FALSE; + #ifdef FEAT_MBYTE + if (prt_out_mbyte) + { + /* Add CID font procset, and any user supplied CMap */ + if (!prt_add_resource(res_cidfont)) +! return FALSE; + if (prt_custom_cmap && !prt_add_resource(res_cmap)) +! return FALSE; + } + #endif + +--- 3140,3154 ---- + + /* Add required procsets - NOTE: order is important! */ + if (!prt_add_resource(res_prolog)) +! goto theend; + #ifdef FEAT_MBYTE + if (prt_out_mbyte) + { + /* Add CID font procset, and any user supplied CMap */ + if (!prt_add_resource(res_cidfont)) +! goto theend; + if (prt_custom_cmap && !prt_add_resource(res_cmap)) +! goto theend; + } + #endif + +*************** +*** 3158,3164 **** + /* There will be only one Roman font encoding to be included in the PS + * file. */ + if (!prt_add_resource(res_encoding)) +! return FALSE; + + prt_dsc_noarg("EndProlog"); + +--- 3158,3164 ---- + /* There will be only one Roman font encoding to be included in the PS + * file. */ + if (!prt_add_resource(res_encoding)) +! goto theend; + + prt_dsc_noarg("EndProlog"); + +*** ../vim-7.4.532/src/version.c 2014-11-27 17:29:52.770188864 +0100 +--- src/version.c 2014-11-27 17:32:56.636171921 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 533, + /**/ + +-- +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 287fe4c212525dc089ed93978ad67018669bb3b9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:13 +0100 Subject: [PATCH 0148/1616] - patchlevel 534 --- 7.4.534 | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 7.4.534 diff --git a/7.4.534 b/7.4.534 new file mode 100644 index 00000000..03282515 --- /dev/null +++ b/7.4.534 @@ -0,0 +1,94 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.534 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.534 +Problem: Warnings when compiling if_ruby.c. +Solution: Avoid the warnings. (Ken Takata) +Files: src/if_ruby.c + + +*** ../vim-7.4.533/src/if_ruby.c 2014-11-12 16:05:01.142042845 +0100 +--- src/if_ruby.c 2014-11-27 17:42:25.205922384 +0100 +*************** +*** 96,106 **** + # 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 +--- 96,106 ---- + # 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 +*************** +*** 422,428 **** + # if defined(USE_RGENGC) && USE_RGENGC && !defined(PROTO) + void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj) + { +! return dll_rb_gc_writebarrier_unprotect_promoted(obj); + } + # endif + +--- 422,428 ---- + # if defined(USE_RGENGC) && USE_RGENGC && !defined(PROTO) + void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj) + { +! dll_rb_gc_writebarrier_unprotect_promoted(obj); + } + # endif + +*************** +*** 763,769 **** + /* suggested by Ariya Mizutani */ + int argc = 1; + char *argv[] = {"gvim.exe"}; +! NtInitialize(&argc, &argv); + #endif + { + #if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +--- 763,770 ---- + /* suggested by Ariya Mizutani */ + int argc = 1; + char *argv[] = {"gvim.exe"}; +! char **argvp = argv; +! NtInitialize(&argc, &argvp); + #endif + { + #if defined(RUBY19_OR_LATER) || defined(RUBY_INIT_STACK) +*** ../vim-7.4.533/src/version.c 2014-11-27 17:37:53.524909964 +0100 +--- src/version.c 2014-11-27 17:42:13.626049717 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 534, + /**/ + +-- +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 0d5e2a68eed4541dce3fa8c05d7ddd127e46c414 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 27 Nov 2014 18:00:14 +0100 Subject: [PATCH 0149/1616] - patchlevel 534 --- README.patches | 7 +++++++ vim.spec | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 9478a470..f79f6159 100644 --- a/README.patches +++ b/README.patches @@ -549,3 +549,10 @@ Individual patches for Vim 7.4: 2460 7.4.525 map() leaks memory when there is an error in the expression 5139 7.4.526 matchstr() fails on long text 3709 7.4.527 still confusing regexp failure and NFA_TOO_EXPENSIVE + 1892 7.4.528 crash when using matchadd() + 7307 7.4.529 no test for what 7.4.517 fixes +147087 7.4.530 many commands take count/range that is not using line numbers + 3706 7.4.531 comments about parsing an Ex command are wrong + 4239 7.4.532 when using 'incsearch' "2/pattern/e" highlights first match + 6017 7.4.533 ":hardcopy" leaks memory in case of errors + 2827 7.4.534 warnings when compiling if_ruby.c diff --git a/vim.spec b/vim.spec index 4e17a859..f8481172 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 527 +%define patchlevel 534 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -574,6 +574,13 @@ Patch524: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.524 Patch525: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.525 Patch526: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.526 Patch527: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.527 +Patch528: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.528 +Patch529: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.529 +Patch530: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.530 +Patch531: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.531 +Patch532: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.532 +Patch533: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.533 +Patch534: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.534 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1248,6 +1255,13 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch525 -p0 %patch526 -p0 %patch527 -p0 +%patch528 -p0 +%patch529 -p0 +%patch530 -p0 +%patch531 -p0 +%patch532 -p0 +%patch533 -p0 +%patch534 -p0 # install spell files %if %{withvimspell} @@ -1765,6 +1779,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Nov 27 2014 Karsten Hopp 7.4.534-1 +- patchlevel 534 + * Sun Nov 23 2014 Karsten Hopp 7.4.527-1 - patchlevel 527 From e85e0e74a0d7e9f0e5579568d33036fb3945ee36 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Nov 2014 18:00:10 +0100 Subject: [PATCH 0150/1616] - patchlevel 535 --- 7.4.535 | 469 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 469 insertions(+) create mode 100644 7.4.535 diff --git a/7.4.535 b/7.4.535 new file mode 100644 index 00000000..20c32ed4 --- /dev/null +++ b/7.4.535 @@ -0,0 +1,469 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.535 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.535 (after 7.4.530) +Problem: Can't build with tiny features. +Solution: Add #ifdefs and skip a test. +Files: src/ex_docmd.c, src/testdir/test_argument_count.in + + +*** ../vim-7.4.534/src/ex_docmd.c 2014-11-27 16:38:07.648261279 +0100 +--- src/ex_docmd.c 2014-11-27 18:12:30.874072643 +0100 +*************** +*** 1713,1718 **** +--- 1713,1765 ---- + return buf->b_fnum; + } + ++ #ifdef FEAT_WINDOWS ++ static int current_win_nr __ARGS((win_T *win)); ++ static int current_tab_nr __ARGS((tabpage_T *tab)); ++ ++ static int ++ current_win_nr(win) ++ win_T *win; ++ { ++ win_T *wp; ++ int nr = 0; ++ ++ for (wp = firstwin; wp != NULL; wp = wp->w_next) ++ { ++ ++nr; ++ if (wp == win) ++ break; ++ } ++ return nr; ++ } ++ ++ static int ++ current_tab_nr(tab) ++ tabpage_T *tab; ++ { ++ tabpage_T *tp; ++ int nr = 0; ++ ++ for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) ++ { ++ ++nr; ++ if (tp == tab) ++ break; ++ } ++ return nr; ++ } ++ ++ # define CURRENT_WIN_NR current_win_nr(curwin) ++ # define LAST_WIN_NR current_win_nr(NULL) ++ # define CURRENT_TAB_NR current_tab_nr(curtab) ++ # define LAST_TAB_NR current_tab_nr(NULL) ++ #else ++ # define CURRENT_WIN_NR 1 ++ # define LAST_WIN_NR 1 ++ # define CURRENT_TAB_NR 1 ++ # define LAST_TAB_NR 1 ++ #endif ++ + + /* + * Execute one Ex command. +*************** +*** 1765,1772 **** + #endif + cmdmod_T save_cmdmod; + int ni; /* set when Not Implemented */ +- win_T *wp; +- tabpage_T *tp; + char_u *cmd; + + vim_memset(&ea, 0, sizeof(ea)); +--- 1812,1817 ---- +*************** +*** 2085,2097 **** + ea.line2 = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } + ea.line2 = lnum; + break; + case ADDR_ARGUMENTS: +--- 2130,2136 ---- + ea.line2 = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = CURRENT_WIN_NR; + ea.line2 = lnum; + break; + case ADDR_ARGUMENTS: +*************** +*** 2102,2114 **** + ea.line2 = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } + ea.line2 = lnum; + break; + } +--- 2141,2147 ---- + ea.line2 = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = CURRENT_TAB_NR; + ea.line2 = lnum; + break; + } +*************** +*** 4198,4205 **** + pos_T pos; + pos_T *fp; + linenr_T lnum; +- win_T *wp; +- tabpage_T *tp; + + cmd = skipwhite(*ptr); + lnum = MAXLNUM; +--- 4231,4236 ---- +*************** +*** 4215,4227 **** + lnum = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +--- 4246,4252 ---- + lnum = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = CURRENT_WIN_NR; + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +*************** +*** 4231,4243 **** + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } + break; + } + break; +--- 4256,4262 ---- + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = CURRENT_TAB_NR; + break; + } + break; +*************** +*** 4250,4258 **** + lnum = curbuf->b_ml.ml_line_count; + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! lnum++; + break; + case ADDR_ARGUMENTS: + lnum = ARGCOUNT; +--- 4269,4275 ---- + lnum = curbuf->b_ml.ml_line_count; + break; + case ADDR_WINDOWS: +! lnum = LAST_WIN_NR; + break; + case ADDR_ARGUMENTS: + lnum = ARGCOUNT; +*************** +*** 4262,4270 **** + lnum = lastbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! lnum++; + break; + } + break; +--- 4279,4285 ---- + lnum = lastbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = LAST_TAB_NR; + break; + } + break; +*************** +*** 4419,4434 **** + switch (addr_type) + { + case ADDR_LINES: +! lnum = curwin->w_cursor.lnum; /* "+1" is same as ".+1" */ + break; + case ADDR_WINDOWS: +! lnum = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! { +! lnum++; +! if (wp == curwin) +! break; +! } + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +--- 4434,4444 ---- + switch (addr_type) + { + case ADDR_LINES: +! /* "+1" is same as ".+1" */ +! lnum = curwin->w_cursor.lnum; + break; + case ADDR_WINDOWS: +! lnum = CURRENT_WIN_NR; + break; + case ADDR_ARGUMENTS: + lnum = curwin->w_arg_idx + 1; +*************** +*** 4438,4450 **** + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = 0; +! for(tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! { +! lnum++; +! if (tp == curtab) +! break; +! } + break; + } + } +--- 4448,4454 ---- + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +! lnum = CURRENT_TAB_NR; + break; + } + } +*************** +*** 4481,4489 **** + lnum = 0; + break; + } +! c = 0; +! for (tp = first_tabpage; tp != NULL; tp = tp->tp_next) +! c++; + if (lnum >= c) + lnum = c; + break; +--- 4485,4491 ---- + lnum = 0; + break; + } +! c = LAST_TAB_NR; + if (lnum >= c) + lnum = c; + break; +*************** +*** 4493,4501 **** + lnum = 0; + break; + } +! c = 0; +! for (wp = firstwin; wp != NULL; wp = wp->w_next) +! c++; + if (lnum > c) + lnum = c; + break; +--- 4495,4501 ---- + lnum = 0; + break; + } +! c = LAST_WIN_NR; + if (lnum > c) + lnum = c; + break; +*************** +*** 6805,6819 **** + } + + /* +! * ":quit": quit current window, quit Vim if closed the last window. + */ + static void + ex_quit(eap) + exarg_T *eap; + { + win_T *wp; +! buf_T *buf; +! int wnr; + + #ifdef FEAT_CMDWIN + if (cmdwin_type != 0) +--- 6805,6819 ---- + } + + /* +! * ":quit": quit current window, quit Vim if the last window is closed. + */ + static void + ex_quit(eap) + exarg_T *eap; + { ++ #if defined(FEAT_WINDOWS) || defined(FEAT_AUTOCMD) + win_T *wp; +! #endif + + #ifdef FEAT_CMDWIN + if (cmdwin_type != 0) +*************** +*** 6828,6855 **** + text_locked_msg(); + return; + } + if (eap->addr_count > 0) + { +! wnr = eap->line2; +! for (wp = firstwin; --wnr > 0; ) +! { +! if (wp->w_next == NULL) + break; +- else +- wp = wp->w_next; +- } +- buf = wp->w_buffer; + } + else +! { + wp = curwin; +! buf = curbuf; +! } + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); + /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (buf->b_nwindows == 1 && buf->b_closing)) + return; + #endif + +--- 6828,6854 ---- + text_locked_msg(); + return; + } ++ #ifdef FEAT_WINDOWS + if (eap->addr_count > 0) + { +! int wnr = eap->line2; +! +! for (wp = firstwin; wp->w_next != NULL; wp = wp->w_next) +! if (--wnr <= 0) + break; + } + else +! #endif +! #if defined(FEAT_WINDOWS) || defined(FEAT_AUTOCMD) + wp = curwin; +! #endif +! + #ifdef FEAT_AUTOCMD + apply_autocmds(EVENT_QUITPRE, NULL, NULL, FALSE, curbuf); + /* Refuse to quit when locked or when the buffer in the last window is + * being closed (can only happen in autocommands). */ +! if (curbuf_locked() || (wp->w_buffer->b_nwindows == 1 +! && wp->w_buffer->b_closing)) + return; + #endif + +*************** +*** 7214,7222 **** + ex_hide(eap) + exarg_T *eap; + { +- win_T *win; +- int winnr = 0; +- + if (*eap->arg != NUL && check_nextcmd(eap->arg) == NULL) + eap->errmsg = e_invarg; + else +--- 7213,7218 ---- +*************** +*** 7231,7237 **** + # endif + if (eap->addr_count == 0) + win_close(curwin, FALSE); /* don't free buffer */ +! else { + for (win = firstwin; win != NULL; win = win->w_next) + { + winnr++; +--- 7227,7237 ---- + # endif + if (eap->addr_count == 0) + win_close(curwin, FALSE); /* don't free buffer */ +! else +! { +! int winnr = 0; +! win_T *win; +! + for (win = firstwin; win != NULL; win = win->w_next) + { + winnr++; +*** ../vim-7.4.534/src/testdir/test_argument_count.in 2014-11-27 16:22:42.746412995 +0100 +--- src/testdir/test_argument_count.in 2014-11-27 18:21:05.568408375 +0100 +*************** +*** 1,6 **** +--- 1,7 ---- + Tests for :[count]argument! and :[count]argdelete vim: set ft=vim : + + STARTTEST ++ :so small.vim + :%argd + :argadd a b c d + :set hidden +*** ../vim-7.4.534/src/version.c 2014-11-27 17:44:05.380820867 +0100 +--- src/version.c 2014-11-27 18:30:32.826167330 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 535, + /**/ + +-- +Mushrooms always grow in damp places and so they look like umbrellas. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From c857e0b073cb9b6741de660a3e7674e6e9608e71 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Nov 2014 18:00:11 +0100 Subject: [PATCH 0151/1616] - patchlevel 536 --- 7.4.536 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.536 diff --git a/7.4.536 b/7.4.536 new file mode 100644 index 00000000..4d32a95f --- /dev/null +++ b/7.4.536 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.536 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.536 +Problem: Test 63 fails when using a black&white terminal. +Solution: Add attributes for a non-color terminal. (Christian Brabandt) +Files: src/testdir/test63.in + + +*** ../vim-7.4.535/src/testdir/test63.in 2014-08-16 16:28:31.882272056 +0200 +--- src/testdir/test63.in 2014-11-27 18:38:27.936941297 +0100 +*************** +*** 7,15 **** + :" --- Check that "matcharg()" returns the correct group and pattern if a match + :" --- is defined. + :let @r = "*** Test 1: " +! :highlight MyGroup1 ctermbg=red guibg=red +! :highlight MyGroup2 ctermbg=green guibg=green +! :highlight MyGroup3 ctermbg=blue guibg=blue + :match MyGroup1 /TODO/ + :2match MyGroup2 /FIXME/ + :3match MyGroup3 /XXX/ +--- 7,15 ---- + :" --- Check that "matcharg()" returns the correct group and pattern if a match + :" --- is defined. + :let @r = "*** Test 1: " +! :highlight MyGroup1 term=bold ctermbg=red guibg=red +! :highlight MyGroup2 term=italic ctermbg=green guibg=green +! :highlight MyGroup3 term=underline ctermbg=blue guibg=blue + :match MyGroup1 /TODO/ + :2match MyGroup2 /FIXME/ + :3match MyGroup3 /XXX/ +*** ../vim-7.4.535/src/version.c 2014-11-27 18:32:58.532564506 +0100 +--- src/version.c 2014-11-27 18:37:25.493628091 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 536, + /**/ + +-- +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 96784c877082bfb407e3cf41085ecaadf2804c9e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Nov 2014 18:00:11 +0100 Subject: [PATCH 0152/1616] - patchlevel 537 --- 7.4.537 | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 7.4.537 diff --git a/7.4.537 b/7.4.537 new file mode 100644 index 00000000..982a06c3 --- /dev/null +++ b/7.4.537 @@ -0,0 +1,120 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.537 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.537 +Problem: Value of v:hlsearch reflects an internal variable. +Solution: Make the value reflect whether search highlighting is actually + displayed. (Christian Brabandt) +Files: runtime/doc/eval.txt, src/testdir/test101.in, + src/testdir/test101.ok, src/vim.h + + +*** ../vim-7.4.536/runtime/doc/eval.txt 2014-11-05 18:05:48.652441306 +0100 +--- runtime/doc/eval.txt 2014-11-27 19:05:43.646912096 +0100 +*************** +*** 1457,1466 **** + 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* +--- 1457,1466 ---- + Read-only in the |sandbox|. |fold-foldtext| + + *v:hlsearch* *hlsearch-variable* +! v:hlsearch Variable that indicates whether search highlighting is on. +! Setting it 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* +*** ../vim-7.4.536/src/testdir/test101.in 2013-11-08 04:30:06.000000000 +0100 +--- src/testdir/test101.in 2014-11-27 19:07:09.509965031 +0100 +*************** +*** 25,30 **** +--- 25,33 ---- + :AddR + / + :AddR ++ :set nohls ++ / ++ :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")') +*** ../vim-7.4.536/src/testdir/test101.ok 2013-11-08 04:30:06.000000000 +0100 +--- src/testdir/test101.ok 2014-11-27 19:07:09.509965031 +0100 +*************** +*** 8,11 **** +--- 8,12 ---- + 1:highlighted + 0:not highlighted + 1:highlighted ++ 0:not highlighted + Vim(let):E706: +*** ../vim-7.4.536/src/vim.h 2014-08-29 12:58:38.246430208 +0200 +--- src/vim.h 2014-11-27 19:07:09.509965031 +0100 +*************** +*** 1998,2004 **** + + #ifndef FEAT_VIRTUALEDIT + # define getvvcol(w, p, s, c, e) getvcol(w, p, s, c, e) +! # define virtual_active() 0 + # define virtual_op FALSE + #endif + +--- 1998,2004 ---- + + #ifndef FEAT_VIRTUALEDIT + # define getvvcol(w, p, s, c, e) getvcol(w, p, s, c, e) +! # define virtual_active() FALSE + # define virtual_op FALSE + #endif + +*************** +*** 2277,2283 **** + #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 +--- 2277,2283 ---- + #define AUTOLOAD_CHAR '#' + + #ifdef FEAT_EVAL +! # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag); set_vim_var_nr(VV_HLSEARCH, !no_hlsearch && p_hls) + #else + # define SET_NO_HLSEARCH(flag) no_hlsearch = (flag) + #endif +*** ../vim-7.4.536/src/version.c 2014-11-27 18:57:07.472605147 +0100 +--- src/version.c 2014-11-27 19:07:39.973629032 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 537, + /**/ + +-- +A M00se once bit my sister ... + "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 666e280756a0596921ad7a2f9d00914905fea434 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Fri, 28 Nov 2014 18:00:12 +0100 Subject: [PATCH 0153/1616] - patchlevel 537 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index f79f6159..d5af3933 100644 --- a/README.patches +++ b/README.patches @@ -556,3 +556,6 @@ Individual patches for Vim 7.4: 4239 7.4.532 when using 'incsearch' "2/pattern/e" highlights first match 6017 7.4.533 ":hardcopy" leaks memory in case of errors 2827 7.4.534 warnings when compiling if_ruby.c + 10090 7.4.535 (after 7.4.530) can't build with tiny features + 1915 7.4.536 test 63 fails when using a black&white terminal + 3897 7.4.537 value of v:hlsearch reflects an internal variable diff --git a/vim.spec b/vim.spec index f8481172..63c93e0a 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 534 +%define patchlevel 537 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -581,6 +581,9 @@ Patch531: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.531 Patch532: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.532 Patch533: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.533 Patch534: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.534 +Patch535: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.535 +Patch536: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.536 +Patch537: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.537 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1262,6 +1265,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch532 -p0 %patch533 -p0 %patch534 -p0 +%patch535 -p0 +%patch536 -p0 +%patch537 -p0 # install spell files %if %{withvimspell} @@ -1779,6 +1785,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Fri Nov 28 2014 Karsten Hopp 7.4.537-1 +- patchlevel 537 + * Thu Nov 27 2014 Karsten Hopp 7.4.534-1 - patchlevel 534 From 4a44c03585a24d3f15a47310a25fdb074431bd16 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 30 Nov 2014 18:00:11 +0100 Subject: [PATCH 0154/1616] - patchlevel 538 --- 7.4.538 | 162 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 7.4.538 diff --git a/7.4.538 b/7.4.538 new file mode 100644 index 00000000..ddd46191 --- /dev/null +++ b/7.4.538 @@ -0,0 +1,162 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.538 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.538 +Problem: Tests fail with small features plus Python. +Solution: Disallow weird combination of options. Do not set "fdm" when + folding is disabled. +Files: src/option.c, src/ex_cmds.c, src/configure.in, src/auto/configure, + src/feature.h + + +*** ../vim-7.4.537/src/option.c 2014-11-19 19:33:13.369532180 +0100 +--- src/option.c 2014-11-30 12:56:25.150896626 +0100 +*************** +*** 5575,5580 **** +--- 5575,5581 ---- + if (idx < 0) /* not found (should not happen) */ + { + EMSG2(_(e_intern2), "set_string_option_direct()"); ++ EMSG2(_("For option %s"), name); + return; + } + } +*** ../vim-7.4.537/src/ex_cmds.c 2014-11-12 19:28:12.682661756 +0100 +--- src/ex_cmds.c 2014-11-30 12:58:01.761820052 +0100 +*************** +*** 6200,6208 **** +--- 6200,6210 ---- + (void)buf_init_chartab(curbuf, FALSE); + } + ++ #ifdef FEAT_FOLDING + /* Don't use the global foldmethod.*/ + set_string_option_direct((char_u *)"fdm", -1, (char_u *)"manual", + OPT_FREE|OPT_LOCAL, 0); ++ #endif + + curbuf->b_p_ts = 8; /* 'tabstop' is 8 */ + curwin->w_p_list = FALSE; /* no list mode */ +*** ../vim-7.4.537/src/configure.in 2014-10-11 14:47:22.817275547 +0200 +--- src/configure.in 2014-11-30 13:16:17.549623303 +0100 +*************** +*** 1041,1046 **** +--- 1041,1050 ---- + [enable_pythoninterp="no"]) + AC_MSG_RESULT($enable_pythoninterp) + if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then ++ if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then ++ AC_MSG_ERROR([cannot use Python with tiny or small features]) ++ fi ++ + dnl -- find the python executable + AC_PATH_PROGS(vi_cv_path_python, python2 python) + if test "X$vi_cv_path_python" != "X"; then +*************** +*** 1243,1248 **** +--- 1247,1256 ---- + [enable_python3interp="no"]) + AC_MSG_RESULT($enable_python3interp) + if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then ++ if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then ++ AC_MSG_ERROR([cannot use Python with tiny or small features]) ++ fi ++ + dnl -- find the python3 executable + AC_PATH_PROGS(vi_cv_path_python3, python3 python) + if test "X$vi_cv_path_python3" != "X"; then +*************** +*** 1720,1725 **** +--- 1728,1737 ---- + [enable_rubyinterp="no"]) + AC_MSG_RESULT($enable_rubyinterp) + if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then ++ if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then ++ AC_MSG_ERROR([cannot use Ruby with tiny or small features]) ++ fi ++ + AC_MSG_CHECKING(--with-ruby-command argument) + AC_SUBST(vi_cv_path_ruby) + AC_ARG_WITH(ruby-command, [ --with-ruby-command=RUBY name of the Ruby command (default: ruby)], +*** ../vim-7.4.537/src/auto/configure 2014-10-11 14:47:22.825275547 +0200 +--- src/auto/configure 2014-11-30 13:16:24.781542840 +0100 +*************** +*** 5728,5733 **** +--- 5728,5737 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_pythoninterp" >&5 + $as_echo "$enable_pythoninterp" >&6; } + if test "$enable_pythoninterp" = "yes" -o "$enable_pythoninterp" = "dynamic"; then ++ if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then ++ as_fn_error $? "cannot use Python with tiny or small features" "$LINENO" 5 ++ fi ++ + for ac_prog in python2 python + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +*************** +*** 6044,6049 **** +--- 6048,6057 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_python3interp" >&5 + $as_echo "$enable_python3interp" >&6; } + if test "$enable_python3interp" = "yes" -o "$enable_python3interp" = "dynamic"; then ++ if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then ++ as_fn_error $? "cannot use Python with tiny or small features" "$LINENO" 5 ++ fi ++ + for ac_prog in python3 python + do + # Extract the first word of "$ac_prog", so it can be a program name with args. +*************** +*** 6929,6934 **** +--- 6937,6946 ---- + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_rubyinterp" >&5 + $as_echo "$enable_rubyinterp" >&6; } + if test "$enable_rubyinterp" = "yes" -o "$enable_rubyinterp" = "dynamic"; then ++ if test "x$features" = "xtiny" -o "x$features" = "xsmall"; then ++ as_fn_error $? "cannot use Ruby with tiny or small features" "$LINENO" 5 ++ fi ++ + { $as_echo "$as_me:${as_lineno-$LINENO}: checking --with-ruby-command argument" >&5 + $as_echo_n "checking --with-ruby-command argument... " >&6; } + +*** ../vim-7.4.537/src/feature.h 2014-03-23 15:12:29.943264337 +0100 +--- src/feature.h 2014-11-30 13:22:11.997681089 +0100 +*************** +*** 385,397 **** + #endif + + /* +- * +python and +python3 require FEAT_EVAL. +- */ +- #if !defined(FEAT_EVAL) && (defined(FEAT_PYTHON3) || defined(FEAT_PYTHON)) +- # define FEAT_EVAL +- #endif +- +- /* + * +profile Profiling for functions and scripts. + */ + #if defined(FEAT_HUGE) \ +--- 385,390 ---- +*** ../vim-7.4.537/src/version.c 2014-11-27 19:14:45.080940970 +0100 +--- src/version.c 2014-11-30 13:22:33.565441297 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 538, + /**/ + +-- +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 2a9293c18323cb3228287a3b9c110c7a567f6733 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 30 Nov 2014 18:00:12 +0100 Subject: [PATCH 0155/1616] - patchlevel 539 --- 7.4.539 | 258 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 258 insertions(+) create mode 100644 7.4.539 diff --git a/7.4.539 b/7.4.539 new file mode 100644 index 00000000..b6e42ca5 --- /dev/null +++ b/7.4.539 @@ -0,0 +1,258 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.539 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.539 (after 7.4.530) +Problem: Crash when computing buffer count. Problem with range for user + commands. Line range wrong in Visual area. +Solution: Avoid segfault in compute_buffer_local_count(). Check for + CMD_USER when checking type of range. (Marcin Szamotulski) +Files: runtime/doc/windows.txt, src/ex_docmd.c + + +*** ../vim-7.4.538/runtime/doc/windows.txt 2014-11-27 16:22:42.738413084 +0100 +--- runtime/doc/windows.txt 2014-11-30 14:34:30.241835431 +0100 +*************** +*** 1026,1032 **** + Actually, the buffer isn't completely deleted, it is removed + from the buffer list |unlisted-buffer| and option values, + variables and mappings/abbreviations for the buffer are +! cleared. + + :bdelete[!] {bufname} *E93* *E94* + Like ":bdelete[!] [N]", but buffer given by name. Note that a +--- 1029,1039 ---- + Actually, the buffer isn't completely deleted, it is removed + from the buffer list |unlisted-buffer| and option values, + variables and mappings/abbreviations for the buffer are +! cleared. Examples: > +! :.,$-bdelete " delete buffers from the current one to +! " last but one +! :%bdelete " delete all buffers +! < + + :bdelete[!] {bufname} *E93* *E94* + Like ":bdelete[!] [N]", but buffer given by name. Note that a +*************** +*** 1050,1056 **** + Like |:bdelete|, but really delete the buffer. Everything + related to the buffer is lost. All marks in this buffer + become invalid, option settings are lost, etc. Don't use this +! unless you know what you are doing. + + :[N]bun[load][!] *:bun* *:bunload* *E515* + :bun[load][!] [N] +--- 1057,1067 ---- + Like |:bdelete|, but really delete the buffer. Everything + related to the buffer is lost. All marks in this buffer + become invalid, option settings are lost, etc. Don't use this +! unless you know what you are doing. Examples: > +! :.+,$bwipeout " wipe out all buffers after the current +! " one +! :%bwipeout " wipe out all buffers +! < + + :[N]bun[load][!] *:bun* *:bunload* *E515* + :bun[load][!] [N] +*** ../vim-7.4.538/src/ex_docmd.c 2014-11-27 18:32:58.528564550 +0100 +--- src/ex_docmd.c 2014-11-30 14:40:28.521847466 +0100 +*************** +*** 1694,1699 **** +--- 1694,1700 ---- + int offset; + { + buf_T *buf; ++ buf_T *nextbuf; + int count = offset; + + buf = firstbuf; +*************** +*** 1701,1715 **** + buf = buf->b_next; + while (count != 0) + { +! count += (count < 0) ? 1 : -1; +! if (buf->b_prev == NULL) + break; +! buf = (count < 0) ? buf->b_prev : buf->b_next; + if (addr_type == ADDR_LOADED_BUFFERS) + /* skip over unloaded buffers */ +! while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL) +! buf = (count < 0) ? buf->b_prev : buf->b_next; + } + return buf->b_fnum; + } + +--- 1702,1731 ---- + buf = buf->b_next; + while (count != 0) + { +! count += (offset < 0) ? 1 : -1; +! nextbuf = (offset < 0) ? buf->b_prev : buf->b_next; +! if (nextbuf == NULL) + break; +! buf = nextbuf; + if (addr_type == ADDR_LOADED_BUFFERS) + /* skip over unloaded buffers */ +! while (buf->b_ml.ml_mfp == NULL) +! { +! nextbuf = (offset < 0) ? buf->b_prev : buf->b_next; +! if (nextbuf == NULL) +! break; +! buf = nextbuf; +! } + } ++ /* we might have gone too far, last buffer is not loadedd */ ++ if (addr_type == ADDR_LOADED_BUFFERS) ++ while (buf->b_ml.ml_mfp == NULL) ++ { ++ nextbuf = (offset >= 0) ? buf->b_prev : buf->b_next; ++ if (nextbuf == NULL) ++ break; ++ buf = nextbuf; ++ } + return buf->b_fnum; + } + +*************** +*** 2113,2119 **** + * is equal to the lower. + */ + +! if (ea.cmdidx != CMD_SIZE) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else + ea.addr_type = ADDR_LINES; +--- 2129,2135 ---- + * is equal to the lower. + */ + +! if (ea.cmdidx != CMD_USER && ea.cmdidx != CMD_SIZE) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else + ea.addr_type = ADDR_LINES; +*************** +*** 2153,2158 **** +--- 2169,2175 ---- + { + if (*ea.cmd == '%') /* '%' - all lines */ + { ++ buf_T *buf; + ++ea.cmd; + switch (ea.addr_type) + { +*************** +*** 2160,2168 **** + ea.line1 = 1; + ea.line2 = curbuf->b_ml.ml_line_count; + break; +- case ADDR_WINDOWS: + case ADDR_LOADED_BUFFERS: + case ADDR_UNLOADED_BUFFERS: + case ADDR_TABS: + errormsg = (char_u *)_(e_invrange); + goto doend; +--- 2177,2197 ---- + ea.line1 = 1; + ea.line2 = curbuf->b_ml.ml_line_count; + break; + case ADDR_LOADED_BUFFERS: ++ buf = firstbuf; ++ while (buf->b_next != NULL && buf->b_ml.ml_mfp == NULL) ++ buf = buf->b_next; ++ ea.line1 = buf->b_fnum; ++ buf = lastbuf; ++ while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL) ++ buf = buf->b_prev; ++ ea.line2 = buf->b_fnum; ++ break; + case ADDR_UNLOADED_BUFFERS: ++ ea.line1 = firstbuf->b_fnum; ++ ea.line2 = lastbuf->b_fnum; ++ break; ++ case ADDR_WINDOWS: + case ADDR_TABS: + errormsg = (char_u *)_(e_invrange); + goto doend; +*************** +*** 4463,4469 **** + n = getdigits(&cmd); + if (addr_type == ADDR_LOADED_BUFFERS + || addr_type == ADDR_UNLOADED_BUFFERS) +! lnum = compute_buffer_local_count(addr_type, lnum, n); + else if (i == '-') + lnum -= n; + else +--- 4492,4498 ---- + n = getdigits(&cmd); + if (addr_type == ADDR_LOADED_BUFFERS + || addr_type == ADDR_UNLOADED_BUFFERS) +! lnum = compute_buffer_local_count(addr_type, lnum, (i == '-') ? -1 * n : n); + else if (i == '-') + lnum -= n; + else +*************** +*** 4485,4493 **** + lnum = 0; + break; + } +! c = LAST_TAB_NR; +! if (lnum >= c) +! lnum = c; + break; + case ADDR_WINDOWS: + if (lnum < 0) +--- 4514,4521 ---- + lnum = 0; + break; + } +! if (lnum >= LAST_TAB_NR) +! lnum = LAST_TAB_NR; + break; + case ADDR_WINDOWS: + if (lnum < 0) +*************** +*** 4495,4503 **** + lnum = 0; + break; + } +! c = LAST_WIN_NR; +! if (lnum > c) +! lnum = c; + break; + case ADDR_LOADED_BUFFERS: + case ADDR_UNLOADED_BUFFERS: +--- 4523,4530 ---- + lnum = 0; + break; + } +! if (lnum >= LAST_WIN_NR) +! lnum = LAST_WIN_NR; + break; + case ADDR_LOADED_BUFFERS: + case ADDR_UNLOADED_BUFFERS: +*** ../vim-7.4.538/src/version.c 2014-11-30 13:34:16.893626683 +0100 +--- src/version.c 2014-11-30 14:33:29.622510487 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 539, + /**/ + +-- +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 /// From 0431aeeacd17e7042fa71de32a9b762b23516f16 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 30 Nov 2014 18:00:13 +0100 Subject: [PATCH 0156/1616] - patchlevel 539 --- README.patches | 2 ++ vim.spec | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index d5af3933..4100da55 100644 --- a/README.patches +++ b/README.patches @@ -559,3 +559,5 @@ Individual patches for Vim 7.4: 10090 7.4.535 (after 7.4.530) can't build with tiny features 1915 7.4.536 test 63 fails when using a black&white terminal 3897 7.4.537 value of v:hlsearch reflects an internal variable + 5830 7.4.538 tests fail with small features plus Python + 7422 7.4.539 (after 7.4.530) crash when computing buffer count diff --git a/vim.spec b/vim.spec index 63c93e0a..5d684dae 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 537 +%define patchlevel 539 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -584,6 +584,8 @@ Patch534: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.534 Patch535: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.535 Patch536: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.536 Patch537: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.537 +Patch538: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.538 +Patch539: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.539 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1268,6 +1270,8 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch535 -p0 %patch536 -p0 %patch537 -p0 +%patch538 -p0 +%patch539 -p0 # install spell files %if %{withvimspell} @@ -1785,6 +1789,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Nov 30 2014 Karsten Hopp 7.4.539-1 +- patchlevel 539 + * Fri Nov 28 2014 Karsten Hopp 7.4.537-1 - patchlevel 537 From f50f8609c7b554fc6003c2cb9ba57370c36698d2 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 1 Dec 2014 18:00:16 +0100 Subject: [PATCH 0157/1616] - patchlevel 540 --- 7.4.540 | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 7.4.540 diff --git a/7.4.540 b/7.4.540 new file mode 100644 index 00000000..685fb7a4 --- /dev/null +++ b/7.4.540 @@ -0,0 +1,58 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.540 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.540 (after 7.4.539) +Problem: Cannot build with tiny and small features. (Taro Muraoka) +Solution: Add #ifdef around CMD_USER. +Files: src/ex_docmd.c + + +*** ../vim-7.4.539/src/ex_docmd.c 2014-11-30 14:50:12.259356186 +0100 +--- src/ex_docmd.c 2014-11-30 22:32:24.213687119 +0100 +*************** +*** 2129,2135 **** + * is equal to the lower. + */ + +! if (ea.cmdidx != CMD_USER && ea.cmdidx != CMD_SIZE) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else + ea.addr_type = ADDR_LINES; +--- 2129,2139 ---- + * is equal to the lower. + */ + +! if (ea.cmdidx != CMD_SIZE +! #ifdef FEAT_USR_CMDS +! && ea.cmdidx != CMD_USER +! #endif +! ) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else + ea.addr_type = ADDR_LINES; +*** ../vim-7.4.539/src/version.c 2014-11-30 14:50:12.259356186 +0100 +--- src/version.c 2014-11-30 22:34:06.820539874 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 540, + /**/ + +-- +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 /// From 6bff641bdf1bba704410aee0e956574fc3cf6ea5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 1 Dec 2014 18:00:18 +0100 Subject: [PATCH 0158/1616] - patchlevel 540 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 4100da55..c03804fd 100644 --- a/README.patches +++ b/README.patches @@ -561,3 +561,4 @@ Individual patches for Vim 7.4: 3897 7.4.537 value of v:hlsearch reflects an internal variable 5830 7.4.538 tests fail with small features plus Python 7422 7.4.539 (after 7.4.530) crash when computing buffer count + 1802 7.4.540 (after 7.4.539) cannot build with tiny and small features diff --git a/vim.spec b/vim.spec index 5d684dae..388c95b5 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 539 +%define patchlevel 540 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -586,6 +586,7 @@ Patch536: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.536 Patch537: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.537 Patch538: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.538 Patch539: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.539 +Patch540: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.540 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1272,6 +1273,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch537 -p0 %patch538 -p0 %patch539 -p0 +%patch540 -p0 # install spell files %if %{withvimspell} @@ -1789,6 +1791,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Dec 01 2014 Karsten Hopp 7.4.540-1 +- patchlevel 540 + * Sun Nov 30 2014 Karsten Hopp 7.4.539-1 - patchlevel 539 From 5dbf14a540ee666713af9052a2d9d2978fc97da6 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 7 Dec 2014 18:00:10 +0100 Subject: [PATCH 0159/1616] - patchlevel 541 --- 7.4.541 | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 7.4.541 diff --git a/7.4.541 b/7.4.541 new file mode 100644 index 00000000..27f407b7 --- /dev/null +++ b/7.4.541 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.541 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.541 +Problem: Crash when doing a range assign. +Solution: Check for NULL poiter. (Yukihiro Nakadaira) +Files: src/eval.c, src/testdir/test55.in, src/testdir/test55.ok + + +*** ../vim-7.4.540/src/eval.c 2014-11-19 20:04:43.656099839 +0100 +--- src/eval.c 2014-12-07 00:05:47.404278920 +0100 +*************** +*** 2951,2957 **** + /* + * Check whether any of the list items is locked + */ +! for (ri = rettv->vval.v_list->lv_first; ri != NULL; ) + { + if (tv_check_lock(ll_li->li_tv.v_lock, lp->ll_name)) + return; +--- 2951,2957 ---- + /* + * Check whether any of the list items is locked + */ +! 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; +*** ../vim-7.4.540/src/testdir/test55.in 2014-08-29 09:46:04.262404970 +0200 +--- src/testdir/test55.in 2014-12-07 00:04:41.892976604 +0100 +*************** +*** 401,406 **** +--- 401,411 ---- + : $put =v:exception[:15] . v:exception[-1:-1] + :endtry + :$put =string(d) ++ :" ++ :" test for range assign ++ :let l = [0] ++ :let l[:] = [1, 2] ++ :$put =string(l) + :endfun + :" + :call Test(1, 2, [3, 4], {5: 6}) " This may take a while +*** ../vim-7.4.540/src/testdir/test55.ok 2014-08-29 09:46:04.266404970 +0200 +--- src/testdir/test55.ok 2014-12-07 00:05:08.208695651 +0100 +*************** +*** 129,134 **** +--- 129,135 ---- + {'a': {'b': 'B'}} + Vim(call):E737: a + {'a': {'b': 'B'}} ++ [1, 2] + Vim(foldopen):E490: + + +*** ../vim-7.4.540/src/version.c 2014-11-30 22:51:00.629191482 +0100 +--- src/version.c 2014-12-07 00:04:11.237300854 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 541, + /**/ + +-- +Any resemblance between the above views and those of my employer, my terminal, +or the view out my window are purely coincidental. Any resemblance between +the above and my own views is non-deterministic. The question of the +existence of views in the absence of anyone to hold them is left as an +exercise for the reader. The question of the existence of the reader is left +as an exercise for the second god coefficient. (A discussion of +non-orthogonal, non-integral polytheism is beyond the scope of this article.) + (Ralph Jennings) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From cf8e5d0858ad324cf5eeeb94891521e2c9530016 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 7 Dec 2014 18:00:12 +0100 Subject: [PATCH 0160/1616] - patchlevel 541 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index c03804fd..a45391ab 100644 --- a/README.patches +++ b/README.patches @@ -562,3 +562,4 @@ Individual patches for Vim 7.4: 5830 7.4.538 tests fail with small features plus Python 7422 7.4.539 (after 7.4.530) crash when computing buffer count 1802 7.4.540 (after 7.4.539) cannot build with tiny and small features + 2795 7.4.541 crash when doing a range assign diff --git a/vim.spec b/vim.spec index 388c95b5..ed43ab78 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 540 +%define patchlevel 541 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -587,6 +587,7 @@ Patch537: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.537 Patch538: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.538 Patch539: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.539 Patch540: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.540 +Patch541: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.541 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1274,6 +1275,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch538 -p0 %patch539 -p0 %patch540 -p0 +%patch541 -p0 # install spell files %if %{withvimspell} @@ -1791,6 +1793,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Dec 07 2014 Karsten Hopp 7.4.541-1 +- patchlevel 541 + * Mon Dec 01 2014 Karsten Hopp 7.4.540-1 - patchlevel 540 From 3e8b591762195ca737e57111ab32467b79b56035 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 8 Dec 2014 18:00:10 +0100 Subject: [PATCH 0161/1616] - patchlevel 542 --- 7.4.542 | 992 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 992 insertions(+) create mode 100644 7.4.542 diff --git a/7.4.542 b/7.4.542 new file mode 100644 index 00000000..9532766f --- /dev/null +++ b/7.4.542 @@ -0,0 +1,992 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.5 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.542 +Problem: Using a range for window and buffer commands has a few problems. + Cannot specify the type of range for a user command. +Solution: Add the -addr argument for user commands. Fix problems. (Marcin + Szamotulski) +Files: src/testdir/test_command_count.in, + src/testdir/test_command_count.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, runtime/doc/map.txt, src/Makefile, + src/ex_cmds.h, src/ex_docmd.c, src/ex_getln.c, + src/proto/ex_docmd.pro, src/vim.h, + + +*** ../vim-7.4.541/src/testdir/test_command_count.in 2014-12-08 04:12:53.163981827 +0100 +--- src/testdir/test_command_count.in 2014-12-08 03:25:41.562266976 +0100 +*************** +*** 0 **** +--- 1,50 ---- ++ Test for user command counts vim: set ft=vim : ++ ++ STARTTEST ++ :let g:lines = [] ++ :so tiny.vim ++ :com -range RangeLines :call add(g:lines, 'Rangeg:Lines '..' '.) ++ :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) ++ :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '..' '.) ++ :com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '..' '.) ++ :com -range=% -addr=loaded_buffers RangeLoadedBuffersAll :call add(g:lines, 'RangeLoadedBuffersAll '..' '.) ++ :com -range -addr=buffers RangeBuffers :call add(g:lines, 'RangeBuffers '..' '.) ++ :com -range=% -addr=buffers RangeBuffersAll :call add(g:lines, 'RangeBuffersAll '..' '.) ++ :com -range -addr=windows RangeWindows :call add(g:lines, 'RangeWindows '..' '.) ++ :com -range=% -addr=windows RangeWindowsAll :call add(g:lines, 'RangeWindowsAll '..' '.) ++ :com -range -addr=tabs RangeTabs :call add(g:lines, 'RangeTabs '..' '.) ++ :com -range=% -addr=tabs RangeTabsAll :call add(g:lines, 'RangeTabsAll '..' '.) ++ :set hidden ++ :arga a b c d ++ :argdo echo "loading buffers" ++ :argu 3 ++ :.-,$-RangeArguments ++ :%RangeArguments ++ :RangeArgumentsAll ++ :N ++ :.RangeArguments ++ :split|split|split|split ++ :3wincmd w ++ :.,$RangeWindows ++ :%RangeWindows ++ :RangeWindowsAll ++ :only ++ :blast|bd ++ :.,$RangeLoadedBuffers ++ :%RangeLoadedBuffers ++ :RangeLoadedBuffersAll ++ :.,$RangeBuffers ++ :%RangeBuffers ++ :RangeBuffersAll ++ :tabe|tabe|tabe|tabe ++ :normal 2gt ++ :.,$RangeTabs ++ :%RangeTabs ++ :RangeTabsAll ++ :1tabonly ++ :e! test.out ++ :call append(0, g:lines) ++ :w|qa! ++ ENDTEST ++ ++ +*** ../vim-7.4.541/src/testdir/test_command_count.ok 2014-12-08 04:12:53.163981827 +0100 +--- src/testdir/test_command_count.ok 2014-12-08 03:26:11.769943969 +0100 +*************** +*** 0 **** +--- 1,17 ---- ++ RangeArguments 2 4 ++ RangeArguments 1 5 ++ RangeArgumentsAll 1 5 ++ RangeArguments 2 2 ++ RangeWindows 3 5 ++ RangeWindows 1 5 ++ RangeWindowsAll 1 5 ++ RangeLoadedBuffers 2 4 ++ RangeLoadedBuffers 1 4 ++ RangeLoadedBuffersAll 1 4 ++ RangeBuffers 2 5 ++ RangeBuffers 1 5 ++ RangeBuffersAll 1 5 ++ RangeTabs 2 5 ++ RangeTabs 1 5 ++ RangeTabsAll 1 5 ++ +*** ../vim-7.4.541/src/testdir/Make_amiga.mak 2014-11-27 16:22:42.742413039 +0100 +--- src/testdir/Make_amiga.mak 2014-12-08 03:28:30.984456524 +0100 +*************** +*** 41,46 **** +--- 41,47 ---- + test_breakindent.out \ + test_changelist.out \ + test_close_count.out \ ++ test_command_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*************** +*** 178,183 **** +--- 179,185 ---- + test_breakindent.out: test_breakindent.in + test_changelist.out: test_changelist.in + test_close_count.out: test_close_count.in ++ test_command_count.out: test_command_count.in + test_eval.out: test_eval.in + test_insertcount.out: test_insertcount.in + test_listlbr.out: test_listlbr.in +*** ../vim-7.4.541/src/testdir/Make_dos.mak 2014-11-27 16:22:42.742413039 +0100 +--- src/testdir/Make_dos.mak 2014-12-08 03:28:43.168326713 +0100 +*************** +*** 40,45 **** +--- 40,46 ---- + test_breakindent.out \ + test_changelist.out \ + test_close_count.out \ ++ test_command_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.541/src/testdir/Make_ming.mak 2014-11-27 16:22:42.742413039 +0100 +--- src/testdir/Make_ming.mak 2014-12-08 03:28:54.020208323 +0100 +*************** +*** 62,67 **** +--- 62,68 ---- + test_breakindent.out \ + test_changelist.out \ + test_close_count.out \ ++ test_command_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.541/src/testdir/Make_os2.mak 2014-11-27 16:22:42.742413039 +0100 +--- src/testdir/Make_os2.mak 2014-12-08 03:29:03.304108543 +0100 +*************** +*** 42,47 **** +--- 42,48 ---- + test_breakindent.out \ + test_changelist.out \ + test_close_count.out \ ++ test_command_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.541/src/testdir/Make_vms.mms 2014-11-27 16:22:42.746412995 +0100 +--- src/testdir/Make_vms.mms 2014-12-08 03:29:12.596009487 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2014 Nov 27 + # + # 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 Dec 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_breakindent.out \ + test_changelist.out \ + test_close_count.out \ ++ test_command_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.541/src/testdir/Makefile 2014-11-27 16:22:42.746412995 +0100 +--- src/testdir/Makefile 2014-12-08 03:29:36.519753429 +0100 +*************** +*** 38,43 **** +--- 38,44 ---- + test_breakindent.out \ + test_changelist.out \ + test_close_count.out \ ++ test_command_count.out \ + test_eval.out \ + test_insertcount.out \ + test_listlbr.out \ +*** ../vim-7.4.541/runtime/doc/map.txt 2014-02-23 23:38:58.820760280 +0100 +--- runtime/doc/map.txt 2014-12-08 03:33:48.569056762 +0100 +*************** +*** 1344,1349 **** +--- 1358,1376 ---- + Note that -range=N and -count=N are mutually exclusive - only one should be + specified. + ++ *E889* *:command-addr* ++ It is possible that the special characters in the range like ., $ or % which ++ by default correspond to the current line, last line and the whole buffer, ++ relate to arguments, (loaded) buffers, windows or tab pages. ++ ++ Possible values are: ++ -addr=lines Range of lines (this is the default) ++ -addr=arguments Range for arguments ++ -addr=buffers Range for buffers (also not loaded buffers) ++ -addr=loaded_buffers Range for loaded buffers ++ -addr=windows Range for windows ++ -addr=tabs Range for tab pages ++ + Special cases *:command-bang* *:command-bar* + *:command-register* *:command-buffer* + There are some special cases as well: +*** ../vim-7.4.541/src/Makefile 2014-11-27 16:22:42.738413084 +0100 +--- src/Makefile 2014-12-08 03:30:06.167435718 +0100 +*************** +*** 1896,1901 **** +--- 1896,1902 ---- + test_breakindent \ + test_changelist \ + test_close_count \ ++ test_command_count \ + test_eval \ + test_insertcount \ + test_listlbr \ +*** ../vim-7.4.541/src/ex_cmds.h 2014-11-27 16:22:42.742413039 +0100 +--- src/ex_cmds.h 2014-12-08 03:30:59.278867940 +0100 +*************** +*** 63,69 **** + #define ADDR_WINDOWS 1 + #define ADDR_ARGUMENTS 2 + #define ADDR_LOADED_BUFFERS 3 +! #define ADDR_UNLOADED_BUFFERS 4 + #define ADDR_TABS 5 + + #ifndef DO_DECLARE_EXCMD +--- 63,69 ---- + #define ADDR_WINDOWS 1 + #define ADDR_ARGUMENTS 2 + #define ADDR_LOADED_BUFFERS 3 +! #define ADDR_BUFFERS 4 + #define ADDR_TABS 5 + + #ifndef DO_DECLARE_EXCMD +*************** +*** 161,167 **** + ADDR_LINES), + EX(CMD_buffer, "buffer", ex_buffer, + BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR, +! ADDR_UNLOADED_BUFFERS), + EX(CMD_bNext, "bNext", ex_bprevious, + BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, + ADDR_LINES), +--- 161,167 ---- + ADDR_LINES), + EX(CMD_buffer, "buffer", ex_buffer, + BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR, +! ADDR_BUFFERS), + EX(CMD_bNext, "bNext", ex_bprevious, + BANG|RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, + ADDR_LINES), +*************** +*** 227,233 **** + ADDR_LOADED_BUFFERS), + EX(CMD_bwipeout, "bwipeout", ex_bunload, + BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR, +! ADDR_UNLOADED_BUFFERS), + EX(CMD_change, "change", ex_change, + BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY, + ADDR_LINES), +--- 227,233 ---- + ADDR_LOADED_BUFFERS), + EX(CMD_bwipeout, "bwipeout", ex_bunload, + BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|TRLBAR, +! ADDR_BUFFERS), + EX(CMD_change, "change", ex_change, + BANG|WHOLEFOLD|RANGE|COUNT|TRLBAR|CMDWIN|MODIFY, + ADDR_LINES), +*************** +*** 1184,1190 **** + ADDR_LINES), + EX(CMD_sbuffer, "sbuffer", ex_buffer, + BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR, +! ADDR_UNLOADED_BUFFERS), + EX(CMD_sbNext, "sbNext", ex_bprevious, + RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, + ADDR_LINES), +--- 1184,1190 ---- + ADDR_LINES), + EX(CMD_sbuffer, "sbuffer", ex_buffer, + BANG|RANGE|NOTADR|BUFNAME|BUFUNL|COUNT|EXTRA|EDITCMD|TRLBAR, +! ADDR_BUFFERS), + EX(CMD_sbNext, "sbNext", ex_bprevious, + RANGE|NOTADR|COUNT|EDITCMD|TRLBAR, + ADDR_LINES), +*** ../vim-7.4.541/src/ex_docmd.c 2014-11-30 22:51:00.629191482 +0100 +--- src/ex_docmd.c 2014-12-08 04:00:14.540095591 +0100 +*************** +*** 27,32 **** +--- 27,33 ---- + char_u *uc_rep; /* The command's replacement string */ + long uc_def; /* The default value for a range/count */ + int uc_compl; /* completion type */ ++ int uc_addr_type; /* The command's address type */ + # ifdef FEAT_EVAL + scid_T uc_scriptID; /* SID where the command was defined */ + # ifdef FEAT_CMDL_COMPL +*************** +*** 2136,2142 **** +--- 2137,2147 ---- + ) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else ++ #ifdef FEAT_USR_CMDS ++ if (ea.cmdidx != CMD_USER) ++ #endif + ea.addr_type = ADDR_LINES; ++ /* ea.addr_type for user commands is set by find_ucmd */ + ea.cmd = cmd; + + /* repeat for all ',' or ';' separated addresses */ +*************** +*** 2157,2163 **** + ea.line2 = curwin->w_arg_idx + 1; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: + ea.line2 = curbuf->b_fnum; + break; + case ADDR_TABS: +--- 2162,2168 ---- + ea.line2 = curwin->w_arg_idx + 1; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_BUFFERS: + ea.line2 = curbuf->b_fnum; + break; + case ADDR_TABS: +*************** +*** 2191,2208 **** + buf = buf->b_prev; + ea.line2 = buf->b_fnum; + break; +! case ADDR_UNLOADED_BUFFERS: + ea.line1 = firstbuf->b_fnum; + ea.line2 = lastbuf->b_fnum; + break; + case ADDR_WINDOWS: + case ADDR_TABS: +! errormsg = (char_u *)_(e_invrange); +! goto doend; + break; + case ADDR_ARGUMENTS: +! ea.line1 = 1; +! ea.line2 = ARGCOUNT; + break; + } + ++ea.addr_count; +--- 2196,2229 ---- + buf = buf->b_prev; + ea.line2 = buf->b_fnum; + break; +! case ADDR_BUFFERS: + ea.line1 = firstbuf->b_fnum; + ea.line2 = lastbuf->b_fnum; + break; + case ADDR_WINDOWS: + case ADDR_TABS: +! if (IS_USER_CMDIDX(ea.cmdidx)) +! { +! ea.line1 = 1; +! ea.line2 = ea.addr_type == ADDR_WINDOWS +! ? LAST_WIN_NR : LAST_TAB_NR; +! } +! else +! { +! /* there is no Vim command which uses '%' and +! * ADDR_WINDOWS or ADDR_TABS */ +! errormsg = (char_u *)_(e_invrange); +! goto doend; +! } + break; + case ADDR_ARGUMENTS: +! if (ARGCOUNT == 0) +! ea.line1 = ea.line2 = 0; +! else +! { +! ea.line1 = 1; +! ea.line2 = ARGCOUNT; +! } + break; + } + ++ea.addr_count; +*************** +*** 2629,2636 **** + + if ((ea.argt & DFLALL) && ea.addr_count == 0) + { + ea.line1 = 1; +! ea.line2 = curbuf->b_ml.ml_line_count; + } + + /* accept numbered register only when no count allowed (:put) */ +--- 2650,2690 ---- + + if ((ea.argt & DFLALL) && ea.addr_count == 0) + { ++ buf_T *buf; ++ + ea.line1 = 1; +! switch (ea.addr_type) +! { +! case ADDR_LINES: +! ea.line2 = curbuf->b_ml.ml_line_count; +! break; +! case ADDR_LOADED_BUFFERS: +! buf = firstbuf; +! while (buf->b_next != NULL && buf->b_ml.ml_mfp == NULL) +! buf = buf->b_next; +! ea.line1 = buf->b_fnum; +! buf = lastbuf; +! while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL) +! buf = buf->b_prev; +! ea.line2 = buf->b_fnum; +! break; +! case ADDR_BUFFERS: +! ea.line1 = firstbuf->b_fnum; +! ea.line2 = lastbuf->b_fnum; +! break; +! case ADDR_WINDOWS: +! ea.line2 = LAST_WIN_NR; +! break; +! case ADDR_TABS: +! ea.line2 = LAST_TAB_NR; +! break; +! case ADDR_ARGUMENTS: +! if (ARGCOUNT == 0) +! ea.line1 = ea.line2 = 0; +! else +! ea.line2 = ARGCOUNT; +! break; +! } + } + + /* accept numbered register only when no count allowed (:put) */ +*************** +*** 3211,3216 **** +--- 3265,3271 ---- + eap->cmdidx = CMD_USER_BUF; + eap->argt = (long)uc->uc_argt; + eap->useridx = j; ++ eap->addr_type = uc->uc_addr_type; + + # ifdef FEAT_CMDL_COMPL + if (compl != NULL) +*************** +*** 3839,3845 **** + return NULL; + } + +! /* For the -complete and -nargs attributes, we complete + * their arguments as well. + */ + if (STRNICMP(arg, "complete", p - arg) == 0) +--- 3894,3900 ---- + return NULL; + } + +! /* For the -complete, -nargs and -addr attributes, we complete + * their arguments as well. + */ + if (STRNICMP(arg, "complete", p - arg) == 0) +*************** +*** 3854,3859 **** +--- 3909,3920 ---- + xp->xp_pattern = p + 1; + return NULL; + } ++ else if (STRNICMP(arg, "addr", p - arg) == 0) ++ { ++ xp->xp_context = EXPAND_USER_ADDR_TYPE; ++ xp->xp_pattern = p + 1; ++ return NULL; ++ } + return NULL; + } + arg = skipwhite(p); +*************** +*** 4264,4269 **** +--- 4325,4331 ---- + pos_T pos; + pos_T *fp; + linenr_T lnum; ++ buf_T *buf; + + cmd = skipwhite(*ptr); + lnum = MAXLNUM; +*************** +*** 4285,4291 **** + lnum = curwin->w_arg_idx + 1; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +--- 4347,4353 ---- + lnum = curwin->w_arg_idx + 1; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_BUFFERS: + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +*************** +*** 4308,4314 **** + lnum = ARGCOUNT; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: + lnum = lastbuf->b_fnum; + break; + case ADDR_TABS: +--- 4370,4385 ---- + lnum = ARGCOUNT; + break; + case ADDR_LOADED_BUFFERS: +! buf = lastbuf; +! while (buf->b_ml.ml_mfp == NULL) +! { +! if (buf->b_prev == NULL) +! break; +! buf = buf->b_prev; +! } +! lnum = buf->b_fnum; +! break; +! case ADDR_BUFFERS: + lnum = lastbuf->b_fnum; + break; + case ADDR_TABS: +*************** +*** 4477,4483 **** + lnum = curwin->w_arg_idx + 1; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +--- 4548,4554 ---- + lnum = curwin->w_arg_idx + 1; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_BUFFERS: + lnum = curbuf->b_fnum; + break; + case ADDR_TABS: +*************** +*** 4495,4501 **** + else + n = getdigits(&cmd); + if (addr_type == ADDR_LOADED_BUFFERS +! || addr_type == ADDR_UNLOADED_BUFFERS) + lnum = compute_buffer_local_count(addr_type, lnum, (i == '-') ? -1 * n : n); + else if (i == '-') + lnum -= n; +--- 4566,4572 ---- + else + 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; +*************** +*** 4531,4537 **** + lnum = LAST_WIN_NR; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_UNLOADED_BUFFERS: + if (lnum < firstbuf->b_fnum) + { + lnum = firstbuf->b_fnum; +--- 4602,4608 ---- + lnum = LAST_WIN_NR; + break; + case ADDR_LOADED_BUFFERS: +! case ADDR_BUFFERS: + if (lnum < firstbuf->b_fnum) + { + lnum = firstbuf->b_fnum; +*************** +*** 5585,5598 **** + #endif + + #if defined(FEAT_USR_CMDS) || defined(PROTO) +! static int uc_add_command __ARGS((char_u *name, size_t name_len, char_u *rep, long argt, long def, int flags, int compl, char_u *compl_arg, int force)); + static void uc_list __ARGS((char_u *name, size_t name_len)); +! static int uc_scan_attr __ARGS((char_u *attr, size_t len, long *argt, long *def, int *flags, int *compl, char_u **compl_arg)); + static char_u *uc_split_args __ARGS((char_u *arg, size_t *lenp)); + static size_t uc_check_code __ARGS((char_u *code, size_t len, char_u *buf, ucmd_T *cmd, exarg_T *eap, char_u **split_buf, size_t *split_len)); + + static int +! uc_add_command(name, name_len, rep, argt, def, flags, compl, compl_arg, force) + char_u *name; + size_t name_len; + char_u *rep; +--- 5656,5669 ---- + #endif + + #if defined(FEAT_USR_CMDS) || defined(PROTO) +! static int uc_add_command __ARGS((char_u *name, size_t name_len, char_u *rep, long argt, long def, int flags, int compl, char_u *compl_arg, int addr_type, int force)); + static void uc_list __ARGS((char_u *name, size_t name_len)); +! static int uc_scan_attr __ARGS((char_u *attr, size_t len, long *argt, long *def, int *flags, int *compl, char_u **compl_arg, int* attr_type_arg)); + static char_u *uc_split_args __ARGS((char_u *arg, size_t *lenp)); + static size_t uc_check_code __ARGS((char_u *code, size_t len, char_u *buf, ucmd_T *cmd, exarg_T *eap, char_u **split_buf, size_t *split_len)); + + static int +! uc_add_command(name, name_len, rep, argt, def, flags, compl, compl_arg, addr_type, force) + char_u *name; + size_t name_len; + char_u *rep; +*************** +*** 5601,5606 **** +--- 5672,5678 ---- + int flags; + int compl; + char_u *compl_arg; ++ int addr_type; + int force; + { + ucmd_T *cmd = NULL; +*************** +*** 5695,5700 **** +--- 5767,5773 ---- + cmd->uc_compl_arg = compl_arg; + # endif + #endif ++ cmd->uc_addr_type = addr_type; + + return OK; + +*************** +*** 5707,5712 **** +--- 5780,5802 ---- + } + #endif + ++ #if defined(FEAT_USR_CMDS) ++ static struct ++ { ++ int expand; ++ char *name; ++ } addr_type_complete[] = ++ { ++ {ADDR_ARGUMENTS, "arguments"}, ++ {ADDR_LINES, "lines"}, ++ {ADDR_LOADED_BUFFERS, "loaded_buffers"}, ++ {ADDR_TABS, "tabs"}, ++ {ADDR_BUFFERS, "buffers"}, ++ {ADDR_WINDOWS, "windows"}, ++ {-1, NULL} ++ }; ++ #endif ++ + #if defined(FEAT_USR_CMDS) || defined(FEAT_EVAL) || defined(PROTO) + /* + * List of names for completion for ":command" with the EXPAND_ flag. +*************** +*** 5794,5800 **** + + /* Put out the title first time */ + if (!found) +! MSG_PUTS_TITLE(_("\n Name Args Range Complete Definition")); + found = TRUE; + msg_putchar('\n'); + if (got_int) +--- 5884,5890 ---- + + /* Put out the title first time */ + if (!found) +! MSG_PUTS_TITLE(_("\n Name Args Address Complete Definition")); + found = TRUE; + msg_putchar('\n'); + if (got_int) +*************** +*** 5855,5860 **** +--- 5945,5964 ---- + IObuff[len++] = ' '; + } while (len < 11); + ++ /* Address Type */ ++ for (j = 0; addr_type_complete[j].expand != -1; ++j) ++ if (addr_type_complete[j].expand != ADDR_LINES ++ && addr_type_complete[j].expand == cmd->uc_addr_type) ++ { ++ STRCPY(IObuff + len, addr_type_complete[j].name); ++ len += (int)STRLEN(IObuff + len); ++ break; ++ } ++ ++ do { ++ IObuff[len++] = ' '; ++ } while (len < 21); ++ + /* Completion */ + for (j = 0; command_complete[j].expand != 0; ++j) + if (command_complete[j].expand == cmd->uc_compl) +*************** +*** 5866,5872 **** + + do { + IObuff[len++] = ' '; +! } while (len < 21); + + IObuff[len] = '\0'; + msg_outtrans(IObuff); +--- 5970,5976 ---- + + do { + IObuff[len++] = ' '; +! } while (len < 35); + + IObuff[len] = '\0'; + msg_outtrans(IObuff); +*************** +*** 5906,5912 **** + } + + static int +! uc_scan_attr(attr, len, argt, def, flags, compl, compl_arg) + char_u *attr; + size_t len; + long *argt; +--- 6010,6016 ---- + } + + static int +! uc_scan_attr(attr, len, argt, def, flags, compl, compl_arg, addr_type_arg) + char_u *attr; + size_t len; + long *argt; +*************** +*** 5914,5919 **** +--- 6018,6024 ---- + int *flags; + int *compl; + char_u **compl_arg; ++ int *addr_type_arg; + { + char_u *p; + +*************** +*** 6032,6037 **** +--- 6137,6156 ---- + == FAIL) + return FAIL; + } ++ else if (STRNICMP(attr, "addr", attrlen) == 0) ++ { ++ *argt |= RANGE; ++ if (val == NULL) ++ { ++ EMSG(_("E179: argument required for -addr")); ++ return FAIL; ++ } ++ if (parse_addr_type_arg(val, (int)vallen, argt, addr_type_arg) ++ == FAIL) ++ return FAIL; ++ if (addr_type_arg != ADDR_LINES) ++ *argt |= (ZEROR | NOTADR) ; ++ } + else + { + char_u ch = attr[len]; +*************** +*** 6060,6065 **** +--- 6179,6185 ---- + int flags = 0; + int compl = EXPAND_NOTHING; + char_u *compl_arg = NULL; ++ int addr_type_arg = ADDR_LINES; + int has_attr = (eap->arg[0] == '-'); + int name_len; + +*************** +*** 6070,6076 **** + { + ++p; + end = skiptowhite(p); +! if (uc_scan_attr(p, end - p, &argt, &def, &flags, &compl, &compl_arg) + == FAIL) + return; + p = skipwhite(end); +--- 6190,6196 ---- + { + ++p; + end = skiptowhite(p); +! if (uc_scan_attr(p, end - p, &argt, &def, &flags, &compl, &compl_arg, &addr_type_arg) + == FAIL) + return; + p = skipwhite(end); +*************** +*** 6111,6117 **** + } + else + uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg, +! eap->forceit); + } + + /* +--- 6231,6237 ---- + } + else + uc_add_command(name, end - name, p, argt, def, flags, compl, compl_arg, +! addr_type_arg, eap->forceit); + } + + /* +*************** +*** 6652,6657 **** +--- 6772,6788 ---- + } + + /* ++ * Function given to ExpandGeneric() to obtain the list of user address type names. ++ */ ++ char_u * ++ get_user_cmd_addr_type(xp, idx) ++ expand_T *xp UNUSED; ++ int idx; ++ { ++ return (char_u *)addr_type_complete[idx].name; ++ } ++ ++ /* + * Function given to ExpandGeneric() to obtain the list of user command + * attributes. + */ +*************** +*** 6661,6668 **** + int idx; + { + static char *user_cmd_flags[] = +! {"bang", "bar", "buffer", "complete", "count", +! "nargs", "range", "register"}; + + if (idx >= (int)(sizeof(user_cmd_flags) / sizeof(user_cmd_flags[0]))) + return NULL; +--- 6792,6799 ---- + int idx; + { + static char *user_cmd_flags[] = +! {"addr", "bang", "bar", "buffer", "complete", +! "count", "nargs", "range", "register"}; + + if (idx >= (int)(sizeof(user_cmd_flags) / sizeof(user_cmd_flags[0]))) + return NULL; +*************** +*** 6696,6701 **** +--- 6827,6869 ---- + } + # endif /* FEAT_CMDL_COMPL */ + ++ /* ++ * Parse address type argument ++ */ ++ int ++ parse_addr_type_arg(value, vallen, argt, addr_type_arg) ++ char_u *value; ++ int vallen; ++ long *argt; ++ int *addr_type_arg; ++ { ++ int i, a, b; ++ for (i = 0; addr_type_complete[i].expand != -1; ++i) ++ { ++ a = (int)STRLEN(addr_type_complete[i].name) == vallen; ++ b = STRNCMP(value, addr_type_complete[i].name, vallen) == 0; ++ if (a && b) ++ { ++ *addr_type_arg = addr_type_complete[i].expand; ++ break; ++ } ++ } ++ ++ if (addr_type_complete[i].expand == -1) ++ { ++ char_u *err = value; ++ for (i=0; err[i] == NUL || !vim_iswhite(err[i]); i++); ++ err[i] = NUL; ++ EMSG2(_("E180: Invalid address type value: %s"), err); ++ return FAIL; ++ } ++ ++ if (*addr_type_arg != ADDR_LINES) ++ *argt |= NOTADR; ++ ++ return OK; ++ } ++ + #endif /* FEAT_USR_CMDS */ + + #if defined(FEAT_USR_CMDS) || defined(FEAT_EVAL) || defined(PROTO) +*** ../vim-7.4.541/src/ex_getln.c 2014-09-09 18:45:45.884551705 +0200 +--- src/ex_getln.c 2014-12-08 03:30:59.286867854 +0100 +*************** +*** 4697,4702 **** +--- 4697,4703 ---- + #endif + #ifdef FEAT_USR_CMDS + {EXPAND_USER_COMMANDS, get_user_commands, FALSE, TRUE}, ++ {EXPAND_USER_ADDR_TYPE, get_user_cmd_addr_type, FALSE, TRUE}, + {EXPAND_USER_CMD_FLAGS, get_user_cmd_flags, FALSE, TRUE}, + {EXPAND_USER_NARGS, get_user_cmd_nargs, FALSE, TRUE}, + {EXPAND_USER_COMPLETE, get_user_cmd_complete, FALSE, TRUE}, +*** ../vim-7.4.541/src/proto/ex_docmd.pro 2014-04-01 17:49:40.140891378 +0200 +--- src/proto/ex_docmd.pro 2014-12-08 03:55:53.314888997 +0100 +*************** +*** 19,27 **** +--- 19,29 ---- + void ex_comclear __ARGS((exarg_T *eap)); + void uc_clear __ARGS((garray_T *gap)); + char_u *get_user_commands __ARGS((expand_T *xp, int idx)); ++ char_u *get_user_cmd_addr_type __ARGS((expand_T *xp, int idx)); + char_u *get_user_cmd_flags __ARGS((expand_T *xp, int idx)); + char_u *get_user_cmd_nargs __ARGS((expand_T *xp, int idx)); + char_u *get_user_cmd_complete __ARGS((expand_T *xp, int idx)); ++ int parse_addr_type_arg __ARGS((char_u *value, int vallen, long *argt, int *addr_type_arg)); + int parse_compl_arg __ARGS((char_u *value, int vallen, int *complp, long *argt, char_u **compl_arg)); + void not_exiting __ARGS((void)); + void tabpage_close __ARGS((int forceit)); +*************** +*** 43,48 **** +--- 45,51 ---- + void post_chdir __ARGS((int local)); + void ex_cd __ARGS((exarg_T *eap)); + void do_sleep __ARGS((long msec)); ++ void ex_may_print __ARGS((exarg_T *eap)); + int vim_mkdir_emsg __ARGS((char_u *name, int prot)); + FILE *open_exfile __ARGS((char_u *fname, int forceit, char *mode)); + void update_topline_cursor __ARGS((void)); +*************** +*** 54,58 **** + int put_line __ARGS((FILE *fd, char *s)); + void dialog_msg __ARGS((char_u *buff, char *format, char_u *fname)); + char_u *get_behave_arg __ARGS((expand_T *xp, int idx)); +- void ex_may_print __ARGS((exarg_T *eap)); + /* vim: set ft=c : */ +--- 57,60 ---- +*** ../vim-7.4.541/src/vim.h 2014-11-27 19:14:45.080940970 +0100 +--- src/vim.h 2014-12-08 03:30:59.290867811 +0100 +*************** +*** 798,803 **** +--- 798,804 ---- + #define EXPAND_HISTORY 41 + #define EXPAND_USER 42 + #define EXPAND_SYNTIME 43 ++ #define EXPAND_USER_ADDR_TYPE 44 + + /* Values for exmode_active (0 is no exmode) */ + #define EXMODE_NORMAL 1 +*** ../vim-7.4.541/src/version.c 2014-12-07 00:18:27.528202992 +0100 +--- src/version.c 2014-12-08 03:32:08.402128425 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 542, + /**/ + +-- +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 695c66dd9d18fe121faa442d5a90ad180534f4d7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Mon, 8 Dec 2014 18:00:12 +0100 Subject: [PATCH 0162/1616] - patchlevel 542 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a45391ab..e75d7bf3 100644 --- a/README.patches +++ b/README.patches @@ -563,3 +563,4 @@ Individual patches for Vim 7.4: 7422 7.4.539 (after 7.4.530) crash when computing buffer count 1802 7.4.540 (after 7.4.539) cannot build with tiny and small features 2795 7.4.541 crash when doing a range assign + 28576 7.4.542 cannot specify the type of range for a user command diff --git a/vim.spec b/vim.spec index ed43ab78..da7dcf0c 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 541 +%define patchlevel 542 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -588,6 +588,7 @@ Patch538: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.538 Patch539: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.539 Patch540: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.540 Patch541: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.541 +Patch542: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.542 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1276,6 +1277,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch539 -p0 %patch540 -p0 %patch541 -p0 +%patch542 -p0 # install spell files %if %{withvimspell} @@ -1793,6 +1795,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Mon Dec 08 2014 Karsten Hopp 7.4.542-1 +- patchlevel 542 + * Sun Dec 07 2014 Karsten Hopp 7.4.541-1 - patchlevel 541 From c17f9a17a630748c00754290a34e5b1a73c1ba67 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 13 Dec 2014 18:00:11 +0100 Subject: [PATCH 0163/1616] - patchlevel 543 --- 7.4.543 | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 7.4.543 diff --git a/7.4.543 b/7.4.543 new file mode 100644 index 00000000..d0f03f93 --- /dev/null +++ b/7.4.543 @@ -0,0 +1,132 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.543 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.543 +Problem: Since patch 7.4.232 "1,3s/\n//" joins two lines instead of three. + (Eliseo MartĂ­nez) Issue 287 +Solution: Correct the line count. (Christian Brabandt) + Also set the last used search pattern. +Files: src/ex_cmds.c, src/search.c, src/proto/search.pro + + +*** ../vim-7.4.542/src/ex_cmds.c 2014-11-30 13:34:16.889626728 +0100 +--- src/ex_cmds.c 2014-12-13 03:11:09.032894963 +0100 +*************** +*** 4408,4413 **** +--- 4408,4415 ---- + && (*cmd == NUL || (cmd[1] == NUL && (*cmd == 'g' || *cmd == 'l' + || *cmd == 'p' || *cmd == '#')))) + { ++ linenr_T joined_lines_count; ++ + curwin->w_cursor.lnum = eap->line1; + if (*cmd == 'l') + eap->flags = EXFLAG_LIST; +*************** +*** 4416,4425 **** + else if (*cmd == 'p') + eap->flags = EXFLAG_PRINT; + +! (void)do_join(eap->line2 - eap->line1 + 1, FALSE, TRUE, FALSE, TRUE); +! sub_nlines = sub_nsubs = eap->line2 - eap->line1 + 1; +! (void)do_sub_msg(FALSE); +! ex_may_print(eap); + return; + } + +--- 4418,4444 ---- + else if (*cmd == 'p') + eap->flags = EXFLAG_PRINT; + +! /* The number of lines joined is the number of lines in the range plus +! * one. One less when the last line is included. */ +! joined_lines_count = eap->line2 - eap->line1 + 1; +! if (eap->line2 < curbuf->b_ml.ml_line_count) +! ++joined_lines_count; +! if (joined_lines_count > 1) +! { +! (void)do_join(joined_lines_count, FALSE, TRUE, FALSE, TRUE); +! sub_nsubs = joined_lines_count - 1; +! sub_nlines = 1; +! (void)do_sub_msg(FALSE); +! ex_may_print(eap); +! } +! +! if (!cmdmod.keeppatterns) +! save_re_pat(RE_SUBST, pat, p_magic); +! #ifdef FEAT_CMDHIST +! /* put pattern in history */ +! add_to_history(HIST_SEARCH, pat, TRUE, NUL); +! #endif +! + return; + } + +*** ../vim-7.4.542/src/search.c 2014-11-27 17:29:52.770188864 +0100 +--- src/search.c 2014-12-13 03:12:18.032159491 +0100 +*************** +*** 12,18 **** + + #include "vim.h" + +- static void save_re_pat __ARGS((int idx, char_u *pat, int magic)); + #ifdef FEAT_EVAL + static void set_vv_searchforward __ARGS((void)); + static int first_submatch __ARGS((regmmatch_T *rp)); +--- 12,17 ---- +*************** +*** 272,278 **** + } + #endif + +! static void + save_re_pat(idx, pat, magic) + int idx; + char_u *pat; +--- 271,277 ---- + } + #endif + +! void + save_re_pat(idx, pat, magic) + int idx; + char_u *pat; +*** ../vim-7.4.542/src/proto/search.pro 2013-08-10 13:37:25.000000000 +0200 +--- src/proto/search.pro 2014-12-13 03:12:21.440123253 +0100 +*************** +*** 2,7 **** +--- 2,8 ---- + int search_regcomp __ARGS((char_u *pat, int pat_save, int pat_use, int options, regmmatch_T *regmatch)); + char_u *get_search_pat __ARGS((void)); + char_u *reverse_text __ARGS((char_u *s)); ++ void save_re_pat __ARGS((int idx, char_u *pat, int magic)); + void save_search_patterns __ARGS((void)); + void restore_search_patterns __ARGS((void)); + void free_search_patterns __ARGS((void)); +*** ../vim-7.4.542/src/version.c 2014-12-08 04:16:26.273702793 +0100 +--- src/version.c 2014-12-13 02:54:27.295570327 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 543, + /**/ + +-- +For large projects, Team Leaders use sophisticated project management software +to keep track of who's doing what. The software collects the lies and guesses +of the project team and organizes them in to instantly outdated charts that +are too boring to look at closely. This is called "planning". + (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 2d903e142c284463541260d2cc3799f4b1be9d37 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 13 Dec 2014 18:00:11 +0100 Subject: [PATCH 0164/1616] - patchlevel 544 --- 7.4.544 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 7.4.544 diff --git a/7.4.544 b/7.4.544 new file mode 100644 index 00000000..137480a3 --- /dev/null +++ b/7.4.544 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.544 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.544 +Problem: Warnings for unused arguments when compiling with a combination of + features. +Solution: Add "UNUSED". +Files: src/if_cscope.c + + +*** ../vim-7.4.543/src/if_cscope.c 2013-06-30 14:59:21.000000000 +0200 +--- src/if_cscope.c 2014-11-30 13:19:06.699741651 +0100 +*************** +*** 1131,1138 **** + char *pat; + int forceit; + int verbose; +! int use_ll; +! char_u *cmdline; + { + int i; + char *cmd; +--- 1131,1138 ---- + char *pat; + int forceit; + int verbose; +! int use_ll UNUSED; +! char_u *cmdline UNUSED; + { + int i; + char *cmd; +*** ../vim-7.4.543/src/version.c 2014-12-13 03:17:07.465046539 +0100 +--- src/version.c 2014-12-13 03:19:54.743238147 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 544, + /**/ + +-- +At some point in the project somebody will start whining about the need to +determine the project "requirements". This involves interviewing people who +don't know what they want but, curiously, know exactly when they need 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 /// From 0df9d9d9d883c30477810c86b323dc3c1ef7213f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 13 Dec 2014 18:00:12 +0100 Subject: [PATCH 0165/1616] - patchlevel 545 --- 7.4.545 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.4.545 diff --git a/7.4.545 b/7.4.545 new file mode 100644 index 00000000..1fd60271 --- /dev/null +++ b/7.4.545 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.545 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.545 +Problem: Highlighting for multi-line matches is not correct. +Solution: Stop highlight at the end of the match. (Hirohito Higashi) +Files: src/screen.c + + +*** ../vim-7.4.544/src/screen.c 2014-11-27 13:37:07.399540002 +0100 +--- src/screen.c 2014-12-13 03:30:31.520358269 +0100 +*************** +*** 3864,3872 **** + && v >= (long)shl->startcol + && v < (long)shl->endcol) + { + shl->attr_cur = shl->attr; + } +! else if (v >= (long)shl->endcol && shl->lnum == lnum) + { + shl->attr_cur = 0; + next_search_hl(wp, shl, lnum, (colnr_T)v, cur); +--- 3864,3878 ---- + && v >= (long)shl->startcol + && v < (long)shl->endcol) + { ++ #ifdef FEAT_MBYTE ++ int tmp_col = v + MB_PTR2LEN(ptr); ++ ++ if (shl->endcol < tmp_col) ++ 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); +*** ../vim-7.4.544/src/version.c 2014-12-13 03:20:10.543067406 +0100 +--- src/version.c 2014-12-13 03:36:19.704599650 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 545, + /**/ + +-- +You can test a person's importance in the organization by asking how much RAM +his computer has. Anybody who knows the answer to that question is not a +decision-maker. + (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 cbaeffdf129d1f3df8e29664615126f3a9e93af9 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 13 Dec 2014 18:00:12 +0100 Subject: [PATCH 0166/1616] - patchlevel 546 --- 7.4.546 | 149 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 7.4.546 diff --git a/7.4.546 b/7.4.546 new file mode 100644 index 00000000..94b51aeb --- /dev/null +++ b/7.4.546 @@ -0,0 +1,149 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.546 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.546 +Problem: Repeated use of vim_snprintf() with a number. +Solution: Move these vim_snprintf() calls into a function. +Files: src/window.c + + +*** ../vim-7.4.545/src/window.c 2014-11-27 16:22:42.746412995 +0100 +--- src/window.c 2014-12-13 03:54:57.760646343 +0100 +*************** +*** 11,16 **** +--- 11,17 ---- + + static int path_is_url __ARGS((char_u *p)); + #if defined(FEAT_WINDOWS) || defined(PROTO) ++ static void cmd_with_count __ARGS((char *cmd, char_u *bufp, size_t bufsize, long Prenum)); + static void win_init __ARGS((win_T *newp, win_T *oldp, int flags)); + static void win_init_some __ARGS((win_T *newp, win_T *oldp)); + static void frame_comp_pos __ARGS((frame_T *topfrp, int *row, int *col)); +*************** +*** 167,176 **** + case '^': + CHECK_CMDWIN + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "split #"); +! if (Prenum) +! vim_snprintf((char *)cbuf + 7, sizeof(cbuf) - 7, +! "%ld", Prenum); + do_cmdline_cmd(cbuf); + break; + +--- 168,174 ---- + case '^': + CHECK_CMDWIN + reset_VIsual_and_resel(); /* stop Visual mode */ +! cmd_with_count("split #", cbuf, sizeof(cbuf), Prenum); + do_cmdline_cmd(cbuf); + break; + +*************** +*** 199,208 **** + case Ctrl_Q: + case 'q': + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "quit"); +! if (Prenum) +! vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 5, +! "%ld", Prenum); + do_cmdline_cmd(cbuf); + break; + +--- 197,203 ---- + case Ctrl_Q: + case 'q': + reset_VIsual_and_resel(); /* stop Visual mode */ +! cmd_with_count("quit", cbuf, sizeof(cbuf), Prenum); + do_cmdline_cmd(cbuf); + break; + +*************** +*** 210,219 **** + case Ctrl_C: + case 'c': + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "close"); +! if (Prenum) +! vim_snprintf((char *)cbuf + 5, sizeof(cbuf) - 5, +! "%ld", Prenum); + do_cmdline_cmd(cbuf); + break; + +--- 205,211 ---- + case Ctrl_C: + case 'c': + reset_VIsual_and_resel(); /* stop Visual mode */ +! cmd_with_count("close", cbuf, sizeof(cbuf), Prenum); + do_cmdline_cmd(cbuf); + break; + +*************** +*** 243,252 **** + case 'o': + CHECK_CMDWIN + reset_VIsual_and_resel(); /* stop Visual mode */ +! STRCPY(cbuf, "only"); +! if (Prenum > 0) +! vim_snprintf((char *)cbuf + 4, sizeof(cbuf) - 4, +! "%ld", Prenum); + do_cmdline_cmd(cbuf); + break; + +--- 235,241 ---- + case 'o': + CHECK_CMDWIN + reset_VIsual_and_resel(); /* stop Visual mode */ +! cmd_with_count("only", cbuf, sizeof(cbuf), Prenum); + do_cmdline_cmd(cbuf); + break; + +*************** +*** 635,640 **** +--- 624,643 ---- + } + } + ++ static void ++ cmd_with_count(cmd, bufp, bufsize, Prenum) ++ char *cmd; ++ char_u *bufp; ++ size_t bufsize; ++ long Prenum; ++ { ++ size_t len = STRLEN(cmd); ++ ++ STRCPY(bufp, cmd); ++ if (Prenum > 0) ++ vim_snprintf((char *)bufp + len, bufsize - len, "%ld", Prenum); ++ } ++ + /* + * split the current window, implements CTRL-W s and :split + * +*** ../vim-7.4.545/src/version.c 2014-12-13 03:36:34.992435104 +0100 +--- src/version.c 2014-12-13 03:43:58.447663037 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 546, + /**/ + +-- +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 /// From 6e1b46380681c621b486dfbf549dfb070867a8bb Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sat, 13 Dec 2014 18:00:14 +0100 Subject: [PATCH 0167/1616] - patchlevel 546 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index e75d7bf3..d43b243c 100644 --- a/README.patches +++ b/README.patches @@ -564,3 +564,7 @@ Individual patches for Vim 7.4: 1802 7.4.540 (after 7.4.539) cannot build with tiny and small features 2795 7.4.541 crash when doing a range assign 28576 7.4.542 cannot specify the type of range for a user command + 4114 7.4.543 (after 7.4.232) "1,3s/\n//" joins two lines instead of three + 1655 7.4.544 warnings for unused arguments with a combination of features + 1983 7.4.545 highlighting for multi-line matches is not correct + 4044 7.4.546 repeated use of vim_snprintf() with a number diff --git a/vim.spec b/vim.spec index da7dcf0c..63ca8a85 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 542 +%define patchlevel 546 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -589,6 +589,10 @@ Patch539: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.539 Patch540: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.540 Patch541: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.541 Patch542: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.542 +Patch543: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.543 +Patch544: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.544 +Patch545: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.545 +Patch546: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.546 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1278,6 +1282,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch540 -p0 %patch541 -p0 %patch542 -p0 +%patch543 -p0 +%patch544 -p0 +%patch545 -p0 +%patch546 -p0 # install spell files %if %{withvimspell} @@ -1795,6 +1803,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sat Dec 13 2014 Karsten Hopp 7.4.546-1 +- patchlevel 546 + * Mon Dec 08 2014 Karsten Hopp 7.4.542-1 - patchlevel 542 From 227c4c3540b429ace96d4a0275270faa8f059391 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:10 +0100 Subject: [PATCH 0168/1616] - patchlevel 547 --- 7.4.547 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.547 diff --git a/7.4.547 b/7.4.547 new file mode 100644 index 00000000..e5501400 --- /dev/null +++ b/7.4.547 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.547 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.547 +Problem: Using "vit" does not select a multi-byte character at the end + correctly. +Solution: Advance the cursor over the multi-byte character. (Christian + Brabandt) +Files: src/search.c + + +*** ../vim-7.4.546/src/search.c 2014-12-13 03:17:07.465046539 +0100 +--- src/search.c 2014-12-13 20:08:39.464238348 +0100 +*************** +*** 3932,3938 **** + if (lt(end_pos, start_pos)) + curwin->w_cursor = start_pos; + else if (*p_sel == 'e') +! ++curwin->w_cursor.col; + VIsual = start_pos; + VIsual_mode = 'v'; + redraw_curbuf_later(INVERTED); /* update the inversion */ +--- 3932,3938 ---- + if (lt(end_pos, start_pos)) + curwin->w_cursor = start_pos; + else if (*p_sel == 'e') +! inc_cursor(); + VIsual = start_pos; + VIsual_mode = 'v'; + redraw_curbuf_later(INVERTED); /* update the inversion */ +*** ../vim-7.4.546/src/version.c 2014-12-13 03:58:03.798672391 +0100 +--- src/version.c 2014-12-13 20:08:44.652181415 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 547, + /**/ + +-- +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 /// From dfdd6e75807d55d2e0068a993884a2066a562fda Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:10 +0100 Subject: [PATCH 0169/1616] - patchlevel 548 --- 7.4.548 | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 7.4.548 diff --git a/7.4.548 b/7.4.548 new file mode 100644 index 00000000..71df1f56 --- /dev/null +++ b/7.4.548 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.548 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.548 +Problem: Compilation fails with native version of MinGW-w64, because the + it doesn't have x86_64-w64-mingw32-windres.exe. +Solution: Use windres instead. (Ken Takata) +Files: src/Make_cyg_ming.mak + + +*** ../vim-7.4.547/src/Make_cyg_ming.mak 2014-11-06 10:02:57.019057492 +0100 +--- src/Make_cyg_ming.mak 2014-12-13 20:47:00.291904877 +0100 +*************** +*** 366,372 **** +--- 366,376 ---- + endif + CC := $(CROSS_COMPILE)gcc + CXX := $(CROSS_COMPILE)g++ ++ ifeq ($(UNDER_CYGWIN),yes) + WINDRES := $(CROSS_COMPILE)windres ++ else ++ WINDRES := windres ++ endif + WINDRES_CC = $(CC) + + #>>>>> end of choices +*** ../vim-7.4.547/src/version.c 2014-12-13 20:11:29.582422289 +0100 +--- src/version.c 2014-12-13 20:49:27.018361058 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 548, + /**/ + +-- +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 75740c8bc276855c1d335699ede13e561ba6b05d Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:11 +0100 Subject: [PATCH 0170/1616] - patchlevel 549 --- 7.4.549 | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 7.4.549 diff --git a/7.4.549 b/7.4.549 new file mode 100644 index 00000000..a6af54ce --- /dev/null +++ b/7.4.549 @@ -0,0 +1,221 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.549 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.549 +Problem: Function name not recognized correctly when inside a function. +Solution: Don't check for an alpha character. +Files: src/eval.c, src/testdir/test_nested_function.in, + src/testdir/test_nested_function.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.548/src/eval.c 2014-12-07 00:18:27.524203161 +0100 +--- src/eval.c 2014-12-13 20:27:16.728347709 +0100 +*************** +*** 22283,22296 **** + if (*p == '!') + p = skipwhite(p + 1); + p += eval_fname_script(p); +! if (ASCII_ISALPHA(*p)) + { +! vim_free(trans_function_name(&p, TRUE, 0, NULL)); +! if (*skipwhite(p) == '(') +! { +! ++nesting; +! indent += 2; +! } + } + } + +--- 22283,22293 ---- + if (*p == '!') + p = skipwhite(p + 1); + p += eval_fname_script(p); +! vim_free(trans_function_name(&p, TRUE, 0, NULL)); +! if (*skipwhite(p) == '(') + { +! ++nesting; +! indent += 2; + } + } + +*** ../vim-7.4.548/src/testdir/test_nested_function.in 2014-12-13 21:00:22.243356614 +0100 +--- src/testdir/test_nested_function.in 2014-12-13 20:21:18.080145982 +0100 +*************** +*** 0 **** +--- 1,34 ---- ++ Tests for Nested function vim: set ft=vim : ++ ++ STARTTEST ++ :so small.vim ++ :fu! NestedFunc() ++ : fu! Func1() ++ : $put ='Func1' ++ : endfunction ++ : call Func1() ++ : fu! s:func2() ++ : $put ='s:func2' ++ : endfunction ++ : call s:func2() ++ : fu! s:_func3() ++ : $put ='s:_func3' ++ : endfunction ++ : call s:_func3() ++ : let fn = 'Func4' ++ : fu! {fn}() ++ : $put ='Func4' ++ : endfunction ++ : call {fn}() ++ : let fn = 'func5' ++ : fu! s:{fn}() ++ : $put ='s:func5' ++ : endfunction ++ : call s:{fn}() ++ :endfunction ++ :call NestedFunc() ++ :/^result:/,$w! test.out ++ :qa! ++ ENDTEST ++ ++ result: +*** ../vim-7.4.548/src/testdir/test_nested_function.ok 2014-12-13 21:00:22.251356529 +0100 +--- src/testdir/test_nested_function.ok 2014-12-13 20:21:44.215867748 +0100 +*************** +*** 0 **** +--- 1,6 ---- ++ result: ++ Func1 ++ s:func2 ++ s:_func3 ++ Func4 ++ s:func5 +*** ../vim-7.4.548/src/testdir/Make_amiga.mak 2014-12-08 04:16:26.253702999 +0100 +--- src/testdir/Make_amiga.mak 2014-12-13 20:23:59.554425738 +0100 +*************** +*** 47,52 **** +--- 47,53 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_nested_function.out \ + test_options.out \ + test_qf_title.out \ + test_signs.out \ +*************** +*** 184,189 **** +--- 185,192 ---- + test_insertcount.out: test_insertcount.in + test_listlbr.out: test_listlbr.in + test_listlbr_utf8.out: test_listlbr_utf8.in ++ test_mapping.out: test_mapping.in ++ test_nested_function.out: test_nested_function.in + test_options.out: test_options.in + test_qf_title.out: test_qf_title.in + test_signs.out: test_signs.in +*** ../vim-7.4.548/src/testdir/Make_dos.mak 2014-12-08 04:16:26.253702999 +0100 +--- src/testdir/Make_dos.mak 2014-12-13 20:24:11.946293504 +0100 +*************** +*** 46,51 **** +--- 46,52 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_nested_function.out \ + test_options.out \ + test_qf_title.out \ + test_signs.out \ +*** ../vim-7.4.548/src/testdir/Make_ming.mak 2014-12-08 04:16:26.253702999 +0100 +--- src/testdir/Make_ming.mak 2014-12-13 20:24:17.058237473 +0100 +*************** +*** 68,73 **** +--- 68,74 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_nested_function.out \ + test_options.out \ + test_qf_title.out \ + test_signs.out \ +*** ../vim-7.4.548/src/testdir/Make_os2.mak 2014-12-08 04:16:26.253702999 +0100 +--- src/testdir/Make_os2.mak 2014-12-13 20:24:21.598190646 +0100 +*************** +*** 48,53 **** +--- 48,54 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_nested_function.out \ + test_options.out \ + test_qf_title.out \ + test_signs.out \ +*** ../vim-7.4.548/src/testdir/Make_vms.mms 2014-12-08 04:16:26.253702999 +0100 +--- src/testdir/Make_vms.mms 2014-12-13 20:24:29.302110051 +0100 +*************** +*** 4,10 **** + # Authors: Zoltan Arpadffy, + # Sandor Kopanyi, + # +! # Last change: 2014 Dec 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: 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. +*************** +*** 107,112 **** +--- 107,113 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_nested_function.out \ + test_options.out \ + test_qf_title.out \ + test_signs.out \ +*** ../vim-7.4.548/src/testdir/Makefile 2014-12-08 04:16:26.253702999 +0100 +--- src/testdir/Makefile 2014-12-13 20:24:42.609966838 +0100 +*************** +*** 44,49 **** +--- 44,50 ---- + test_listlbr.out \ + test_listlbr_utf8.out \ + test_mapping.out \ ++ test_nested_function.out \ + test_options.out \ + test_qf_title.out \ + test_signs.out \ +*** ../vim-7.4.548/src/version.c 2014-12-13 20:50:01.793994592 +0100 +--- src/version.c 2014-12-13 20:56:11.850046569 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 549, + /**/ + +-- +Engineers are always delighted to share wisdom, even in areas in which they +have no experience whatsoever. Their logic provides them with inherent +insight into any field of expertise. This can be a problem when dealing with +the illogical people who believe that knowledge can only be derived through +experience. + (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 3a4722100cc3b83f9baae0211c1ea536b6298ce5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:12 +0100 Subject: [PATCH 0171/1616] - patchlevel 550 --- 7.4.550 | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 7.4.550 diff --git a/7.4.550 b/7.4.550 new file mode 100644 index 00000000..98867412 --- /dev/null +++ b/7.4.550 @@ -0,0 +1,147 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.550 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.550 +Problem: curs_rows() function is always called with the second argument + false. +Solution: Remove the argument. (Christian Brabandt) + validate_botline_win() can then also be removed. +Files: src/move.c + + +*** ../vim-7.4.549/src/move.c 2014-09-23 18:37:52.422823701 +0200 +--- src/move.c 2014-12-13 20:54:33.687102446 +0100 +*************** +*** 23,30 **** + static void redraw_for_cursorline __ARGS((win_T *wp)); + static int scrolljump_value __ARGS((void)); + static int check_top_offset __ARGS((void)); +! static void curs_rows __ARGS((win_T *wp, int do_botline)); +! static void validate_botline_win __ARGS((win_T *wp)); + static void validate_cheight __ARGS((void)); + + typedef struct +--- 23,29 ---- + static void redraw_for_cursorline __ARGS((win_T *wp)); + static int scrolljump_value __ARGS((void)); + static int check_top_offset __ARGS((void)); +! static void curs_rows __ARGS((win_T *wp)); + static void validate_cheight __ARGS((void)); + + typedef struct +*************** +*** 609,625 **** + } + + /* +- * Make sure the value of wp->w_botline is valid. +- */ +- static void +- validate_botline_win(wp) +- win_T *wp; +- { +- if (!(wp->w_valid & VALID_BOTLINE)) +- comp_botline(wp); +- } +- +- /* + * Mark curwin->w_botline as invalid (because of some change in the buffer). + */ + void +--- 608,613 ---- +*************** +*** 678,697 **** + update_topline(); + check_cursor_moved(curwin); + if (!(curwin->w_valid & VALID_CROW)) +! curs_rows(curwin, FALSE); + } + #endif + + /* + * Compute wp->w_cline_row and wp->w_cline_height, based on the current value + * of wp->w_topline. +- * +- * Returns OK when cursor is in the window, FAIL when it isn't. + */ + static void +! curs_rows(wp, do_botline) + win_T *wp; +- int do_botline; /* also compute w_botline */ + { + linenr_T lnum; + int i; +--- 666,682 ---- + update_topline(); + check_cursor_moved(curwin); + if (!(curwin->w_valid & VALID_CROW)) +! curs_rows(curwin); + } + #endif + + /* + * Compute wp->w_cline_row and wp->w_cline_height, based on the current value + * of wp->w_topline. + */ + static void +! curs_rows(wp) + win_T *wp; + { + linenr_T lnum; + int i; +*************** +*** 810,818 **** + redraw_for_cursorline(curwin); + wp->w_valid |= VALID_CROW|VALID_CHEIGHT; + +- /* validate botline too, if update_screen doesn't do it */ +- if (do_botline && all_invalid) +- validate_botline_win(wp); + } + + /* +--- 795,800 ---- +*************** +*** 986,992 **** + * Next make sure that w_cline_row is valid. + */ + if (!(curwin->w_valid & VALID_CROW)) +! curs_rows(curwin, FALSE); + + /* + * Compute the number of virtual columns. +--- 968,974 ---- + * Next make sure that w_cline_row is valid. + */ + if (!(curwin->w_valid & VALID_CROW)) +! curs_rows(curwin); + + /* + * Compute the number of virtual columns. +*** ../vim-7.4.549/src/version.c 2014-12-13 21:00:52.059036480 +0100 +--- src/version.c 2014-12-13 21:04:26.080739460 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 550, + /**/ + +-- +For humans, honesty is a matter of degree. Engineers are always honest in +matters of technology and human relationships. That's why it's a good idea +to keep engineers away from customers, romantic interests, and other people +who can't handle the truth. + (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 1cd335b1802abd80a4d1aa4a810d593c7e298270 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:12 +0100 Subject: [PATCH 0172/1616] - patchlevel 551 --- 7.4.551 | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 7.4.551 diff --git a/7.4.551 b/7.4.551 new file mode 100644 index 00000000..cd67a7e9 --- /dev/null +++ b/7.4.551 @@ -0,0 +1,205 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.551 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.551 +Problem: "ygn" may yank too much. (Fritzophrenic) Issue 295. +Solution: Check the width of the next match. (Christian Brabandt) +Files: src/search.c, src/testdir/test53.in, src/testdir/test53.ok + + +*** ../vim-7.4.550/src/search.c 2014-12-13 20:11:29.582422289 +0100 +--- src/search.c 2014-12-13 21:55:26.608363239 +0100 +*************** +*** 4441,4452 **** + + #endif /* FEAT_TEXTOBJ */ + +! static int is_one_char __ARGS((char_u *pattern)); + + /* + * Find next search match under cursor, cursor at end. + * Used while an operator is pending, and in Visual mode. +- * TODO: redo only works when used in operator pending mode + */ + int + current_search(count, forward) +--- 4441,4451 ---- + + #endif /* FEAT_TEXTOBJ */ + +! static int is_one_char __ARGS((char_u *pattern, int move)); + + /* + * Find next search match under cursor, cursor at end. + * Used while an operator is pending, and in Visual mode. + */ + int + current_search(count, forward) +*************** +*** 4491,4497 **** + orig_pos = pos = start_pos = curwin->w_cursor; + + /* Is the pattern is zero-width? */ +! one_char = is_one_char(spats[last_idx].pat); + if (one_char == -1) + { + p_ws = old_p_ws; +--- 4490,4496 ---- + orig_pos = pos = start_pos = curwin->w_cursor; + + /* Is the pattern is zero-width? */ +! one_char = is_one_char(spats[last_idx].pat, TRUE); + if (one_char == -1) + { + p_ws = old_p_ws; +*************** +*** 4550,4555 **** +--- 4549,4558 ---- + start_pos = pos; + flags = forward ? SEARCH_END : 0; + ++ /* Check again from the current cursor position, ++ * since the next match might actually by only one char wide */ ++ one_char = is_one_char(spats[last_idx].pat, FALSE); ++ + /* move to match, except for zero-width matches, in which case, we are + * already on the next match */ + if (!one_char) +*************** +*** 4599,4624 **** + + /* + * Check if the pattern is one character or zero-width. + * Returns TRUE, FALSE or -1 for failure. + */ + static int +! is_one_char(pattern) + char_u *pattern; + { + regmmatch_T regmatch; + int nmatched = 0; + int result = -1; + pos_T pos; + int save_called_emsg = called_emsg; + + if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH, + SEARCH_KEEP, ®match) == FAIL) + return -1; + + /* move to match */ +! clearpos(&pos); + if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1, +! SEARCH_KEEP, RE_SEARCH, 0, NULL) != FAIL) + { + /* Zero-width pattern should match somewhere, then we can check if + * start and end are in the same position. */ +--- 4602,4639 ---- + + /* + * Check if the pattern is one character or zero-width. ++ * If move is TRUE, check from the beginning of the buffer, else from the ++ * current cursor position. + * Returns TRUE, FALSE or -1 for failure. + */ + static int +! is_one_char(pattern, move) + char_u *pattern; ++ int move; + { + regmmatch_T regmatch; + int nmatched = 0; + int result = -1; + pos_T pos; + int save_called_emsg = called_emsg; ++ int flag = 0; + + if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH, + SEARCH_KEEP, ®match) == FAIL) + return -1; + + /* move to match */ +! if (move) +! clearpos(&pos) +! else +! { +! pos = curwin->w_cursor; +! /* accept a match at the cursor position */ +! flag = SEARCH_START; +! } +! + if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1, +! SEARCH_KEEP + flag, RE_SEARCH, 0, NULL) != FAIL) + { + /* Zero-width pattern should match somewhere, then we can check if + * start and end are in the same position. */ +*** ../vim-7.4.550/src/testdir/test53.in 2014-02-22 22:18:39.536905522 +0100 +--- src/testdir/test53.in 2014-12-13 21:52:43.314091440 +0100 +*************** +*** 79,84 **** +--- 79,86 ---- + :" test repeating gUgn + /^Depp + gggUgn. ++ gg/a:0\@!\zs\d\+ ++ nygnop + :/^start:/,/^end:/wq! test.out + ENDTEST + +*************** +*** 108,113 **** +--- 110,120 ---- + uniquepattern uniquepattern + my very excellent mother just served us nachos + for (i=0; i<=10; i++) ++ a:10 ++ ++ a:1 ++ ++ a:20 + Y + text + Y +*** ../vim-7.4.550/src/testdir/test53.ok 2014-02-22 22:18:39.536905522 +0100 +--- src/testdir/test53.ok 2014-12-13 21:52:43.314091440 +0100 +*************** +*** 49,54 **** +--- 49,60 ---- + uniquepattern + my very excellent mongoose just served us nachos + for (j=0; i<=10; i++) ++ a:10 ++ ++ a:1 ++ 1 ++ ++ a:20 + + text + Y +*** ../vim-7.4.550/src/version.c 2014-12-13 21:09:53.721226911 +0100 +--- src/version.c 2014-12-13 21:52:20.346334198 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 551, + /**/ + +-- +While it's true that many normal people whould prefer not to _date_ an +engineer, most normal people harbor an intense desire to _mate_ with them, +thus producing engineerlike children who will have high-paying jobs long +before losing their virginity. + (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 e90b62b2012c186837bb1847d921193553615f71 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:13 +0100 Subject: [PATCH 0173/1616] - patchlevel 552 --- 7.4.552 | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 7.4.552 diff --git a/7.4.552 b/7.4.552 new file mode 100644 index 00000000..118c226c --- /dev/null +++ b/7.4.552 @@ -0,0 +1,83 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.552 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.552 +Problem: Langmap applies to Insert mode expression mappings. +Solution: Check for Insert mode. (Daniel Hahler) +Files: src/getchar.c, src/testdir/test_mapping.in, + src/testdir/test_mapping.ok + + +*** ../vim-7.4.551/src/getchar.c 2014-10-21 19:35:28.406284296 +0200 +--- src/getchar.c 2014-12-14 00:35:48.712903309 +0100 +*************** +*** 2145,2151 **** + nolmaplen = 2; + else + { +! LANGMAP_ADJUST(c1, TRUE); + nolmaplen = 0; + } + #endif +--- 2145,2151 ---- + nolmaplen = 2; + else + { +! LANGMAP_ADJUST(c1, (State & INSERT) == 0); + nolmaplen = 0; + } + #endif +*** ../vim-7.4.551/src/testdir/test_mapping.in 2014-10-22 22:08:58.386493141 +0200 +--- src/testdir/test_mapping.in 2014-12-14 00:35:12.713288209 +0100 +*************** +*** 8,13 **** +--- 8,22 ---- + :inoreab Ñ‡ĐºĐ¿Ñ€ vim + GAÑ‡ĐºĐ¿Ñ€ +  ++ ++ : " langmap should not get remapped in insert mode ++ :inoremap { FAIL_ilangmap ++ :set langmap=+{ langnoremap ++ o+ ++ : " expr mapping with langmap ++ :inoremap { "FAIL_iexplangmap" ++ o+ ++ + :/^test/,$w! test.out + :qa! + ENDTEST +*** ../vim-7.4.551/src/testdir/test_mapping.ok 2014-10-21 16:22:01.407175226 +0200 +--- src/testdir/test_mapping.ok 2014-12-14 00:29:32.216931811 +0100 +*************** +*** 1,2 **** +--- 1,4 ---- + test starts here: + vim ++ + ++ + +*** ../vim-7.4.551/src/version.c 2014-12-13 22:00:18.161279370 +0100 +--- src/version.c 2014-12-14 00:27:36.310171797 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 552, + /**/ + +-- +Engineers are widely recognized as superior marriage material: intelligent, +dependable, employed, honest, and handy around the house. + (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 7fd1303e96c59f31cf8d958a05f742b7193d44ad Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 14 Dec 2014 18:00:14 +0100 Subject: [PATCH 0174/1616] - patchlevel 552 --- README.patches | 6 ++++++ vim.spec | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index d43b243c..840a8d6d 100644 --- a/README.patches +++ b/README.patches @@ -568,3 +568,9 @@ Individual patches for Vim 7.4: 1655 7.4.544 warnings for unused arguments with a combination of features 1983 7.4.545 highlighting for multi-line matches is not correct 4044 7.4.546 repeated use of vim_snprintf() with a number + 1785 7.4.547 "vit" does not select multi-byte character at the end correctly + 1681 7.4.548 compilation fails with native version of MinGW-w64 + 6505 7.4.549 function name not recognized correctly when inside a function + 4016 7.4.550 curs_rows() function is always called with second argument false + 5608 7.4.551 "ygn" may yank too much; Issue 295 + 2298 7.4.552 langmap applies to Insert mode expression mappings diff --git a/vim.spec b/vim.spec index 63ca8a85..87f0b4e4 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 546 +%define patchlevel 552 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -593,6 +593,12 @@ Patch543: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.543 Patch544: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.544 Patch545: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.545 Patch546: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.546 +Patch547: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.547 +Patch548: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.548 +Patch549: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.549 +Patch550: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.550 +Patch551: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.551 +Patch552: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.552 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1286,6 +1292,12 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch544 -p0 %patch545 -p0 %patch546 -p0 +%patch547 -p0 +%patch548 -p0 +%patch549 -p0 +%patch550 -p0 +%patch551 -p0 +%patch552 -p0 # install spell files %if %{withvimspell} @@ -1803,6 +1815,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Sun Dec 14 2014 Karsten Hopp 7.4.552-1 +- patchlevel 552 + * Sat Dec 13 2014 Karsten Hopp 7.4.546-1 - patchlevel 546 From db72cb5ca30e7143abd08ce0296abd6479df78ec Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 17 Dec 2014 18:00:11 +0100 Subject: [PATCH 0175/1616] - patchlevel 553 --- 7.4.553 | 315 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 315 insertions(+) create mode 100644 7.4.553 diff --git a/7.4.553 b/7.4.553 new file mode 100644 index 00000000..a2bfc3e8 --- /dev/null +++ b/7.4.553 @@ -0,0 +1,315 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.553 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.553 +Problem: Various small issues. +Solution: Fix those issues. +Files: src/ex_cmds.h, src/gui.h, src/message.c, src/testdir/test39.in, + src/proto/eval.pro, src/proto/misc1.pro, src/proto/ops.pro, + src/proto/screen.pro, src/proto/window.pro. src/os_unix.c, + src/Make_vms.mms, src/proto/os_vms.pro, src/INSTALL + + +*** ../vim-7.4.552/src/ex_cmds.h 2014-12-08 04:16:26.257702950 +0100 +--- src/ex_cmds.h 2014-12-17 12:41:18.536370067 +0100 +*************** +*** 63,69 **** + #define ADDR_WINDOWS 1 + #define ADDR_ARGUMENTS 2 + #define ADDR_LOADED_BUFFERS 3 +! #define ADDR_BUFFERS 4 + #define ADDR_TABS 5 + + #ifndef DO_DECLARE_EXCMD +--- 63,69 ---- + #define ADDR_WINDOWS 1 + #define ADDR_ARGUMENTS 2 + #define ADDR_LOADED_BUFFERS 3 +! #define ADDR_BUFFERS 4 + #define ADDR_TABS 5 + + #ifndef DO_DECLARE_EXCMD +*** ../vim-7.4.552/src/gui.h 2013-06-17 22:22:49.000000000 +0200 +--- src/gui.h 2014-11-20 22:14:04.635717128 +0100 +*************** +*** 41,47 **** + # include + # include + # if !(defined (TARGET_API_MAC_CARBON) && (TARGET_API_MAC_CARBON)) +! # include + # endif + # include + /*# include */ +--- 41,47 ---- + # include + # include + # if !(defined (TARGET_API_MAC_CARBON) && (TARGET_API_MAC_CARBON)) +! # include + # endif + # include + /*# include */ +*** ../vim-7.4.552/src/message.c 2014-02-23 22:52:33.368764715 +0100 +--- src/message.c 2014-10-31 13:43:15.075230535 +0100 +*************** +*** 4030,4040 **** + * pointer for resulting string argument if "str_m" is zero (as per ISO C99). + * + * The return value is the number of characters which would be generated +! * for the given input, excluding the trailing null. If this value + * is greater or equal to "str_m", not all characters from the result + * have been stored in str, output bytes beyond the ("str_m"-1) -th character + * are discarded. If "str_m" is greater than zero it is guaranteed +! * the resulting string will be null-terminated. + */ + + /* +--- 4030,4040 ---- + * pointer for resulting string argument if "str_m" is zero (as per ISO C99). + * + * The return value is the number of characters which would be generated +! * for the given input, excluding the trailing NUL. If this value + * is greater or equal to "str_m", not all characters from the result + * have been stored in str, output bytes beyond the ("str_m"-1) -th character + * are discarded. If "str_m" is greater than zero it is guaranteed +! * the resulting string will be NUL-terminated. + */ + + /* +*** ../vim-7.4.552/src/testdir/test39.in 2014-08-16 18:13:00.082044726 +0200 +--- src/testdir/test39.in 2014-08-16 18:22:56.418023098 +0200 +*************** +*** 85,90 **** +--- 85,94 ---- + cccc + dddd + ++ yaaa ++ ¿¿¿ ++ bbb ++ + A23 + 4567 + +*** ../vim-7.4.552/src/proto/eval.pro 2014-05-07 17:31:32.473182497 +0200 +--- src/proto/eval.pro 2014-11-12 15:34:08.671587958 +0100 +*************** +*** 59,66 **** + int list_append_dict __ARGS((list_T *list, dict_T *dict)); + 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 vimlist_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)); +--- 59,66 ---- + int list_append_dict __ARGS((list_T *list, dict_T *dict)); + 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_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)); +*** ../vim-7.4.552/src/proto/misc1.pro 2014-06-25 14:39:35.110348584 +0200 +--- src/proto/misc1.pro 2014-11-12 15:34:16.043501712 +0100 +*************** +*** 5,11 **** + int get_indent_str __ARGS((char_u *ptr, int ts, int list)); + int set_indent __ARGS((int size, int flags)); + int get_number_indent __ARGS((linenr_T lnum)); +! int get_breakindent_win __ARGS((win_T *wp, char_u *ptr)); + int open_line __ARGS((int dir, int flags, int second_line_indent)); + int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int include_space)); + int get_last_leader_offset __ARGS((char_u *line, char_u **flags)); +--- 5,11 ---- + int get_indent_str __ARGS((char_u *ptr, int ts, int list)); + int set_indent __ARGS((int size, int flags)); + int get_number_indent __ARGS((linenr_T lnum)); +! int get_breakindent_win __ARGS((win_T *wp, char_u *line)); + int open_line __ARGS((int dir, int flags, int second_line_indent)); + int get_leader_len __ARGS((char_u *line, char_u **flags, int backward, int include_space)); + int get_last_leader_offset __ARGS((char_u *line, char_u **flags)); +*** ../vim-7.4.552/src/proto/ops.pro 2014-04-29 12:15:22.860032651 +0200 +--- src/proto/ops.pro 2014-11-12 15:34:17.567483882 +0100 +*************** +*** 55,62 **** + char_u get_reg_type __ARGS((int regname, long *reglen)); + char_u *get_reg_contents __ARGS((int regname, int flags)); + void write_reg_contents __ARGS((int name, char_u *str, int maxlen, int must_append)); +- void write_reg_contents_ex __ARGS((int name, char_u *str, int maxlen, int must_append, int yank_type, long block_len)); + void write_reg_contents_lst __ARGS((int name, char_u **strings, int maxlen, int must_append, int yank_type, long block_len)); + void clear_oparg __ARGS((oparg_T *oap)); + void cursor_pos_info __ARGS((void)); + /* vim: set ft=c : */ +--- 55,62 ---- + char_u get_reg_type __ARGS((int regname, long *reglen)); + char_u *get_reg_contents __ARGS((int regname, int flags)); + void write_reg_contents __ARGS((int name, char_u *str, int maxlen, int must_append)); + void write_reg_contents_lst __ARGS((int name, char_u **strings, int maxlen, int must_append, int yank_type, long block_len)); ++ void write_reg_contents_ex __ARGS((int name, char_u *str, int maxlen, int must_append, int yank_type, long block_len)); + void clear_oparg __ARGS((oparg_T *oap)); + void cursor_pos_info __ARGS((void)); + /* vim: set ft=c : */ +*** ../vim-7.4.552/src/proto/screen.pro 2013-08-10 13:37:25.000000000 +0200 +--- src/proto/screen.pro 2014-11-12 15:34:19.455461795 +0100 +*************** +*** 26,32 **** + void screen_putchar __ARGS((int c, int row, int col, int attr)); + void screen_getbytes __ARGS((int row, int col, char_u *bytes, int *attrp)); + void screen_puts __ARGS((char_u *text, int row, int col, int attr)); +! void screen_puts_len __ARGS((char_u *text, int len, int row, int col, int attr)); + void screen_stop_highlight __ARGS((void)); + void reset_cterm_colors __ARGS((void)); + void screen_draw_rectangle __ARGS((int row, int col, int height, int width, int invert)); +--- 26,32 ---- + void screen_putchar __ARGS((int c, int row, int col, int attr)); + void screen_getbytes __ARGS((int row, int col, char_u *bytes, int *attrp)); + void screen_puts __ARGS((char_u *text, int row, int col, int attr)); +! void screen_puts_len __ARGS((char_u *text, int textlen, int row, int col, int attr)); + void screen_stop_highlight __ARGS((void)); + void reset_cterm_colors __ARGS((void)); + void screen_draw_rectangle __ARGS((int row, int col, int height, int width, int invert)); +*** ../vim-7.4.552/src/os_unix.c 2014-11-19 18:48:41.515814987 +0100 +--- src/os_unix.c 2014-11-23 13:47:50.484703720 +0100 +*************** +*** 1609,1615 **** + /* + * If the X11 connection was lost try to restore it. + * Helps when the X11 server was stopped and restarted while Vim was inactive +! * (e.g. though tmux). + */ + static void + may_restore_clipboard() +--- 1609,1615 ---- + /* + * If the X11 connection was lost try to restore it. + * Helps when the X11 server was stopped and restarted while Vim was inactive +! * (e.g. through tmux). + */ + static void + may_restore_clipboard() +*** ../vim-7.4.552/src/Make_vms.mms 2014-03-12 16:51:35.048792541 +0100 +--- src/Make_vms.mms 2014-08-10 16:27:11.040711199 +0200 +*************** +*** 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 +--- 2,8 ---- + # Makefile for Vim on OpenVMS + # + # Maintainer: Zoltan Arpadffy +! # Last change: 2014 Aug 10 + # + # This has script been tested on VMS 6.2 to 8.2 on DEC Alpha, VAX and IA64 + # with MMS and MMK +*************** +*** 309,315 **** + ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \ + $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(SNIFF_LIB) $(RUBY_LIB) + +! SRC = blowfish.c buffer.c charset.c diff.c digraph.c edit.c eval.c ex_cmds.c ex_cmds2.c \ + ex_docmd.c ex_eval.c ex_getln.c if_xcmdsrv.c fileio.c fold.c getchar.c \ + hardcopy.c hashtab.c main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \ + misc2.c move.c normal.c ops.c option.c popupmnu.c quickfix.c regexp.c search.c sha256.c\ +--- 309,315 ---- + ALL_LIBS = $(LIBS) $(GUI_LIB_DIR) $(GUI_LIB) \ + $(PERL_LIB) $(PYTHON_LIB) $(TCL_LIB) $(SNIFF_LIB) $(RUBY_LIB) + +! SRC = blowfish.c buffer.c charset.c crypt.c, crypt_zip.c diff.c digraph.c edit.c eval.c ex_cmds.c ex_cmds2.c \ + ex_docmd.c ex_eval.c ex_getln.c if_xcmdsrv.c fileio.c fold.c getchar.c \ + hardcopy.c hashtab.c main.c mark.c menu.c mbyte.c memfile.c memline.c message.c misc1.c \ + misc2.c move.c normal.c ops.c option.c popupmnu.c quickfix.c regexp.c search.c sha256.c\ +*************** +*** 318,324 **** + $(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) $(SNIFF_SRC) \ + $(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) + +! OBJ = blowfish.obj buffer.obj charset.obj diff.obj digraph.obj edit.obj eval.obj \ + ex_cmds.obj ex_cmds2.obj ex_docmd.obj ex_eval.obj ex_getln.obj \ + if_xcmdsrv.obj fileio.obj fold.obj getchar.obj hardcopy.obj hashtab.obj main.obj mark.obj \ + menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \ +--- 318,324 ---- + $(GUI_SRC) $(PERL_SRC) $(PYTHON_SRC) $(TCL_SRC) $(SNIFF_SRC) \ + $(RUBY_SRC) $(HANGULIN_SRC) $(MZSCH_SRC) + +! OBJ = blowfish.obj buffer.obj charset.obj crypt.obj, crypt_zip.obj diff.obj digraph.obj edit.obj eval.obj \ + ex_cmds.obj ex_cmds2.obj ex_docmd.obj ex_eval.obj ex_getln.obj \ + if_xcmdsrv.obj fileio.obj fold.obj getchar.obj hardcopy.obj hashtab.obj main.obj mark.obj \ + menu.obj memfile.obj memline.obj message.obj misc1.obj misc2.obj \ +*** ../vim-7.4.552/src/proto/os_vms.pro 2014-03-12 16:51:35.060792541 +0100 +--- src/proto/os_vms.pro 2014-11-12 15:34:29.219347574 +0100 +*************** +*** 5,15 **** + char_u *mch_getenv __ARGS((char_u *lognam)); + int mch_setenv __ARGS((char *var, char *value, int x)); + 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)); + void vms_remove_version __ARGS((void *fname)); + /* vim: set ft=c : */ +--- 5,16 ---- + char_u *mch_getenv __ARGS((char_u *lognam)); + int mch_setenv __ARGS((char *var, char *value, int x)); + int vms_sys __ARGS((char *cmd, char *out, char *inp)); ++ char *vms_tolower __ARGS((char *name)); + int vms_sys_status __ARGS((int status)); + int vms_read __ARGS((char *inbuf, size_t nbytes)); + 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)); + void vms_remove_version __ARGS((void *fname)); ++ int RealWaitForChar __ARGS((int fd, long msec, int *check_for_gpm)); + /* vim: set ft=c : */ +*** ../vim-7.4.552/src/INSTALL 2011-05-19 12:36:17.000000000 +0200 +--- src/INSTALL 2014-07-06 14:30:41.411368351 +0200 +*************** +*** 316,322 **** + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + +! If you have to use a `make' that does not supports the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another +--- 316,322 ---- + the `configure' script. `configure' automatically checks for the + source code in the directory that `configure' is in and in `..'. + +! If you have to use a `make' that does not support the `VPATH' + variable, you have to compile the package for one architecture at a time + in the source code directory. After you have installed the package for + one architecture, use `make distclean' before reconfiguring for another +*** ../vim-7.4.552/src/version.c 2014-12-14 00:43:50.335749455 +0100 +--- src/version.c 2014-12-17 12:39:41.933558755 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 553, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +1. You actually wore a blue ribbon to protest the Communications Decency Act. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 11fc853621d007f07348d8b63faa424b7aa96103 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 17 Dec 2014 18:00:12 +0100 Subject: [PATCH 0176/1616] - patchlevel 554 --- 7.4.554 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 7.4.554 diff --git a/7.4.554 b/7.4.554 new file mode 100644 index 00000000..b1592510 --- /dev/null +++ b/7.4.554 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.554 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.554 +Problem: Missing part of patch 7.4.519. +Solution: Copy back regprog after calling vim_regexec. +Files: src/quickfix.c + + +*** ../vim-7.4.553/src/quickfix.c 2014-07-23 16:33:04.075886500 +0200 +--- src/quickfix.c 2014-11-19 16:21:16.404128731 +0100 +*************** +*** 592,597 **** +--- 592,599 ---- + restofline: + for ( ; fmt_ptr != NULL; fmt_ptr = fmt_ptr->next) + { ++ int r; ++ + idx = fmt_ptr->prefix; + if (multiscan && vim_strchr((char_u *)"OPQ", idx) == NULL) + continue; +*************** +*** 607,613 **** + tail = NULL; + + regmatch.regprog = fmt_ptr->prog; +! if (vim_regexec(®match, IObuff, (colnr_T)0)) + { + if ((idx == 'C' || idx == 'Z') && !multiline) + continue; +--- 609,617 ---- + tail = NULL; + + regmatch.regprog = fmt_ptr->prog; +! r = vim_regexec(®match, IObuff, (colnr_T)0); +! fmt_ptr->prog = regmatch.regprog; +! if (r) + { + if ((idx == 'C' || idx == 'Z') && !multiline) + continue; +*** ../vim-7.4.553/src/version.c 2014-12-17 14:36:10.367090935 +0100 +--- src/version.c 2014-12-17 14:40:51.463618087 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 554, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +2. You kiss your girlfriend's 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 b042c8c1cc0989911c7bb9398f6b6d5c65b04cb0 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 17 Dec 2014 18:00:13 +0100 Subject: [PATCH 0177/1616] - patchlevel 555 --- 7.4.555 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 7.4.555 diff --git a/7.4.555 b/7.4.555 new file mode 100644 index 00000000..431985db --- /dev/null +++ b/7.4.555 @@ -0,0 +1,84 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.555 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.555 +Problem: test_close_count may fail for some combination of features. +Solution: Require normal features. +Files: src/testdir/test_close_count.in + + +*** ../vim-7.4.554/src/testdir/test_close_count.in 2014-11-27 16:22:42.746412995 +0100 +--- src/testdir/test_close_count.in 2014-11-30 13:07:39.347388895 +0100 +*************** +*** 1,8 **** + Tests for :[count]close! and :[count]hide vim: set ft=vim : + + STARTTEST + :let tests = [] +- :so tiny.vim + :for i in range(5) + :new + :endfor +--- 1,8 ---- + Tests for :[count]close! and :[count]hide vim: set ft=vim : + + STARTTEST ++ :so small.vim + :let tests = [] + :for i in range(5) + :new + :endfor +*************** +*** 46,52 **** + + STARTTEST + :let tests = [] +- :so tiny.vim + :for i in range(5) + :new + :endfor +--- 46,51 ---- +*************** +*** 94,100 **** + + STARTTEST + :let tests = [] +- :so tiny.vim + :set hidden + :for i in range(5) + :new +--- 93,98 ---- +*************** +*** 123,129 **** + + STARTTEST + :let tests = [] +- :so tiny.vim + :set hidden + :for i in range(5) + :new +--- 121,126 ---- +*** ../vim-7.4.554/src/version.c 2014-12-17 14:41:06.083437433 +0100 +--- src/version.c 2014-12-17 14:42:07.426679571 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 555, + /**/ + +-- +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 075112be1be234ef50bf97e6e4250f19c07c5d93 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 17 Dec 2014 18:00:14 +0100 Subject: [PATCH 0178/1616] - patchlevel 556 --- 7.4.556 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 7.4.556 diff --git a/7.4.556 b/7.4.556 new file mode 100644 index 00000000..e0cf3c2d --- /dev/null +++ b/7.4.556 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.556 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.556 +Problem: Failed commands in Python interface not handled correctly. +Solution: Restore window and buffer on failure. +Files: src/if_py_both.h + + +*** ../vim-7.4.555/src/if_py_both.h 2014-08-29 13:49:48.678436915 +0200 +--- src/if_py_both.h 2014-09-19 14:21:33.474404353 +0200 +*************** +*** 3172,3177 **** +--- 3172,3178 ---- + if (switch_win(&save_curwin, &save_curtab, (win_T *)from, + win_find_tabpage((win_T *)from), FALSE) == FAIL) + { ++ restore_win(save_curwin, save_curtab, TRUE); + if (VimTryEnd()) + return -1; + PyErr_SET_VIM(N_("problem while switching windows")); +*************** +*** 4032,4040 **** + win_T *wp; + tabpage_T *tp; + +! if (find_win_for_buf(buf, &wp, &tp) == FAIL +! || switch_win(save_curwinp, save_curtabp, wp, tp, TRUE) == FAIL) + switch_buffer(save_curbufp, buf); + } + + static void +--- 4033,4045 ---- + win_T *wp; + tabpage_T *tp; + +! if (find_win_for_buf(buf, &wp, &tp) == FAIL) + switch_buffer(save_curbufp, buf); ++ else if (switch_win(save_curwinp, save_curtabp, wp, tp, TRUE) == FAIL) ++ { ++ restore_win(*save_curwinp, *save_curtabp, TRUE); ++ switch_buffer(save_curbufp, buf); ++ } + } + + static void +*** ../vim-7.4.555/src/version.c 2014-12-17 14:42:42.990240206 +0100 +--- src/version.c 2014-12-17 14:44:33.304877367 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 556, + /**/ + +-- +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 f98d70c120ce9a478c5919a3c217c23b58b3b20b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 17 Dec 2014 18:00:15 +0100 Subject: [PATCH 0179/1616] - patchlevel 557 --- 7.4.557 | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 7.4.557 diff --git a/7.4.557 b/7.4.557 new file mode 100644 index 00000000..8d249f72 --- /dev/null +++ b/7.4.557 @@ -0,0 +1,52 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.557 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.557 +Problem: One more small issue. +Solution: Update function proto. +Files: src/proto/window.pro + + +*** ../vim-7.4.556/src/proto/window.pro 2014-06-17 17:48:21.780628008 +0200 +--- src/proto/window.pro 2014-11-12 15:34:22.895421553 +0100 +*************** +*** 75,81 **** + 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)); + 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)); +--- 75,81 ---- + 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)); +*** ../vim-7.4.556/src/version.c 2014-12-17 14:45:56.095854545 +0100 +--- src/version.c 2014-12-17 14:47:19.674822175 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 557, + /**/ + +-- +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 a47b32dbe3ac528f722b920d9d927b71e72dbfa5 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 17 Dec 2014 18:00:16 +0100 Subject: [PATCH 0180/1616] - patchlevel 557 --- README.patches | 7 ++++++- vim.spec | 15 ++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/README.patches b/README.patches index 840a8d6d..8ddb684c 100644 --- a/README.patches +++ b/README.patches @@ -571,6 +571,11 @@ Individual patches for Vim 7.4: 1785 7.4.547 "vit" does not select multi-byte character at the end correctly 1681 7.4.548 compilation fails with native version of MinGW-w64 6505 7.4.549 function name not recognized correctly when inside a function - 4016 7.4.550 curs_rows() function is always called with second argument false + 4016 7.4.550 curs_rows() function is always called with 2nd argument false 5608 7.4.551 "ygn" may yank too much; Issue 295 2298 7.4.552 langmap applies to Insert mode expression mappings + 14152 7.4.553 various small issues + 1877 7.4.554 missing part of patch 7.4.519 + 1970 7.4.555 test_close_count may fail for some combination of features + 2121 7.4.556 failed commands in Python interface not handled correctly + 1997 7.4.557 one more small issue diff --git a/vim.spec b/vim.spec index 87f0b4e4..846993f7 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 552 +%define patchlevel 557 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -599,6 +599,11 @@ Patch549: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.549 Patch550: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.550 Patch551: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.551 Patch552: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.552 +Patch553: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.553 +Patch554: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.554 +Patch555: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.555 +Patch556: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.556 +Patch557: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.557 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1298,6 +1303,11 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch550 -p0 %patch551 -p0 %patch552 -p0 +%patch553 -p0 +%patch554 -p0 +%patch555 -p0 +%patch556 -p0 +%patch557 -p0 # install spell files %if %{withvimspell} @@ -1815,6 +1825,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Dec 17 2014 Karsten Hopp 7.4.557-1 +- patchlevel 557 + * Sun Dec 14 2014 Karsten Hopp 7.4.552-1 - patchlevel 552 From 79893035ace0fd97e1ecd7ebc6fb71094022c3c7 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 18 Dec 2014 18:00:10 +0100 Subject: [PATCH 0181/1616] - patchlevel 558 --- 7.4.558 | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 7.4.558 diff --git a/7.4.558 b/7.4.558 new file mode 100644 index 00000000..74046e6c --- /dev/null +++ b/7.4.558 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.558 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.558 +Problem: When the X server restarts Vim may get stuck. +Solution: Destroy the application context and create it again. (Issue 203) +Files: src/os_unix.c + + +*** ../vim-7.4.557/src/os_unix.c 2014-12-17 14:36:10.367090935 +0100 +--- src/os_unix.c 2014-12-17 17:55:23.187644328 +0100 +*************** +*** 1617,1622 **** +--- 1617,1633 ---- + if (xterm_dpy_was_reset) + { + xterm_dpy_was_reset = FALSE; ++ ++ # ifndef LESSTIF_VERSION ++ /* This has been reported to avoid Vim getting stuck. */ ++ if (app_context != (XtAppContext)NULL) ++ { ++ XtDestroyApplicationContext(app_context); ++ app_context = (XtAppContext)NULL; ++ x11_display = NULL; /* freed by XtDestroyApplicationContext() */ ++ } ++ # endif ++ + setup_term_clip(); + get_x11_title(FALSE); + } +*** ../vim-7.4.557/src/version.c 2014-12-17 14:47:52.870412129 +0100 +--- src/version.c 2014-12-17 17:57:10.026323560 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 558, + /**/ + +-- +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 f4c9ab1edf137a33d593d7f37556bb6e4ef0d395 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 18 Dec 2014 18:00:11 +0100 Subject: [PATCH 0182/1616] - patchlevel 559 --- 7.4.559 | 126 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 7.4.559 diff --git a/7.4.559 b/7.4.559 new file mode 100644 index 00000000..c4b4c3c8 --- /dev/null +++ b/7.4.559 @@ -0,0 +1,126 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.559 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.559 +Problem: Appending a block in the middle of a tab does not work correctly + when virtualedit is set. +Solution: Decrement spaces and count, don't reset them. (James McCoy) +Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok + + +*** ../vim-7.4.558/src/ops.c 2014-11-19 17:35:35.081446695 +0100 +--- src/ops.c 2014-12-17 18:28:39.034973177 +0100 +*************** +*** 612,631 **** + #ifdef FEAT_MBYTE + if (has_mbyte && spaces > 0) + { + /* Avoid starting halfway a multi-byte character. */ + if (b_insert) + { +! int off = (*mb_head_off)(oldp, oldp + offset + spaces); +! spaces -= off; +! count -= off; + } + else + { +! int off = (*mb_off_next)(oldp, oldp + offset); + offset += off; +- spaces = 0; +- count = 0; + } + } + #endif + +--- 612,631 ---- + #ifdef FEAT_MBYTE + if (has_mbyte && spaces > 0) + { ++ int off; ++ + /* Avoid starting halfway a multi-byte character. */ + if (b_insert) + { +! off = (*mb_head_off)(oldp, oldp + offset + spaces); + } + else + { +! off = (*mb_off_next)(oldp, oldp + offset); + offset += off; + } ++ spaces -= off; ++ count -= off; + } + #endif + +*** ../vim-7.4.558/src/testdir/test39.in 2014-12-17 14:36:10.363090985 +0100 +--- src/testdir/test39.in 2014-12-17 18:27:18.151974111 +0100 +*************** +*** 38,48 **** + /^C23$/ + :exe ":norm! l\j$hhAab\" + :.,/^$/w >> test.out +! :" Test for Visual block insert when virtualedit=all +! :set ve=all + :/\t\tline + :exe ":norm! 07l\jjIx\" +! :set ve= + :.,/^$/w >> test.out + :" gUe must uppercase a whole word, also when ĂŸ changes to SS + Gothe youtuĂŸeuu endYpk0wgUe +--- 38,51 ---- + /^C23$/ + :exe ":norm! l\j$hhAab\" + :.,/^$/w >> test.out +! :" Test for Visual block insert when virtualedit=all and utf-8 encoding +! :set ve=all enc=utf-8 + :/\t\tline + :exe ":norm! 07l\jjIx\" +! :.,/^$/w >> test.out +! :" Test for Visual block append when virtualedit=all +! :exe ":norm! 012l\jjAx\" +! :set ve= enc=latin1 + :.,/^$/w >> test.out + :" gUe must uppercase a whole word, also when ĂŸ changes to SS + Gothe youtuĂŸeuu endYpk0wgUe +*** ../vim-7.4.558/src/testdir/test39.ok 2014-08-16 18:13:00.082044726 +0200 +--- src/testdir/test39.ok 2014-12-17 18:18:33.090470463 +0100 +*************** +*** 26,31 **** +--- 26,35 ---- + x line2 + x line3 + ++ x x line1 ++ x x line2 ++ x x line3 ++ + the YOUTUSSEUU end + - yOUSSTUSSEXu - + THE YOUTUSSEUU END +*** ../vim-7.4.558/src/version.c 2014-12-17 17:59:26.916631344 +0100 +--- src/version.c 2014-12-17 18:32:23.276199179 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 559, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +15. Your heart races faster and beats irregularly each time you see a new WWW + site address in print or on TV, even though you've never had heart + problems 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 /// From bf8b256b5b4b1e151fa36237fb638350942be628 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 18 Dec 2014 18:00:12 +0100 Subject: [PATCH 0183/1616] - patchlevel 560 --- 7.4.560 | 205 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 7.4.560 diff --git a/7.4.560 b/7.4.560 new file mode 100644 index 00000000..2da74c41 --- /dev/null +++ b/7.4.560 @@ -0,0 +1,205 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.560 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.560 +Problem: Memory leak using :wviminfo. Issue 296. +Solution: Free memory when needed. (idea by Christian Brabandt) +Files: src/ops.c + + +*** ../vim-7.4.559/src/ops.c 2014-12-17 18:35:37.553795955 +0100 +--- src/ops.c 2014-12-17 20:59:49.722557613 +0100 +*************** +*** 5663,5668 **** +--- 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; +*************** +*** 5695,5715 **** + limit = 100; /* Optimized for registers containing <= 100 lines */ + if (do_it) + { + if (set_prev) + y_previous = y_current; +! vim_free(y_current->y_array); +! array = y_current->y_array = +! (char_u **)alloc((unsigned)(limit * sizeof(char_u *))); + str = skipwhite(skiptowhite(str)); + if (STRNCMP(str, "CHAR", 4) == 0) +! y_current->y_type = MCHAR; + else if (STRNCMP(str, "BLOCK", 5) == 0) +! y_current->y_type = MBLOCK; + else +! y_current->y_type = MLINE; + /* get the block width; if it's missing we get a zero, which is OK */ + str = skipwhite(skiptowhite(str)); +! y_current->y_width = getdigits(&str); + } + + while (!(eof = viminfo_readline(virp)) +--- 5697,5721 ---- + limit = 100; /* Optimized for registers containing <= 100 lines */ + if (do_it) + { ++ /* ++ * Build the new register in array[]. ++ * y_array is kept as-is until done. ++ * The "do_it" flag is reset when something is wrong, in which case ++ * array[] needs to be freed. ++ */ + if (set_prev) + y_previous = y_current; +! array = (char_u **)alloc((unsigned)(limit * sizeof(char_u *))); + str = skipwhite(skiptowhite(str)); + if (STRNCMP(str, "CHAR", 4) == 0) +! new_type = MCHAR; + else if (STRNCMP(str, "BLOCK", 5) == 0) +! new_type = MBLOCK; + else +! new_type = MLINE; + /* get the block width; if it's missing we get a zero, which is OK */ + str = skipwhite(skiptowhite(str)); +! new_width = getdigits(&str); + } + + while (!(eof = viminfo_readline(virp)) +*************** +*** 5717,5756 **** + { + if (do_it) + { +! if (size >= limit) + { +! y_current->y_array = (char_u **) + alloc((unsigned)(limit * 2 * sizeof(char_u *))); + for (i = 0; i < limit; i++) +! y_current->y_array[i] = array[i]; + vim_free(array); + limit *= 2; +- array = y_current->y_array; + } + str = viminfo_readstring(virp, 1, TRUE); + if (str != NULL) + array[size++] = str; + else + do_it = FALSE; + } + } + if (do_it) + { + if (size == 0) + { +- vim_free(array); + y_current->y_array = NULL; + } +! else if (size < limit) + { + y_current->y_array = + (char_u **)alloc((unsigned)(size * sizeof(char_u *))); + for (i = 0; i < size; i++) +! y_current->y_array[i] = array[i]; +! vim_free(array); + } +- y_current->y_size = size; + } + return eof; + } + +--- 5723,5788 ---- + { + if (do_it) + { +! if (size == limit) + { +! char_u **new_array = (char_u **) + alloc((unsigned)(limit * 2 * sizeof(char_u *))); ++ ++ if (new_array == NULL) ++ { ++ do_it = FALSE; ++ break; ++ } + for (i = 0; i < limit; i++) +! new_array[i] = array[i]; + vim_free(array); ++ array = new_array; + limit *= 2; + } + str = viminfo_readstring(virp, 1, TRUE); + if (str != NULL) + array[size++] = str; + else ++ /* error, don't store the result */ + do_it = FALSE; + } + } + if (do_it) + { ++ /* free y_array[] */ ++ for (i = 0; i < y_current->y_size; i++) ++ vim_free(y_current->y_array[i]); ++ vim_free(y_current->y_array); ++ ++ y_current->y_type = new_type; ++ y_current->y_width = new_width; ++ y_current->y_size = size; + if (size == 0) + { + y_current->y_array = NULL; + } +! else + { ++ /* Move the lines from array[] to y_array[]. */ + y_current->y_array = + (char_u **)alloc((unsigned)(size * sizeof(char_u *))); + for (i = 0; i < size; i++) +! { +! if (y_current->y_array == NULL) +! vim_free(array[i]); +! else +! y_current->y_array[i] = array[i]; +! } + } + } ++ else ++ { ++ /* Free array[] if it was filled. */ ++ for (i = 0; i < size; i++) ++ vim_free(array[i]); ++ } ++ vim_free(array); ++ + return eof; + } + +*** ../vim-7.4.559/src/version.c 2014-12-17 18:35:37.553795955 +0100 +--- src/version.c 2014-12-17 18:56:33.810259558 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 560, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +17. You turn on your intercom when leaving the room so you can hear if new + e-mail arrives. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 0bf1054ebc08ffb63fb1df8dbe93314d90278b7f Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 18 Dec 2014 18:00:13 +0100 Subject: [PATCH 0184/1616] - patchlevel 560 --- README.patches | 3 +++ vim.spec | 11 ++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 8ddb684c..30fc1d41 100644 --- a/README.patches +++ b/README.patches @@ -579,3 +579,6 @@ Individual patches for Vim 7.4: 1970 7.4.555 test_close_count may fail for some combination of features 2121 7.4.556 failed commands in Python interface not handled correctly 1997 7.4.557 one more small issue + 1690 7.4.558 when the X server restarts Vim may get stuck + 3549 7.4.559 block append inside tab is wrong when virtualedit is set + 5331 7.4.560 memory leak using :wviminfo; Issue 296 diff --git a/vim.spec b/vim.spec index 846993f7..8c03ae2e 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 557 +%define patchlevel 560 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -604,6 +604,9 @@ Patch554: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.554 Patch555: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.555 Patch556: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.556 Patch557: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.557 +Patch558: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.558 +Patch559: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.559 +Patch560: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.560 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1308,6 +1311,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch555 -p0 %patch556 -p0 %patch557 -p0 +%patch558 -p0 +%patch559 -p0 +%patch560 -p0 # install spell files %if %{withvimspell} @@ -1825,6 +1831,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Dec 18 2014 Karsten Hopp 7.4.560-1 +- patchlevel 560 + * Wed Dec 17 2014 Karsten Hopp 7.4.557-1 - patchlevel 557 From 8d89a93fa6151dc42977bd013ebeb1e7138f91c4 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:10 +0100 Subject: [PATCH 0185/1616] - patchlevel 561 --- 7.4.561 | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 7.4.561 diff --git a/7.4.561 b/7.4.561 new file mode 100644 index 00000000..d28c7809 --- /dev/null +++ b/7.4.561 @@ -0,0 +1,109 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.561 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.561 +Problem: Ex range handling is wrong for buffer-local user commands. +Solution: Check for CMD_USER_BUF. (Marcin Szamotulski) +Files: src/ex_docmd.c, src/testdir/test_command_count.in, + src/testdir/test_command_count.ok + + +*** ../vim-7.4.560/src/ex_docmd.c 2014-12-08 04:16:26.265702875 +0100 +--- src/ex_docmd.c 2015-01-07 13:11:45.740538584 +0100 +*************** +*** 2133,2144 **** + if (ea.cmdidx != CMD_SIZE + #ifdef FEAT_USR_CMDS + && ea.cmdidx != CMD_USER + #endif + ) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else + #ifdef FEAT_USR_CMDS +! if (ea.cmdidx != CMD_USER) + #endif + ea.addr_type = ADDR_LINES; + /* ea.addr_type for user commands is set by find_ucmd */ +--- 2133,2145 ---- + if (ea.cmdidx != CMD_SIZE + #ifdef FEAT_USR_CMDS + && ea.cmdidx != CMD_USER ++ && ea.cmdidx != CMD_USER_BUF + #endif + ) + ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; + else + #ifdef FEAT_USR_CMDS +! if (ea.cmdidx != CMD_USER && ea.cmdidx != CMD_USER_BUF) + #endif + ea.addr_type = ADDR_LINES; + /* ea.addr_type for user commands is set by find_ucmd */ +*** ../vim-7.4.560/src/testdir/test_command_count.in 2014-12-08 04:16:26.249703054 +0100 +--- src/testdir/test_command_count.in 2015-01-07 13:12:34.099980778 +0100 +*************** +*** 3,9 **** + STARTTEST + :let g:lines = [] + :so tiny.vim +! :com -range RangeLines :call add(g:lines, 'Rangeg:Lines '..' '.) + :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) + :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '..' '.) + :com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '..' '.) +--- 3,9 ---- + STARTTEST + :let g:lines = [] + :so tiny.vim +! :com -range=% RangeLines :call add(g:lines, 'RangeLines '..' '.) + :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) + :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '..' '.) + :com -range -addr=loaded_buffers RangeLoadedBuffers :call add(g:lines, 'RangeLoadedBuffers '..' '.) +*************** +*** 42,47 **** +--- 42,53 ---- + :%RangeTabs + :RangeTabsAll + :1tabonly ++ :s/\n/\r\r\r\r\r/ ++ :2ma< ++ :$-ma> ++ :'<,'>RangeLines ++ :com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '..' '.) ++ :'<,'>LocalRangeLines + :e! test.out + :call append(0, g:lines) + :w|qa! +*** ../vim-7.4.560/src/testdir/test_command_count.ok 2014-12-08 04:16:26.249703054 +0100 +--- src/testdir/test_command_count.ok 2015-01-07 12:59:08.657271709 +0100 +*************** +*** 14,17 **** +--- 14,19 ---- + RangeTabs 2 5 + RangeTabs 1 5 + RangeTabsAll 1 5 ++ RangeLines 2 5 ++ LocalRangeLines 2 5 + +*** ../vim-7.4.560/src/version.c 2014-12-17 21:00:44.989871256 +0100 +--- src/version.c 2015-01-07 12:58:04.754008894 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 561, + /**/ + +-- +Q: What is a patch 22? +A: A patch you need to include to make it possible to include patches. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 9d4d1d0ce057556dbd596f5046a5c05e79c0b1d8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:11 +0100 Subject: [PATCH 0186/1616] - patchlevel 562 --- 7.4.562 | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 7.4.562 diff --git a/7.4.562 b/7.4.562 new file mode 100644 index 00000000..d462c383 --- /dev/null +++ b/7.4.562 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.562 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.562 +Problem: Segfault with wide screen and error in 'rulerformat'. (Ingo Karkat) +Solution: Check there is enough space. (Christian Brabandt) +Files: src/buffer.c, src/screen.c + + +*** ../vim-7.4.561/src/buffer.c 2014-11-19 16:38:01.500680103 +0100 +--- src/buffer.c 2015-01-07 13:24:22.663808167 +0100 +*************** +*** 4409,4414 **** +--- 4409,4416 ---- + long above; /* number of lines above window */ + long below; /* number of lines below window */ + ++ if (buflen < 3) /* need at least 3 chars for writing */ ++ return; + above = wp->w_topline - 1; + #ifdef FEAT_DIFF + above += diff_check_fill(wp, wp->w_topline) - wp->w_topfill; +*** ../vim-7.4.561/src/screen.c 2014-12-13 03:36:34.988435244 +0100 +--- src/screen.c 2015-01-07 13:28:04.069254599 +0100 +*************** +*** 10588,10594 **** + this_ru_col = (WITH_WIDTH(width) + 1) / 2; + if (this_ru_col + o < WITH_WIDTH(width)) + { +! while (this_ru_col + o < WITH_WIDTH(width)) + { + #ifdef FEAT_MBYTE + if (has_mbyte) +--- 10588,10595 ---- + this_ru_col = (WITH_WIDTH(width) + 1) / 2; + if (this_ru_col + o < WITH_WIDTH(width)) + { +! /* need at least 3 chars left for get_rel_pos() + NUL */ +! while (this_ru_col + o < WITH_WIDTH(width) && RULER_BUF_LEN > i + 4) + { + #ifdef FEAT_MBYTE + if (has_mbyte) +*** ../vim-7.4.561/src/version.c 2015-01-07 13:15:40.609829496 +0100 +--- src/version.c 2015-01-07 13:22:59.184770984 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 562, + /**/ + +-- +"I can't complain, but sometimes I still do." (Joe Walsh) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 580d1af9be57647a7556d62831cda87baf2d323a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:12 +0100 Subject: [PATCH 0187/1616] - patchlevel 563 --- 7.4.563 | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 7.4.563 diff --git a/7.4.563 b/7.4.563 new file mode 100644 index 00000000..82ffc4df --- /dev/null +++ b/7.4.563 @@ -0,0 +1,70 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.563 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.563 +Problem: No test for replacing on a tab in Virtual replace mode. +Solution: Add a test. (Elias Diem) +Files: src/testdir/test48.in, src/testdir/test48.ok + + +*** ../vim-7.4.562/src/testdir/test48.in 2012-12-12 18:09:21.000000000 +0100 +--- src/testdir/test48.in 2015-01-07 13:50:22.725817323 +0100 +*************** +*** 44,49 **** +--- 44,53 ---- + /^"r" + $5lrxa<-- should be 'x' + :" ++ :" Test "r" on a tab ++ :" Note that for this test, 'ts' must be 8 (the default). ++ ^5lrxA<-- should be ' x ' ++ :" + :" Test to make sure 'x' can delete control characters + :set display=uhex + ^xxxxxxi[This line should contain only the text between the brackets.] +*************** +*** 72,77 **** +--- 76,82 ---- + this is a test + this is a test + "r" ++ "r" + ab sd + abcv6efi.him0kl + +*** ../vim-7.4.562/src/testdir/test48.ok 2012-12-12 18:09:25.000000000 +0100 +--- src/testdir/test48.ok 2015-01-07 13:44:09.418122081 +0100 +*************** +*** 12,17 **** +--- 12,18 ---- + this is a test + this is a test + "r" x<-- should be 'x' ++ "r" x <-- should be ' x ' + [This line should contain only the text between the brackets.] + v i m <-- should show the name of a noted text editor + 6 . 0 <-- and its version number +*** ../vim-7.4.562/src/version.c 2015-01-07 13:31:48.890661692 +0100 +--- src/version.c 2015-01-07 14:02:11.173641021 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 563, + /**/ + +-- +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 /// From 6da34f4de502e1735c977da57096663951153829 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:12 +0100 Subject: [PATCH 0188/1616] - patchlevel 564 --- 7.4.564 | 246 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 246 insertions(+) create mode 100644 7.4.564 diff --git a/7.4.564 b/7.4.564 new file mode 100644 index 00000000..16f5e755 --- /dev/null +++ b/7.4.564 @@ -0,0 +1,246 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.564 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.564 +Problem: FEAT_OSFILETYPE is used even though it's never defined. +Solution: Remove the code. (Christian Brabandt) +Files: src/fileio.c + + +*** ../vim-7.4.563/src/fileio.c 2014-11-19 16:38:01.516679915 +0100 +--- src/fileio.c 2015-01-07 14:40:04.731344734 +0100 +*************** +*** 10049,10105 **** + { + regmatch_T regmatch; + int result = FALSE; +- #ifdef FEAT_OSFILETYPE +- int no_pattern = FALSE; /* TRUE if check is filetype only */ +- char_u *type_start; +- char_u c; +- int match = FALSE; +- #endif + + regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */ +! #ifdef FEAT_OSFILETYPE +! if (*pattern == '<') +! { +! /* There is a filetype condition specified with this pattern. +! * Check the filetype matches first. If not, don't bother with the +! * pattern (set regprog to NULL). +! * Always use magic for the regexp. +! */ +! +! for (type_start = pattern + 1; (c = *pattern); pattern++) +! { +! if ((c == ';' || c == '>') && match == FALSE) +! { +! *pattern = NUL; /* Terminate the string */ +! /* TODO: match with 'filetype' of buffer that "fname" comes +! * from. */ +! match = mch_check_filetype(fname, type_start); +! *pattern = c; /* Restore the terminator */ +! type_start = pattern + 1; +! } +! if (c == '>') +! break; +! } +! +! /* (c should never be NUL, but check anyway) */ +! if (match == FALSE || c == NUL) +! regmatch.regprog = NULL; /* Doesn't match - don't check pat. */ +! else if (*pattern == NUL) +! { +! regmatch.regprog = NULL; /* Vim will try to free regprog later */ +! no_pattern = TRUE; /* Always matches - don't check pat. */ +! } +! else +! regmatch.regprog = vim_regcomp(pattern + 1, RE_MAGIC); +! } + else +! #endif +! { +! if (prog != NULL) +! regmatch.regprog = *prog; +! else +! regmatch.regprog = vim_regcomp(pattern, RE_MAGIC); +! } + + /* + * Try for a match with the pattern with: +--- 10049,10060 ---- + { + regmatch_T regmatch; + int result = FALSE; + + regmatch.rm_ic = p_fic; /* ignore case if 'fileignorecase' is set */ +! if (prog != NULL) +! regmatch.regprog = *prog; + else +! regmatch.regprog = vim_regcomp(pattern, RE_MAGIC); + + /* + * Try for a match with the pattern with: +*************** +*** 10107,10125 **** + * 2. the short file name, when the pattern has a '/'. + * 3. the tail of the file name, when the pattern has no '/'. + */ +! if ( +! #ifdef FEAT_OSFILETYPE +! /* If the check is for a filetype only and we don't care +! * about the path then skip all the regexp stuff. +! */ +! no_pattern || +! #endif +! (regmatch.regprog != NULL + && ((allow_dirs + && (vim_regexec(®match, fname, (colnr_T)0) + || (sfname != NULL + && vim_regexec(®match, sfname, (colnr_T)0)))) +! || (!allow_dirs && vim_regexec(®match, tail, (colnr_T)0))))) + result = TRUE; + + if (prog != NULL) +--- 10062,10073 ---- + * 2. the short file name, when the pattern has a '/'. + * 3. the tail of the file name, when the pattern has no '/'. + */ +! if (regmatch.regprog != NULL + && ((allow_dirs + && (vim_regexec(®match, fname, (colnr_T)0) + || (sfname != NULL + && vim_regexec(®match, sfname, (colnr_T)0)))) +! || (!allow_dirs && vim_regexec(®match, tail, (colnr_T)0)))) + result = TRUE; + + if (prog != NULL) +*************** +*** 10176,10184 **** + * allow_dirs, otherwise FALSE is put there -- webb. + * Handle backslashes before special characters, like "\*" and "\ ". + * +- * If FEAT_OSFILETYPE defined then pass initial through unchanged. Eg: +- * 'myfile' becomes '^myfile$' -- leonard. +- * + * Returns NULL when out of memory. + */ + char_u * +--- 10124,10129 ---- +*************** +*** 10188,10241 **** + char *allow_dirs; /* Result passed back out in here */ + int no_bslash UNUSED; /* Don't use a backward slash as pathsep */ + { +! int size; + char_u *endp; + char_u *reg_pat; + char_u *p; + int i; + int nested = 0; + int add_dollar = TRUE; +- #ifdef FEAT_OSFILETYPE +- int check_length = 0; +- #endif + + if (allow_dirs != NULL) + *allow_dirs = FALSE; + if (pat_end == NULL) + pat_end = pat + STRLEN(pat); + +- #ifdef FEAT_OSFILETYPE +- /* Find out how much of the string is the filetype check */ +- if (*pat == '<') +- { +- /* Count chars until the next '>' */ +- for (p = pat + 1; p < pat_end && *p != '>'; p++) +- ; +- if (p < pat_end) +- { +- /* Pattern is of the form <.*>.* */ +- check_length = p - pat + 1; +- if (p + 1 >= pat_end) +- { +- /* The 'pattern' is a filetype check ONLY */ +- reg_pat = (char_u *)alloc(check_length + 1); +- if (reg_pat != NULL) +- { +- mch_memmove(reg_pat, pat, (size_t)check_length); +- reg_pat[check_length] = NUL; +- } +- return reg_pat; +- } +- } +- /* else: there was no closing '>' - assume it was a normal pattern */ +- +- } +- pat += check_length; +- size = 2 + check_length; +- #else +- size = 2; /* '^' at start, '$' at end */ +- #endif +- + for (p = pat; p < pat_end; p++) + { + switch (*p) +--- 10133,10151 ---- + char *allow_dirs; /* Result passed back out in here */ + int no_bslash UNUSED; /* Don't use a backward slash as pathsep */ + { +! int size = 2; /* '^' at start, '$' at end */ + char_u *endp; + char_u *reg_pat; + char_u *p; + int i; + int nested = 0; + int add_dollar = TRUE; + + if (allow_dirs != NULL) + *allow_dirs = FALSE; + if (pat_end == NULL) + pat_end = pat + STRLEN(pat); + + for (p = pat; p < pat_end; p++) + { + switch (*p) +*************** +*** 10270,10283 **** + if (reg_pat == NULL) + return NULL; + +- #ifdef FEAT_OSFILETYPE +- /* Copy the type check in to the start. */ +- if (check_length) +- mch_memmove(reg_pat, pat - check_length, (size_t)check_length); +- i = check_length; +- #else + i = 0; +- #endif + + if (pat[0] == '*') + while (pat[0] == '*' && pat < pat_end - 1) +--- 10180,10186 ---- +*** ../vim-7.4.563/src/version.c 2015-01-07 14:02:47.609220508 +0100 +--- src/version.c 2015-01-07 14:32:36.464539801 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 564, + /**/ + +-- +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 /// From 7080e3c86aa0a7777c563645db8171862b264f76 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:13 +0100 Subject: [PATCH 0189/1616] - patchlevel 565 --- 7.4.565 | 411 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 411 insertions(+) create mode 100644 7.4.565 diff --git a/7.4.565 b/7.4.565 new file mode 100644 index 00000000..c513c4df --- /dev/null +++ b/7.4.565 @@ -0,0 +1,411 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.565 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.565 +Problem: Ranges for arguments, buffers, tabs, etc. are not checked to be + valid but limited to the maximum. This can cause the wrong thing + to happen. +Solution: Give an error for an invalid value. (Marcin Szamotulski) + Use windows range for ":wincmd". +Files: src/ex_docmd.c, src/ex_cmds.h, src/testdir/test62.in, + src/testdir/test_argument_count.in, + src/testdir/test_argument_count.ok, + src/testdir/test_close_count.in, + src/testdir/test_command_count.in, + src/testdir/test_command_count.ok + + +*** ../vim-7.4.564/src/ex_docmd.c 2015-01-07 13:15:40.605829542 +0100 +--- src/ex_docmd.c 2015-01-07 15:33:21.950217606 +0100 +*************** +*** 2161,2166 **** +--- 2161,2168 ---- + break; + case ADDR_ARGUMENTS: + ea.line2 = curwin->w_arg_idx + 1; ++ if (ea.line2 > ARGCOUNT) ++ ea.line2 = ARGCOUNT; + break; + case ADDR_LOADED_BUFFERS: + case ADDR_BUFFERS: +*************** +*** 3110,3116 **** + * Exceptions: + * - the 'k' command can directly be followed by any character. + * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r' +! * but :sre[wind] is another command, as are :scrip[tnames], + * :scs[cope], :sim[alt], :sig[ns] and :sil[ent]. + * - the "d" command can directly be followed by 'l' or 'p' flag. + */ +--- 3112,3118 ---- + * Exceptions: + * - the 'k' command can directly be followed by any character. + * - the 's' command can be followed directly by 'c', 'g', 'i', 'I' or 'r' +! * but :sre[wind] is another command, as are :scr[iptnames], + * :scs[cope], :sim[alt], :sig[ns] and :sil[ent]. + * - the "d" command can directly be followed by 'l' or 'p' flag. + */ +*************** +*** 4573,4618 **** + lnum -= n; + else + lnum += n; +- +- switch (addr_type) +- { +- case ADDR_LINES: +- break; +- case ADDR_ARGUMENTS: +- if (lnum < 0) +- lnum = 0; +- else if (lnum >= ARGCOUNT) +- lnum = ARGCOUNT; +- break; +- case ADDR_TABS: +- if (lnum < 0) +- { +- lnum = 0; +- break; +- } +- if (lnum >= LAST_TAB_NR) +- lnum = LAST_TAB_NR; +- break; +- case ADDR_WINDOWS: +- if (lnum < 0) +- { +- lnum = 0; +- break; +- } +- if (lnum >= LAST_WIN_NR) +- lnum = LAST_WIN_NR; +- break; +- case ADDR_LOADED_BUFFERS: +- case ADDR_BUFFERS: +- if (lnum < firstbuf->b_fnum) +- { +- lnum = firstbuf->b_fnum; +- break; +- } +- if (lnum > lastbuf->b_fnum) +- lnum = lastbuf->b_fnum; +- break; +- } + } + } while (*cmd == '/' || *cmd == '?'); + +--- 4575,4580 ---- +*************** +*** 4675,4691 **** + invalid_range(eap) + exarg_T *eap; + { + if ( eap->line1 < 0 + || eap->line2 < 0 +! || eap->line1 > eap->line2 +! || ((eap->argt & RANGE) +! && !(eap->argt & NOTADR) +! && eap->line2 > curbuf->b_ml.ml_line_count + #ifdef FEAT_DIFF +! + (eap->cmdidx == CMD_diffget) + #endif +! )) +! return (char_u *)_(e_invrange); + return NULL; + } + +--- 4637,4701 ---- + invalid_range(eap) + exarg_T *eap; + { ++ buf_T *buf; + if ( eap->line1 < 0 + || eap->line2 < 0 +! || eap->line1 > eap->line2) +! return (char_u *)_(e_invrange); +! +! if (eap->argt & RANGE) +! { +! switch(eap->addr_type) +! { +! case ADDR_LINES: +! if (!(eap->argt & NOTADR) +! && eap->line2 > curbuf->b_ml.ml_line_count + #ifdef FEAT_DIFF +! + (eap->cmdidx == CMD_diffget) + #endif +! ) +! 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: +! if (eap->line1 < firstbuf->b_fnum +! || eap->line2 > lastbuf->b_fnum) +! return (char_u *)_(e_invrange); +! break; +! case ADDR_LOADED_BUFFERS: +! buf = firstbuf; +! while (buf->b_ml.ml_mfp == NULL) +! { +! if (buf->b_next == NULL) +! return (char_u *)_(e_invrange); +! buf = buf->b_next; +! } +! if (eap->line1 < buf->b_fnum) +! return (char_u *)_(e_invrange); +! buf = lastbuf; +! while (buf->b_ml.ml_mfp == NULL) +! { +! if (buf->b_prev == NULL) +! return (char_u *)_(e_invrange); +! buf = buf->b_prev; +! } +! if (eap->line2 > buf->b_fnum) +! return (char_u *)_(e_invrange); +! break; +! case ADDR_WINDOWS: +! if (eap->line1 < 1 +! || eap->line2 > LAST_WIN_NR) +! return (char_u *)_(e_invrange); +! break; +! case ADDR_TABS: +! if (eap->line2 > LAST_TAB_NR) +! return (char_u *)_(e_invrange); +! break; +! } +! } + return NULL; + } + +*** ../vim-7.4.564/src/ex_cmds.h 2014-12-17 14:36:10.363090985 +0100 +--- src/ex_cmds.h 2015-01-07 15:47:15.336518550 +0100 +*************** +*** 1574,1580 **** + ADDR_LINES), + EX(CMD_wincmd, "wincmd", ex_wincmd, + NEEDARG|WORD1|RANGE|NOTADR, +! ADDR_LINES), + EX(CMD_windo, "windo", ex_listdo, + BANG|NEEDARG|EXTRA|NOTRLCOM, + ADDR_LINES), +--- 1574,1580 ---- + ADDR_LINES), + EX(CMD_wincmd, "wincmd", ex_wincmd, + NEEDARG|WORD1|RANGE|NOTADR, +! ADDR_WINDOWS), + EX(CMD_windo, "windo", ex_listdo, + BANG|NEEDARG|EXTRA|NOTRLCOM, + ADDR_LINES), +*** ../vim-7.4.564/src/testdir/test62.in 2014-04-29 11:55:26.172053624 +0200 +--- src/testdir/test62.in 2015-01-07 15:33:21.950217606 +0100 +*************** +*** 13,19 **** + :" Open three tab pages and use ":tabdo" + :0tabnew + :1tabnew +! :888tabnew + :tabdo call append(line('$'), 'this is tab page ' . tabpagenr()) + :tabclose! 2 + :tabrewind +--- 13,19 ---- + :" Open three tab pages and use ":tabdo" + :0tabnew + :1tabnew +! :$tabnew + :tabdo call append(line('$'), 'this is tab page ' . tabpagenr()) + :tabclose! 2 + :tabrewind +*** ../vim-7.4.564/src/testdir/test_argument_count.in 2014-11-27 18:32:58.532564506 +0100 +--- src/testdir/test_argument_count.in 2015-01-07 15:33:21.950217606 +0100 +*************** +*** 27,36 **** + :1arga c + :1arga b + :$argu +- :+arga d + :$arga x + :call add(arglists, argv()) +! :$-10arga Y + :call add(arglists, argv()) + :%argd + :call add(arglists, argv()) +--- 27,35 ---- + :1arga c + :1arga b + :$argu + :$arga x + :call add(arglists, argv()) +! :0arga Y + :call add(arglists, argv()) + :%argd + :call add(arglists, argv()) +*** ../vim-7.4.564/src/testdir/test_argument_count.ok 2014-11-27 16:22:42.746412995 +0100 +--- src/testdir/test_argument_count.ok 2015-01-07 15:33:21.950217606 +0100 +*************** +*** 7,13 **** + a b d + a d + a +! a b c d x +! Y a b c d x + + a f +--- 7,13 ---- + a b d + a d + a +! a b c x +! Y a b c x + + a f +*** ../vim-7.4.564/src/testdir/test_close_count.in 2014-12-17 14:42:42.990240206 +0100 +--- src/testdir/test_close_count.in 2015-01-07 15:33:21.950217606 +0100 +*************** +*** 28,34 **** + :new + :new + :2wincmd w +! :-2close! + :let buffers = [] + :windo call add(buffers, bufnr('%')) + :call add(tests, buffers) +--- 28,34 ---- + :new + :new + :2wincmd w +! :-1close! + :let buffers = [] + :windo call add(buffers, bufnr('%')) + :call add(tests, buffers) +*************** +*** 61,67 **** + :let buffers = [] + :windo call add(buffers, bufnr('%')) + :call add(tests, buffers) +! :9hide + :let buffers = [] + :windo call add(buffers, bufnr('%')) + :call add(tests, buffers) +--- 61,67 ---- + :let buffers = [] + :windo call add(buffers, bufnr('%')) + :call add(tests, buffers) +! :$hide + :let buffers = [] + :windo call add(buffers, bufnr('%')) + :call add(tests, buffers) +*** ../vim-7.4.564/src/testdir/test_command_count.in 2015-01-07 13:15:40.609829496 +0100 +--- src/testdir/test_command_count.in 2015-01-07 15:49:24.343016552 +0100 +*************** +*** 1,8 **** + Test for user command counts vim: set ft=vim : + + STARTTEST +- :let g:lines = [] + :so tiny.vim + :com -range=% RangeLines :call add(g:lines, 'RangeLines '..' '.) + :com -range -addr=arguments RangeArguments :call add(g:lines, 'RangeArguments '..' '.) + :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '..' '.) +--- 1,8 ---- + 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 '..' '.) + :com -range=% -addr=arguments RangeArgumentsAll :call add(g:lines, 'RangeArgumentsAll '..' '.) +*************** +*** 48,53 **** +--- 48,93 ---- + :'<,'>RangeLines + :com -range=% -buffer LocalRangeLines :call add(g:lines, 'LocalRangeLines '..' '.) + :'<,'>LocalRangeLines ++ :b1 ++ ENDTEST ++ ++ STARTTEST ++ :call add(g:lines, '') ++ :%argd ++ :arga a b c d ++ :let v:errmsg = '' ++ :5argu ++ :call add(g:lines, '5argu ' . v:errmsg) ++ :$argu ++ :call add(g:lines, '4argu ' . expand('%:t')) ++ :let v:errmsg = '' ++ :1argu ++ :call add(g:lines, '1argu ' . expand('%:t')) ++ :let v:errmsg = '' ++ :100b ++ :call add(g:lines, '100b ' . v:errmsg) ++ :split|split|split|split ++ :let v:errmsg = '' ++ :0close ++ :call add(g:lines, '0close ' . v:errmsg) ++ :$wincmd w ++ :$close ++ :call add(g:lines, '$close ' . winnr()) ++ :let v:errmsg = '' ++ :$+close ++ :call add(g:lines, '$+close ' . v:errmsg) ++ :$tabe ++ :call add(g:lines, '$tabe ' . tabpagenr()) ++ :let v:errmsg = '' ++ :$+tabe ++ :call add(g:lines, '$+tabe ' . v:errmsg) ++ :only! ++ :e x ++ :0tabm ++ :normal 1gt ++ :call add(g:lines, '0tabm ' . expand('%:t')) ++ :tabonly! ++ :only! + :e! test.out + :call append(0, g:lines) + :w|qa! +*** ../vim-7.4.564/src/testdir/test_command_count.ok 2015-01-07 13:15:40.609829496 +0100 +--- src/testdir/test_command_count.ok 2015-01-07 15:49:19.223076159 +0100 +*************** +*** 17,19 **** +--- 17,30 ---- + RangeLines 2 5 + LocalRangeLines 2 5 + ++ 5argu E16: Invalid range ++ 4argu d ++ 1argu a ++ 100b E16: Invalid range ++ 0close E16: Invalid range ++ $close 4 ++ $+close E16: Invalid range ++ $tabe 2 ++ $+tabe E16: Invalid range ++ 0tabm x ++ +*** ../vim-7.4.564/src/version.c 2015-01-07 14:43:35.728900384 +0100 +--- src/version.c 2015-01-07 15:32:05.899101868 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 565, + /**/ + +-- +"I simultaneously try to keep my head in the clouds and my feet on the +ground. Sometimes it's a stretch, though." -- Larry Wall + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 276895a87fcdaafa91d52f78419422fa1d645b61 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:13 +0100 Subject: [PATCH 0190/1616] - patchlevel 566 --- 7.4.566 | 612 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 612 insertions(+) create mode 100644 7.4.566 diff --git a/7.4.566 b/7.4.566 new file mode 100644 index 00000000..96bb68ec --- /dev/null +++ b/7.4.566 @@ -0,0 +1,612 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.566 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.566 +Problem: :argdo, :bufdo, :windo and :tabdo don't take a range. +Solution: Support the range. (Marcin Szamotulski) +Files: runtime/doc/editing.txt, runtime/doc/tabpage.txt, + runtime/doc/windows.txt, src/ex_cmds.h, src/ex_cmds2.c, + src/testdir/test_command_count.in, + src/testdir/test_command_count.ok + + +*** ../vim-7.4.565/runtime/doc/editing.txt 2014-11-27 16:22:42.734413130 +0100 +--- runtime/doc/editing.txt 2015-01-07 16:09:20.501100753 +0100 +*************** +*** 38,43 **** +--- 38,44 ---- + file name. It can be used with "#" on the command line |:_#| and you can use + the |CTRL-^| command to toggle between the current and the alternate file. + However, the alternate file name is not changed when |:keepalt| is used. ++ An alternate file name is remembered for each window. + + *:keepalt* *:keepa* + :keepalt {cmd} Execute {cmd} while keeping the current alternate file +*************** +*** 610,616 **** + :[count]arga[dd] {name} .. *:arga* *:argadd* *E479* + :[count]arga[dd] + Add the {name}s to the argument list. When {name} is +! omitted at the current buffer name to the argument + list. + If [count] is omitted, the {name}s are added just + after the current entry in the argument list. +--- 611,617 ---- + :[count]arga[dd] {name} .. *:arga* *:argadd* *E479* + :[count]arga[dd] + Add the {name}s to the argument list. When {name} is +! omitted add the current buffer name to the argument + list. + If [count] is omitted, the {name}s are added just + after the current entry in the argument list. +*************** +*** 831,838 **** + USING THE ARGUMENT LIST + + *:argdo* +! :argdo[!] {cmd} Execute {cmd} for each file in the argument list. +! It works like doing this: > + :rewind + :{cmd} + :next +--- 832,840 ---- + USING THE ARGUMENT LIST + + *:argdo* +! :[range]argdo[!] {cmd} Execute {cmd} for each file in the argument list or +! if [range] is specified only for arguments in that +! range. It works like doing this: > + :rewind + :{cmd} + :next +*************** +*** 1090,1096 **** + + :q[uit]! Quit without writing, also when currently visible + buffers have changes. Does not exit when this is the +! last window and there are is a changed hidden buffer. + In this case, the first changed hidden buffer becomes + the current buffer. + Use ":qall!" to exit always. +--- 1092,1098 ---- + + :q[uit]! Quit without writing, also when currently visible + buffers have changes. Does not exit when this is the +! last window and there is a changed hidden buffer. + In this case, the first changed hidden buffer becomes + the current buffer. + Use ":qall!" to exit always. +*************** +*** 1390,1396 **** + You could do this to edit very secret text: > + :set noundofile viminfo= + :noswapfile edit secrets.txt +! Keep in mind that without a swap file you risk loosing your work in a crash. + + WARNING: If you make a typo when entering the key and then write the file and + exit, the text will be lost! +--- 1392,1398 ---- + You could do this to edit very secret text: > + :set noundofile viminfo= + :noswapfile edit secrets.txt +! Keep in mind that without a swap file you risk losing your work in a crash. + + WARNING: If you make a typo when entering the key and then write the file and + exit, the text will be lost! +*************** +*** 1426,1438 **** + set automatically to the method used when that file was written. You can + change 'cryptmethod' before writing that file to change the method. + +! To set the default method, used for new files, use one of these in your +! |vimrc| file: > +! set cm=zip + set cm=blowfish2 +! Use the first one if you need to be compatible with Vim 7.2 and older. Using +! "blowfish2" is highly recommended if you can use a Vim version that supports +! it. + + The message given for reading and writing a file will show "[crypted]" when + using zip, "[blowfish]" when using blowfish, etc. +--- 1428,1438 ---- + set automatically to the method used when that file was written. You can + change 'cryptmethod' before writing that file to change the method. + +! To set the default method, used for new files, use this in your |vimrc| +! file: > + set cm=blowfish2 +! Using "blowfish2" is highly recommended. Only use another method if you +! must use an older Vim version that does not support it. + + The message given for reading and writing a file will show "[crypted]" when + using zip, "[blowfish]" when using blowfish, etc. +*************** +*** 1494,1501 **** + - Pkzip uses the same encryption as 'cryptmethod' "zip", and US Govt has no + objection to its export. Pkzip's public file APPNOTE.TXT describes this + algorithm in detail. +! - The implmentation of 'cryptmethod' "blowfish" has a flaw. It is possible to +! crack the first 64 bytes of a file and in some circumstances more of the + file. Use of it is not recommended, but it's still the strongest method + supported by Vim 7.3 and 7.4. The "zip" method is even weaker. + - Vim originates from the Netherlands. That is where the sources come from. +--- 1494,1501 ---- + - Pkzip uses the same encryption as 'cryptmethod' "zip", and US Govt has no + objection to its export. Pkzip's public file APPNOTE.TXT describes this + algorithm in detail. +! - The implementation of 'cryptmethod' "blowfish" has a flaw. It is possible +! to crack the first 64 bytes of a file and in some circumstances more of the + file. Use of it is not recommended, but it's still the strongest method + supported by Vim 7.3 and 7.4. The "zip" method is even weaker. + - Vim originates from the Netherlands. That is where the sources come from. +*** ../vim-7.4.565/runtime/doc/tabpage.txt 2014-11-27 16:22:42.738413084 +0100 +--- runtime/doc/tabpage.txt 2015-01-07 16:09:20.501100753 +0100 +*************** +*** 206,212 **** + :tabmove " move the tab page to the right + :.tabmove " as above + :+tabmove " as above +! :0tabmove " move the tab page to the begining of the tab + " list + :$tabmove " move the tab page to the end of the tab list + < +--- 206,212 ---- + :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 + < +*************** +*** 224,231 **** + LOOPING OVER TAB PAGES: + + *:tabd* *:tabdo* +! :tabd[o] {cmd} Execute {cmd} in each tab page. +! It works like doing this: > + :tabfirst + :{cmd} + :tabnext +--- 224,233 ---- + LOOPING OVER TAB PAGES: + + *:tabd* *:tabdo* +! :[range]tabd[o] {cmd} +! Execute {cmd} in each tab page or if [range] is given only in +! tab pages which tab page number is in the [range]. It works +! like doing this: > + :tabfirst + :{cmd} + :tabnext +*************** +*** 271,278 **** + triggers: + WinLeave leave current window + TabLeave leave current tab page +- TabEnter enter new tab page + WinEnter enter window in new tab page + BufLeave leave current buffer + BufEnter enter new empty buffer + +--- 273,280 ---- + triggers: + WinLeave leave current window + TabLeave leave current tab page + WinEnter enter window in new tab page ++ TabEnter enter new tab page + BufLeave leave current buffer + BufEnter enter new empty buffer + +*** ../vim-7.4.565/runtime/doc/windows.txt 2014-11-30 14:50:12.255356230 +0100 +--- runtime/doc/windows.txt 2015-01-07 16:09:20.501100753 +0100 +*************** +*** 278,293 **** + and there is only one window for the current buffer, and the + buffer was changed, the command fails. + +! (Note: CTRL-Q does not +! work on all terminals). If [count] is greater than +! the last window number the last window will be closed: > + :1quit " quit the first window + :$quit " quit the last window + :9quit " quit the last window + " if there are less than 9 windows opened + :-quit " quit the previews window + :+quit " quit the next window +! :+2quit " will also work as expected + < + :q[uit]! + :{count}q[uit]! +--- 278,294 ---- + and there is only one window for the current buffer, and the + buffer was changed, the command fails. + +! (Note: CTRL-Q does not work on all terminals). +! +! If [count] is greater than the last window number the last +! window will be closed: > + :1quit " quit the first window + :$quit " quit the last window + :9quit " quit the last window + " if there are less than 9 windows opened + :-quit " quit the previews window + :+quit " quit the next window +! :+2quit " quit the second next window + < + :q[uit]! + :{count}q[uit]! +*************** +*** 332,340 **** + screen. For {count} see |:quit| command. + + The buffer becomes hidden (unless there is another window +! editing it or 'bufhidden' is "unload" or "delete"). If the +! window is the last one in the current tab page the tab page is +! closed. |tab-page| + + The value of 'hidden' is irrelevant for this command. Changes + to the buffer are not written and won't get lost, so this is a +--- 333,341 ---- + screen. For {count} see |:quit| command. + + The buffer becomes hidden (unless there is another window +! editing it or 'bufhidden' is "unload", "delete" or "wipe"). +! If the window is the last one in the current tab page the tab +! page is closed. |tab-page| + + The value of 'hidden' is irrelevant for this command. Changes + to the buffer are not written and won't get lost, so this is a +*************** +*** 697,704 **** + 8. Do a command in all buffers or windows *list-repeat* + + *:windo* +! :windo {cmd} Execute {cmd} in each window. +! It works like doing this: > + CTRL-W t + :{cmd} + CTRL-W w +--- 698,706 ---- + 8. Do a command in all buffers or windows *list-repeat* + + *:windo* +! :[range]windo {cmd} Execute {cmd} in each window or if [range] is given +! only in windows for which the window number lies in +! the [range]. It works like doing this: > + CTRL-W t + :{cmd} + CTRL-W w +*************** +*** 716,723 **** + Also see |:tabdo|, |:argdo| and |:bufdo|. + + *:bufdo* +! :bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list. +! It works like doing this: > + :bfirst + :{cmd} + :bnext +--- 718,727 ---- + Also see |:tabdo|, |:argdo| and |:bufdo|. + + *:bufdo* +! :[range]bufdo[!] {cmd} Execute {cmd} in each buffer in the buffer list or if +! [range] is given only for buffers for which their +! buffer numer is in the [range]. It works like doing +! this: > + :bfirst + :{cmd} + :bnext +*************** +*** 763,780 **** + + CTRL-W ] *CTRL-W_]* *CTRL-W_CTRL-]* + CTRL-W CTRL-] Split current window in two. Use identifier under cursor as a +! tag and jump to it in the new upper window. Make new window N +! high. + + *CTRL-W_g]* + CTRL-W g ] Split current window in two. Use identifier under cursor as a + tag and perform ":tselect" on it in the new upper window. + Make new window N high. + + *CTRL-W_g_CTRL-]* + CTRL-W g CTRL-] Split current window in two. Use identifier under cursor as a +! tag and perform ":tjump" on it in the new upper window. Make +! new window N high. + + CTRL-W f *CTRL-W_f* *CTRL-W_CTRL-F* + CTRL-W CTRL-F Split current window in two. Edit file name under cursor. +--- 767,787 ---- + + CTRL-W ] *CTRL-W_]* *CTRL-W_CTRL-]* + CTRL-W CTRL-] Split current window in two. Use identifier under cursor as a +! tag and jump to it in the new upper window. +! In Visual mode uses the Visually selected text as a tag. +! Make new window N high. + + *CTRL-W_g]* + CTRL-W g ] Split current window in two. Use identifier under cursor as a + tag and perform ":tselect" on it in the new upper window. ++ In Visual mode uses the Visually selected text as a tag. + Make new window N high. + + *CTRL-W_g_CTRL-]* + CTRL-W g CTRL-] Split current window in two. Use identifier under cursor as a +! tag and perform ":tjump" on it in the new upper window. +! In Visual mode uses the Visually selected text as a tag. +! Make new window N high. + + CTRL-W f *CTRL-W_f* *CTRL-W_CTRL-F* + CTRL-W CTRL-F Split current window in two. Edit file name under cursor. +*** ../vim-7.4.565/src/ex_cmds.h 2015-01-07 15:57:13.145559792 +0100 +--- src/ex_cmds.h 2015-01-07 16:13:24.406265045 +0100 +*************** +*** 133,140 **** + BANG|RANGE|NOTADR|FILES|TRLBAR, + ADDR_ARGUMENTS), + EX(CMD_argdo, "argdo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_argedit, "argedit", ex_argedit, + BANG|NEEDARG|RANGE|NOTADR|FILE1|EDITCMD|ARGOPT|TRLBAR, + ADDR_ARGUMENTS), +--- 133,140 ---- + BANG|RANGE|NOTADR|FILES|TRLBAR, + ADDR_ARGUMENTS), + EX(CMD_argdo, "argdo", ex_listdo, +! 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), +*************** +*** 220,227 **** + BANG|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_bufdo, "bufdo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_bunload, "bunload", ex_bunload, + BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR, + ADDR_LOADED_BUFFERS), +--- 220,227 ---- + BANG|TRLBAR|CMDWIN, + ADDR_LINES), + EX(CMD_bufdo, "bufdo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, +! ADDR_BUFFERS), + EX(CMD_bunload, "bunload", ex_bunload, + BANG|RANGE|NOTADR|BUFNAME|COUNT|EXTRA|TRLBAR, + ADDR_LOADED_BUFFERS), +*************** +*** 1384,1391 **** + RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN, + ADDR_TABS), + EX(CMD_tabdo, "tabdo", ex_listdo, +! NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_tabedit, "tabedit", ex_splitview, + BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR, + ADDR_TABS), +--- 1384,1391 ---- + RANGE|NOTADR|COUNT|BANG|TRLBAR|CMDWIN, + ADDR_TABS), + EX(CMD_tabdo, "tabdo", ex_listdo, +! NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, +! ADDR_TABS), + EX(CMD_tabedit, "tabedit", ex_splitview, + BANG|FILE1|RANGE|NOTADR|ZEROR|EDITCMD|ARGOPT|TRLBAR, + ADDR_TABS), +*************** +*** 1576,1583 **** + NEEDARG|WORD1|RANGE|NOTADR, + ADDR_WINDOWS), + EX(CMD_windo, "windo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM, +! ADDR_LINES), + EX(CMD_winpos, "winpos", ex_winpos, + EXTRA|TRLBAR|CMDWIN, + ADDR_LINES), +--- 1576,1583 ---- + NEEDARG|WORD1|RANGE|NOTADR, + ADDR_WINDOWS), + EX(CMD_windo, "windo", ex_listdo, +! BANG|NEEDARG|EXTRA|NOTRLCOM|RANGE|NOTADR|DFLALL, +! ADDR_WINDOWS), + EX(CMD_winpos, "winpos", ex_winpos, + EXTRA|TRLBAR|CMDWIN, + ADDR_LINES), +*** ../vim-7.4.565/src/ex_cmds2.c 2014-11-19 16:38:01.512679964 +0100 +--- src/ex_cmds2.c 2015-01-07 16:12:42.526751920 +0100 +*************** +*** 2472,2486 **** + | (eap->forceit ? CCGD_FORCEIT : 0) + | CCGD_EXCMD)) + { +- /* start at the first argument/window/buffer */ + i = 0; + #ifdef FEAT_WINDOWS + wp = firstwin; + tp = first_tabpage; + #endif + /* set pcmark now */ + if (eap->cmdidx == CMD_bufdo) +! goto_buffer(eap, DOBUF_FIRST, FORWARD, 0); + else + setpcmark(); + listcmd_busy = TRUE; /* avoids setting pcmark below */ +--- 2472,2507 ---- + | (eap->forceit ? CCGD_FORCEIT : 0) + | CCGD_EXCMD)) + { + i = 0; ++ /* start at the eap->line1 argument/window/buffer */ + #ifdef FEAT_WINDOWS + wp = firstwin; + tp = first_tabpage; + #endif ++ switch (eap->cmdidx) ++ { ++ #ifdef FEAT_WINDOWS ++ case CMD_windo: ++ for ( ; wp != NULL && i + 1 < eap->line1; wp = wp->w_next) ++ i++; ++ break; ++ case CMD_tabdo: ++ for( ; tp != NULL && i + 1 < eap->line1; tp = tp->tp_next) ++ i++; ++ break; ++ #endif ++ 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 */ +*************** +*** 2506,2512 **** + } + if (curwin->w_arg_idx != i) + break; +- ++i; + } + #ifdef FEAT_WINDOWS + else if (eap->cmdidx == CMD_windo) +--- 2527,2532 ---- +*************** +*** 2541,2546 **** +--- 2561,2568 ---- + } + } + ++ ++i; ++ + /* execute the command */ + do_cmdline(eap->arg, eap->getline, eap->cookie, + DOCMD_VERBOSE + DOCMD_NOWAIT); +*************** +*** 2548,2554 **** + if (eap->cmdidx == CMD_bufdo) + { + /* Done? */ +! if (next_fnum < 0) + break; + /* Check if the buffer still exists. */ + for (buf = firstbuf; buf != NULL; buf = buf->b_next) +--- 2570,2576 ---- + if (eap->cmdidx == CMD_bufdo) + { + /* Done? */ +! if (next_fnum < 0 || next_fnum > eap->line2) + break; + /* Check if the buffer still exists. */ + for (buf = firstbuf; buf != NULL; buf = buf->b_next) +*************** +*** 2579,2584 **** +--- 2601,2614 ---- + do_check_scrollbind(TRUE); + #endif + } ++ ++ #ifdef FEAT_WINDOWS ++ if (eap->cmdidx == CMD_windo || eap->cmdidx == CMD_tabdo) ++ if (i+1 > eap->line2) ++ break; ++ #endif ++ if (eap->cmdidx == CMD_argdo && i >= eap->line2) ++ break; + } + listcmd_busy = FALSE; + } +*** ../vim-7.4.565/src/testdir/test_command_count.in 2015-01-07 15:57:13.145559792 +0100 +--- src/testdir/test_command_count.in 2015-01-07 16:19:57.217698877 +0100 +*************** +*** 90,95 **** +--- 90,129 ---- + :only! + :e! test.out + :call append(0, g:lines) ++ :unlet g:lines ++ :w|bd ++ :se hidden ++ :b1 ++ ENDTEST ++ ++ STARTTEST ++ :only! ++ :let g:lines = [] ++ :%argd ++ :arga a b c d e f ++ :3argu ++ :let args = '' ++ :.,$-argdo let args .= ' '.expand('%') ++ :call add(g:lines, 'argdo:' . args) ++ :split|split|split|split ++ :2wincmd w ++ :let windows = '' ++ :.,$-windo let windows .= ' '.winnr() ++ :call add(g:lines, 'windo:'. windows) ++ :b2 ++ :let buffers = '' ++ :.,$-bufdo let buffers .= ' '.bufnr('%') ++ :call add(g:lines, 'bufdo:' . buffers) ++ :let buffers = '' ++ :3,7bufdo let buffers .= ' '.bufnr('%') ++ :call add(g:lines, 'bufdo:' . buffers) ++ :tabe|tabe|tabe|tabe ++ :normal! 2gt ++ :let tabpages = '' ++ :.,$-tabdo let tabpages .= ' '.tabpagenr() ++ :call add(g:lines, 'tabdo:' . tabpages) ++ :e! test.out ++ :call append('$', g:lines) + :w|qa! + ENDTEST + +*** ../vim-7.4.565/src/testdir/test_command_count.ok 2015-01-07 15:57:13.145559792 +0100 +--- src/testdir/test_command_count.ok 2015-01-07 16:19:51.805761782 +0100 +*************** +*** 28,30 **** +--- 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 +*** ../vim-7.4.565/src/version.c 2015-01-07 15:57:13.149559746 +0100 +--- src/version.c 2015-01-07 16:50:24.620511525 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 566, + /**/ + +-- +ERROR 047: Keyboard not found. Press RETURN 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 /// From 96bc9ac9935698b23df36c3ee9cf77c73b9f5a84 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 7 Jan 2015 18:00:14 +0100 Subject: [PATCH 0191/1616] - patchlevel 566 --- README.patches | 6 ++++++ vim.spec | 17 ++++++++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 30fc1d41..04ea4a9b 100644 --- a/README.patches +++ b/README.patches @@ -582,3 +582,9 @@ Individual patches for Vim 7.4: 1690 7.4.558 when the X server restarts Vim may get stuck 3549 7.4.559 block append inside tab is wrong when virtualedit is set 5331 7.4.560 memory leak using :wviminfo; Issue 296 + 3743 7.4.561 Ex range handling is wrong for buffer-local user commands + 2165 7.4.562 segfault with wide screen and error in 'rulerformat' + 2129 7.4.563 no test for replacing on a tab in Virtual replace mode + 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 diff --git a/vim.spec b/vim.spec index 8c03ae2e..58495570 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 560 +%define patchlevel 566 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -607,6 +607,12 @@ Patch557: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.557 Patch558: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.558 Patch559: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.559 Patch560: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.560 +Patch561: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.561 +Patch562: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.562 +Patch563: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.563 +Patch564: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.564 +Patch565: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.565 +Patch566: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.566 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1314,6 +1320,12 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch558 -p0 %patch559 -p0 %patch560 -p0 +%patch561 -p0 +%patch562 -p0 +%patch563 -p0 +%patch564 -p0 +%patch565 -p0 +%patch566 -p0 # install spell files %if %{withvimspell} @@ -1831,6 +1843,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jan 07 2015 Karsten Hopp 7.4.566-1 +- patchlevel 566 + * Thu Dec 18 2014 Karsten Hopp 7.4.560-1 - patchlevel 560 From 1cbd39b47dd0d0a428102f0729f5d244e2587677 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 8 Jan 2015 18:00:14 +0100 Subject: [PATCH 0192/1616] - patchlevel 567 --- 7.4.567 | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 7.4.567 diff --git a/7.4.567 b/7.4.567 new file mode 100644 index 00000000..20024b1c --- /dev/null +++ b/7.4.567 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.567 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.567 +Problem: Non-ascii vertical separater characters are always redrawn. +Solution: Compare only the one byte that's stored. (Thiago Padilha) +Files: src/screen.c + + +*** ../vim-7.4.566/src/screen.c 2015-01-07 13:31:48.890661692 +0100 +--- src/screen.c 2015-01-07 18:44:50.021472601 +0100 +*************** +*** 6062,6068 **** + int c; + + c = fillchar_vsep(&hl); +! if (ScreenLines[off_to] != c + # ifdef FEAT_MBYTE + || (enc_utf8 && (int)ScreenLinesUC[off_to] + != (c >= 0x80 ? c : 0)) +--- 6062,6068 ---- + int c; + + c = fillchar_vsep(&hl); +! if (ScreenLines[off_to] != (schar_T)c + # ifdef FEAT_MBYTE + || (enc_utf8 && (int)ScreenLinesUC[off_to] + != (c >= 0x80 ? c : 0)) +*** ../vim-7.4.566/src/version.c 2015-01-07 16:52:53.506792420 +0100 +--- src/version.c 2015-01-07 18:43:16.906545056 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 567, + /**/ + +-- +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 /// From 8649ecbed18c6d8a48c29d318b8fed11d3bb4f50 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 8 Jan 2015 18:00:15 +0100 Subject: [PATCH 0193/1616] - patchlevel 567 --- README.patches | 1 + vim.spec | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index 04ea4a9b..a87d99db 100644 --- a/README.patches +++ b/README.patches @@ -588,3 +588,4 @@ 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 diff --git a/vim.spec b/vim.spec index 58495570..3e7d067e 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 566 +%define patchlevel 567 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -613,6 +613,7 @@ Patch563: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.563 Patch564: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.564 Patch565: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.565 Patch566: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.566 +Patch567: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.567 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1326,6 +1327,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch564 -p0 %patch565 -p0 %patch566 -p0 +%patch567 -p0 # install spell files %if %{withvimspell} @@ -1843,6 +1845,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Jan 08 2015 Karsten Hopp 7.4.567-1 +- patchlevel 567 + * Wed Jan 07 2015 Karsten Hopp 7.4.566-1 - patchlevel 566 From c1c9e21d12aca7d3e16288a8f16ae8fcf4b9252c Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:22 +0100 Subject: [PATCH 0194/1616] - patchlevel 568 --- 7.4.568 | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 7.4.568 diff --git a/7.4.568 b/7.4.568 new file mode 100644 index 00000000..2be1b210 --- /dev/null +++ b/7.4.568 @@ -0,0 +1,73 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.568 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.568 +Problem: Giving an error for ":0wincmd w" is a problem for some plugins. +Solution: Allow the zero in the range. (Marcin Szamotulski) +Files: src/ex_docmd.c, src/testdir/test_command_count.ok + + +*** ../vim-7.4.567/src/ex_docmd.c 2015-01-07 15:57:13.145559792 +0100 +--- src/ex_docmd.c 2015-01-14 11:14:26.690308629 +0100 +*************** +*** 4686,4693 **** + return (char_u *)_(e_invrange); + break; + case ADDR_WINDOWS: +! if (eap->line1 < 1 +! || eap->line2 > LAST_WIN_NR) + return (char_u *)_(e_invrange); + break; + case ADDR_TABS: +--- 4686,4692 ---- + return (char_u *)_(e_invrange); + break; + case ADDR_WINDOWS: +! if (eap->line2 > LAST_WIN_NR) + return (char_u *)_(e_invrange); + break; + case ADDR_TABS: +*** ../vim-7.4.567/src/testdir/test_command_count.ok 2015-01-07 16:52:53.506792420 +0100 +--- src/testdir/test_command_count.ok 2015-01-14 11:22:19.405222287 +0100 +*************** +*** 21,28 **** + 4argu d + 1argu a + 100b E16: Invalid range +! 0close E16: Invalid range +! $close 4 + $+close E16: Invalid range + $tabe 2 + $+tabe E16: Invalid range +--- 21,28 ---- + 4argu d + 1argu a + 100b E16: Invalid range +! 0close +! $close 3 + $+close E16: Invalid range + $tabe 2 + $+tabe E16: Invalid range +*** ../vim-7.4.567/src/version.c 2015-01-07 19:04:25.299934570 +0100 +--- src/version.c 2015-01-14 11:15:38.117540026 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 568, + /**/ + +-- +ASCII stupid question, get a stupid ANSI. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From c7dc6811871a46e7dfbaf3fbeba91c3d8e8b3c63 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:23 +0100 Subject: [PATCH 0195/1616] - patchlevel 569 --- 7.4.569 | 165 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) create mode 100644 7.4.569 diff --git a/7.4.569 b/7.4.569 new file mode 100644 index 00000000..ebfb6a3f --- /dev/null +++ b/7.4.569 @@ -0,0 +1,165 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.569 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.569 (after 7.4.468) +Problem: Having CTRL-C interrupt or not does not check the mode of the + mapping. (Ingo Karkat) +Solution: Use a bitmask with the map mode. (Christian Brabandt) +Files: src/getchar.c, src/structs.h, src/testdir/test_mapping.in, + src/testdir/test_mapping.ok, src/ui.c, src/globals.h + + +*** ../vim-7.4.568/src/getchar.c 2014-12-14 00:43:50.335749455 +0100 +--- src/getchar.c 2015-01-14 12:13:13.136016098 +0100 +*************** +*** 3708,3715 **** + if (!did_it) + retval = 2; /* no match */ + else if (*keys == Ctrl_C) + /* If CTRL-C has been unmapped, reuse it for Interrupting. */ +! mapped_ctrl_c = FALSE; + goto theend; + } + +--- 3708,3720 ---- + if (!did_it) + retval = 2; /* no match */ + else if (*keys == Ctrl_C) ++ { + /* If CTRL-C has been unmapped, reuse it for Interrupting. */ +! if (map_table == curbuf->b_maphash) +! curbuf->b_mapped_ctrl_c &= ~mode; +! else +! mapped_ctrl_c &= ~mode; +! } + goto theend; + } + +*************** +*** 3744,3750 **** + + /* If CTRL-C has been mapped, don't always use it for Interrupting. */ + if (*keys == Ctrl_C) +! mapped_ctrl_c = TRUE; + + mp->m_keys = vim_strsave(keys); + mp->m_str = vim_strsave(rhs); +--- 3749,3760 ---- + + /* If CTRL-C has been mapped, don't always use it for Interrupting. */ + if (*keys == Ctrl_C) +! { +! if (map_table == curbuf->b_maphash) +! curbuf->b_mapped_ctrl_c |= mode; +! else +! mapped_ctrl_c |= mode; +! } + + mp->m_keys = vim_strsave(keys); + mp->m_str = vim_strsave(rhs); +*** ../vim-7.4.568/src/structs.h 2014-09-23 15:45:04.874801055 +0200 +--- src/structs.h 2015-01-14 12:15:33.582480344 +0100 +*************** +*** 1802,1807 **** +--- 1802,1808 ---- + cryptstate_T *b_cryptstate; /* Encryption state while reading or writing + * the file. NULL when not using encryption. */ + #endif ++ int b_mapped_ctrl_c; /* modes where CTRL-C is mapped */ + + }; /* file_buffer */ + +*** ../vim-7.4.568/src/testdir/test_mapping.in 2014-12-14 00:43:50.335749455 +0100 +--- src/testdir/test_mapping.in 2015-01-14 12:11:14.197316987 +0100 +*************** +*** 8,13 **** +--- 8,22 ---- + :inoreab Ñ‡ĐºĐ¿Ñ€ vim + GAÑ‡ĐºĐ¿Ñ€ +  ++ :" mapping of ctrl-c in insert mode ++ :set cpo-=< cpo-=k ++ :inoremap ++ :cnoremap dummy ++ :cunmap ++ GA ++ TEST2: CTRL-C |A| ++  ++ :nunmap + + : " langmap should not get remapped in insert mode + :inoremap { FAIL_ilangmap +*** ../vim-7.4.568/src/testdir/test_mapping.ok 2014-12-14 00:43:50.335749455 +0100 +--- src/testdir/test_mapping.ok 2015-01-14 12:11:14.197316987 +0100 +*************** +*** 1,4 **** +--- 1,6 ---- + test starts here: + vim ++ TEST2: CTRL-C |A| ++ + + + + +*** ../vim-7.4.568/src/ui.c 2014-09-19 13:46:49.550399801 +0200 +--- src/ui.c 2015-01-14 12:18:23.888618642 +0100 +*************** +*** 180,186 **** + + /* ... there is no need for CTRL-C to interrupt something, don't let + * it set got_int when it was mapped. */ +! if (mapped_ctrl_c) + ctrl_c_interrupts = FALSE; + } + +--- 180,186 ---- + + /* ... there is no need for CTRL-C to interrupt something, don't let + * it set got_int when it was mapped. */ +! if ((mapped_ctrl_c | curbuf->b_mapped_ctrl_c) & State) + ctrl_c_interrupts = FALSE; + } + +*** ../vim-7.4.568/src/globals.h 2014-08-10 13:34:59.056785459 +0200 +--- src/globals.h 2015-01-14 12:13:58.959514980 +0100 +*************** +*** 958,964 **** + #ifdef USE_ON_FLY_SCROLL + EXTERN int dont_scroll INIT(= FALSE);/* don't use scrollbars when TRUE */ + #endif +! EXTERN int mapped_ctrl_c INIT(= FALSE); /* CTRL-C is mapped */ + EXTERN int ctrl_c_interrupts INIT(= TRUE); /* CTRL-C sets got_int */ + + EXTERN cmdmod_T cmdmod; /* Ex command modifiers */ +--- 958,964 ---- + #ifdef USE_ON_FLY_SCROLL + EXTERN int dont_scroll INIT(= FALSE);/* don't use scrollbars when TRUE */ + #endif +! EXTERN int mapped_ctrl_c INIT(= FALSE); /* modes where CTRL-C is mapped */ + EXTERN int ctrl_c_interrupts INIT(= TRUE); /* CTRL-C sets got_int */ + + EXTERN cmdmod_T cmdmod; /* Ex command modifiers */ +*** ../vim-7.4.568/src/version.c 2015-01-14 11:24:51.851582151 +0100 +--- src/version.c 2015-01-14 12:12:04.728764264 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 569, + /**/ + +-- +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 1aebcfaa74e9306679a45a51d96873c241aba412 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:24 +0100 Subject: [PATCH 0196/1616] - patchlevel 570 --- 7.4.570 | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 7.4.570 diff --git a/7.4.570 b/7.4.570 new file mode 100644 index 00000000..8996c2b8 --- /dev/null +++ b/7.4.570 @@ -0,0 +1,139 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.570 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.570 +Problem: Building with dynamic library does not work for Ruby 2.2.0 +Solution: Change #ifdefs and #defines. (Ken Takata) +Files: src/if_ruby.c + + +*** ../vim-7.4.569/src/if_ruby.c 2014-11-27 17:44:05.376820913 +0100 +--- src/if_ruby.c 2015-01-14 14:02:59.680115042 +0100 +*************** +*** 96,106 **** + # 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 +--- 96,110 ---- + # 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 ++ #if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22 ++ # define rb_gc_writebarrier_unprotect rb_gc_writebarrier_unprotect_stub ++ # define rb_check_type rb_check_type_stub ++ #endif + + #include + #ifdef RUBY19_OR_LATER +*************** +*** 180,186 **** + */ + # define rb_assoc_new dll_rb_assoc_new + # define rb_cObject (*dll_rb_cObject) +! # define rb_check_type dll_rb_check_type + # define rb_class_path dll_rb_class_path + # define rb_data_object_alloc dll_rb_data_object_alloc + # define rb_define_class_under dll_rb_define_class_under +--- 184,192 ---- + */ + # define rb_assoc_new dll_rb_assoc_new + # define rb_cObject (*dll_rb_cObject) +! # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER < 22 +! # define rb_check_type dll_rb_check_type +! # endif + # define rb_class_path dll_rb_class_path + # define rb_data_object_alloc dll_rb_data_object_alloc + # define rb_define_class_under dll_rb_define_class_under +*************** +*** 382,388 **** +--- 388,398 ---- + # endif + + # if defined(USE_RGENGC) && USE_RGENGC ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21 + static void (*dll_rb_gc_writebarrier_unprotect_promoted)(VALUE); ++ # else ++ static void (*dll_rb_gc_writebarrier_unprotect)(VALUE obj); ++ # endif + # endif + + # if defined(RUBY19_OR_LATER) && !defined(PROTO) +*************** +*** 420,429 **** +--- 430,453 ---- + + /* Do not generate a prototype here, VALUE isn't always defined. */ + # if defined(USE_RGENGC) && USE_RGENGC && !defined(PROTO) ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21 + void rb_gc_writebarrier_unprotect_promoted_stub(VALUE obj) + { + dll_rb_gc_writebarrier_unprotect_promoted(obj); + } ++ # else ++ void rb_gc_writebarrier_unprotect_stub(VALUE obj) ++ { ++ dll_rb_gc_writebarrier_unprotect(obj); ++ } ++ # endif ++ # endif ++ ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER >= 22 ++ void rb_check_type_stub(VALUE v, int i) ++ { ++ dll_rb_check_type(v, i); ++ } + # endif + + static HINSTANCE hinstRuby = NULL; /* Instance of ruby.dll */ +*************** +*** 542,548 **** +--- 566,576 ---- + {"ruby_init_stack", (RUBY_PROC*)&dll_ruby_init_stack}, + # endif + # if defined(USE_RGENGC) && USE_RGENGC ++ # if defined(DYNAMIC_RUBY_VER) && DYNAMIC_RUBY_VER == 21 + {"rb_gc_writebarrier_unprotect_promoted", (RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect_promoted}, ++ # else ++ {"rb_gc_writebarrier_unprotect", (RUBY_PROC*)&dll_rb_gc_writebarrier_unprotect}, ++ # endif + # endif + {"", NULL}, + }; +*** ../vim-7.4.569/src/version.c 2015-01-14 12:44:38.407422077 +0100 +--- src/version.c 2015-01-14 14:02:53.868178396 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 570, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +89. In addition to your e-mail address being on your business + cards you even have your own domain. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From cb397d629f0dffc5f0ed0887e8c6ffe64d5bde80 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:25 +0100 Subject: [PATCH 0197/1616] - patchlevel 571 --- 7.4.571 | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 7.4.571 diff --git a/7.4.571 b/7.4.571 new file mode 100644 index 00000000..1b861163 --- /dev/null +++ b/7.4.571 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.571 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.571 (after 7.4.569) +Problem: Can't build with tiny features. (Ike Devolder) +Solution: Add #ifdef. +Files: src/getchar.c + + +*** ../vim-7.4.570/src/getchar.c 2015-01-14 12:44:38.403422124 +0100 +--- src/getchar.c 2015-01-14 14:06:14.457992406 +0100 +*************** +*** 3710,3718 **** +--- 3710,3720 ---- + else if (*keys == Ctrl_C) + { + /* If CTRL-C has been unmapped, reuse it for Interrupting. */ ++ #ifdef FEAT_LOCALMAP + if (map_table == curbuf->b_maphash) + curbuf->b_mapped_ctrl_c &= ~mode; + else ++ #endif + mapped_ctrl_c &= ~mode; + } + goto theend; +*************** +*** 3750,3758 **** +--- 3752,3762 ---- + /* If CTRL-C has been mapped, don't always use it for Interrupting. */ + if (*keys == Ctrl_C) + { ++ #ifdef FEAT_LOCALMAP + if (map_table == curbuf->b_maphash) + curbuf->b_mapped_ctrl_c |= mode; + else ++ #endif + mapped_ctrl_c |= mode; + } + +*** ../vim-7.4.570/src/version.c 2015-01-14 14:04:05.511397639 +0100 +--- src/version.c 2015-01-14 14:07:02.889464623 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 571, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +91. It's Saturday afternoon in the middle of May and you + are on computer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From d494690c6c7de96d52345294cbe45ea7df1486bd Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:25 +0100 Subject: [PATCH 0198/1616] - patchlevel 572 --- 7.4.572 | 257 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100644 7.4.572 diff --git a/7.4.572 b/7.4.572 new file mode 100644 index 00000000..54423b28 --- /dev/null +++ b/7.4.572 @@ -0,0 +1,257 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.572 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.572 +Problem: Address type of :wincmd depends on the argument. +Solution: Check the argument. +Files: src/ex_docmd.c, src/window.c, src/proto/window.pro + + +*** ../vim-7.4.571/src/ex_docmd.c 2015-01-14 11:24:51.851582151 +0100 +--- src/ex_docmd.c 2015-01-14 14:48:24.586468863 +0100 +*************** +*** 2130,2151 **** + * is equal to the lower. + */ + +- if (ea.cmdidx != CMD_SIZE +- #ifdef FEAT_USR_CMDS +- && ea.cmdidx != CMD_USER +- && ea.cmdidx != CMD_USER_BUF +- #endif +- ) +- ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; +- else +- #ifdef FEAT_USR_CMDS +- if (ea.cmdidx != CMD_USER && ea.cmdidx != CMD_USER_BUF) +- #endif +- ea.addr_type = ADDR_LINES; + /* ea.addr_type for user commands is set by find_ucmd */ +! ea.cmd = cmd; + + /* repeat for all ',' or ';' separated addresses */ + for (;;) + { + ea.line1 = ea.line2; +--- 2130,2152 ---- + * is equal to the lower. + */ + + /* ea.addr_type for user commands is set by find_ucmd */ +! if (!IS_USER_CMDIDX(ea.cmdidx)) +! { +! if (ea.cmdidx != CMD_SIZE) +! ea.addr_type = cmdnames[(int)ea.cmdidx].cmd_addr_type; +! else +! ea.addr_type = ADDR_LINES; +! +! #ifdef FEAT_WINDOWS +! /* :wincmd range depends on the argument. */ +! if (ea.cmdidx == CMD_wincmd) +! get_wincmd_addr_type(p, &ea); +! #endif +! } + + /* repeat for all ',' or ';' separated addresses */ ++ ea.cmd = cmd; + for (;;) + { + ea.line1 = ea.line2; +*************** +*** 2181,2187 **** + { + if (*ea.cmd == '%') /* '%' - all lines */ + { +- buf_T *buf; + ++ea.cmd; + switch (ea.addr_type) + { +--- 2182,2187 ---- +*************** +*** 2190,2204 **** + ea.line2 = curbuf->b_ml.ml_line_count; + break; + case ADDR_LOADED_BUFFERS: +! buf = firstbuf; +! while (buf->b_next != NULL && buf->b_ml.ml_mfp == NULL) +! buf = buf->b_next; +! ea.line1 = buf->b_fnum; +! buf = lastbuf; +! while (buf->b_prev != NULL && buf->b_ml.ml_mfp == NULL) +! buf = buf->b_prev; +! ea.line2 = buf->b_fnum; +! break; + case ADDR_BUFFERS: + ea.line1 = firstbuf->b_fnum; + ea.line2 = lastbuf->b_fnum; +--- 2190,2209 ---- + ea.line2 = curbuf->b_ml.ml_line_count; + break; + case ADDR_LOADED_BUFFERS: +! { +! buf_T *buf = firstbuf; +! +! while (buf->b_next != NULL +! && buf->b_ml.ml_mfp == NULL) +! buf = buf->b_next; +! ea.line1 = buf->b_fnum; +! buf = lastbuf; +! while (buf->b_prev != NULL +! && buf->b_ml.ml_mfp == NULL) +! buf = buf->b_prev; +! ea.line2 = buf->b_fnum; +! break; +! } + case ADDR_BUFFERS: + ea.line1 = firstbuf->b_fnum; + ea.line2 = lastbuf->b_fnum; +*** ../vim-7.4.571/src/window.c 2014-12-13 03:58:03.794672546 +0100 +--- src/window.c 2015-01-14 15:17:18.543647480 +0100 +*************** +*** 624,629 **** +--- 624,733 ---- + } + } + ++ /* ++ * Figure out the address type for ":wnncmd". ++ */ ++ void ++ get_wincmd_addr_type(arg, eap) ++ char_u *arg; ++ exarg_T *eap; ++ { ++ switch (*arg) ++ { ++ case 'S': ++ case Ctrl_S: ++ case 's': ++ case Ctrl_N: ++ case 'n': ++ case 'j': ++ case Ctrl_J: ++ case 'k': ++ case Ctrl_K: ++ case 'T': ++ case Ctrl_R: ++ case 'r': ++ case 'R': ++ case 'K': ++ case 'J': ++ case '+': ++ case '-': ++ case Ctrl__: ++ case '_': ++ case '|': ++ case ']': ++ case Ctrl_RSB: ++ case 'g': ++ case Ctrl_G: ++ #ifdef FEAT_VERTSPLIT ++ case Ctrl_V: ++ case 'v': ++ case 'h': ++ case Ctrl_H: ++ case 'l': ++ case Ctrl_L: ++ case 'H': ++ case 'L': ++ case '>': ++ case '<': ++ #endif ++ #if defined(FEAT_QUICKFIX) ++ case '}': ++ #endif ++ #ifdef FEAT_SEARCHPATH ++ case 'f': ++ case 'F': ++ case Ctrl_F: ++ #endif ++ #ifdef FEAT_FIND_ID ++ case 'i': ++ case Ctrl_I: ++ case 'd': ++ case Ctrl_D: ++ #endif ++ /* window size or any count */ ++ eap->addr_type = ADDR_LINES; ++ break; ++ ++ case Ctrl_HAT: ++ case '^': ++ /* buffer number */ ++ eap->addr_type = ADDR_BUFFERS; ++ break; ++ ++ case Ctrl_Q: ++ case 'q': ++ case Ctrl_C: ++ case 'c': ++ case Ctrl_O: ++ case 'o': ++ case Ctrl_W: ++ case 'w': ++ case 'W': ++ case 'x': ++ case Ctrl_X: ++ /* window number */ ++ eap->addr_type = ADDR_WINDOWS; ++ break; ++ ++ #if defined(FEAT_QUICKFIX) ++ case Ctrl_Z: ++ case 'z': ++ case 'P': ++ #endif ++ case 't': ++ case Ctrl_T: ++ case 'b': ++ case Ctrl_B: ++ case 'p': ++ case Ctrl_P: ++ case '=': ++ case CAR: ++ /* no count */ ++ eap->addr_type = 0; ++ break; ++ } ++ } ++ + static void + cmd_with_count(cmd, bufp, bufsize, Prenum) + char *cmd; +*** ../vim-7.4.571/src/proto/window.pro 2014-12-17 14:47:52.870412129 +0100 +--- src/proto/window.pro 2015-01-14 15:16:37.544092744 +0100 +*************** +*** 1,5 **** +--- 1,6 ---- + /* window.c */ + void do_window __ARGS((int nchar, long Prenum, int xchar)); ++ void get_wincmd_addr_type __ARGS((char_u *arg, exarg_T *eap)); + int win_split __ARGS((int size, int flags)); + int win_split_ins __ARGS((int size, int flags, win_T *new_wp, int dir)); + int win_valid __ARGS((win_T *win)); +*** ../vim-7.4.571/src/version.c 2015-01-14 14:08:40.364402377 +0100 +--- src/version.c 2015-01-14 15:46:36.136651958 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 572, + /**/ + +-- +From "know your smileys": + :^[/ mean-smiley-with-cigarette + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From dfe6befcfc52196bd464d5c0f3e6f7d0e87c2f2a Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:26 +0100 Subject: [PATCH 0199/1616] - patchlevel 573 --- 7.4.573 | 110 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 7.4.573 diff --git a/7.4.573 b/7.4.573 new file mode 100644 index 00000000..e87b21b4 --- /dev/null +++ b/7.4.573 @@ -0,0 +1,110 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.573 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.573 (after 7.4.569) +Problem: Mapping CTRL-C in Visual mode doesn't work. (Ingo Karkat) +Solution: Call get_real_state() instead of using State directly. +Files: src/ui.c, src/testdir/test_mapping.in, src/testdir/test_mapping.ok + + +*** ../vim-7.4.572/src/ui.c 2015-01-14 12:44:38.407422077 +0100 +--- src/ui.c 2015-01-14 16:06:09.283985531 +0100 +*************** +*** 180,186 **** + + /* ... there is no need for CTRL-C to interrupt something, don't let + * it set got_int when it was mapped. */ +! if ((mapped_ctrl_c | curbuf->b_mapped_ctrl_c) & State) + ctrl_c_interrupts = FALSE; + } + +--- 180,186 ---- + + /* ... there is no need for CTRL-C to interrupt something, don't let + * it set got_int when it was mapped. */ +! if ((mapped_ctrl_c | curbuf->b_mapped_ctrl_c) & get_real_state()) + ctrl_c_interrupts = FALSE; + } + +*** ../vim-7.4.572/src/testdir/test_mapping.in 2015-01-14 12:44:38.407422077 +0100 +--- src/testdir/test_mapping.in 2015-01-14 16:01:45.734831292 +0100 +*************** +*** 8,14 **** + :inoreab Ñ‡ĐºĐ¿Ñ€ vim + GAÑ‡ĐºĐ¿Ñ€ +  +! :" mapping of ctrl-c in insert mode + :set cpo-=< cpo-=k + :inoremap + :cnoremap dummy +--- 8,14 ---- + :inoreab Ñ‡ĐºĐ¿Ñ€ vim + GAÑ‡ĐºĐ¿Ñ€ +  +! :" mapping of ctrl-c in Insert mode + :set cpo-=< cpo-=k + :inoremap + :cnoremap dummy +*************** +*** 16,24 **** + GA + TEST2: CTRL-C |A| +  +! :nunmap +! +! : " langmap should not get remapped in insert mode + :inoremap { FAIL_ilangmap + :set langmap=+{ langnoremap + o+ +--- 16,30 ---- + GA + TEST2: CTRL-C |A| +  +! :unmap +! :unmap! +! :" +! :" mapping of ctrl-c in Visual mode +! :vnoremap :$put ='vmap works' +! GV +! :vunmap +! :" +! :" langmap should not get remapped in insert mode + :inoremap { FAIL_ilangmap + :set langmap=+{ langnoremap + o+ +*** ../vim-7.4.572/src/testdir/test_mapping.ok 2015-01-14 12:44:38.407422077 +0100 +--- src/testdir/test_mapping.ok 2015-01-14 15:58:41.092824454 +0100 +*************** +*** 2,6 **** +--- 2,7 ---- + vim + TEST2: CTRL-C |A| + ++ vmap works + + + + +*** ../vim-7.4.572/src/version.c 2015-01-14 15:47:33.076036876 +0100 +--- src/version.c 2015-01-14 15:59:40.408184237 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 573, + /**/ + +-- +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 9b561010336cd0e89438b3535fb1b9a65277499b Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:27 +0100 Subject: [PATCH 0200/1616] - patchlevel 574 --- 7.4.574 | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 7.4.574 diff --git a/7.4.574 b/7.4.574 new file mode 100644 index 00000000..8fef99bf --- /dev/null +++ b/7.4.574 @@ -0,0 +1,89 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.574 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.574 +Problem: No error for eval('$'). +Solution: Check for empty name. (Yasuhiro Matsumoto) +Files: src/eval.c + + +*** ../vim-7.4.573/src/eval.c 2014-12-13 21:00:52.059036480 +0100 +--- src/eval.c 2015-01-14 17:11:38.633570761 +0100 +*************** +*** 7867,7873 **** + if (evaluate) + { + if (len == 0) +! return FAIL; /* can't be an environment variable */ + + cc = name[len]; + name[len] = NUL; +--- 7867,7873 ---- + if (evaluate) + { + if (len == 0) +! return FAIL; /* invalid empty name */ + + cc = name[len]; + name[len] = NUL; +*************** +*** 10117,10130 **** + typval_T *argvars; + typval_T *rettv; + { +! char_u *s; + + s = get_tv_string_chk(&argvars[0]); + if (s != NULL) + s = skipwhite(s); + + if (s == NULL || eval1(&s, rettv, TRUE) == FAIL) + { + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = 0; + } +--- 10117,10134 ---- + typval_T *argvars; + typval_T *rettv; + { +! char_u *s, *p; + + s = get_tv_string_chk(&argvars[0]); + if (s != NULL) + s = skipwhite(s); + ++ p = s; + if (s == NULL || eval1(&s, rettv, TRUE) == FAIL) + { ++ if (p != NULL && !aborting()) ++ EMSG2(_(e_invexpr2), p); ++ need_clr_eos = FALSE; + rettv->v_type = VAR_NUMBER; + rettv->vval.v_number = 0; + } +*** ../vim-7.4.573/src/version.c 2015-01-14 16:08:29.210474234 +0100 +--- src/version.c 2015-01-14 17:05:25.357601603 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 574, + /**/ + +-- +From "know your smileys": + :-) Funny + |-) Funny Oriental + (-: Funny Australian + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 2f75620f8de26c668845b721b337682b4e8f1b3e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:28 +0100 Subject: [PATCH 0201/1616] - patchlevel 575 --- 7.4.575 | 737 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 737 insertions(+) create mode 100644 7.4.575 diff --git a/7.4.575 b/7.4.575 new file mode 100644 index 00000000..e5f67bb7 --- /dev/null +++ b/7.4.575 @@ -0,0 +1,737 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.575 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.575 +Problem: Unicode character properties are outdated. +Solution: Update the tables with the latest version. +Files: src/mbyte.c + + +*** ../vim-7.4.574/src/mbyte.c 2014-11-19 17:05:52.209648533 +0100 +--- src/mbyte.c 2015-01-14 17:23:56.509597627 +0100 +*************** +*** 1244,1263 **** + static struct interval doublewidth[] = + { + {0x1100, 0x115f}, +- {0x11a3, 0x11a7}, +- {0x11fa, 0x11ff}, + {0x2329, 0x232a}, + {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, + {0x2f00, 0x2fd5}, + {0x2ff0, 0x2ffb}, +! {0x3000, 0x3029}, +! {0x3030, 0x303e}, + {0x3041, 0x3096}, +! {0x309b, 0x30ff}, + {0x3105, 0x312d}, + {0x3131, 0x318e}, +! {0x3190, 0x31b7}, + {0x31c0, 0x31e3}, + {0x31f0, 0x321e}, + {0x3220, 0x3247}, +--- 1244,1260 ---- + static struct interval doublewidth[] = + { + {0x1100, 0x115f}, + {0x2329, 0x232a}, + {0x2e80, 0x2e99}, + {0x2e9b, 0x2ef3}, + {0x2f00, 0x2fd5}, + {0x2ff0, 0x2ffb}, +! {0x3000, 0x303e}, + {0x3041, 0x3096}, +! {0x3099, 0x30ff}, + {0x3105, 0x312d}, + {0x3131, 0x318e}, +! {0x3190, 0x31ba}, + {0x31c0, 0x31e3}, + {0x31f0, 0x321e}, + {0x3220, 0x3247}, +*************** +*** 1267,1274 **** + {0xa490, 0xa4c6}, + {0xa960, 0xa97c}, + {0xac00, 0xd7a3}, +- {0xd7b0, 0xd7c6}, +- {0xd7cb, 0xd7fb}, + {0xf900, 0xfaff}, + {0xfe10, 0xfe19}, + {0xfe30, 0xfe52}, +--- 1264,1269 ---- +*************** +*** 1276,1287 **** + {0xfe68, 0xfe6b}, + {0xff01, 0xff60}, + {0xffe0, 0xffe6}, +! {0x1f200, 0x1f200}, +! {0x1f210, 0x1f231}, + {0x1f240, 0x1f248}, + {0x20000, 0x2fffd}, + {0x30000, 0x3fffd} + }; + /* Sorted list of non-overlapping intervals of East Asian Ambiguous + * characters, generated with ../runtime/tools/unicode.vim. */ + static struct interval ambiguous[] = +--- 1271,1285 ---- + {0xfe68, 0xfe6b}, + {0xff01, 0xff60}, + {0xffe0, 0xffe6}, +! {0x1b000, 0x1b001}, +! {0x1f200, 0x1f202}, +! {0x1f210, 0x1f23a}, + {0x1f240, 0x1f248}, ++ {0x1f250, 0x1f251}, + {0x20000, 0x2fffd}, + {0x30000, 0x3fffd} + }; ++ + /* Sorted list of non-overlapping intervals of East Asian Ambiguous + * characters, generated with ../runtime/tools/unicode.vim. */ + static struct interval ambiguous[] = +*************** +*** 1339,1344 **** +--- 1337,1343 ---- + {0x02d8, 0x02db}, + {0x02dd, 0x02dd}, + {0x02df, 0x02df}, ++ {0x0300, 0x036f}, + {0x0391, 0x03a1}, + {0x03a3, 0x03a9}, + {0x03b1, 0x03c1}, +*************** +*** 1449,1470 **** + {0x2b55, 0x2b59}, + {0x3248, 0x324f}, + {0xe000, 0xf8ff}, + {0xfffd, 0xfffd}, + {0x1f100, 0x1f10a}, + {0x1f110, 0x1f12d}, +! {0x1f131, 0x1f131}, +! {0x1f13d, 0x1f13d}, +! {0x1f13f, 0x1f13f}, +! {0x1f142, 0x1f142}, +! {0x1f146, 0x1f146}, +! {0x1f14a, 0x1f14e}, +! {0x1f157, 0x1f157}, +! {0x1f15f, 0x1f15f}, +! {0x1f179, 0x1f179}, +! {0x1f17b, 0x1f17c}, +! {0x1f17f, 0x1f17f}, +! {0x1f18a, 0x1f18d}, +! {0x1f190, 0x1f190}, + {0xf0000, 0xffffd}, + {0x100000, 0x10fffd} + }; +--- 1448,1460 ---- + {0x2b55, 0x2b59}, + {0x3248, 0x324f}, + {0xe000, 0xf8ff}, ++ {0xfe00, 0xfe0f}, + {0xfffd, 0xfffd}, + {0x1f100, 0x1f10a}, + {0x1f110, 0x1f12d}, +! {0x1f130, 0x1f169}, +! {0x1f170, 0x1f19a}, +! {0xe0100, 0xe01ef}, + {0xf0000, 0xffffd}, + {0x100000, 0x10fffd} + }; +*************** +*** 2261,2270 **** + {0x05c4, 0x05c5}, + {0x05c7, 0x05c7}, + {0x0610, 0x061a}, +! {0x064b, 0x065e}, + {0x0670, 0x0670}, + {0x06d6, 0x06dc}, +! {0x06de, 0x06e4}, + {0x06e7, 0x06e8}, + {0x06ea, 0x06ed}, + {0x0711, 0x0711}, +--- 2251,2260 ---- + {0x05c4, 0x05c5}, + {0x05c7, 0x05c7}, + {0x0610, 0x061a}, +! {0x064b, 0x065f}, + {0x0670, 0x0670}, + {0x06d6, 0x06dc}, +! {0x06df, 0x06e4}, + {0x06e7, 0x06e8}, + {0x06ea, 0x06ed}, + {0x0711, 0x0711}, +*************** +*** 2275,2284 **** + {0x081b, 0x0823}, + {0x0825, 0x0827}, + {0x0829, 0x082d}, +! {0x0900, 0x0903}, +! {0x093c, 0x093c}, +! {0x093e, 0x094e}, +! {0x0951, 0x0955}, + {0x0962, 0x0963}, + {0x0981, 0x0983}, + {0x09bc, 0x09bc}, +--- 2265,2275 ---- + {0x081b, 0x0823}, + {0x0825, 0x0827}, + {0x0829, 0x082d}, +! {0x0859, 0x085b}, +! {0x08e4, 0x0903}, +! {0x093a, 0x093c}, +! {0x093e, 0x094f}, +! {0x0951, 0x0957}, + {0x0962, 0x0963}, + {0x0981, 0x0983}, + {0x09bc, 0x09bc}, +*************** +*** 2313,2332 **** + {0x0bc6, 0x0bc8}, + {0x0bca, 0x0bcd}, + {0x0bd7, 0x0bd7}, +! {0x0c01, 0x0c03}, + {0x0c3e, 0x0c44}, + {0x0c46, 0x0c48}, + {0x0c4a, 0x0c4d}, + {0x0c55, 0x0c56}, + {0x0c62, 0x0c63}, +! {0x0c82, 0x0c83}, + {0x0cbc, 0x0cbc}, + {0x0cbe, 0x0cc4}, + {0x0cc6, 0x0cc8}, + {0x0cca, 0x0ccd}, + {0x0cd5, 0x0cd6}, + {0x0ce2, 0x0ce3}, +! {0x0d02, 0x0d03}, + {0x0d3e, 0x0d44}, + {0x0d46, 0x0d48}, + {0x0d4a, 0x0d4d}, +--- 2304,2323 ---- + {0x0bc6, 0x0bc8}, + {0x0bca, 0x0bcd}, + {0x0bd7, 0x0bd7}, +! {0x0c00, 0x0c03}, + {0x0c3e, 0x0c44}, + {0x0c46, 0x0c48}, + {0x0c4a, 0x0c4d}, + {0x0c55, 0x0c56}, + {0x0c62, 0x0c63}, +! {0x0c81, 0x0c83}, + {0x0cbc, 0x0cbc}, + {0x0cbe, 0x0cc4}, + {0x0cc6, 0x0cc8}, + {0x0cca, 0x0ccd}, + {0x0cd5, 0x0cd6}, + {0x0ce2, 0x0ce3}, +! {0x0d01, 0x0d03}, + {0x0d3e, 0x0d44}, + {0x0d46, 0x0d48}, + {0x0d4a, 0x0d4d}, +*************** +*** 2352,2358 **** + {0x0f3e, 0x0f3f}, + {0x0f71, 0x0f84}, + {0x0f86, 0x0f87}, +! {0x0f90, 0x0f97}, + {0x0f99, 0x0fbc}, + {0x0fc6, 0x0fc6}, + {0x102b, 0x103e}, +--- 2343,2349 ---- + {0x0f3e, 0x0f3f}, + {0x0f71, 0x0f84}, + {0x0f86, 0x0f87}, +! {0x0f8d, 0x0f97}, + {0x0f99, 0x0fbc}, + {0x0fc6, 0x0fc6}, + {0x102b, 0x103e}, +*************** +*** 2364,2375 **** + {0x1082, 0x108d}, + {0x108f, 0x108f}, + {0x109a, 0x109d}, +! {0x135f, 0x135f}, + {0x1712, 0x1714}, + {0x1732, 0x1734}, + {0x1752, 0x1753}, + {0x1772, 0x1773}, +! {0x17b6, 0x17d3}, + {0x17dd, 0x17dd}, + {0x180b, 0x180d}, + {0x18a9, 0x18a9}, +--- 2355,2366 ---- + {0x1082, 0x108d}, + {0x108f, 0x108f}, + {0x109a, 0x109d}, +! {0x135d, 0x135f}, + {0x1712, 0x1714}, + {0x1732, 0x1734}, + {0x1752, 0x1753}, + {0x1772, 0x1773}, +! {0x17b4, 0x17d3}, + {0x17dd, 0x17dd}, + {0x180b, 0x180d}, + {0x18a9, 0x18a9}, +*************** +*** 2381,2405 **** + {0x1a55, 0x1a5e}, + {0x1a60, 0x1a7c}, + {0x1a7f, 0x1a7f}, + {0x1b00, 0x1b04}, + {0x1b34, 0x1b44}, + {0x1b6b, 0x1b73}, + {0x1b80, 0x1b82}, +! {0x1ba1, 0x1baa}, + {0x1c24, 0x1c37}, + {0x1cd0, 0x1cd2}, + {0x1cd4, 0x1ce8}, + {0x1ced, 0x1ced}, +! {0x1cf2, 0x1cf2}, +! {0x1dc0, 0x1de6}, +! {0x1dfd, 0x1dff}, + {0x20d0, 0x20f0}, + {0x2cef, 0x2cf1}, + {0x2de0, 0x2dff}, + {0x302a, 0x302f}, + {0x3099, 0x309a}, + {0xa66f, 0xa672}, +! {0xa67c, 0xa67d}, + {0xa6f0, 0xa6f1}, + {0xa802, 0xa802}, + {0xa806, 0xa806}, +--- 2372,2401 ---- + {0x1a55, 0x1a5e}, + {0x1a60, 0x1a7c}, + {0x1a7f, 0x1a7f}, ++ {0x1ab0, 0x1abe}, + {0x1b00, 0x1b04}, + {0x1b34, 0x1b44}, + {0x1b6b, 0x1b73}, + {0x1b80, 0x1b82}, +! {0x1ba1, 0x1bad}, +! {0x1be6, 0x1bf3}, + {0x1c24, 0x1c37}, + {0x1cd0, 0x1cd2}, + {0x1cd4, 0x1ce8}, + {0x1ced, 0x1ced}, +! {0x1cf2, 0x1cf4}, +! {0x1cf8, 0x1cf9}, +! {0x1dc0, 0x1df5}, +! {0x1dfc, 0x1dff}, + {0x20d0, 0x20f0}, + {0x2cef, 0x2cf1}, ++ {0x2d7f, 0x2d7f}, + {0x2de0, 0x2dff}, + {0x302a, 0x302f}, + {0x3099, 0x309a}, + {0xa66f, 0xa672}, +! {0xa674, 0xa67d}, +! {0xa69f, 0xa69f}, + {0xa6f0, 0xa6f1}, + {0xa802, 0xa802}, + {0xa806, 0xa806}, +*************** +*** 2412,2445 **** + {0xa947, 0xa953}, + {0xa980, 0xa983}, + {0xa9b3, 0xa9c0}, + {0xaa29, 0xaa36}, + {0xaa43, 0xaa43}, + {0xaa4c, 0xaa4d}, +! {0xaa7b, 0xaa7b}, + {0xaab0, 0xaab0}, + {0xaab2, 0xaab4}, + {0xaab7, 0xaab8}, + {0xaabe, 0xaabf}, + {0xaac1, 0xaac1}, + {0xabe3, 0xabea}, + {0xabec, 0xabed}, + {0xfb1e, 0xfb1e}, + {0xfe00, 0xfe0f}, +! {0xfe20, 0xfe26}, + {0x101fd, 0x101fd}, + {0x10a01, 0x10a03}, + {0x10a05, 0x10a06}, + {0x10a0c, 0x10a0f}, + {0x10a38, 0x10a3a}, + {0x10a3f, 0x10a3f}, +! {0x11080, 0x11082}, + {0x110b0, 0x110ba}, + {0x1d165, 0x1d169}, + {0x1d16d, 0x1d172}, + {0x1d17b, 0x1d182}, + {0x1d185, 0x1d18b}, + {0x1d1aa, 0x1d1ad}, + {0x1d242, 0x1d244}, + {0xe0100, 0xe01ef} + }; + +--- 2408,2476 ---- + {0xa947, 0xa953}, + {0xa980, 0xa983}, + {0xa9b3, 0xa9c0}, ++ {0xa9e5, 0xa9e5}, + {0xaa29, 0xaa36}, + {0xaa43, 0xaa43}, + {0xaa4c, 0xaa4d}, +! {0xaa7b, 0xaa7d}, + {0xaab0, 0xaab0}, + {0xaab2, 0xaab4}, + {0xaab7, 0xaab8}, + {0xaabe, 0xaabf}, + {0xaac1, 0xaac1}, ++ {0xaaeb, 0xaaef}, ++ {0xaaf5, 0xaaf6}, + {0xabe3, 0xabea}, + {0xabec, 0xabed}, + {0xfb1e, 0xfb1e}, + {0xfe00, 0xfe0f}, +! {0xfe20, 0xfe2d}, + {0x101fd, 0x101fd}, ++ {0x102e0, 0x102e0}, ++ {0x10376, 0x1037a}, + {0x10a01, 0x10a03}, + {0x10a05, 0x10a06}, + {0x10a0c, 0x10a0f}, + {0x10a38, 0x10a3a}, + {0x10a3f, 0x10a3f}, +! {0x10ae5, 0x10ae6}, +! {0x11000, 0x11002}, +! {0x11038, 0x11046}, +! {0x1107f, 0x11082}, + {0x110b0, 0x110ba}, ++ {0x11100, 0x11102}, ++ {0x11127, 0x11134}, ++ {0x11173, 0x11173}, ++ {0x11180, 0x11182}, ++ {0x111b3, 0x111c0}, ++ {0x1122c, 0x11237}, ++ {0x112df, 0x112ea}, ++ {0x11301, 0x11303}, ++ {0x1133c, 0x1133c}, ++ {0x1133e, 0x11344}, ++ {0x11347, 0x11348}, ++ {0x1134b, 0x1134d}, ++ {0x11357, 0x11357}, ++ {0x11362, 0x11363}, ++ {0x11366, 0x1136c}, ++ {0x11370, 0x11374}, ++ {0x114b0, 0x114c3}, ++ {0x115af, 0x115b5}, ++ {0x115b8, 0x115c0}, ++ {0x11630, 0x11640}, ++ {0x116ab, 0x116b7}, ++ {0x16af0, 0x16af4}, ++ {0x16b30, 0x16b36}, ++ {0x16f51, 0x16f7e}, ++ {0x16f8f, 0x16f92}, ++ {0x1bc9d, 0x1bc9e}, + {0x1d165, 0x1d169}, + {0x1d16d, 0x1d172}, + {0x1d17b, 0x1d182}, + {0x1d185, 0x1d18b}, + {0x1d1aa, 0x1d1ad}, + {0x1d242, 0x1d244}, ++ {0x1e8d0, 0x1e8d6}, + {0xe0100, 0xe01ef} + }; + +*************** +*** 2679,2684 **** +--- 2710,2716 ---- + {0x345,0x345,-1,116}, + {0x370,0x372,2,1}, + {0x376,0x376,-1,1}, ++ {0x37f,0x37f,-1,116}, + {0x386,0x386,-1,38}, + {0x388,0x38a,1,37}, + {0x38c,0x38c,-1,64}, +*************** +*** 2706,2714 **** + {0x48a,0x4be,2,1}, + {0x4c0,0x4c0,-1,15}, + {0x4c1,0x4cd,2,1}, +! {0x4d0,0x524,2,1}, + {0x531,0x556,1,48}, + {0x10a0,0x10c5,1,7264}, + {0x1e00,0x1e94,2,1}, + {0x1e9b,0x1e9b,-1,-58}, + {0x1e9e,0x1e9e,-1,-7615}, +--- 2738,2747 ---- + {0x48a,0x4be,2,1}, + {0x4c0,0x4c0,-1,15}, + {0x4c1,0x4cd,2,1}, +! {0x4d0,0x52e,2,1}, + {0x531,0x556,1,48}, + {0x10a0,0x10c5,1,7264}, ++ {0x10c7,0x10cd,6,7264}, + {0x1e00,0x1e94,2,1}, + {0x1e9b,0x1e9b,-1,-58}, + {0x1e9e,0x1e9e,-1,-7615}, +*************** +*** 2758,2774 **** + {0x2c7e,0x2c7f,1,-10815}, + {0x2c80,0x2ce2,2,1}, + {0x2ceb,0x2ced,2,1}, +! {0xa640,0xa65e,2,1}, +! {0xa662,0xa66c,2,1}, +! {0xa680,0xa696,2,1}, + {0xa722,0xa72e,2,1}, + {0xa732,0xa76e,2,1}, + {0xa779,0xa77b,2,1}, + {0xa77d,0xa77d,-1,-35332}, + {0xa77e,0xa786,2,1}, + {0xa78b,0xa78b,-1,1}, + {0xff21,0xff3a,1,32}, +! {0x10400,0x10427,1,40} + }; + + static int utf_convert __ARGS((int a, convertStruct table[], int tableSize)); +--- 2791,2817 ---- + {0x2c7e,0x2c7f,1,-10815}, + {0x2c80,0x2ce2,2,1}, + {0x2ceb,0x2ced,2,1}, +! {0x2cf2,0xa640,31054,1}, +! {0xa642,0xa66c,2,1}, +! {0xa680,0xa69a,2,1}, + {0xa722,0xa72e,2,1}, + {0xa732,0xa76e,2,1}, + {0xa779,0xa77b,2,1}, + {0xa77d,0xa77d,-1,-35332}, + {0xa77e,0xa786,2,1}, + {0xa78b,0xa78b,-1,1}, ++ {0xa78d,0xa78d,-1,-42280}, ++ {0xa790,0xa792,2,1}, ++ {0xa796,0xa7a8,2,1}, ++ {0xa7aa,0xa7aa,-1,-42308}, ++ {0xa7ab,0xa7ab,-1,-42319}, ++ {0xa7ac,0xa7ac,-1,-42315}, ++ {0xa7ad,0xa7ad,-1,-42305}, ++ {0xa7b0,0xa7b0,-1,-42258}, ++ {0xa7b1,0xa7b1,-1,-42282}, + {0xff21,0xff3a,1,32}, +! {0x10400,0x10427,1,40}, +! {0x118a0,0x118bf,1,32} + }; + + static int utf_convert __ARGS((int a, convertStruct table[], int tableSize)); +*************** +*** 2885,2890 **** +--- 2928,2934 ---- + {0x246,0x24e,2,1}, + {0x370,0x372,2,1}, + {0x376,0x376,-1,1}, ++ {0x37f,0x37f,-1,116}, + {0x386,0x386,-1,38}, + {0x388,0x38a,1,37}, + {0x38c,0x38c,-1,64}, +*************** +*** 2904,2912 **** + {0x48a,0x4be,2,1}, + {0x4c0,0x4c0,-1,15}, + {0x4c1,0x4cd,2,1}, +! {0x4d0,0x524,2,1}, + {0x531,0x556,1,48}, + {0x10a0,0x10c5,1,7264}, + {0x1e00,0x1e94,2,1}, + {0x1e9e,0x1e9e,-1,-7615}, + {0x1ea0,0x1efe,2,1}, +--- 2948,2957 ---- + {0x48a,0x4be,2,1}, + {0x4c0,0x4c0,-1,15}, + {0x4c1,0x4cd,2,1}, +! {0x4d0,0x52e,2,1}, + {0x531,0x556,1,48}, + {0x10a0,0x10c5,1,7264}, ++ {0x10c7,0x10cd,6,7264}, + {0x1e00,0x1e94,2,1}, + {0x1e9e,0x1e9e,-1,-7615}, + {0x1ea0,0x1efe,2,1}, +*************** +*** 2954,2977 **** + {0x2c7e,0x2c7f,1,-10815}, + {0x2c80,0x2ce2,2,1}, + {0x2ceb,0x2ced,2,1}, +! {0xa640,0xa65e,2,1}, +! {0xa662,0xa66c,2,1}, +! {0xa680,0xa696,2,1}, + {0xa722,0xa72e,2,1}, + {0xa732,0xa76e,2,1}, + {0xa779,0xa77b,2,1}, + {0xa77d,0xa77d,-1,-35332}, + {0xa77e,0xa786,2,1}, + {0xa78b,0xa78b,-1,1}, + {0xff21,0xff3a,1,32}, +! {0x10400,0x10427,1,40} + }; + + static convertStruct toUpper[] = + { + {0x61,0x7a,1,-32}, + {0xb5,0xb5,-1,743}, +! {0xe0,0xf6,1,-32}, /* 0xdf (German sharp s) is not upper-cased */ + {0xf8,0xfe,1,-32}, + {0xff,0xff,-1,121}, + {0x101,0x12f,2,-1}, +--- 2999,3032 ---- + {0x2c7e,0x2c7f,1,-10815}, + {0x2c80,0x2ce2,2,1}, + {0x2ceb,0x2ced,2,1}, +! {0x2cf2,0xa640,31054,1}, +! {0xa642,0xa66c,2,1}, +! {0xa680,0xa69a,2,1}, + {0xa722,0xa72e,2,1}, + {0xa732,0xa76e,2,1}, + {0xa779,0xa77b,2,1}, + {0xa77d,0xa77d,-1,-35332}, + {0xa77e,0xa786,2,1}, + {0xa78b,0xa78b,-1,1}, ++ {0xa78d,0xa78d,-1,-42280}, ++ {0xa790,0xa792,2,1}, ++ {0xa796,0xa7a8,2,1}, ++ {0xa7aa,0xa7aa,-1,-42308}, ++ {0xa7ab,0xa7ab,-1,-42319}, ++ {0xa7ac,0xa7ac,-1,-42315}, ++ {0xa7ad,0xa7ad,-1,-42305}, ++ {0xa7b0,0xa7b0,-1,-42258}, ++ {0xa7b1,0xa7b1,-1,-42282}, + {0xff21,0xff3a,1,32}, +! {0x10400,0x10427,1,40}, +! {0x118a0,0x118bf,1,32} + }; + + static convertStruct toUpper[] = + { + {0x61,0x7a,1,-32}, + {0xb5,0xb5,-1,743}, +! {0xe0,0xf6,1,-32}, + {0xf8,0xfe,1,-32}, + {0xff,0xff,-1,121}, + {0x101,0x12f,2,-1}, +*************** +*** 3021,3042 **** +--- 3076,3104 ---- + {0x256,0x257,1,-205}, + {0x259,0x259,-1,-202}, + {0x25b,0x25b,-1,-203}, ++ {0x25c,0x25c,-1,42319}, + {0x260,0x260,-1,-205}, ++ {0x261,0x261,-1,42315}, + {0x263,0x263,-1,-207}, ++ {0x265,0x265,-1,42280}, ++ {0x266,0x266,-1,42308}, + {0x268,0x268,-1,-209}, + {0x269,0x269,-1,-211}, + {0x26b,0x26b,-1,10743}, ++ {0x26c,0x26c,-1,42305}, + {0x26f,0x26f,-1,-211}, + {0x271,0x271,-1,10749}, + {0x272,0x272,-1,-213}, + {0x275,0x275,-1,-214}, + {0x27d,0x27d,-1,10727}, + {0x280,0x283,3,-218}, ++ {0x287,0x287,-1,42282}, + {0x288,0x288,-1,-218}, + {0x289,0x289,-1,-69}, + {0x28a,0x28b,1,-217}, + {0x28c,0x28c,-1,-71}, + {0x292,0x292,-1,-219}, ++ {0x29e,0x29e,-1,42258}, + {0x345,0x345,-1,84}, + {0x371,0x373,2,-1}, + {0x377,0x377,-1,-1}, +*************** +*** 3057,3062 **** +--- 3119,3125 ---- + {0x3f0,0x3f0,-1,-86}, + {0x3f1,0x3f1,-1,-80}, + {0x3f2,0x3f2,-1,7}, ++ {0x3f3,0x3f3,-1,-116}, + {0x3f5,0x3f5,-1,-96}, + {0x3f8,0x3fb,3,-1}, + {0x430,0x44f,1,-32}, +*************** +*** 3065,3071 **** + {0x48b,0x4bf,2,-1}, + {0x4c2,0x4ce,2,-1}, + {0x4cf,0x4cf,-1,-15}, +! {0x4d1,0x525,2,-1}, + {0x561,0x586,1,-48}, + {0x1d79,0x1d79,-1,35332}, + {0x1d7d,0x1d7d,-1,3814}, +--- 3128,3134 ---- + {0x48b,0x4bf,2,-1}, + {0x4c2,0x4ce,2,-1}, + {0x4cf,0x4cf,-1,-15}, +! {0x4d1,0x52f,2,-1}, + {0x561,0x586,1,-48}, + {0x1d79,0x1d79,-1,35332}, + {0x1d7d,0x1d7d,-1,3814}, +*************** +*** 3108,3126 **** + {0x2c73,0x2c76,3,-1}, + {0x2c81,0x2ce3,2,-1}, + {0x2cec,0x2cee,2,-1}, + {0x2d00,0x2d25,1,-7264}, +! {0xa641,0xa65f,2,-1}, +! {0xa663,0xa66d,2,-1}, +! {0xa681,0xa697,2,-1}, + {0xa723,0xa72f,2,-1}, + {0xa733,0xa76f,2,-1}, + {0xa77a,0xa77c,2,-1}, + {0xa77f,0xa787,2,-1}, +! {0xa78c,0xa78c,-1,-1}, + {0xff41,0xff5a,1,-32}, +! {0x10428,0x1044f,1,-40} + }; +- + /* + * Return the upper-case equivalent of "a", which is a UCS-4 character. Use + * simple case folding. +--- 3171,3192 ---- + {0x2c73,0x2c76,3,-1}, + {0x2c81,0x2ce3,2,-1}, + {0x2cec,0x2cee,2,-1}, ++ {0x2cf3,0x2cf3,-1,-1}, + {0x2d00,0x2d25,1,-7264}, +! {0x2d27,0x2d2d,6,-7264}, +! {0xa641,0xa66d,2,-1}, +! {0xa681,0xa69b,2,-1}, + {0xa723,0xa72f,2,-1}, + {0xa733,0xa76f,2,-1}, + {0xa77a,0xa77c,2,-1}, + {0xa77f,0xa787,2,-1}, +! {0xa78c,0xa791,5,-1}, +! {0xa793,0xa797,4,-1}, +! {0xa799,0xa7a9,2,-1}, + {0xff41,0xff5a,1,-32}, +! {0x10428,0x1044f,1,-40}, +! {0x118c0,0x118df,1,-32} + }; + /* + * Return the upper-case equivalent of "a", which is a UCS-4 character. Use + * simple case folding. +*** ../vim-7.4.574/src/version.c 2015-01-14 17:14:57.351424263 +0100 +--- src/version.c 2015-01-14 17:25:39.336485325 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 575, + /**/ + +-- +From "know your smileys": + :~) A man with a tape recorder up his nose + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 4a18510a7b7d13abf6db74809ab5b3d1f72ad500 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:28 +0100 Subject: [PATCH 0202/1616] - patchlevel 576 --- 7.4.576 | 181 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 7.4.576 diff --git a/7.4.576 b/7.4.576 new file mode 100644 index 00000000..b5bc6651 --- /dev/null +++ b/7.4.576 @@ -0,0 +1,181 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.576 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.576 +Problem: Redrawing problem with 'relativenumber' and 'linebreak'. +Solution: Temporarily reset 'linebreak' and restore it in more places. + (Christian Brabandt) +Files: src/normal.c + + +*** ../vim-7.4.575/src/normal.c 2014-10-31 13:54:21.843214469 +0100 +--- src/normal.c 2015-01-14 17:49:38.320915425 +0100 +*************** +*** 1393,1402 **** + int include_line_break = FALSE; + #endif + +- #ifdef FEAT_LINEBREAK +- curwin->w_p_lbr = FALSE; /* Avoid a problem with unwanted linebreaks in +- * block mode. */ +- #endif + #if defined(FEAT_CLIPBOARD) + /* + * Yank the visual area into the GUI selection register before we operate +--- 1393,1398 ---- +*************** +*** 1420,1425 **** +--- 1416,1425 ---- + */ + if ((finish_op || VIsual_active) && oap->op_type != OP_NOP) + { ++ #ifdef FEAT_LINEBREAK ++ /* Avoid a problem with unwanted linebreaks in block mode. */ ++ curwin->w_p_lbr = FALSE; ++ #endif + oap->is_VIsual = VIsual_active; + if (oap->motion_force == 'V') + oap->motion_type = MLINE; +*************** +*** 1819,1825 **** +--- 1819,1831 ---- + || oap->op_type == OP_FUNCTION + || oap->op_type == OP_FILTER) + && oap->motion_force == NUL) ++ { ++ #ifdef FEAT_LINEBREAK ++ /* make sure redrawing is correct */ ++ curwin->w_p_lbr = lbr_saved; ++ #endif + redraw_curbuf_later(INVERTED); ++ } + } + } + +*************** +*** 1863,1869 **** +--- 1869,1880 ---- + || oap->op_type == OP_FOLD + #endif + )) ++ { ++ #ifdef FEAT_LINEBREAK ++ curwin->w_p_lbr = lbr_saved; ++ #endif + redraw_curbuf_later(INVERTED); ++ } + + /* + * If the end of an operator is in column one while oap->motion_type +*************** +*** 1947,1953 **** +--- 1958,1969 ---- + } + } + else ++ { ++ #ifdef FEAT_LINEBREAK ++ curwin->w_p_lbr = lbr_saved; ++ #endif + (void)op_yank(oap, FALSE, !gui_yank); ++ } + check_cursor_col(); + break; + +*************** +*** 1969,1974 **** +--- 1985,1995 ---- + else + restart_edit_save = 0; + restart_edit = 0; ++ #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; + if (op_change(oap)) /* will call edit() */ +*************** +*** 2064,2071 **** + * Visual mode. But do this only once. */ + restart_edit_save = restart_edit; + restart_edit = 0; +! + op_insert(oap, cap->count1); + + /* TODO: when inserting in several lines, should format all + * the lines. */ +--- 2085,2100 ---- + * Visual mode. But do this only once. */ + restart_edit_save = restart_edit; + restart_edit = 0; +! #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 ++ /* Reset linebreak, so that formatting works correctly. */ ++ curwin->w_p_lbr = FALSE; ++ #endif + + /* TODO: when inserting in several lines, should format all + * the lines. */ +*************** +*** 2090,2096 **** +--- 2119,2132 ---- + } + #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 + break; + +*************** +*** 2134,2140 **** +--- 2170,2181 ---- + if (!p_sol && oap->motion_type == MLINE && !oap->end_adjusted + && (oap->op_type == OP_LSHIFT || oap->op_type == OP_RSHIFT + || oap->op_type == OP_DELETE)) ++ { ++ #ifdef FEAT_LINEBREAK ++ curwin->w_p_lbr = FALSE; ++ #endif + coladvance(curwin->w_curswant = old_col); ++ } + } + else + { +*** ../vim-7.4.575/src/version.c 2015-01-14 17:40:04.407125696 +0100 +--- src/version.c 2015-01-14 17:47:45.898132017 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 576, + /**/ + +-- +From "know your smileys": + :-H Is missing teeth + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From f5c6106681d9fa3e7cd76446489da2260ca8e693 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Wed, 14 Jan 2015 18:00:30 +0100 Subject: [PATCH 0203/1616] - patchlevel 576 --- README.patches | 9 +++++++++ vim.spec | 26 +++++++++++++++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index a87d99db..e96a3ddd 100644 --- a/README.patches +++ b/README.patches @@ -589,3 +589,12 @@ Individual patches for Vim 7.4: 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 + 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 + 1821 7.4.571 can't build with tiny features + 6076 7.4.572 address type of :wincmd depends on the argument + 2979 7.4.573 mapping CTRL-C in Visual mode doesn't work + 2177 7.4.574 no error for eval('$') + 16995 7.4.575 Unicode character properties are outdated + 4671 7.4.576 redrawing problem with 'relativenumber' and 'linebreak' diff --git a/vim.spec b/vim.spec index 3e7d067e..13e3e418 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 567 +%define patchlevel 576 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -614,6 +614,15 @@ Patch564: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.564 Patch565: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.565 Patch566: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.566 Patch567: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.567 +Patch568: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.568 +Patch569: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.569 +Patch570: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.570 +Patch571: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.571 +Patch572: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.572 +Patch573: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.573 +Patch574: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.574 +Patch575: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.575 +Patch576: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.576 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -1328,6 +1337,15 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch565 -p0 %patch566 -p0 %patch567 -p0 +%patch568 -p0 +%patch569 -p0 +%patch570 -p0 +%patch571 -p0 +%patch572 -p0 +%patch573 -p0 +%patch574 -p0 +%patch575 -p0 +%patch576 -p0 # install spell files %if %{withvimspell} @@ -1845,6 +1863,12 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Jan 14 2015 Karsten Hopp 7.4.576-1 +- patchlevel 576 + +* Mon Jan 12 2015 Karsten Hopp 7.4.567-1 +- use %%make_install in spec-template.new (rhbz#919270) + * Thu Jan 08 2015 Karsten Hopp 7.4.567-1 - patchlevel 567 From 245422c6e57984e7604b539aafbf1cbcd3ee3852 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 15 Jan 2015 15:55:38 +0100 Subject: [PATCH 0204/1616] fix broken 559 patch --- 7.4.559 | 30 ------------------------------ 7.4.559.rhpatched | 20 ++++++++++++++++++++ spec-template.new | 2 +- vim.spec | 2 ++ 4 files changed, 23 insertions(+), 31 deletions(-) create mode 100644 7.4.559.rhpatched diff --git a/7.4.559 b/7.4.559 index c4b4c3c8..7425f531 100644 --- a/7.4.559 +++ b/7.4.559 @@ -59,36 +59,6 @@ Files: src/ops.c, src/testdir/test39.in, src/testdir/test39.ok } #endif -*** ../vim-7.4.558/src/testdir/test39.in 2014-12-17 14:36:10.363090985 +0100 ---- src/testdir/test39.in 2014-12-17 18:27:18.151974111 +0100 -*************** -*** 38,48 **** - /^C23$/ - :exe ":norm! l\j$hhAab\" - :.,/^$/w >> test.out -! :" Test for Visual block insert when virtualedit=all -! :set ve=all - :/\t\tline - :exe ":norm! 07l\jjIx\" -! :set ve= - :.,/^$/w >> test.out - :" gUe must uppercase a whole word, also when ĂŸ changes to SS - Gothe youtuĂŸeuu endYpk0wgUe ---- 38,51 ---- - /^C23$/ - :exe ":norm! l\j$hhAab\" - :.,/^$/w >> test.out -! :" Test for Visual block insert when virtualedit=all and utf-8 encoding -! :set ve=all enc=utf-8 - :/\t\tline - :exe ":norm! 07l\jjIx\" -! :.,/^$/w >> test.out -! :" Test for Visual block append when virtualedit=all -! :exe ":norm! 012l\jjAx\" -! :set ve= enc=latin1 - :.,/^$/w >> test.out - :" gUe must uppercase a whole word, also when ĂŸ changes to SS - Gothe youtuĂŸeuu endYpk0wgUe *** ../vim-7.4.558/src/testdir/test39.ok 2014-08-16 18:13:00.082044726 +0200 --- src/testdir/test39.ok 2014-12-17 18:18:33.090470463 +0100 *************** diff --git a/7.4.559.rhpatched b/7.4.559.rhpatched new file mode 100644 index 00000000..cd66fa28 --- /dev/null +++ b/7.4.559.rhpatched @@ -0,0 +1,20 @@ +--- src/testdir/test39.in.orig 2015-01-15 15:41:19.391952838 +0100 ++++ src/testdir/test39.in 2015-01-15 15:46:39.565881372 +0100 +@@ -38,11 +38,14 @@ + /^C23$/ + :exe ":norm! l\j$hhAab\" + :.,/^$/w >> test.out +-:" Test for Visual block insert when virtualedit=all +-:set ve=all ++:" Test for Visual block insert when virtualedit=all and utf-8 encoding ++:set ve=all enc=utf-8 + :/\t\tline + :exe ":norm! 07l\jjIx\" +-:set ve= ++:.,/^$/w >> test.out ++:" Test for Visual block append when virtualedit=all ++:exe ":norm! 012l\jjAx\" ++:set ve= enc=latin1 + :.,/^$/w >> test.out + :" gUe must uppercase a whole word, also when ß changes to SS + Gothe youtußeuu endYpk0wgUe diff --git a/spec-template.new b/spec-template.new index cea6bfcd..d9953482 100644 --- a/spec-template.new +++ b/spec-template.new @@ -24,7 +24,7 @@ make %{?_smp_mflags} %install -make install DESTDIR=%{buildroot} +%make_install %files diff --git a/vim.spec b/vim.spec index 13e3e418..d5288d05 100644 --- a/vim.spec +++ b/vim.spec @@ -624,6 +624,7 @@ Patch574: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.574 Patch575: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.575 Patch576: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.576 +Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch Patch3004: vim-7.0-rclocation.patch @@ -1329,6 +1330,7 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch557 -p0 %patch558 -p0 %patch559 -p0 +%patch1559 -p0 %patch560 -p0 %patch561 -p0 %patch562 -p0 From 44f7efe99cd1dec0ad495a3ecb62c63f2bb02ac8 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 15 Jan 2015 15:56:01 +0100 Subject: [PATCH 0205/1616] - patchlevel 577 --- 7.4.577 | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 7.4.577 diff --git a/7.4.577 b/7.4.577 new file mode 100644 index 00000000..dd15f02f --- /dev/null +++ b/7.4.577 @@ -0,0 +1,92 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.577 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.577 +Problem: Matching with a virtual column has a lot of overhead on very long + lines. (Issue 310) +Solution: Bail out early if there can't be a match. (Christian Brabandt) + Also check for CTRL-C at every position. +Files: src/regexp_nfa.c + + +*** ../vim-7.4.576/src/regexp_nfa.c 2014-11-23 15:57:45.568009419 +0100 +--- src/regexp_nfa.c 2015-01-14 18:40:12.263887756 +0100 +*************** +*** 6438,6451 **** + case NFA_VCOL: + case NFA_VCOL_GT: + case NFA_VCOL_LT: +- result = nfa_re_num_cmp(t->state->val, t->state->c - NFA_VCOL, +- (long_u)win_linetabsize( +- reg_win == NULL ? curwin : reg_win, +- regline, (colnr_T)(reginput - regline)) + 1); +- if (result) + { +! add_here = TRUE; +! add_state = t->state->out; + } + break; + +--- 6438,6461 ---- + case NFA_VCOL: + case NFA_VCOL_GT: + case NFA_VCOL_LT: + { +! 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; +! add_state = t->state->out; +! } + } + break; + +*************** +*** 6744,6749 **** +--- 6754,6764 ---- + reg_nextline(); + else + break; ++ ++ /* Allow interrupting with CTRL-C. */ ++ fast_breakcheck(); ++ if (got_int) ++ break; + } + + #ifdef ENABLE_LOG +*** ../vim-7.4.576/src/version.c 2015-01-14 17:52:26.603094340 +0100 +--- src/version.c 2015-01-14 18:34:10.375843602 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 577, + /**/ + +-- +From "know your smileys": + !-| I-am-a-Cylon-Centurian-with-one-red-eye-bouncing-back-and-forth + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From 8b1199b9d390143b9a7f9c141c96ffb0950438ee Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 15 Jan 2015 15:56:02 +0100 Subject: [PATCH 0206/1616] - patchlevel 578 --- 7.4.578 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.578 diff --git a/7.4.578 b/7.4.578 new file mode 100644 index 00000000..49fdd7fe --- /dev/null +++ b/7.4.578 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.578 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.578 +Problem: Using getcurpos() after "$" in an empty line returns a negative + number. +Solution: Don't add one when this would overflow. (Hirohito Higashi) +Files: src/eval.c + + +*** ../vim-7.4.577/src/eval.c 2015-01-14 17:14:57.351424263 +0100 +--- src/eval.c 2015-01-14 18:55:46.945664363 +0100 +*************** +*** 11941,11947 **** + #endif + (varnumber_T)0); + if (getcurpos) +! list_append_number(l, (varnumber_T)curwin->w_curswant + 1); + } + else + rettv->vval.v_number = FALSE; +--- 11941,11948 ---- + #endif + (varnumber_T)0); + if (getcurpos) +! list_append_number(l, curwin->w_curswant == MAXCOL ? +! (varnumber_T)MAXCOL : (varnumber_T)curwin->w_curswant + 1); + } + else + rettv->vval.v_number = FALSE; +*** ../vim-7.4.577/src/version.c 2015-01-14 18:40:23.087769463 +0100 +--- src/version.c 2015-01-14 18:54:47.734312885 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 578, + /**/ + +-- +From "know your smileys": + ~#:-( I just washed my hair, and I can't do nuthin' with 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 1bcb27c0c79486e76b9e8bb8f9ed3871839c7a04 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 15 Jan 2015 15:56:03 +0100 Subject: [PATCH 0207/1616] - patchlevel 579 --- 7.4.579 | 169 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 169 insertions(+) create mode 100644 7.4.579 diff --git a/7.4.579 b/7.4.579 new file mode 100644 index 00000000..daf7f65f --- /dev/null +++ b/7.4.579 @@ -0,0 +1,169 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.579 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.579 +Problem: Wrong cursor positioning when 'linebreak' is set and lines wrap. +Solution: Solve it. (Christian Brabandt) +Files: src/charset.c, src/screen.c + + +*** ../vim-7.4.578/src/charset.c 2014-10-31 12:41:57.427319153 +0100 +--- src/charset.c 2015-01-14 19:34:38.916109031 +0100 +*************** +*** 1178,1205 **** + added = 0; + if ((*p_sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && col != 0) + { +! numberextra = win_col_off(wp); + col += numberextra + mb_added; + if (col >= (colnr_T)W_WIDTH(wp)) + { + col -= W_WIDTH(wp); + numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); +! if (numberextra > 0) + col %= numberextra; + if (*p_sbr != NUL) + { +! colnr_T sbrlen = (colnr_T)MB_CHARLEN(p_sbr); + if (col >= sbrlen) + col -= sbrlen; + } +! if (numberextra > 0) + col = col % numberextra; + } +! if (col == 0 || col + size > (colnr_T)W_WIDTH(wp)) + { + added = 0; + if (*p_sbr != NUL) +! added += vim_strsize(p_sbr); + if (wp->w_p_bri) + added += get_breakindent_win(wp, line); + +--- 1178,1227 ---- + added = 0; + if ((*p_sbr != NUL || wp->w_p_bri) && wp->w_p_wrap && col != 0) + { +! colnr_T sbrlen = 0; +! int numberwidth = win_col_off(wp); +! +! numberextra = numberwidth; + col += numberextra + mb_added; + if (col >= (colnr_T)W_WIDTH(wp)) + { + col -= W_WIDTH(wp); + numberextra = W_WIDTH(wp) - (numberextra - win_col_off2(wp)); +! if (col >= numberextra && numberextra > 0) + col %= numberextra; + if (*p_sbr != NUL) + { +! sbrlen = (colnr_T)MB_CHARLEN(p_sbr); + if (col >= sbrlen) + col -= sbrlen; + } +! if (col >= numberextra && numberextra > 0) + col = col % numberextra; ++ else if (col > 0 && numberextra > 0) ++ col += numberwidth - win_col_off2(wp); ++ ++ numberwidth -= win_col_off2(wp); + } +! if (col == 0 || col + size + sbrlen > (colnr_T)W_WIDTH(wp)) + { + added = 0; + if (*p_sbr != NUL) +! { +! if (size + sbrlen + numberwidth > (colnr_T)W_WIDTH(wp)) +! { +! /* calculate effective window width */ +! int width = (colnr_T)W_WIDTH(wp) - sbrlen - numberwidth; +! int prev_width = col ? ((colnr_T)W_WIDTH(wp) - (sbrlen + col)) : 0; +! if (width == 0) +! width = (colnr_T)W_WIDTH(wp); +! added += ((size - prev_width) / width) * vim_strsize(p_sbr); +! if ((size - prev_width) % width) +! /* wrapped, add another length of 'sbr' */ +! added += vim_strsize(p_sbr); +! } +! else +! added += vim_strsize(p_sbr); +! } + if (wp->w_p_bri) + added += get_breakindent_win(wp, line); + +*** ../vim-7.4.578/src/screen.c 2015-01-07 19:04:25.299934570 +0100 +--- src/screen.c 2015-01-14 19:27:46.428652958 +0100 +*************** +*** 2842,2847 **** +--- 2842,2850 ---- + unsigned off; /* offset in ScreenLines/ScreenAttrs */ + int c = 0; /* init for GCC */ + long vcol = 0; /* virtual column (for tabs) */ ++ #ifdef FEAT_LINEBREAK ++ long vcol_sbr = -1; /* virtual column after showbreak */ ++ #endif + long vcol_prev = -1; /* "vcol" of previous character */ + char_u *line; /* current line */ + char_u *ptr; /* current position in "line" */ +*************** +*** 3759,3764 **** +--- 3762,3768 ---- + n_extra = (int)STRLEN(p_sbr); + char_attr = hl_attr(HLF_AT); + need_showbreak = FALSE; ++ vcol_sbr = vcol + MB_CHARLEN(p_sbr); + /* Correct end of highlighted area for 'showbreak', + * required when 'linebreak' is also set. */ + if (tocol == vcol) +*************** +*** 4516,4524 **** + if (c == TAB && (!wp->w_p_list || lcs_tab1)) + { + int tab_len = 0; + /* tab amount depends on current column */ + tab_len = (int)wp->w_buffer->b_p_ts +! - vcol % (int)wp->w_buffer->b_p_ts - 1; + #ifdef FEAT_LINEBREAK + if (!wp->w_p_lbr || !wp->w_p_list) + #endif +--- 4520,4536 ---- + if (c == TAB && (!wp->w_p_list || lcs_tab1)) + { + int tab_len = 0; ++ long vcol_adjusted = vcol; /* removed showbreak length */ ++ #ifdef FEAT_LINEBREAK ++ /* only adjust the tab_len, when at the first column ++ * after the showbreak value was drawn */ ++ if (*p_sbr != NUL && vcol == vcol_sbr && wp->w_p_wrap) ++ vcol_adjusted = vcol - MB_CHARLEN(p_sbr); ++ #endif + /* tab amount depends on current column */ + tab_len = (int)wp->w_buffer->b_p_ts +! - vcol_adjusted % (int)wp->w_buffer->b_p_ts - 1; +! + #ifdef FEAT_LINEBREAK + if (!wp->w_p_lbr || !wp->w_p_list) + #endif +*** ../vim-7.4.578/src/version.c 2015-01-14 19:00:33.842522901 +0100 +--- src/version.c 2015-01-14 19:28:47.291982266 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 579, + /**/ + +-- +From "know your smileys": + O:-) Saint + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// From d15e42923aeee2d1d40928698f7aa6bc424924d1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 15 Jan 2015 15:56:03 +0100 Subject: [PATCH 0208/1616] - patchlevel 580 --- 7.4.580 | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 7.4.580 diff --git a/7.4.580 b/7.4.580 new file mode 100644 index 00000000..50675f84 --- /dev/null +++ b/7.4.580 @@ -0,0 +1,54 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.580 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.580 +Problem: ":52wincmd v" still gives an invalid range error. (Charles + Campbell) +Solution: Skip over white space. +Files: src/ex_docmd.c + + +*** ../vim-7.4.579/src/ex_docmd.c 2015-01-14 15:47:33.076036876 +0100 +--- src/ex_docmd.c 2015-01-14 21:17:20.831813232 +0100 +*************** +*** 2140,2147 **** + + #ifdef FEAT_WINDOWS + /* :wincmd range depends on the argument. */ +! if (ea.cmdidx == CMD_wincmd) +! get_wincmd_addr_type(p, &ea); + #endif + } + +--- 2140,2147 ---- + + #ifdef FEAT_WINDOWS + /* :wincmd range depends on the argument. */ +! if (ea.cmdidx == CMD_wincmd && p != NULL) +! get_wincmd_addr_type(skipwhite(p), &ea); + #endif + } + +*** ../vim-7.4.579/src/version.c 2015-01-14 19:35:10.967756099 +0100 +--- src/version.c 2015-01-14 21:19:22.418461266 +0100 +*************** +*** 743,744 **** +--- 743,746 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 580, + /**/ + +-- +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 /// From 059d8ad0c8695137b525782fd847df6ca78ae5e1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Thu, 15 Jan 2015 15:56:05 +0100 Subject: [PATCH 0209/1616] - patchlevel 580 --- README.patches | 4 ++++ vim.spec | 13 ++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.patches b/README.patches index e96a3ddd..6c7be20d 100644 --- a/README.patches +++ b/README.patches @@ -598,3 +598,7 @@ Individual patches for Vim 7.4: 2177 7.4.574 no error for eval('$') 16995 7.4.575 Unicode character properties are outdated 4671 7.4.576 redrawing problem with 'relativenumber' and 'linebreak' + 2595 7.4.577 matching with virtual column has overhead on very long lines + 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 diff --git a/vim.spec b/vim.spec index d5288d05..6f4cf3b9 100644 --- a/vim.spec +++ b/vim.spec @@ -1,4 +1,4 @@ -%define patchlevel 576 +%define patchlevel 580 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -623,6 +623,10 @@ Patch573: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.573 Patch574: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.574 Patch575: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.575 Patch576: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.576 +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 Patch1559: 7.4.559.rhpatched Patch3000: vim-7.4-syntax.patch @@ -1348,6 +1352,10 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch574 -p0 %patch575 -p0 %patch576 -p0 +%patch577 -p0 +%patch578 -p0 +%patch579 -p0 +%patch580 -p0 # install spell files %if %{withvimspell} @@ -1865,6 +1873,9 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Jan 15 2015 Karsten Hopp 7.4.580-1 +- patchlevel 580 + * Wed Jan 14 2015 Karsten Hopp 7.4.576-1 - patchlevel 576 From 9218a9dcae8ecd0d1d9c55d2618c1960440e2aa1 Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Sun, 18 Jan 2015 18:00:04 +0100 Subject: [PATCH 0210/1616] - 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 0211/1616] - 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 0212/1616] - 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 0213/1616] - 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 0214/1616] - 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 0215/1616] - 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 0216/1616] - 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 0217/1616] - 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 0218/1616] - 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 0219/1616] - 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 0220/1616] - 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 0221/1616] - 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 0222/1616] 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 0223/1616] - 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 0224/1616] - 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 0225/1616] - 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 0226/1616] - 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 0227/1616] - 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 0228/1616] - 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 0229/1616] - 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 0230/1616] - 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 0231/1616] - 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 0232/1616] - 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 0233/1616] - 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 0234/1616] - 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 0235/1616] - 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 0236/1616] - 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 0237/1616] - 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 0238/1616] - 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 0239/1616] - 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 0240/1616] - 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 0241/1616] - 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 0242/1616] - 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 0243/1616] - 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 0244/1616] - 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 0245/1616] - 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 0246/1616] - 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 0247/1616] - 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 0248/1616] - 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 0249/1616] - 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 0250/1616] - 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 0251/1616] - 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 0252/1616] - 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 0253/1616] - 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 0254/1616] - 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 0255/1616] - 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 0256/1616] - 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 0257/1616] - 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 0258/1616] - 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 0259/1616] - 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 0260/1616] - 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 0261/1616] - 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 0262/1616] - 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 0263/1616] - 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 0264/1616] - 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 0265/1616] - 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 0266/1616] - 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 0267/1616] - 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 0268/1616] - 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 0269/1616] - 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 0270/1616] 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 0271/1616] 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 0272/1616] - 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 0273/1616] - 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 0274/1616] - 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 0275/1616] - 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 0276/1616] - 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 0277/1616] - 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 0278/1616] - 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 0279/1616] - 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 0280/1616] - 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 0281/1616] - 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 0282/1616] - 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 0283/1616] - 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 0284/1616] 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 0285/1616] 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 0286/1616] 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 0287/1616] 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 0288/1616] 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 0289/1616] - 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 0290/1616] - 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 0291/1616] - 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 0292/1616] - 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 0293/1616] - 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 0294/1616] - 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 0295/1616] - 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 0296/1616] - 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 0297/1616] - 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 0298/1616] - 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 0299/1616] 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 0300/1616] - 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 0301/1616] - 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 0302/1616] - 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 0303/1616] - 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 0304/1616] - 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 0305/1616] - 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 0306/1616] - 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 0307/1616] - 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 0308/1616] - 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 0309/1616] - 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 0310/1616] - 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 0311/1616] - 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 0312/1616] - 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 0313/1616] - 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 0314/1616] 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 0315/1616] - 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 0316/1616] - 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 0317/1616] - 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 0318/1616] - 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 0319/1616] - 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 0320/1616] - 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 0321/1616] - 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 0322/1616] - 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 0323/1616] - 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 0324/1616] - 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 0325/1616] - 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 0326/1616] - 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 0327/1616] - 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 0328/1616] - 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 0329/1616] - 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 0330/1616] - 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 0331/1616] - 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 0332/1616] - 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 0333/1616] - 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 0334/1616] - 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 0335/1616] - 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 0336/1616] - 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 0337/1616] - 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 0338/1616] - 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 0339/1616] - 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 0340/1616] - 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 0341/1616] - 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 0342/1616] - 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 0343/1616] - 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 0344/1616] - 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 0345/1616] - 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 0346/1616] 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 0347/1616] - 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 0348/1616] - 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 0349/1616] - 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 0350/1616] - 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 0351/1616] - 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 0352/1616] - 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 0353/1616] - 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 0354/1616] - 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 0355/1616] - 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 0356/1616] - 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 0357/1616] - 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 0358/1616] - 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 0359/1616] - 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 0360/1616] - 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 0361/1616] - 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 0362/1616] - 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 0363/1616] - 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 0364/1616] - 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 0365/1616] - 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 0366/1616] - 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 0367/1616] - 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 0368/1616] - 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 0369/1616] - 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 0370/1616] - 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 0371/1616] - 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 0372/1616] - 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 0373/1616] - 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 0374/1616] - 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 0375/1616] - 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 0376/1616] - 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 0377/1616] - 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 0378/1616] - 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 0379/1616] - 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 0380/1616] - 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 0381/1616] - 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 0382/1616] - 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 0383/1616] - 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 0384/1616] - 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 0385/1616] - 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 0386/1616] - 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 0387/1616] - 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 0388/1616] - 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 0389/1616] - 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 0390/1616] - 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 0391/1616] - 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 0392/1616] - 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 0393/1616] - 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 0394/1616] - 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 0395/1616] - 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 0396/1616] - 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 0397/1616] - 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 0398/1616] - 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 0399/1616] - 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 0400/1616] - 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 0401/1616] - 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 0402/1616] - 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 0403/1616] - 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 0404/1616] - 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 0405/1616] - 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 0406/1616] - 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 0407/1616] - 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 0408/1616] - 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 0409/1616] - 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 0410/1616] - 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 0411/1616] - 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 0412/1616] 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 0413/1616] - 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 0414/1616] - 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 0415/1616] - 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 0416/1616] - 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 0417/1616] - 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 0418/1616] - 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 0419/1616] - 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 0420/1616] - 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 0421/1616] - 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 0422/1616] 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 0423/1616] 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 0424/1616] - 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 0425/1616] - 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 0426/1616] 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 0427/1616] - 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 0428/1616] - 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 0429/1616] - 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 0430/1616] - 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 0431/1616] - 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 0432/1616] - 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 0433/1616] - 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 0434/1616] - 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 0435/1616] - 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 0436/1616] - 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 0437/1616] - 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 0438/1616] - 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 0439/1616] - 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 0440/1616] - 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 0441/1616] - 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 0442/1616] - 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 0443/1616] - 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 0444/1616] - 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 0445/1616] - 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 0446/1616] - 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 0447/1616] - 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 0448/1616] - 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 0449/1616] - 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 0450/1616] - 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 0451/1616] - 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 0452/1616] - 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 0453/1616] - 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 0454/1616] - 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 0455/1616] - 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 0456/1616] - 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 0457/1616] - 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 0458/1616] - 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 0459/1616] - 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 0460/1616] - 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 0461/1616] - 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 0462/1616] - 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 0463/1616] - 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 0464/1616] - 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 0465/1616] - 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 0466/1616] 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 0467/1616] - 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 0468/1616] - 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 0469/1616] - 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 0470/1616] - 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 0471/1616] - 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 0472/1616] - 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 0473/1616] - 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 0474/1616] - 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 0475/1616] - 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 0476/1616] - 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 0477/1616] - 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 0478/1616] - 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 0479/1616] - 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 0480/1616] - 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 0481/1616] - 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 0482/1616] - 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 0483/1616] - 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 0484/1616] - 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 0485/1616] - 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 0486/1616] - 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 0487/1616] - 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 0488/1616] - 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 0489/1616] - 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 0490/1616] - 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 0491/1616] - 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 0492/1616] - 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 0493/1616] - 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 0494/1616] - 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 0495/1616] - 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 0496/1616] - 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 0497/1616] - 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 0498/1616] - 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 0499/1616] - 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 0500/1616] - 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 0501/1616] - 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 0502/1616] - 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 0503/1616] - 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 0504/1616] - 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 0505/1616] - 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 0506/1616] - 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 0507/1616] - 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 0508/1616] - 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 0509/1616] - 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 0510/1616] - 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 0511/1616] - 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 0512/1616] - 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 0513/1616] - 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 0514/1616] - 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 0515/1616] - 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 0516/1616] - 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 0517/1616] - 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 0518/1616] - 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 0519/1616] - 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 0520/1616] - 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 0521/1616] - 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 0522/1616] - 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 0523/1616] - 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 0524/1616] - 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 0525/1616] - 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 0526/1616] - 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 0527/1616] 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 0528/1616] - 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 0529/1616] - 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 0530/1616] - 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 0531/1616] - 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 0532/1616] - 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 0533/1616] - 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 0534/1616] - 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 0535/1616] - 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 0536/1616] - 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 0537/1616] - 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 0538/1616] - 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 0539/1616] - 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 0540/1616] - 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 0541/1616] - 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 0542/1616] - 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 0543/1616] - 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 0544/1616] - 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 0545/1616] - 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 0546/1616] - 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 0547/1616] - 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 0548/1616] - 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 0549/1616] - 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 0550/1616] - 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 0551/1616] - 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 0552/1616] - 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 0553/1616] - 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 0554/1616] - 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 0555/1616] - 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 0556/1616] - 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 0557/1616] - 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 0558/1616] - 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 0559/1616] - 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 0560/1616] - 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 0561/1616] - 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 0562/1616] - 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 0563/1616] - 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 0564/1616] - 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 0565/1616] - 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 0566/1616] - 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 0567/1616] - 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 0568/1616] - 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 0569/1616] - 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 0570/1616] - 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 0571/1616] - 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 0572/1616] - 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 0573/1616] - 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 0574/1616] - 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 0575/1616] - 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 0576/1616] - 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 0577/1616] - 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 0578/1616] - 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 0579/1616] - 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 0580/1616] - 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 0581/1616] - 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 0582/1616] 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 0583/1616] 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 0584/1616] - 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 0585/1616] - 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 0586/1616] - 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 0587/1616] - 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 0588/1616] - 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 0589/1616] - 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 0590/1616] - 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 0591/1616] - 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 0592/1616] - 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 0593/1616] - 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 0594/1616] - 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 0595/1616] - 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 0596/1616] - 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 0597/1616] - 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 0598/1616] - 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 0599/1616] - 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 0600/1616] - 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 0601/1616] - 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 0602/1616] - 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 0603/1616] - 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 0604/1616] - 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 0605/1616] - 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 0606/1616] - 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 0607/1616] - 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 0608/1616] - 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 0609/1616] - 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 0610/1616] - 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 0611/1616] - 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 0612/1616] - 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 0613/1616] - 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 0614/1616] - 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 0615/1616] - 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 0616/1616] - 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 0617/1616] - 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 0618/1616] - 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 0619/1616] - 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 0620/1616] - 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 0621/1616] - 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 0622/1616] - 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 0623/1616] - 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 0624/1616] - 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 0625/1616] - 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 0626/1616] - 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 0627/1616] - 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 0628/1616] - 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 0629/1616] - 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 0630/1616] 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 0631/1616] 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Ă±Å„Å†ÅˆÅ‰á¹…á¹‰ 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Ă±Å„Å†ÅˆÅ‰á¹…á¹‰ 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 = '.è.' " 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 = '.è.' -+ :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 = '.è.' " 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