From: Adam Gołębiowski Date: Sun, 15 Jan 2012 01:27:44 +0000 (+0000) Subject: - new X-Git-Tag: auto/th/vim-7_3_401-1 X-Git-Url: https://git.pld-linux.org/?a=commitdiff_plain;h=d034a75dc0f63e59d6d169c97aa42c9b6cde7bce;p=packages%2Fvim.git - new Changed files: 7.3.373 -> 1.1 7.3.374 -> 1.1 7.3.375 -> 1.1 7.3.376 -> 1.1 7.3.377 -> 1.1 7.3.378 -> 1.1 7.3.379 -> 1.1 7.3.380 -> 1.1 7.3.381 -> 1.1 7.3.382 -> 1.1 7.3.383 -> 1.1 7.3.384 -> 1.1 7.3.385 -> 1.1 7.3.386 -> 1.1 7.3.387 -> 1.1 7.3.388 -> 1.1 7.3.389 -> 1.1 7.3.390 -> 1.1 7.3.391 -> 1.1 7.3.392 -> 1.1 7.3.393 -> 1.1 7.3.394 -> 1.1 7.3.395 -> 1.1 7.3.396 -> 1.1 7.3.397 -> 1.1 7.3.398 -> 1.1 7.3.399 -> 1.1 7.3.400 -> 1.1 7.3.401 -> 1.1 --- diff --git a/7.3.373 b/7.3.373 new file mode 100644 index 0000000..3e8937a --- /dev/null +++ b/7.3.373 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.373 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.373 (after 7.3.366) +Problem: A tags file with an extremely long name may cause an infinite loop. +Solution: When encountering a long name switch to linear search. +Files: src/tag.c + + +*** ../vim-7.3.372/src/tag.c 2011-12-08 15:12:08.000000000 +0100 +--- src/tag.c 2011-12-14 14:13:28.000000000 +0100 +*************** +*** 1854,1860 **** + + if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic) + { +! /* binary search won't work for ignoring case, use linear + * search. */ + linear = TRUE; + state = TS_LINEAR; +--- 1854,1860 ---- + + if (state == TS_BINARY && orgpat.regmatch.rm_ic && !sortic) + { +! /* Binary search won't work for ignoring case, use linear + * search. */ + linear = TRUE; + state = TS_LINEAR; +*************** +*** 1922,1927 **** +--- 1922,1940 ---- + MSG(_("Ignoring long line in tags file")); + verbose_leave(); + } ++ #ifdef FEAT_TAG_BINS ++ if (state != TS_LINEAR) ++ { ++ /* Avoid getting stuck. */ ++ linear = TRUE; ++ state = TS_LINEAR; ++ # ifdef HAVE_FSEEKO ++ fseeko(fp, search_info.low_offset, SEEK_SET); ++ # else ++ fseek(fp, (long)search_info.low_offset, SEEK_SET); ++ # endif ++ } ++ #endif + continue; + } + +*** ../vim-7.3.372/src/version.c 2011-12-08 18:44:47.000000000 +0100 +--- src/version.c 2011-12-14 14:12:06.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 373, + /**/ + +-- +ZOOT: I'm afraid our life must seem very dull and quiet compared to yours. + We are but eightscore young blondes, all between sixteen and + nineteen-and-a-half, cut off in this castle, with no one to protect us. + Oooh. It is a lonely life ... bathing ... dressing ... undressing ... + making exciting underwear.... + "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.3.374 b/7.3.374 new file mode 100644 index 0000000..b312828 --- /dev/null +++ b/7.3.374 @@ -0,0 +1,59 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.374 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.374 +Problem: ++encoding does not work properly. +Solution: Recognize ++encoding before ++enc. (Charles Cooper) +Files: src/ex_docmd.c + + +*** ../vim-7.3.373/src/ex_docmd.c 2011-10-20 21:58:20.000000000 +0200 +--- src/ex_docmd.c 2011-12-14 14:46:05.000000000 +0100 +*************** +*** 4840,4851 **** + #ifdef FEAT_MBYTE + else if (STRNCMP(arg, "enc", 3) == 0) + { +! arg += 3; +! pp = &eap->force_enc; +! } +! else if (STRNCMP(arg, "encoding", 8) == 0) +! { +! arg += 8; + pp = &eap->force_enc; + } + else if (STRNCMP(arg, "bad", 3) == 0) +--- 4840,4849 ---- + #ifdef FEAT_MBYTE + else if (STRNCMP(arg, "enc", 3) == 0) + { +! if (STRNCMP(arg, "encoding", 8) == 0) +! arg += 8; +! else +! arg += 3; + pp = &eap->force_enc; + } + else if (STRNCMP(arg, "bad", 3) == 0) +*** ../vim-7.3.373/src/version.c 2011-12-14 14:15:12.000000000 +0100 +--- src/version.c 2011-12-14 14:44:01.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 374, + /**/ + +-- +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.3.375 b/7.3.375 new file mode 100644 index 0000000..6f15fea --- /dev/null +++ b/7.3.375 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.375 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.375 +Problem: Duplicate return statement. +Solution: Remove the superfluous one. (Dominique Pelle) +Files: src/gui_mac.c + + +*** ../vim-7.3.374/src/gui_mac.c 2011-06-19 01:14:22.000000000 +0200 +--- src/gui_mac.c 2011-12-10 17:20:59.000000000 +0100 +*************** +*** 3216,3222 **** + { + /* TODO: + * This proc is called when Normal is set to a value +! * so what msut be done? I don't know + */ + } + +--- 3216,3222 ---- + { + /* TODO: + * This proc is called when Normal is set to a value +! * so what must be done? I don't know + */ + } + +*************** +*** 3303,3309 **** + *x = bounds.left; + *y = bounds.top; + return OK; +- return FAIL; + } + + /* +--- 3303,3308 ---- +*** ../vim-7.3.374/src/version.c 2011-12-14 14:49:41.000000000 +0100 +--- src/version.c 2011-12-14 15:06:01.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 375, + /**/ + +-- +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.3.376 b/7.3.376 new file mode 100644 index 0000000..1e20743 --- /dev/null +++ b/7.3.376 @@ -0,0 +1,57 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.376 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.376 +Problem: Win32: Toolbar repainting does not work when the mouse pointer + hovers over a button. +Solution: Call DefWindowProc() when not handling an event. (Sergiu Dotenco) +Files: src/gui_w32.c + + +*** ../vim-7.3.375/src/gui_w32.c 2011-08-10 17:07:56.000000000 +0200 +--- src/gui_w32.c 2011-12-14 15:14:48.000000000 +0100 +*************** +*** 1101,1107 **** + return MyWindowProc(hwnd, uMsg, wParam, lParam); + } + +! return 1; + } + + /* +--- 1101,1107 ---- + return MyWindowProc(hwnd, uMsg, wParam, lParam); + } + +! return DefWindowProc(hwnd, uMsg, wParam, lParam); + } + + /* +*** ../vim-7.3.375/src/version.c 2011-12-14 15:07:11.000000000 +0100 +--- src/version.c 2011-12-14 15:23:10.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 376, + /**/ + +-- + 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.3.377 b/7.3.377 new file mode 100644 index 0000000..1a2df1d --- /dev/null +++ b/7.3.377 @@ -0,0 +1,406 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.377 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.377 +Problem: No support for bitwise AND, OR, XOR and invert. +Solution: Add and(), or(), invert() and xor() functions. +Files: src/eval.c, src/testdir/test49.in, src/testdir/test65.in, + src/testdir/test65.ok, runtime/doc/eval.txt + + +*** ../vim-7.3.376/src/eval.c 2011-11-30 15:19:25.000000000 +0100 +--- src/eval.c 2011-12-11 13:49:31.000000000 +0100 +*************** +*** 474,479 **** +--- 474,480 ---- + static void f_acos __ARGS((typval_T *argvars, typval_T *rettv)); + #endif + static void f_add __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_and __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_append __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_argc __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_argidx __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 602,607 **** +--- 603,609 ---- + static void f_inputsave __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_inputsecret __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_insert __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_invert __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_isdirectory __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_islocked __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_items __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 640,645 **** +--- 642,648 ---- + #endif + static void f_nextnonblank __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_nr2char __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_or __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_pathshorten __ARGS((typval_T *argvars, typval_T *rettv)); + #ifdef FEAT_FLOAT + static void f_pow __ARGS((typval_T *argvars, typval_T *rettv)); +*************** +*** 751,756 **** +--- 754,760 ---- + static void f_winsaveview __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_winwidth __ARGS((typval_T *argvars, typval_T *rettv)); + static void f_writefile __ARGS((typval_T *argvars, typval_T *rettv)); ++ static void f_xor __ARGS((typval_T *argvars, typval_T *rettv)); + + static int list2fpos __ARGS((typval_T *arg, pos_T *posp, int *fnump)); + static pos_T *var2fpos __ARGS((typval_T *varp, int dollar_lnum, int *fnum)); +*************** +*** 7715,7720 **** +--- 7719,7725 ---- + {"acos", 1, 1, f_acos}, /* WJMc */ + #endif + {"add", 2, 2, f_add}, ++ {"and", 2, 2, f_and}, + {"append", 2, 2, f_append}, + {"argc", 0, 0, f_argc}, + {"argidx", 0, 0, f_argidx}, +*************** +*** 7850,7855 **** +--- 7855,7861 ---- + {"inputsave", 0, 0, f_inputsave}, + {"inputsecret", 1, 2, f_inputsecret}, + {"insert", 2, 3, f_insert}, ++ {"invert", 1, 1, f_invert}, + {"isdirectory", 1, 1, f_isdirectory}, + {"islocked", 1, 1, f_islocked}, + {"items", 1, 1, f_items}, +*************** +*** 7888,7893 **** +--- 7894,7900 ---- + #endif + {"nextnonblank", 1, 1, f_nextnonblank}, + {"nr2char", 1, 1, f_nr2char}, ++ {"or", 2, 2, f_or}, + {"pathshorten", 1, 1, f_pathshorten}, + #ifdef FEAT_FLOAT + {"pow", 2, 2, f_pow}, +*************** +*** 7999,8004 **** +--- 8006,8012 ---- + {"winsaveview", 0, 0, f_winsaveview}, + {"winwidth", 1, 1, f_winwidth}, + {"writefile", 2, 3, f_writefile}, ++ {"xor", 2, 2, f_xor}, + }; + + #if defined(FEAT_CMDL_COMPL) || defined(PROTO) +*************** +*** 8572,8577 **** +--- 8580,8597 ---- + } + + /* ++ * "and(expr, expr)" function ++ */ ++ static void ++ f_and(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL) ++ & get_tv_number_chk(&argvars[1], NULL); ++ } ++ ++ /* + * "append(lnum, string/list)" function + */ + static void +*************** +*** 12958,12963 **** +--- 12978,12994 ---- + } + + /* ++ * "invert(expr)" function ++ */ ++ static void ++ f_invert(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = ~get_tv_number_chk(&argvars[0], NULL); ++ } ++ ++ /* + * "isdirectory()" function + */ + static void +*************** +*** 14108,14113 **** +--- 14139,14156 ---- + } + + /* ++ * "or(expr, expr)" function ++ */ ++ static void ++ f_or(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL) ++ | get_tv_number_chk(&argvars[1], NULL); ++ } ++ ++ /* + * "pathshorten()" function + */ + static void +*************** +*** 18394,18399 **** +--- 18437,18455 ---- + } + + /* ++ * "xor(expr, expr)" function ++ */ ++ static void ++ f_xor(argvars, rettv) ++ typval_T *argvars; ++ typval_T *rettv; ++ { ++ rettv->vval.v_number = get_tv_number_chk(&argvars[0], NULL) ++ ^ get_tv_number_chk(&argvars[1], NULL); ++ } ++ ++ ++ /* + * Translate a String variable into a position. + * Returns NULL when there is an error. + */ +*** ../vim-7.3.376/src/testdir/test65.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test65.in 2011-12-11 13:55:06.000000000 +0100 +*************** +*** 1,4 **** +! Test for floating point. + + STARTTEST + :so small.vim +--- 1,4 ---- +! Test for floating point and logical operators. + + STARTTEST + :so small.vim +*************** +*** 72,77 **** +--- 72,94 ---- + :$put ='float2nr' + :$put =float2nr(123.456) + :$put =float2nr(-123.456) ++ :$put ='AND' ++ :$put =and(127, 127) ++ :$put =and(127, 16) ++ :$put =and(127, 128) ++ :$put ='OR' ++ :$put =or(16, 7) ++ :$put =or(8, 7) ++ :$put =or(0, 123) ++ :$put ='XOR' ++ :$put =xor(127, 127) ++ :$put =xor(127, 16) ++ :$put =xor(127, 128) ++ :$put ='invert' ++ :$put =and(invert(127), 65535) ++ :$put =and(invert(16), 65535) ++ :$put =and(invert(128), 65535) ++ :$put =invert(1.0) + :/^Results/,$wq! test.out + ENDTEST + +*** ../vim-7.3.376/src/testdir/test65.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test65.ok 2011-12-11 13:55:30.000000000 +0100 +*************** +*** 54,56 **** +--- 54,73 ---- + float2nr + 123 + -123 ++ AND ++ 127 ++ 16 ++ 0 ++ OR ++ 23 ++ 15 ++ 123 ++ XOR ++ 0 ++ 111 ++ 255 ++ invert ++ 65408 ++ 65519 ++ 65407 ++ 0 +*** ../vim-7.3.376/runtime/doc/eval.txt 2011-06-19 02:55:32.000000000 +0200 +--- runtime/doc/eval.txt 2011-12-14 15:28:23.000000000 +0100 +*************** +*** 798,808 **** + For |Lists| only "+" is possible and then both expr6 must be a list. The + result is a new list with the two lists Concatenated. + +! expr7 * expr7 .. number multiplication *expr-star* +! expr7 / expr7 .. number division *expr-/* +! expr7 % expr7 .. number modulo *expr-%* + + For all, except ".", Strings are converted to Numbers. + + Note the difference between "+" and ".": + "123" + "456" = 579 +--- 800,811 ---- + For |Lists| only "+" is possible and then both expr6 must be a list. The + result is a new list with the two lists Concatenated. + +! expr7 * expr7 .. Number multiplication *expr-star* +! expr7 / expr7 .. Number division *expr-/* +! expr7 % expr7 .. Number modulo *expr-%* + + For all, except ".", Strings are converted to Numbers. ++ For bitwise operators see |and()|, |or()| and |xor()|. + + Note the difference between "+" and ".": + "123" + "456" = 579 +*************** +*** 1679,1684 **** +--- 1688,1694 ---- + abs( {expr}) Float or Number absolute value of {expr} + acos( {expr}) Float arc cosine of {expr} + add( {list}, {item}) List append {item} to |List| {list} ++ and( {expr}, {expr}) Number bitwise AND + append( {lnum}, {string}) Number append {string} below line {lnum} + append( {lnum}, {list}) Number append lines {list} below line {lnum} + argc() Number number of files in the argument list +*************** +*** 1817,1822 **** +--- 1827,1833 ---- + inputsave() Number save and clear typeahead + inputsecret( {prompt} [, {text}]) String like input() but hiding the text + insert( {list}, {item} [, {idx}]) List insert {item} in {list} [before {idx}] ++ invert( {expr}) Number bitwise invert + isdirectory( {directory}) Number TRUE if {directory} is a directory + islocked( {expr}) Number TRUE if {expr} is locked + items( {dict}) List key-value pairs in {dict} +*************** +*** 1856,1861 **** +--- 1868,1874 ---- + mzeval( {expr}) any evaluate |MzScheme| expression + nextnonblank( {lnum}) Number line nr of non-blank line >= {lnum} + nr2char( {expr}) String single char with ASCII value {expr} ++ or( {expr}, {expr}) Number bitwise OR + pathshorten( {expr}) String shorten directory names in a path + pow( {x}, {y}) Float {x} to the power of {y} + prevnonblank( {lnum}) Number line nr of non-blank line <= {lnum} +*************** +*** 1978,1983 **** +--- 1992,1998 ---- + 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 + + abs({expr}) *abs()* + Return the absolute value of {expr}. When {expr} evaluates to +*************** +*** 2017,2022 **** +--- 2032,2044 ---- + Use |insert()| to add an item at another position. + + ++ and({expr}, {expr}) *and()* ++ Bitwise AND on the two arguments. The arguments are converted ++ to a number. A List, Dict or Float argument causes an error. ++ Example: > ++ :let flag = and(bits, 0x80) ++ ++ + append({lnum}, {expr}) *append()* + When {expr} is a |List|: Append each item of the |List| as a + text line below line {lnum} in the current buffer. +*************** +*** 3770,3775 **** +--- 3798,3808 ---- + Note that when {item} is a |List| it is inserted as a single + item. Use |extend()| to concatenate |Lists|. + ++ invert({expr}) *invert()* ++ Bitwise invert. The argument is converted to a number. A ++ List, Dict or Float argument causes an error. Example: > ++ :let bits = invert(bits) ++ + isdirectory({directory}) *isdirectory()* + The result is a Number, which is non-zero when a directory + with the name {directory} exists. If {directory} doesn't +*************** +*** 4334,4339 **** +--- 4368,4380 ---- + call setpos('.', save_cursor) + < Also see |setpos()|. + ++ or({expr}, {expr}) *or()* ++ Bitwise OR on the two arguments. The arguments are converted ++ to a number. A List, Dict or Float argument causes an error. ++ Example: > ++ :let bits = or(bits, 0x80) ++ ++ + pathshorten({expr}) *pathshorten()* + Shorten directory names in the path {expr} and return the + result. The tail, the file name, is kept as-is. The other +*************** +*** 6097,6103 **** + To copy a file byte for byte: > + :let fl = readfile("foo", "b") + :call writefile(fl, "foocopy", "b") +! < + + *feature-list* + There are three types of features: +--- 6149,6163 ---- + To copy a file byte for byte: > + :let fl = readfile("foo", "b") + :call writefile(fl, "foocopy", "b") +! +! +! xor({expr}, {expr}) *xor()* +! Bitwise XOR on the two arguments. The arguments are converted +! to a number. A List, Dict or Float argument causes an error. +! Example: > +! :let bits = xor(bits, 0x80) +! +! + + *feature-list* + There are three types of features: +*** ../vim-7.3.376/src/version.c 2011-12-14 15:23:53.000000000 +0100 +--- src/version.c 2011-12-14 15:28:39.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 377, + /**/ + +-- +DINGO: Wicked wicked Zoot ... she is a bad person and she must pay the + penalty. And here in Castle Anthrax, we have but one punishment + ... you must tie her down on a bed ... and spank her. Come! +GIRLS: A spanking! A spanking! + "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.3.378 b/7.3.378 new file mode 100644 index 0000000..8ad3d70 --- /dev/null +++ b/7.3.378 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.378 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.378 +Problem: When cross-compiling the check for uint32_t fails. +Solution: Only give a warning message. (Maksim Melnikau) +Files: src/configure.in, src/auto/configure + + +*** ../vim-7.3.377/src/configure.in 2011-12-08 15:17:28.000000000 +0100 +--- src/configure.in 2011-12-14 19:18:36.000000000 +0100 +*************** +*** 3283,3289 **** + }], + AC_MSG_RESULT(ok), + AC_MSG_ERROR([WRONG! uint32_t not defined correctly.]), +! AC_MSG_ERROR([could not compile program using uint32_t.])) + + dnl Check for memmove() before bcopy(), makes memmove() be used when both are + dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5. +--- 3283,3289 ---- + }], + AC_MSG_RESULT(ok), + AC_MSG_ERROR([WRONG! uint32_t not defined correctly.]), +! AC_MSG_WARN([cannot check uint32_t when cross-compiling.])) + + dnl Check for memmove() before bcopy(), makes memmove() be used when both are + dnl present, fixes problem with incompatibility between Solaris 2.4 and 2.5. +*** ../vim-7.3.377/src/auto/configure 2011-12-08 15:17:28.000000000 +0100 +--- src/auto/configure 2011-12-14 19:20:55.000000000 +0100 +*************** +*** 11777,11783 **** + { $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 : +! as_fn_error "could not compile program using uint32_t." "$LINENO" 5 + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +--- 11777,11784 ---- + { $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 : +! { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot check uint32_t when cross-compiling." >&5 +! $as_echo "$as_me: WARNING: cannot check uint32_t when cross-compiling." >&2;} + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ +*** ../vim-7.3.377/src/version.c 2011-12-14 15:32:44.000000000 +0100 +--- src/version.c 2011-12-14 19:21:08.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 378, + /**/ + +-- + ### Hiroshima 45, Chernobyl 86, Windows 95 ### + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.379 b/7.3.379 new file mode 100644 index 0000000..fd87f9a --- /dev/null +++ b/7.3.379 @@ -0,0 +1,112 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.379 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.379 +Problem: C-indenting wrong for static enum. +Solution: Skip over "static". (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.3.378/src/misc1.c 2011-11-30 17:20:18.000000000 +0100 +--- src/misc1.c 2011-12-14 19:37:48.000000000 +0100 +*************** +*** 5138,5143 **** +--- 5138,5146 ---- + if (STRNCMP(s, "typedef", 7) == 0 && !vim_isIDc(s[7])) + s = cin_skipcomment(s + 7); + ++ if (STRNCMP(s, "static", 6) == 0 && !vim_isIDc(s[6])) ++ s = cin_skipcomment(s + 6); ++ + if (STRNCMP(s, "enum", 4) == 0 && !vim_isIDc(s[4])) + return TRUE; + +*** ../vim-7.3.378/src/testdir/test3.in 2011-11-30 17:20:18.000000000 +0100 +--- src/testdir/test3.in 2011-12-14 20:03:11.000000000 +0100 +*************** +*** 299,316 **** + + enum soppie + { +! yes = 0, +! no, +! maybe + }; + + typedef enum soppie + { +! yes = 0, +! no, +! maybe + }; + + { + int a, + b; +--- 299,323 ---- + + enum soppie + { +! yes = 0, +! no, +! maybe + }; + + typedef enum soppie + { +! yes = 0, +! no, +! maybe + }; + ++ static enum ++ { ++ yes = 0, ++ no, ++ maybe ++ } soppie; ++ + { + int a, + b; +*** ../vim-7.3.378/src/testdir/test3.ok 2011-11-30 17:20:18.000000000 +0100 +--- src/testdir/test3.ok 2011-12-14 19:37:48.000000000 +0100 +*************** +*** 299,304 **** +--- 299,311 ---- + maybe + }; + ++ static enum ++ { ++ yes = 0, ++ no, ++ maybe ++ } soppie; ++ + { + int a, + b; +*** ../vim-7.3.378/src/version.c 2011-12-14 19:22:29.000000000 +0100 +--- src/version.c 2011-12-14 20:02:19.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 379, + /**/ + +-- +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 /// diff --git a/7.3.380 b/7.3.380 new file mode 100644 index 0000000..a8f4bcf --- /dev/null +++ b/7.3.380 @@ -0,0 +1,318 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.380 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.380 +Problem: C-indenting wrong for a function header. +Solution: Skip to the start paren. (Lech Lorens) +Files: src/misc1.c, src/testdir/test3.in, src/testdir/test3.ok + + +*** ../vim-7.3.379/src/misc1.c 2011-12-14 20:05:17.000000000 +0100 +--- src/misc1.c 2011-12-14 20:16:43.000000000 +0100 +*************** +*** 4943,4949 **** + 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)); + static int cin_isif __ARGS((char_u *)); + static int cin_iselse __ARGS((char_u *)); + static int cin_isdo __ARGS((char_u *)); +--- 4943,4949 ---- + 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 *)); +*************** +*** 5585,5605 **** + * "sp" points to a string with the line. When looking at other lines it must + * be restored to the line. When it's NULL fetch lines here. + * "lnum" is where we start looking. + */ + static int +! cin_isfuncdecl(sp, first_lnum) + char_u **sp; + linenr_T first_lnum; + { + char_u *s; + linenr_T lnum = first_lnum; + int retval = FALSE; + + if (sp == NULL) + s = ml_get(lnum); + else + s = *sp; + + /* Ignore line starting with #. */ + if (cin_ispreproc(s)) + return FALSE; +--- 5585,5621 ---- + * "sp" points to a string with the line. When looking at other lines it must + * be restored to the line. When it's NULL fetch lines here. + * "lnum" is where we start looking. ++ * "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; + int retval = FALSE; ++ pos_T *trypos; ++ int just_started = TRUE; + + if (sp == NULL) + s = ml_get(lnum); + else + s = *sp; + ++ if (find_last_paren(s, '(', ')') ++ && (trypos = find_match_paren(ind_maxparen, ind_maxcomment)) != NULL) ++ { ++ lnum = trypos->lnum; ++ if (lnum < min_lnum) ++ return FALSE; ++ ++ s = ml_get(lnum); ++ } ++ + /* Ignore line starting with #. */ + if (cin_ispreproc(s)) + return FALSE; +*************** +*** 5650,5662 **** + /* Require a comma at end of the line or a comma or ')' at the + * start of next line. */ + s = skipwhite(s); +! if (!comma && *s != ',' && *s != ')') + break; + } + else if (cin_iscomment(s)) /* ignore comments */ + s = cin_skipcomment(s); + else + ++s; + } + + done: +--- 5666,5682 ---- + /* Require a comma at end of the line or a comma or ')' at the + * start of next line. */ + s = skipwhite(s); +! if (!just_started && (!comma && *s != ',' && *s != ')')) + break; ++ just_started = FALSE; + } + else if (cin_iscomment(s)) /* ignore comments */ + s = cin_skipcomment(s); + else ++ { + ++s; ++ just_started = FALSE; ++ } + } + + done: +*************** +*** 7158,7164 **** + * (it's a variable declaration). + */ + if (start_brace != BRACE_IN_COL0 +! || !cin_isfuncdecl(&l, curwin->w_cursor.lnum)) + { + /* if the line is terminated with another ',' + * it is a continued variable initialization. +--- 7178,7185 ---- + * (it's a variable declaration). + */ + 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. +*************** +*** 8019,8025 **** + && 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) + && !cin_isterminated(theline, FALSE, TRUE)) + { + amount = ind_func_type; +--- 8040,8048 ---- + && 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, +! ind_maxparen, ind_maxcomment) + && !cin_isterminated(theline, FALSE, TRUE)) + { + amount = ind_func_type; +*************** +*** 8125,8131 **** + * 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)) /* XXX */ + break; + l = ml_get_curline(); + +--- 8148,8155 ---- + * 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, +! ind_maxparen, ind_maxcomment)) /* XXX */ + break; + l = ml_get_curline(); + +*************** +*** 8173,8179 **** + * line (and the ones that follow) needs to be indented as + * parameters. + */ +! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum)) + { + amount = ind_param; + break; +--- 8197,8204 ---- + * line (and the ones that follow) needs to be indented as + * parameters. + */ +! if (cin_isfuncdecl(&l, curwin->w_cursor.lnum, 0, +! ind_maxparen, ind_maxcomment)) + { + amount = ind_param; + break; +*** ../vim-7.3.379/src/testdir/test3.in 2011-12-14 20:05:17.000000000 +0100 +--- src/testdir/test3.in 2011-12-14 20:11:24.000000000 +0100 +*************** +*** 1429,1435 **** + + STARTTEST + :set cino& +! 2kdd=4][ + ENDTEST + + void func(void) +--- 1429,1435 ---- + + STARTTEST + :set cino& +! 2kdd=7][ + ENDTEST + + void func(void) +*************** +*** 1478,1484 **** + 3, 4, + 5, 6}; + +! printf("Don't you dare indent this line incorrectly!\n); + } + + STARTTEST +--- 1478,1506 ---- + 3, 4, + 5, 6}; + +! printf("Don't you dare indent this line incorrectly!\n"); +! } +! +! void +! func4(a, b, +! c) +! int a; +! int b; +! int c; +! { +! } +! +! void +! func5( +! int a, +! int b) +! { +! } +! +! void +! func6( +! int a) +! { + } + + STARTTEST +*** ../vim-7.3.379/src/testdir/test3.ok 2011-12-14 20:05:17.000000000 +0100 +--- src/testdir/test3.ok 2011-12-14 20:11:24.000000000 +0100 +*************** +*** 1331,1337 **** + 3, 4, + 5, 6}; + +! printf("Don't you dare indent this line incorrectly!\n); + } + + +--- 1331,1359 ---- + 3, 4, + 5, 6}; + +! printf("Don't you dare indent this line incorrectly!\n"); +! } +! +! void +! func4(a, b, +! c) +! int a; +! int b; +! int c; +! { +! } +! +! void +! func5( +! int a, +! int b) +! { +! } +! +! void +! func6( +! int a) +! { + } + + +*** ../vim-7.3.379/src/version.c 2011-12-14 20:05:17.000000000 +0100 +--- src/version.c 2011-12-14 20:20:50.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 380, + /**/ + +-- +"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.3.381 b/7.3.381 new file mode 100644 index 0000000..b795737 --- /dev/null +++ b/7.3.381 @@ -0,0 +1,260 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.381 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.381 +Problem: Configure silently skips interfaces that won't work. +Solution: Add the --enable-fail_if_missing argument. (Shlomi Fish) +Files: src/Makefile, src/configure.in, src/auto/configure + + +*** ../vim-7.3.380/src/Makefile 2011-12-08 15:17:28.000000000 +0100 +--- src/Makefile 2011-12-14 20:49:26.000000000 +0100 +*************** +*** 389,394 **** +--- 389,399 ---- + #CONF_OPT_PLTHOME = --with-plthome=/usr/local/drscheme + #CONF_OPT_PLTHOME = --with-plthome=/home/me/mz + ++ # Uncomment the next line to fail if one of the requested language interfaces ++ # cannot be configured. Without this Vim will be build anyway, without ++ # the failing interfaces. ++ #CONF_OPT_FAIL = --enable-fail-if-missing ++ + # PERL + # Uncomment one of these when you want to include the Perl interface. + # First one is for static linking, second one for dynamic loading. +*************** +*** 1648,1654 **** + CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \ + ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \ +! $(CONF_OPT_DARWIN) $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \ + $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \ + $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \ + $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \ +--- 1653,1660 ---- + CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" CFLAGS="$(CFLAGS)" \ + LDFLAGS="$(LDFLAGS)" $(CONF_SHELL) srcdir="$(srcdir)" \ + ./configure $(CONF_OPT_GUI) $(CONF_OPT_X) $(CONF_OPT_XSMP) \ +! $(CONF_OPT_DARWIN) $(CONF_OPT_FAIL) \ +! $(CONF_OPT_PERL) $(CONF_OPT_PYTHON) $(CONF_OPT_PYTHON3) \ + $(CONF_OPT_TCL) $(CONF_OPT_RUBY) $(CONF_OPT_NLS) \ + $(CONF_OPT_CSCOPE) $(CONF_OPT_MULTIBYTE) $(CONF_OPT_INPUT) \ + $(CONF_OPT_OUTPUT) $(CONF_OPT_GPM) $(CONF_OPT_WORKSHOP) \ +*** ../vim-7.3.380/src/configure.in 2011-12-14 19:22:29.000000000 +0100 +--- src/configure.in 2011-12-14 20:46:36.000000000 +0100 +*************** +*** 28,33 **** +--- 28,43 ---- + AC_HEADER_STDC + AC_HEADER_SYS_WAIT + ++ dnl Check for the flag that fails if stuff are missing. ++ ++ AC_MSG_CHECKING(--enable-fail-if-missing argument) ++ AC_ARG_ENABLE(fail_if_missing, ++ [ --enable-fail-if-missing Fail if dependencies on additional features ++ specified on the command line are missing.], ++ [fail_if_missing="yes"], ++ [fail_if_missing="no"]) ++ AC_MSG_RESULT($fail_if_missing) ++ + dnl Set default value for CFLAGS if none is defined or it's empty + if test -z "$CFLAGS"; then + CFLAGS="-O" +*************** +*** 491,496 **** +--- 501,509 ---- + LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS" + fi + fi ++ if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then ++ AC_MSG_ERROR([could not configure lua]) ++ fi + AC_SUBST(LUA_SRC) + AC_SUBST(LUA_OBJ) + AC_SUBST(LUA_PRO) +*************** +*** 781,786 **** +--- 794,803 ---- + PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS" + fi + fi ++ ++ if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then ++ AC_MSG_ERROR([could not configure perl]) ++ fi + fi + AC_SUBST(shrpenv) + AC_SUBST(PERL_SRC) +*************** +*** 966,971 **** +--- 983,992 ---- + AC_MSG_RESULT(too old) + fi + fi ++ ++ if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then ++ AC_MSG_ERROR([could not configure python]) ++ fi + fi + + AC_SUBST(PYTHON_CONFDIR) +*************** +*** 1389,1394 **** +--- 1410,1418 ---- + AC_MSG_RESULT(too old; need Tcl version 8.0 or later) + fi + fi ++ if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then ++ AC_MSG_ERROR([could not configure Tcl]) ++ fi + fi + AC_SUBST(TCL_SRC) + AC_SUBST(TCL_OBJ) +*************** +*** 1469,1474 **** +--- 1493,1502 ---- + AC_MSG_RESULT(too old; need Ruby version 1.6.0 or later) + fi + fi ++ ++ if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then ++ AC_MSG_ERROR([could not configure Ruby]) ++ fi + fi + AC_SUBST(RUBY_SRC) + AC_SUBST(RUBY_OBJ) +*** ../vim-7.3.380/src/auto/configure 2011-12-14 19:22:29.000000000 +0100 +--- src/auto/configure 2011-12-14 20:49:51.000000000 +0100 +*************** +*** 741,746 **** +--- 741,747 ---- + ac_subst_files='' + ac_user_opts=' + enable_option_checking ++ enable_fail_if_missing + enable_darwin + with_mac_arch + with_developer_dir +*************** +*** 1418,1423 **** +--- 1419,1426 ---- + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --enable-fail-if-missing Fail if dependencies on additional features ++ specified on the command line are missing. + --disable-darwin Disable Darwin (Mac OS X) support. + --disable-selinux Don't check for SELinux support. + --disable-xsmp Disable XSMP session management +*************** +*** 3949,3954 **** +--- 3952,3970 ---- + fi + + ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking --enable-fail-if-missing argument" >&5 ++ $as_echo_n "checking --enable-fail-if-missing argument... " >&6; } ++ # Check whether --enable-fail_if_missing was given. ++ if test "${enable_fail_if_missing+set}" = set; then : ++ enableval=$enable_fail_if_missing; fail_if_missing="yes" ++ else ++ fail_if_missing="no" ++ fi ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $fail_if_missing" >&5 ++ $as_echo "$fail_if_missing" >&6; } ++ + if test -z "$CFLAGS"; then + CFLAGS="-O" + test "$GCC" = yes && CFLAGS="-O2 -fno-strength-reduce -Wall" +*************** +*** 4727,4732 **** +--- 4743,4751 ---- + LUA_CFLAGS="-DDYNAMIC_LUA_DLL=\\\"liblua${vi_cv_version_lua}.so$LUA_SONAME\\\" $LUA_CFLAGS" + fi + fi ++ if test "$fail_if_missing" = "yes" -a -z "$LUA_SRC"; then ++ as_fn_error "could not configure lua" "$LINENO" 5 ++ fi + + + +*************** +*** 5140,5145 **** +--- 5159,5168 ---- + PERL_CFLAGS="-DDYNAMIC_PERL_DLL=\\\"$libperl\\\" $PERL_CFLAGS" + fi + fi ++ ++ if test "$fail_if_missing" = "yes" -a "$perl_ok" != "yes"; then ++ as_fn_error "could not configure perl" "$LINENO" 5 ++ fi + fi + + +*************** +*** 5429,5434 **** +--- 5452,5461 ---- + $as_echo "too old" >&6; } + fi + fi ++ ++ if test "$fail_if_missing" = "yes" -a "$python_ok" != "yes"; then ++ as_fn_error "could not configure python" "$LINENO" 5 ++ fi + fi + + +*************** +*** 6216,6221 **** +--- 6243,6251 ---- + $as_echo "too old; need Tcl version 8.0 or later" >&6; } + fi + fi ++ if test "$fail_if_missing" = "yes" -a -z "$TCL_SRC"; then ++ as_fn_error "could not configure Tcl" "$LINENO" 5 ++ fi + fi + + +*************** +*** 6353,6358 **** +--- 6383,6392 ---- + $as_echo "too old; need Ruby version 1.6.0 or later" >&6; } + fi + fi ++ ++ if test "$fail_if_missing" = "yes" -a -z "$RUBY_OBJ"; then ++ as_fn_error "could not configure Ruby" "$LINENO" 5 ++ fi + fi + + +*** ../vim-7.3.380/src/version.c 2011-12-14 20:21:29.000000000 +0100 +--- src/version.c 2011-12-14 20:50:42.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 381, + /**/ + +-- +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.3.382 b/7.3.382 new file mode 100644 index 0000000..7f344e7 --- /dev/null +++ b/7.3.382 @@ -0,0 +1,173 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.382 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.382 (after 7.3.376) +Problem: IME characters are inserted twice. +Solution: Do not call DefWindowProc() if the event was handled. (Yasuhiro + Matsumoto) +Files: src/gui_w32.c + + +*** ../vim-7.3.381/src/gui_w32.c 2011-12-14 15:23:53.000000000 +0100 +--- src/gui_w32.c 2011-12-15 21:50:51.000000000 +0100 +*************** +*** 798,804 **** + if (pt.y < rect.top) + { + show_tabline_popup_menu(); +! return 0; + } + } + return MyWindowProc(hwnd, uMsg, wParam, lParam); +--- 798,804 ---- + if (pt.y < rect.top) + { + show_tabline_popup_menu(); +! return 0L; + } + } + return MyWindowProc(hwnd, uMsg, wParam, lParam); +*************** +*** 828,834 **** +--- 828,837 ---- + + case WM_ENDSESSION: + if (wParam) /* system only really goes down when wParam is TRUE */ ++ { + _OnEndSession(); ++ return 0L; ++ } + break; + + case WM_CHAR: +*************** +*** 866,872 **** + * are received, mouse pointer remains hidden. */ + return MyWindowProc(hwnd, uMsg, wParam, lParam); + #else +! return 0; + #endif + + case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */ +--- 869,875 ---- + * are received, mouse pointer remains hidden. */ + return MyWindowProc(hwnd, uMsg, wParam, lParam); + #else +! return 0L; + #endif + + case WM_SIZING: /* HANDLE_MSG doesn't seem to handle this one */ +*************** +*** 874,880 **** + + case WM_MOUSEWHEEL: + _OnMouseWheel(hwnd, HIWORD(wParam)); +! break; + + /* Notification for change in SystemParametersInfo() */ + case WM_SETTINGCHANGE: +--- 877,883 ---- + + case WM_MOUSEWHEEL: + _OnMouseWheel(hwnd, HIWORD(wParam)); +! return 0L; + + /* Notification for change in SystemParametersInfo() */ + case WM_SETTINGCHANGE: +*************** +*** 987,999 **** +--- 990,1008 ---- + case TCN_SELCHANGE: + if (gui_mch_showing_tabline() + && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd) ++ { + send_tabline_event(TabCtrl_GetCurSel(s_tabhwnd) + 1); ++ return 0L; ++ } + break; + + case NM_RCLICK: + if (gui_mch_showing_tabline() + && ((LPNMHDR)lParam)->hwndFrom == s_tabhwnd) ++ { + show_tabline_popup_menu(); ++ return 0L; ++ } + break; + # endif + default: +*************** +*** 1037,1042 **** +--- 1046,1052 ---- + out_flush(); + did_menu_tip = TRUE; + } ++ return 0L; + } + break; + #endif +*************** +*** 1079,1096 **** + case WM_IME_NOTIFY: + if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam)) + return MyWindowProc(hwnd, uMsg, wParam, lParam); +! break; + case WM_IME_COMPOSITION: + if (!_OnImeComposition(hwnd, wParam, lParam)) + return MyWindowProc(hwnd, uMsg, wParam, lParam); +! break; + #endif + + default: + if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0) + { /* handle MSH_MOUSEWHEEL messages for Intellimouse */ + _OnMouseWheel(hwnd, HIWORD(wParam)); +! break; + } + #ifdef MSWIN_FIND_REPLACE + else if (uMsg == s_findrep_msg && s_findrep_msg != 0) +--- 1089,1107 ---- + case WM_IME_NOTIFY: + if (!_OnImeNotify(hwnd, (DWORD)wParam, (DWORD)lParam)) + return MyWindowProc(hwnd, uMsg, wParam, lParam); +! return 1L; +! + case WM_IME_COMPOSITION: + if (!_OnImeComposition(hwnd, wParam, lParam)) + return MyWindowProc(hwnd, uMsg, wParam, lParam); +! return 1L; + #endif + + default: + if (uMsg == msh_msgmousewheel && msh_msgmousewheel != 0) + { /* handle MSH_MOUSEWHEEL messages for Intellimouse */ + _OnMouseWheel(hwnd, HIWORD(wParam)); +! return 0L; + } + #ifdef MSWIN_FIND_REPLACE + else if (uMsg == s_findrep_msg && s_findrep_msg != 0) +*** ../vim-7.3.381/src/version.c 2011-12-14 20:51:19.000000000 +0100 +--- src/version.c 2011-12-15 21:48:49.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 382, + /**/ + +-- +Even got a Datapoint 3600(?) with a DD50 connector instead of the +usual DB25... what a nightmare trying to figure out the pinout +for *that* with no spex... + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.383 b/7.3.383 new file mode 100644 index 0000000..c0ce6d9 --- /dev/null +++ b/7.3.383 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.383 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.383 +Problem: For EBCDIC pound sign is defined as 't'. +Solution: Correctly define POUND. +Files: src/ascii.h + + +*** ../vim-7.3.382/src/ascii.h 2011-09-02 14:18:14.000000000 +0200 +--- src/ascii.h 2011-12-17 21:38:36.000000000 +0100 +*************** +*** 123,129 **** + #define DCS 0x90 /* Device Control String */ + #define STERM 0x9c /* String Terminator */ + +! #define POUND '\xA3' + + #define CTRL_F_STR "\056" + #define CTRL_H_STR "\026" +--- 123,129 ---- + #define DCS 0x90 /* Device Control String */ + #define STERM 0x9c /* String Terminator */ + +! #define POUND 0xB1 + + #define CTRL_F_STR "\056" + #define CTRL_H_STR "\026" +*** ../vim-7.3.382/src/version.c 2011-12-15 21:51:32.000000000 +0100 +--- src/version.c 2011-12-23 12:46:08.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 383, + /**/ + +-- +Vim is like Emacs without all the typing. (John "Johann" Spetz) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.384 b/7.3.384 new file mode 100644 index 0000000..f75ff40 --- /dev/null +++ b/7.3.384 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.384 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.384 +Problem: Mapping CTRL-K in Insert mode breaks CTRL-X CTRL-K for dictionary + completion. +Solution: Add CTRL-K to the list of recognized keys. (James McCoy) +Files: src/edit.c + + +*** ../vim-7.3.383/src/edit.c 2011-10-26 17:04:23.000000000 +0200 +--- src/edit.c 2011-12-23 12:36:22.000000000 +0100 +*************** +*** 2183,2189 **** + || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P + || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V + || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O +! || c == Ctrl_S || c == 's'); + case CTRL_X_SCROLL: + return (c == Ctrl_Y || c == Ctrl_E); + case CTRL_X_WHOLE_LINE: +--- 2183,2189 ---- + || c == Ctrl_I || c == Ctrl_D || c == Ctrl_P + || c == Ctrl_N || c == Ctrl_T || c == Ctrl_V + || c == Ctrl_Q || c == Ctrl_U || c == Ctrl_O +! || c == Ctrl_S || c == Ctrl_K || c == 's'); + case CTRL_X_SCROLL: + return (c == Ctrl_Y || c == Ctrl_E); + case CTRL_X_WHOLE_LINE: +*** ../vim-7.3.383/src/version.c 2011-12-23 12:46:56.000000000 +0100 +--- src/version.c 2011-12-23 12:53:38.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 384, + /**/ + +-- +Q: Is selling software the same as selling hardware? +A: No, good hardware is sold new, good software has already been used by many. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.385 b/7.3.385 new file mode 100644 index 0000000..405a77f --- /dev/null +++ b/7.3.385 @@ -0,0 +1,69 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.385 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.385 +Problem: When using an expression mapping on the command line the cursor + ends up in the wrong place. (Yasuhiro Matsumoto) +Solution: Save and restore msg_col and msg_row when evaluating the + expression. +Files: src/getchar. + + +*** ../vim-7.3.384/src/getchar.c 2011-10-12 22:02:07.000000000 +0200 +--- src/getchar.c 2011-12-14 18:37:52.000000000 +0100 +*************** +*** 4510,4515 **** +--- 4510,4517 ---- + char_u *expr; + char_u *save_cmd; + pos_T save_cursor; ++ int save_msg_col; ++ int save_msg_row; + + /* Remove escaping of CSI, because "str" is in a format to be used as + * typeahead. */ +*************** +*** 4533,4544 **** +--- 4535,4550 ---- + #endif + set_vim_var_char(c); /* set v:char to the typed character */ + save_cursor = curwin->w_cursor; ++ save_msg_col = msg_col; ++ save_msg_row = msg_row; + p = eval_to_string(expr, NULL, FALSE); + --textlock; + #ifdef FEAT_EX_EXTRA + --ex_normal_lock; + #endif + curwin->w_cursor = save_cursor; ++ msg_col = save_msg_col; ++ msg_row = save_msg_row; + + restore_cmdline_alloc(save_cmd); + vim_free(expr); +*** ../vim-7.3.384/src/version.c 2011-12-23 13:14:58.000000000 +0100 +--- src/version.c 2011-12-23 14:53:23.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 385, + /**/ + +-- +`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 /// diff --git a/7.3.386 b/7.3.386 new file mode 100644 index 0000000..c903505 --- /dev/null +++ b/7.3.386 @@ -0,0 +1,55 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.386 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.386 +Problem: Test 83 fails when iconv does not support cp932. (raf) +Solution: Test if conversion works. (Yukihiro Nakadaira) +Files: src/testdir/test83.in + + +*** ../vim-7.3.385/src/testdir/test83.in 2011-10-12 19:53:31.000000000 +0200 +--- src/testdir/test83.in 2011-12-21 21:01:44.000000000 +0100 +*************** +*** 2,8 **** + + STARTTEST + :so mbyte.vim +! :if !has('iconv') + : e! test.ok + : w! test.out + : qa! +--- 2,8 ---- + + STARTTEST + :so mbyte.vim +! :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21" + : e! test.ok + : w! test.out + : qa! +*** ../vim-7.3.385/src/version.c 2011-12-23 14:54:01.000000000 +0100 +--- src/version.c 2011-12-23 14:55:38.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 386, + /**/ + +-- +WOMAN: King of the who? +ARTHUR: The Britons. +WOMAN: Who are the Britons? +ARTHUR: Well, we all are. we're all Britons and 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 /// diff --git a/7.3.387 b/7.3.387 new file mode 100644 index 0000000..6b20a58 --- /dev/null +++ b/7.3.387 @@ -0,0 +1,61 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.387 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.387 (after 7.3.386) +Problem: Test 83 may fail for some encodings. +Solution: Set 'encoding' to utf-8 earlier. +Files: src/testdir/test83.in + + +*** ../vim-7.3.386/src/testdir/test83.in 2011-12-23 14:56:24.000000000 +0100 +--- src/testdir/test83.in 2011-12-30 13:05:05.000000000 +0100 +*************** +*** 2,13 **** + + STARTTEST + :so mbyte.vim + :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21" + : e! test.ok + : w! test.out + : qa! + :endif +- :set enc=utf8 + + :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt + :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt +--- 2,13 ---- + + STARTTEST + :so mbyte.vim ++ :set enc=utf8 + :if !has('iconv') || iconv("\x82\x60", "cp932", "utf-8") != "\uff21" + : e! test.ok + : w! test.out + : qa! + :endif + + :/^text for tags1$/,/^text for tags1$/+1w! Xtags1.txt + :/^text for tags2$/,/^text for tags2$/+1w! Xtags2.txt +*** ../vim-7.3.386/src/version.c 2011-12-23 14:56:24.000000000 +0100 +--- src/version.c 2011-12-30 13:06:17.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 387, + /**/ + +-- +Mental Floss prevents moral decay! + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.388 b/7.3.388 new file mode 100644 index 0000000..7a6df89 --- /dev/null +++ b/7.3.388 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.388 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.388 +Problem: Crash on exit when EXITFREE is defined and using tiny features. +Solution: Check for NULL window pointer. (Dominique Pelle) +Files: src/buffer.c + + +*** ../vim-7.3.387/src/buffer.c 2011-11-30 15:40:51.000000000 +0100 +--- src/buffer.c 2011-12-30 13:35:26.000000000 +0100 +*************** +*** 419,424 **** +--- 419,426 ---- + if ( + #ifdef FEAT_WINDOWS + win_valid(win) && ++ #else ++ win != NULL && + #endif + win->w_buffer == buf) + win->w_buffer = NULL; /* make sure we don't use the buffer now */ +*** ../vim-7.3.387/src/version.c 2011-12-30 13:09:15.000000000 +0100 +--- src/version.c 2011-12-30 13:37:23.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 388, + /**/ + +-- +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 /// diff --git a/7.3.389 b/7.3.389 new file mode 100644 index 0000000..c8a968c --- /dev/null +++ b/7.3.389 @@ -0,0 +1,61 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.389 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.389 +Problem: After typing at a prompt the "MORE" message appears too soon. +Solution: reset lines_left in msg_end_prompt(). (Eswald) +Files: src/message.c + + +*** ../vim-7.3.388/src/message.c 2011-09-14 15:39:26.000000000 +0200 +--- src/message.c 2011-12-30 14:08:05.000000000 +0100 +*************** +*** 85,91 **** + * need_wait_return to be set. This is a hack to make ":ts" + * work without an extra prompt. + * lines_left Number of lines available for messages before the +! * more-prompt is to be given. + * need_wait_return TRUE when the hit-return prompt is needed. + * Reset: After giving the hit-return prompt, when the user + * has answered some other prompt. +--- 85,91 ---- + * need_wait_return to be set. This is a hack to make ":ts" + * work without an extra prompt. + * lines_left Number of lines available for messages before the +! * more-prompt is to be given. -1 when not set. + * need_wait_return TRUE when the hit-return prompt is needed. + * Reset: After giving the hit-return prompt, when the user + * has answered some other prompt. +*************** +*** 855,860 **** +--- 855,861 ---- + cmdline_row = msg_row; + msg_col = 0; + msg_clr_eos(); ++ lines_left = -1; + } + #endif + +*** ../vim-7.3.388/src/version.c 2011-12-30 13:39:04.000000000 +0100 +--- src/version.c 2011-12-30 14:11:00.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 389, + /**/ + +-- +Proofread carefully to see if you any words out. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.390 b/7.3.390 new file mode 100644 index 0000000..7199f8e --- /dev/null +++ b/7.3.390 @@ -0,0 +1,155 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.390 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.390 +Problem: Using NULL buffer pointer in a window. +Solution: Check for w_buffer being NULL in more places. (Bjorn Winckler) +Files: src/ex_cmds.c, src/quickfix.c, src/window.c + + +*** ../vim-7.3.389/src/ex_cmds.c 2011-11-30 17:01:55.000000000 +0100 +--- src/ex_cmds.c 2011-12-30 14:59:57.000000000 +0100 +*************** +*** 3390,3395 **** +--- 3390,3402 ---- + (flags & ECMD_HIDE) ? 0 : DOBUF_UNLOAD); + + #ifdef FEAT_AUTOCMD ++ /* Autocommands may open a new window and leave oldwin open ++ * which leads to crashes since the above call sets ++ * oldwin->w_buffer to NULL. */ ++ if (curwin != oldwin && oldwin != aucmd_win ++ && win_valid(oldwin) && oldwin->w_buffer == NULL) ++ win_close(oldwin, FALSE); ++ + # ifdef FEAT_EVAL + if (aborting()) /* autocmds may abort script processing */ + { +*** ../vim-7.3.389/src/quickfix.c 2011-08-10 18:36:49.000000000 +0200 +--- src/quickfix.c 2011-12-30 14:45:19.000000000 +0100 +*************** +*** 2675,2681 **** + bt_quickfix(buf) + buf_T *buf; + { +! return (buf->b_p_bt[0] == 'q'); + } + + /* +--- 2675,2681 ---- + bt_quickfix(buf) + buf_T *buf; + { +! return buf != NULL && buf->b_p_bt[0] == 'q'; + } + + /* +*************** +*** 2686,2693 **** + bt_nofile(buf) + buf_T *buf; + { +! return (buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f') +! || buf->b_p_bt[0] == 'a'; + } + + /* +--- 2686,2693 ---- + bt_nofile(buf) + buf_T *buf; + { +! return buf != NULL && ((buf->b_p_bt[0] == 'n' && buf->b_p_bt[2] == 'f') +! || buf->b_p_bt[0] == 'a'); + } + + /* +*************** +*** 2697,2703 **** + bt_dontwrite(buf) + buf_T *buf; + { +! return (buf->b_p_bt[0] == 'n'); + } + + int +--- 2697,2703 ---- + bt_dontwrite(buf) + buf_T *buf; + { +! return buf != NULL && buf->b_p_bt[0] == 'n'; + } + + int +*** ../vim-7.3.389/src/window.c 2011-09-14 14:43:21.000000000 +0200 +--- src/window.c 2011-12-30 14:44:18.000000000 +0100 +*************** +*** 2170,2176 **** + + /* When closing the help window, try restoring a snapshot after closing + * the window. Otherwise clear the snapshot, it's now invalid. */ +! if (win->w_buffer->b_help) + help_window = TRUE; + else + clear_snapshot(curtab, SNAP_HELP_IDX); +--- 2170,2176 ---- + + /* When closing the help window, try restoring a snapshot after closing + * the window. Otherwise clear the snapshot, it's now invalid. */ +! if (win->w_buffer != NULL && win->w_buffer->b_help) + help_window = TRUE; + else + clear_snapshot(curtab, SNAP_HELP_IDX); +*************** +*** 2214,2226 **** + + #ifdef FEAT_SYN_HL + /* Free independent synblock before the buffer is freed. */ +! reset_synblock(win); + #endif + + /* + * Close the link to the buffer. + */ +! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0); + + /* Autocommands may have closed the window already, or closed the only + * other window or moved to another tab page. */ +--- 2214,2228 ---- + + #ifdef FEAT_SYN_HL + /* Free independent synblock before the buffer is freed. */ +! if (win->w_buffer != NULL) +! reset_synblock(win); + #endif + + /* + * Close the link to the buffer. + */ +! if (win->w_buffer != NULL) +! close_buffer(win, win->w_buffer, free_buf ? DOBUF_UNLOAD : 0); + + /* Autocommands may have closed the window already, or closed the only + * other window or moved to another tab page. */ +*** ../vim-7.3.389/src/version.c 2011-12-30 14:14:16.000000000 +0100 +--- src/version.c 2011-12-30 14:38:39.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 390, + /**/ + +-- +There can't be a crisis today, my schedule is already full. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.391 b/7.3.391 new file mode 100644 index 0000000..0a1bcce --- /dev/null +++ b/7.3.391 @@ -0,0 +1,51 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.391 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.391 +Problem: Can't check if the XPM_W32 feature is enabled. +Solution: Add xpm_w32 to the list of features. (kat) +Files: src/eval.c + + +*** ../vim-7.3.390/src/eval.c 2011-12-14 15:32:44.000000000 +0100 +--- src/eval.c 2012-01-04 14:33:22.000000000 +0100 +*************** +*** 12260,12265 **** +--- 12260,12268 ---- + #ifdef FEAT_XFONTSET + "xfontset", + #endif ++ #ifdef FEAT_XPM_W32 ++ "xpm_w32", ++ #endif + #ifdef USE_XSMP + "xsmp", + #endif +*** ../vim-7.3.390/src/version.c 2011-12-30 15:01:55.000000000 +0100 +--- src/version.c 2012-01-04 14:34:31.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 391, + /**/ + +-- +ROBIN: The what? +ARTHUR: The Holy Hand Grenade of Antioch. 'Tis one of the sacred relics + Brother Maynard always carries with him. +ALL: Yes. Of course. +ARTHUR: (shouting) Bring up the Holy Hand Grenade! + "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.3.392 b/7.3.392 new file mode 100644 index 0000000..a603d90 --- /dev/null +++ b/7.3.392 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.392 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.392 +Problem: When setting 'undofile' while the file is already loaded but + unchanged, try reading the undo file. (Andy Wokula) +Solution: Compute a checksum of the text when 'undofile' is set. (Christian + Brabandt) +Files: src/option.c, src/testdir/test72.in, src/testdir/test72.ok + + +*** ../vim-7.3.391/src/option.c 2011-11-30 11:31:25.000000000 +0100 +--- src/option.c 2012-01-04 19:34:11.000000000 +0100 +*************** +*** 7516,7521 **** +--- 7516,7545 ---- + compatible_set(); + } + ++ #ifdef FEAT_PERSISTENT_UNDO ++ /* 'undofile' */ ++ else if ((int *)varp == &curbuf->b_p_udf || (int *)varp == &p_udf) ++ { ++ char_u hash[UNDO_HASH_SIZE]; ++ buf_T *save_curbuf = curbuf; ++ ++ for (curbuf = firstbuf; curbuf != NULL; curbuf = curbuf->b_next) ++ { ++ /* When 'undofile' is set globally: for every buffer, otherwise ++ * only for the current buffer: Try to read in the undofile, if ++ * one exists and the buffer wasn't changed. */ ++ if ((curbuf == save_curbuf ++ || (opt_flags & OPT_GLOBAL) || opt_flags == 0) ++ && !curbufIsChanged()) ++ { ++ u_compute_hash(hash); ++ u_read_undo(NULL, hash, curbuf->b_fname); ++ } ++ } ++ curbuf = save_curbuf; ++ } ++ #endif ++ + /* 'list', 'number' */ + else if ((int *)varp == &curwin->w_p_list + || (int *)varp == &curwin->w_p_nu +*** ../vim-7.3.391/src/testdir/test72.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test72.in 2012-01-04 19:04:17.000000000 +0100 +*************** +*** 51,56 **** +--- 51,62 ---- + :e Xtestfile + uuu:w >>test.out + :" ++ :" Test that reading the undofiles when setting undofile works ++ :set noundofile ul=0 ++ i ++ u:e! Xtestfile ++ :set undofile ul=100 ++ uuuuuu:w >>test.out + :" And now with encryption, cryptmethod=zip + :e! Xtestfile + :set undofile cm=zip +*** ../vim-7.3.391/src/testdir/test72.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test72.ok 2012-01-04 19:04:17.000000000 +0100 +*************** +*** 7,12 **** +--- 7,22 ---- + eight + nine + ten ++ one ++ two ++ three ++ four ++ five ++ six ++ seven ++ eight ++ nine ++ ten + monday + wednesday + thursday +*** ../vim-7.3.391/src/version.c 2012-01-04 14:35:31.000000000 +0100 +--- src/version.c 2012-01-04 19:33:41.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 392, + /**/ + +-- +BROTHER MAYNARD: Armaments Chapter Two Verses Nine to Twenty One. +ANOTHER MONK: And St. Attila raised his hand grenade up on high saying "O + Lord bless this thy hand grenade that with it thou mayest + blow thine enemies to tiny bits, in thy mercy. "and the Lord + did grin and people did feast upon the lambs and sloths and + carp and anchovies and orang-utans and breakfast cereals and + fruit bats and... +BROTHER MAYNARD: Skip a bit brother ... + "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.3.393 b/7.3.393 new file mode 100644 index 0000000..ca6cbc9 --- /dev/null +++ b/7.3.393 @@ -0,0 +1,130 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.393 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.393 +Problem: Win32: When resizing Vim it is always moved to the primary monitor + if the secondary monitor is on the left. +Solution: Use the nearest monitor. (Yukihiro Nakadaira) +Files: src/gui_w32.c + + +*** ../vim-7.3.392/src/gui_w32.c 2011-12-15 21:51:32.000000000 +0100 +--- src/gui_w32.c 2012-01-04 20:25:58.000000000 +0100 +*************** +*** 1661,1669 **** + { + RECT workarea_rect; + int win_width, win_height; +- int win_xpos, win_ypos; + WINDOWPLACEMENT wndpl; +- int workarea_left; + + /* Try to keep window completely on screen. */ + /* Get position of the screen work area. This is the part that is not +--- 1661,1667 ---- +*************** +*** 1685,1693 **** + GetWindowPlacement(s_hwnd, &wndpl); + } + +- win_xpos = wndpl.rcNormalPosition.left; +- win_ypos = wndpl.rcNormalPosition.top; +- + /* compute the size of the outside of the window */ + win_width = width + GetSystemMetrics(SM_CXFRAME) * 2; + win_height = height + GetSystemMetrics(SM_CYFRAME) * 2 +--- 1683,1688 ---- +*************** +*** 1697,1732 **** + #endif + ; + +! /* There is an inconsistency when using two monitors and Vim is on the +! * second (right) one: win_xpos will be the offset from the workarea of +! * the left monitor. While with one monitor it's the offset from the +! * workarea (including a possible taskbar on the left). Detect the second +! * monitor by checking for the left offset to be quite big. */ +! if (workarea_rect.left > 300) +! workarea_left = 0; +! else +! workarea_left = workarea_rect.left; + +! /* If the window is going off the screen, move it on to the screen. +! * win_xpos and win_ypos are relative to the workarea. */ + if ((direction & RESIZE_HOR) +! && workarea_left + win_xpos + win_width > workarea_rect.right) +! win_xpos = workarea_rect.right - win_width - workarea_left; + +! if ((direction & RESIZE_HOR) && win_xpos < 0) +! win_xpos = 0; + + if ((direction & RESIZE_VERT) +! && workarea_rect.top + win_ypos + win_height > workarea_rect.bottom) +! win_ypos = workarea_rect.bottom - win_height - workarea_rect.top; + +! if ((direction & RESIZE_VERT) && win_ypos < 0) +! win_ypos = 0; +! +! wndpl.rcNormalPosition.left = win_xpos; +! wndpl.rcNormalPosition.right = win_xpos + win_width; +! wndpl.rcNormalPosition.top = win_ypos; +! wndpl.rcNormalPosition.bottom = win_ypos + win_height; + + /* set window position - we should use SetWindowPlacement rather than + * SetWindowPos as the MSDN docs say the coord systems returned by +--- 1692,1723 ---- + #endif + ; + +! /* The following should take care of keeping Vim on the same monitor, no +! * matter if the secondary monitor is left or right of the primary +! * monitor. */ +! wndpl.rcNormalPosition.right = wndpl.rcNormalPosition.left + win_width; +! wndpl.rcNormalPosition.bottom = wndpl.rcNormalPosition.top + win_height; + +! /* If the window is going off the screen, move it on to the screen. */ + if ((direction & RESIZE_HOR) +! && wndpl.rcNormalPosition.right > workarea_rect.right) +! OffsetRect(&wndpl.rcNormalPosition, +! workarea_rect.right - wndpl.rcNormalPosition.right, 0); + +! if ((direction & RESIZE_HOR) +! && wndpl.rcNormalPosition.left < workarea_rect.left) +! OffsetRect(&wndpl.rcNormalPosition, +! workarea_rect.left - wndpl.rcNormalPosition.left, 0); + + if ((direction & RESIZE_VERT) +! && wndpl.rcNormalPosition.bottom > workarea_rect.bottom) +! OffsetRect(&wndpl.rcNormalPosition, +! 0, workarea_rect.bottom - wndpl.rcNormalPosition.bottom); + +! if ((direction & RESIZE_VERT) +! && wndpl.rcNormalPosition.top < workarea_rect.top) +! OffsetRect(&wndpl.rcNormalPosition, +! 0, workarea_rect.top - wndpl.rcNormalPosition.top); + + /* set window position - we should use SetWindowPlacement rather than + * SetWindowPos as the MSDN docs say the coord systems returned by +*** ../vim-7.3.392/src/version.c 2012-01-04 19:34:32.000000000 +0100 +--- src/version.c 2012-01-04 20:28:57.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 393, + /**/ + +-- +I wonder, do vegetarians eat fruit bats? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.3.394 b/7.3.394 new file mode 100644 index 0000000..20c7cff --- /dev/null +++ b/7.3.394 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.394 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.394 +Problem: When placing a mark while starting up a screen redraw messes up + the screen. (lith) +Solution: Don't redraw while still starting up. (Christian Brabandt) +Files: src/screen.c + + +*** ../vim-7.3.393/src/screen.c 2011-09-02 14:07:31.000000000 +0200 +--- src/screen.c 2012-01-10 12:36:52.000000000 +0100 +*************** +*** 764,772 **** + doit = TRUE; + } + +! /* Return when there is nothing to do or screen updating already +! * happening. */ +! if (!doit || updating_screen) + return; + + /* update all windows that need updating */ +--- 764,776 ---- + doit = TRUE; + } + +! /* Return when there is nothing to do, screen updating is already +! * happening (recursive call) or still starting up. */ +! if (!doit || updating_screen +! #ifdef FEAT_GUI +! || gui.starting +! #endif +! || starting) + return; + + /* update all windows that need updating */ +*** ../vim-7.3.393/src/version.c 2012-01-04 20:29:18.000000000 +0100 +--- src/version.c 2012-01-10 12:41:32.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 394, + /**/ + +-- +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 /// diff --git a/7.3.395 b/7.3.395 new file mode 100644 index 0000000..cb26893 --- /dev/null +++ b/7.3.395 @@ -0,0 +1,115 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.395 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.395 (after 7.3.251) +Problem: "dv?bar" in the last line deletes too much and breaks undo. +Solution: Only adjust the cursor position when it's after the last line of + the buffer. Add a test. (Christian Brabandt) +Files: src/ops.c, src/testdir/test43.in, src/testdir/test43.ok + + +*** ../vim-7.3.394/src/ops.c 2011-09-21 17:33:49.000000000 +0200 +--- src/ops.c 2012-01-10 13:28:05.000000000 +0100 +*************** +*** 1961,1968 **** + /* Special case: gH deletes the last line. */ + del_lines(1L, FALSE); + curwin->w_cursor = curpos; /* restore curwin->w_cursor */ +! if (curwin->w_cursor.lnum > 1) +! --curwin->w_cursor.lnum; + } + else + { +--- 1962,1969 ---- + /* 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 + { +*************** +*** 4434,4440 **** + #endif + + /* +! * implementation of the format operator 'gq' + */ + void + op_format(oap, keep_cursor) +--- 4435,4441 ---- + #endif + + /* +! * Implementation of the format operator 'gq'. + */ + void + op_format(oap, keep_cursor) +*** ../vim-7.3.394/src/testdir/test43.in 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test43.in 2012-01-10 13:41:13.000000000 +0100 +*************** +*** 13,19 **** + x:set magic + /\v(a)(b)\2\1\1/e + x/\V[ab]\(\[xy]\)\1 +! x:?^1?,$w! test.out + :qa! + ENDTEST + +--- 13,23 ---- + x:set magic + /\v(a)(b)\2\1\1/e + x/\V[ab]\(\[xy]\)\1 +! x:$ +! :set undolevels=100 +! dv?bar? +! Yup:" +! :?^1?,$w! test.out + :qa! + ENDTEST + +*************** +*** 25,27 **** +--- 29,33 ---- + 6 x ^aa$ x + 7 (a)(b) abbaa + 8 axx [ab]xx ++ 9 foobar ++ +*** ../vim-7.3.394/src/testdir/test43.ok 2010-08-15 21:57:29.000000000 +0200 +--- src/testdir/test43.ok 2012-01-10 13:42:39.000000000 +0100 +*************** +*** 6,8 **** +--- 6,11 ---- + 6 x aa$ x + 7 (a)(b) abba + 8 axx ab]xx ++ 9 foobar ++ 9 foo ++ +*** ../vim-7.3.394/src/version.c 2012-01-10 12:42:05.000000000 +0100 +--- src/version.c 2012-01-10 13:30:40.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 395, + /**/ + +-- +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 /// diff --git a/7.3.396 b/7.3.396 new file mode 100644 index 0000000..72b55a2 --- /dev/null +++ b/7.3.396 @@ -0,0 +1,49 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.396 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.396 +Problem: After forcing an operator to be characterwise it can still become + linewise when spanning whole lines. +Solution: Don't make the operator linewise when motion_force was set. + (Christian Brabandt) +Files: src/ops.c + + +*** ../vim-7.3.395/src/ops.c 2012-01-10 13:44:23.000000000 +0100 +--- src/ops.c 2012-01-10 13:28:05.000000000 +0100 +*************** +*** 1648,1653 **** +--- 1648,1654 ---- + && !oap->block_mode + #endif + && oap->line_count > 1 ++ && oap->motion_force == NUL + && oap->op_type == OP_DELETE) + { + ptr = ml_get(oap->end.lnum) + oap->end.col; +*** ../vim-7.3.395/src/version.c 2012-01-10 13:44:23.000000000 +0100 +--- src/version.c 2012-01-10 13:45:31.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 396, + /**/ + +-- +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.3.397 b/7.3.397 new file mode 100644 index 0000000..866b3aa --- /dev/null +++ b/7.3.397 @@ -0,0 +1,224 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.397 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.397 +Problem: ":helpgrep" does not work properly when 'encoding' is not utf-8 or + latin1. +Solution: Convert non-ascii lines to 'encoding'. (Yasuhiro Matsumoto) +Files: src/quickfix.c, src/spell.c, src/misc2.c, src/proto/misc2.pro + + +*** ../vim-7.3.396/src/quickfix.c 2011-12-30 15:01:55.000000000 +0100 +--- src/quickfix.c 2012-01-10 16:18:51.000000000 +0100 +*************** +*** 3914,3919 **** +--- 3914,3929 ---- + regmatch.rm_ic = FALSE; + if (regmatch.regprog != NULL) + { ++ #ifdef FEAT_MBYTE ++ vimconv_T vc; ++ ++ /* Help files are in utf-8 or latin1, convert lines when 'encoding' ++ * differs. */ ++ vc.vc_type = CONV_NONE; ++ if (!enc_utf8) ++ convert_setup(&vc, (char_u *)"utf-8", p_enc); ++ #endif ++ + /* create a new quickfix list */ + qf_new_list(qi, *eap->cmdlinep); + +*************** +*** 3948,3968 **** + lnum = 1; + while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int) + { +! if (vim_regexec(®match, IObuff, (colnr_T)0)) + { +! int l = (int)STRLEN(IObuff); + + /* remove trailing CR, LF, spaces, etc. */ +! while (l > 0 && IObuff[l - 1] <= ' ') +! IObuff[--l] = NUL; + + if (qf_add_entry(qi, &prevp, + NULL, /* dir */ + fnames[fi], + 0, +! IObuff, + lnum, +! (int)(regmatch.startp[0] - IObuff) + + 1, /* col */ + FALSE, /* vis_col */ + NULL, /* search pattern */ +--- 3958,3990 ---- + lnum = 1; + while (!vim_fgets(IObuff, IOSIZE, fd) && !got_int) + { +! char_u *line = IObuff; +! #ifdef FEAT_MBYTE +! /* Convert a line if 'encoding' is not utf-8 and +! * the line contains a non-ASCII character. */ +! if (vc.vc_type != CONV_NONE +! && has_non_ascii(IObuff)) { +! line = string_convert(&vc, IObuff, NULL); +! if (line == NULL) +! line = IObuff; +! } +! #endif +! +! if (vim_regexec(®match, line, (colnr_T)0)) + { +! int l = (int)STRLEN(line); + + /* remove trailing CR, LF, spaces, etc. */ +! while (l > 0 && line[l - 1] <= ' ') +! line[--l] = NUL; + + if (qf_add_entry(qi, &prevp, + NULL, /* dir */ + fnames[fi], + 0, +! line, + lnum, +! (int)(regmatch.startp[0] - line) + + 1, /* col */ + FALSE, /* vis_col */ + NULL, /* search pattern */ +*************** +*** 3972,3980 **** +--- 3994,4010 ---- + ) == FAIL) + { + got_int = TRUE; ++ #ifdef FEAT_MBYTE ++ if (line != IObuff) ++ vim_free(line); ++ #endif + break; + } + } ++ #ifdef FEAT_MBYTE ++ if (line != IObuff) ++ vim_free(line); ++ #endif + ++lnum; + line_breakcheck(); + } +*************** +*** 3984,3990 **** +--- 4014,4025 ---- + FreeWild(fcount, fnames); + } + } ++ + vim_free(regmatch.regprog); ++ #ifdef FEAT_MBYTE ++ if (vc.vc_type != CONV_NONE) ++ convert_setup(&vc, NULL, NULL); ++ #endif + + qi->qf_lists[qi->qf_curlist].qf_nonevalid = FALSE; + qi->qf_lists[qi->qf_curlist].qf_ptr = +*** ../vim-7.3.396/src/spell.c 2011-09-02 14:18:14.000000000 +0200 +--- src/spell.c 2012-01-10 16:19:33.000000000 +0100 +*************** +*** 5020,5026 **** + static int str_equal __ARGS((char_u *s1, char_u *s2)); + static void add_fromto __ARGS((spellinfo_T *spin, garray_T *gap, char_u *from, char_u *to)); + static int sal_to_bool __ARGS((char_u *s)); +- static int has_non_ascii __ARGS((char_u *s)); + static void spell_free_aff __ARGS((afffile_T *aff)); + static int spell_read_dic __ARGS((spellinfo_T *spin, char_u *fname, afffile_T *affile)); + static int get_affix_flags __ARGS((afffile_T *affile, char_u *afflist)); +--- 5020,5025 ---- +*************** +*** 6485,6507 **** + } + + /* +- * Return TRUE if string "s" contains a non-ASCII character (128 or higher). +- * When "s" is NULL FALSE is returned. +- */ +- static int +- has_non_ascii(s) +- char_u *s; +- { +- char_u *p; +- +- if (s != NULL) +- for (p = s; *p != NUL; ++p) +- if (*p >= 128) +- return TRUE; +- return FALSE; +- } +- +- /* + * Free the structure filled by spell_read_aff(). + */ + static void +--- 6484,6489 ---- +*** ../vim-7.3.396/src/misc2.c 2011-12-08 17:49:31.000000000 +0100 +--- src/misc2.c 2012-01-10 16:25:53.000000000 +0100 +*************** +*** 6541,6543 **** +--- 6541,6563 ---- + #endif + + #endif ++ ++ #if (defined(FEAT_MBYTE) && defined(FEAT_QUICKFIX)) \ ++ || defined(FEAT_SPELL) || defined(PROTO) ++ /* ++ * Return TRUE if string "s" contains a non-ASCII character (128 or higher). ++ * When "s" is NULL FALSE is returned. ++ */ ++ int ++ has_non_ascii(s) ++ char_u *s; ++ { ++ char_u *p; ++ ++ if (s != NULL) ++ for (p = s; *p != NUL; ++p) ++ if (*p >= 128) ++ return TRUE; ++ return FALSE; ++ } ++ #endif +*** ../vim-7.3.396/src/proto/misc2.pro 2011-07-07 16:20:45.000000000 +0200 +--- src/proto/misc2.pro 2012-01-10 16:20:03.000000000 +0100 +*************** +*** 116,119 **** +--- 116,120 ---- + char_u *read_string __ARGS((FILE *fd, int cnt)); + int put_bytes __ARGS((FILE *fd, long_u nr, int len)); + void put_time __ARGS((FILE *fd, time_t the_time)); ++ int has_non_ascii __ARGS((char_u *s)); + /* vim: set ft=c : */ +*** ../vim-7.3.396/src/version.c 2012-01-10 13:46:18.000000000 +0100 +--- src/version.c 2012-01-10 16:26:32.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 397, + /**/ + +-- +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 /// diff --git a/7.3.398 b/7.3.398 new file mode 100644 index 0000000..8d4b213 --- /dev/null +++ b/7.3.398 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.398 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.398 +Problem: When creating more than 10 location lists and adding items one by + one a previous location may be used. (Audrius Kažukauskas) +Solution: Clear the location list completely when adding the tenth one. +Files: src/quickfix.c + + +*** ../vim-7.3.397/src/quickfix.c 2012-01-10 16:28:41.000000000 +0100 +--- src/quickfix.c 2012-01-10 16:58:52.000000000 +0100 +*************** +*** 899,906 **** + } + else + qi->qf_curlist = qi->qf_listcount++; +! qi->qf_lists[qi->qf_curlist].qf_index = 0; +! qi->qf_lists[qi->qf_curlist].qf_count = 0; + if (qf_title != NULL) + { + char_u *p = alloc((int)STRLEN(qf_title) + 2); +--- 899,905 ---- + } + else + qi->qf_curlist = qi->qf_listcount++; +! vim_memset(&qi->qf_lists[qi->qf_curlist], 0, (size_t)(sizeof(qf_list_T))); + if (qf_title != NULL) + { + char_u *p = alloc((int)STRLEN(qf_title) + 2); +*************** +*** 909,916 **** + if (p != NULL) + sprintf((char *)p, ":%s", (char *)qf_title); + } +- else +- qi->qf_lists[qi->qf_curlist].qf_title = NULL; + } + + /* +--- 908,913 ---- +*** ../vim-7.3.397/src/version.c 2012-01-10 16:28:41.000000000 +0100 +--- src/version.c 2012-01-10 17:13:09.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 398, + /**/ + +-- +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 /// diff --git a/7.3.399 b/7.3.399 new file mode 100644 index 0000000..33d0630 --- /dev/null +++ b/7.3.399 @@ -0,0 +1,137 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.399 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.399 +Problem: ":cd" doesn't work when the path contains wildcards. (Yukihiro + Nakadaira) +Solution: Ignore wildcard errors when the EW_NOTWILD flag is used. +Files: src/misc1.c + + +*** ../vim-7.3.398/src/misc1.c 2011-12-14 20:21:29.000000000 +0100 +--- src/misc1.c 2012-01-10 17:57:42.000000000 +0100 +*************** +*** 9103,9117 **** + } + + /* compile the regexp into a program */ +! if (flags & EW_NOERROR) + ++emsg_silent; + regmatch.rm_ic = TRUE; /* Always ignore case */ + regmatch.regprog = vim_regcomp(pat, RE_MAGIC); +! if (flags & EW_NOERROR) + --emsg_silent; + vim_free(pat); + +! if (regmatch.regprog == NULL) + { + vim_free(buf); + return 0; +--- 9103,9117 ---- + } + + /* compile the regexp into a program */ +! if (flags & (EW_NOERROR | EW_NOTWILD)) + ++emsg_silent; + regmatch.rm_ic = TRUE; /* Always ignore case */ + regmatch.regprog = vim_regcomp(pat, RE_MAGIC); +! if (flags & (EW_NOERROR | EW_NOTWILD)) + --emsg_silent; + vim_free(pat); + +! if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0) + { + vim_free(buf); + return 0; +*************** +*** 9179,9185 **** + * all entries found with "matchname". */ + if ((p[0] != '.' || starts_with_dot) + && (matchname == NULL +! || vim_regexec(®match, p, (colnr_T)0) + || ((flags & EW_NOTWILD) + && fnamencmp(path + (s - buf), p, e - s) == 0))) + { +--- 9179,9186 ---- + * all entries found with "matchname". */ + if ((p[0] != '.' || starts_with_dot) + && (matchname == NULL +! || (regmatch.regprog != NULL +! && vim_regexec(®match, p, (colnr_T)0)) + || ((flags & EW_NOTWILD) + && fnamencmp(path + (s - buf), p, e - s) == 0))) + { +*************** +*** 9419,9428 **** + else + regmatch.rm_ic = FALSE; /* Don't ignore case */ + #endif + regmatch.regprog = vim_regcomp(pat, RE_MAGIC); + vim_free(pat); + +! if (regmatch.regprog == NULL) + { + vim_free(buf); + return 0; +--- 9420,9433 ---- + else + regmatch.rm_ic = FALSE; /* Don't ignore case */ + #endif ++ if (flags & (EW_NOERROR | EW_NOTWILD)) ++ ++emsg_silent; + regmatch.regprog = vim_regcomp(pat, RE_MAGIC); ++ if (flags & (EW_NOERROR | EW_NOTWILD)) ++ --emsg_silent; + vim_free(pat); + +! if (regmatch.regprog == NULL && (flags & EW_NOTWILD) == 0) + { + vim_free(buf); + return 0; +*************** +*** 9452,9458 **** + if (dp == NULL) + break; + if ((dp->d_name[0] != '.' || starts_with_dot) +! && (vim_regexec(®match, (char_u *)dp->d_name, (colnr_T)0) + || ((flags & EW_NOTWILD) + && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0))) + { +--- 9457,9464 ---- + if (dp == NULL) + break; + if ((dp->d_name[0] != '.' || starts_with_dot) +! && ((regmatch.regprog != NULL && vim_regexec(®match, +! (char_u *)dp->d_name, (colnr_T)0)) + || ((flags & EW_NOTWILD) + && fnamencmp(path + (s - buf), dp->d_name, e - s) == 0))) + { +*** ../vim-7.3.398/src/version.c 2012-01-10 17:13:48.000000000 +0100 +--- src/version.c 2012-01-10 18:21:05.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 399, + /**/ + +-- +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 /// diff --git a/7.3.400 b/7.3.400 new file mode 100644 index 0000000..c621a88 --- /dev/null +++ b/7.3.400 @@ -0,0 +1,1762 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.400 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.400 +Problem: Compiler warnings for shadowed variables. +Solution: Remove or rename the variables. +Files: src/charset.c, src/digraph.c, src/edit.c, src/eval.c, src/fold.c, + src/getchar.c, src/message.c, src/misc2.c, src/move.c, + src/netbeans.c, src/option.c, src/os_unix.c, src/screen.c, + src/search.c, src/spell.c, src/syntax.c, src/tag.c, src/window.c + + +*** ../vim-7.3.399/src/charset.c 2010-08-15 21:57:25.000000000 +0200 +--- src/charset.c 2012-01-10 21:55:50.000000000 +0100 +*************** +*** 463,503 **** + if (enc_utf8) + { + int c = utf_ptr2char(STR_PTR(i)); +! int ol = utf_ptr2len(STR_PTR(i)); + int lc = utf_tolower(c); + + /* Only replace the character when it is not an invalid + * sequence (ASCII character or more than one byte) and + * utf_tolower() doesn't return the original character. */ +! if ((c < 0x80 || ol > 1) && c != lc) + { +! int nl = utf_char2len(lc); + + /* If the byte length changes need to shift the following + * characters forward or backward. */ +! if (ol != nl) + { +! if (nl > ol) + { +! if (buf == NULL ? ga_grow(&ga, nl - ol + 1) == FAIL +! : len + nl - ol >= buflen) + { + /* out of memory, keep old char */ + lc = c; +! nl = ol; + } + } +! if (ol != nl) + { + if (buf == NULL) + { +! STRMOVE(GA_PTR(i) + nl, GA_PTR(i) + ol); +! ga.ga_len += nl - ol; + } + else + { +! STRMOVE(buf + i + nl, buf + i + ol); +! len += nl - ol; + } + } + } +--- 463,504 ---- + if (enc_utf8) + { + int c = utf_ptr2char(STR_PTR(i)); +! int olen = utf_ptr2len(STR_PTR(i)); + int lc = utf_tolower(c); + + /* Only replace the character when it is not an invalid + * sequence (ASCII character or more than one byte) and + * utf_tolower() doesn't return the original character. */ +! if ((c < 0x80 || olen > 1) && c != lc) + { +! int nlen = utf_char2len(lc); + + /* If the byte length changes need to shift the following + * characters forward or backward. */ +! if (olen != nlen) + { +! if (nlen > olen) + { +! if (buf == NULL +! ? ga_grow(&ga, nlen - olen + 1) == FAIL +! : len + nlen - olen >= buflen) + { + /* out of memory, keep old char */ + lc = c; +! nlen = olen; + } + } +! if (olen != nlen) + { + if (buf == NULL) + { +! STRMOVE(GA_PTR(i) + nlen, GA_PTR(i) + olen); +! ga.ga_len += nlen - olen; + } + else + { +! STRMOVE(buf + i + nlen, buf + i + olen); +! len += nlen - olen; + } + } + } +*** ../vim-7.3.399/src/digraph.c 2010-08-15 21:57:28.000000000 +0200 +--- src/digraph.c 2012-01-10 21:57:16.000000000 +0100 +*************** +*** 2080,2092 **** + /* + * Lookup the pair "char1", "char2" in the digraph tables. + * If no match, return "char2". +! * If "meta" is TRUE and "char1" is a space, return "char2" | 0x80. + */ + static int +! getexactdigraph(char1, char2, meta) + int char1; + int char2; +! int meta; + { + int i; + int retval = 0; +--- 2080,2092 ---- + /* + * Lookup the pair "char1", "char2" in the digraph tables. + * If no match, return "char2". +! * If "meta_char" is TRUE and "char1" is a space, return "char2" | 0x80. + */ + static int +! getexactdigraph(char1, char2, meta_char) + int char1; + int char2; +! int meta_char; + { + int i; + int retval = 0; +*************** +*** 2159,2165 **** + + if (retval == 0) /* digraph deleted or not found */ + { +! if (char1 == ' ' && meta) /* --> meta-char */ + return (char2 | 0x80); + return char2; + } +--- 2159,2165 ---- + + if (retval == 0) /* digraph deleted or not found */ + { +! if (char1 == ' ' && meta_char) /* --> meta-char */ + return (char2 | 0x80); + return char2; + } +*************** +*** 2171,2186 **** + * Allow for both char1-char2 and char2-char1 + */ + int +! getdigraph(char1, char2, meta) + int char1; + int char2; +! int meta; + { + int retval; + +! if (((retval = getexactdigraph(char1, char2, meta)) == char2) + && (char1 != char2) +! && ((retval = getexactdigraph(char2, char1, meta)) == char1)) + return char2; + return retval; + } +--- 2171,2186 ---- + * Allow for both char1-char2 and char2-char1 + */ + int +! getdigraph(char1, char2, meta_char) + int char1; + int char2; +! int meta_char; + { + int retval; + +! if (((retval = getexactdigraph(char1, char2, meta_char)) == char2) + && (char1 != char2) +! && ((retval = getexactdigraph(char2, char1, meta_char)) == char1)) + return char2; + return retval; + } +*** ../vim-7.3.399/src/edit.c 2011-12-23 13:14:58.000000000 +0100 +--- src/edit.c 2012-01-10 21:58:28.000000000 +0100 +*************** +*** 4003,4026 **** + ins_compl_add_dict(dict) + dict_T *dict; + { +! dictitem_T *refresh; +! dictitem_T *words; + + /* Check for optional "refresh" item. */ + compl_opt_refresh_always = FALSE; +! refresh = dict_find(dict, (char_u *)"refresh", 7); +! if (refresh != NULL && refresh->di_tv.v_type == VAR_STRING) + { +! char_u *v = refresh->di_tv.vval.v_string; + + if (v != NULL && STRCMP(v, (char_u *)"always") == 0) + compl_opt_refresh_always = TRUE; + } + + /* Add completions from a "words" list. */ +! words = dict_find(dict, (char_u *)"words", 5); +! if (words != NULL && words->di_tv.v_type == VAR_LIST) +! ins_compl_add_list(words->di_tv.vval.v_list); + } + + /* +--- 4003,4026 ---- + ins_compl_add_dict(dict) + dict_T *dict; + { +! dictitem_T *di_refresh; +! dictitem_T *di_words; + + /* Check for optional "refresh" item. */ + compl_opt_refresh_always = FALSE; +! di_refresh = dict_find(dict, (char_u *)"refresh", 7); +! if (di_refresh != NULL && di_refresh->di_tv.v_type == VAR_STRING) + { +! char_u *v = di_refresh->di_tv.vval.v_string; + + if (v != NULL && STRCMP(v, (char_u *)"always") == 0) + compl_opt_refresh_always = TRUE; + } + + /* Add completions from a "words" list. */ +! di_words = dict_find(dict, (char_u *)"words", 5); +! if (di_words != NULL && di_words->di_tv.v_type == VAR_LIST) +! ins_compl_add_list(di_words->di_tv.vval.v_list); + } + + /* +*** ../vim-7.3.399/src/eval.c 2012-01-04 14:35:31.000000000 +0100 +--- src/eval.c 2012-01-10 22:00:50.000000000 +0100 +*************** +*** 6573,6587 **** + + /* + * Join list "l" into a string in "*gap", using separator "sep". +! * When "echo" is TRUE use String as echoed, otherwise as inside a List. + * Return FAIL or OK. + */ + static int +! list_join(gap, l, sep, echo, copyID) + garray_T *gap; + list_T *l; + char_u *sep; +! int echo; + int copyID; + { + int first = TRUE; +--- 6573,6587 ---- + + /* + * Join list "l" into a string in "*gap", using separator "sep". +! * When "echo_style" is TRUE use String as echoed, otherwise as inside a List. + * Return FAIL or OK. + */ + static int +! list_join(gap, l, sep, echo_style, copyID) + garray_T *gap; + list_T *l; + char_u *sep; +! int echo_style; + int copyID; + { + int first = TRUE; +*************** +*** 6597,6603 **** + else + ga_concat(gap, sep); + +! if (echo) + s = echo_string(&item->li_tv, &tofree, numbuf, copyID); + else + s = tv2string(&item->li_tv, &tofree, numbuf, copyID); +--- 6597,6603 ---- + else + ga_concat(gap, sep); + +! if (echo_style) + s = echo_string(&item->li_tv, &tofree, numbuf, copyID); + else + s = tv2string(&item->li_tv, &tofree, numbuf, copyID); +*************** +*** 17893,17899 **** + typval_T *argvars; + typval_T *rettv; + { +! char_u *instr; + char_u *fromstr; + char_u *tostr; + char_u *p; +--- 17893,17899 ---- + typval_T *argvars; + typval_T *rettv; + { +! char_u *in_str; + char_u *fromstr; + char_u *tostr; + char_u *p; +*************** +*** 17910,17916 **** + char_u buf2[NUMBUFLEN]; + garray_T ga; + +! instr = get_tv_string(&argvars[0]); + fromstr = get_tv_string_buf_chk(&argvars[1], buf); + tostr = get_tv_string_buf_chk(&argvars[2], buf2); + +--- 17910,17916 ---- + char_u buf2[NUMBUFLEN]; + garray_T ga; + +! in_str = get_tv_string(&argvars[0]); + fromstr = get_tv_string_buf_chk(&argvars[1], buf); + tostr = get_tv_string_buf_chk(&argvars[2], buf2); + +*************** +*** 17936,17954 **** + } + + /* fromstr and tostr have to contain the same number of chars */ +! while (*instr != NUL) + { + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! inlen = (*mb_ptr2len)(instr); +! cpstr = instr; + cplen = inlen; + idx = 0; + for (p = fromstr; *p != NUL; p += fromlen) + { + fromlen = (*mb_ptr2len)(p); +! if (fromlen == inlen && STRNCMP(instr, p, inlen) == 0) + { + for (p = tostr; *p != NUL; p += tolen) + { +--- 17936,17954 ---- + } + + /* fromstr and tostr have to contain the same number of chars */ +! while (*in_str != NUL) + { + #ifdef FEAT_MBYTE + if (has_mbyte) + { +! inlen = (*mb_ptr2len)(in_str); +! cpstr = in_str; + cplen = inlen; + idx = 0; + for (p = fromstr; *p != NUL; p += fromlen) + { + fromlen = (*mb_ptr2len)(p); +! if (fromlen == inlen && STRNCMP(in_str, p, inlen) == 0) + { + for (p = tostr; *p != NUL; p += tolen) + { +*************** +*** 17967,17977 **** + ++idx; + } + +! if (first && cpstr == instr) + { + /* Check that fromstr and tostr have the same number of + * (multi-byte) characters. Done only once when a character +! * of instr doesn't appear in fromstr. */ + first = FALSE; + for (p = tostr; *p != NUL; p += tolen) + { +--- 17967,17977 ---- + ++idx; + } + +! if (first && cpstr == in_str) + { + /* Check that fromstr and tostr have the same number of + * (multi-byte) characters. Done only once when a character +! * of in_str doesn't appear in fromstr. */ + first = FALSE; + for (p = tostr; *p != NUL; p += tolen) + { +*************** +*** 17986,18003 **** + mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); + ga.ga_len += cplen; + +! instr += inlen; + } + else + #endif + { + /* When not using multi-byte chars we can do it faster. */ +! p = vim_strchr(fromstr, *instr); + if (p != NULL) + ga_append(&ga, tostr[p - fromstr]); + else +! ga_append(&ga, *instr); +! ++instr; + } + } + +--- 17986,18003 ---- + mch_memmove((char *)ga.ga_data + ga.ga_len, cpstr, (size_t)cplen); + ga.ga_len += cplen; + +! in_str += inlen; + } + else + #endif + { + /* When not using multi-byte chars we can do it faster. */ +! p = vim_strchr(fromstr, *in_str); + if (p != NULL) + ga_append(&ga, tostr[p - fromstr]); + else +! ga_append(&ga, *in_str); +! ++in_str; + } + } + +*** ../vim-7.3.399/src/fold.c 2011-08-26 16:12:55.000000000 +0200 +--- src/fold.c 2012-01-10 22:01:26.000000000 +0100 +*************** +*** 1033,1042 **** + * Init the fold info in a new window. + */ + void +! foldInitWin(newwin) +! win_T *newwin; + { +! ga_init2(&newwin->w_folds, (int)sizeof(fold_T), 10); + } + + /* find_wl_entry() {{{2 */ +--- 1033,1042 ---- + * Init the fold info in a new window. + */ + void +! foldInitWin(new_win) +! win_T *new_win; + { +! ga_init2(&new_win->w_folds, (int)sizeof(fold_T), 10); + } + + /* find_wl_entry() {{{2 */ +*** ../vim-7.3.399/src/getchar.c 2011-12-23 14:54:01.000000000 +0100 +--- src/getchar.c 2012-01-10 22:02:30.000000000 +0100 +*************** +*** 418,429 **** + + /* + * Remove the contents of the stuff buffer and the mapped characters in the +! * typeahead buffer (used in case of an error). If 'typeahead' is true, + * flush all typeahead characters (used when interrupted by a CTRL-C). + */ + void +! flush_buffers(typeahead) +! int typeahead; + { + init_typebuf(); + +--- 418,429 ---- + + /* + * Remove the contents of the stuff buffer and the mapped characters in the +! * typeahead buffer (used in case of an error). If "flush_typeahead" is true, + * flush all typeahead characters (used when interrupted by a CTRL-C). + */ + void +! flush_buffers(flush_typeahead) +! int flush_typeahead; + { + init_typebuf(); + +*************** +*** 431,437 **** + while (read_stuff(TRUE) != NUL) + ; + +! if (typeahead) /* remove all typeahead */ + { + /* + * We have to get all characters, because we may delete the first part +--- 431,437 ---- + while (read_stuff(TRUE) != NUL) + ; + +! if (flush_typeahead) /* remove all typeahead */ + { + /* + * We have to get all characters, because we may delete the first part +*** ../vim-7.3.399/src/message.c 2011-12-30 14:14:16.000000000 +0100 +--- src/message.c 2012-01-10 22:03:56.000000000 +0100 +*************** +*** 2487,2493 **** + #ifdef FEAT_CON_DIALOG + int retval = FALSE; + #endif +! int scroll; + msgchunk_T *mp_last = NULL; + msgchunk_T *mp; + int i; +--- 2487,2493 ---- + #ifdef FEAT_CON_DIALOG + int retval = FALSE; + #endif +! int toscroll; + msgchunk_T *mp_last = NULL; + msgchunk_T *mp; + int i; +*************** +*** 2538,2586 **** + } + #endif + +! scroll = 0; + switch (c) + { + case BS: /* scroll one line back */ + case K_BS: + case 'k': + case K_UP: +! scroll = -1; + break; + + case CAR: /* one extra line */ + case NL: + case 'j': + case K_DOWN: +! scroll = 1; + break; + + case 'u': /* Up half a page */ +! scroll = -(Rows / 2); + break; + + case 'd': /* Down half a page */ +! scroll = Rows / 2; + break; + + case 'b': /* one page back */ + case K_PAGEUP: +! scroll = -(Rows - 1); + break; + + case ' ': /* one extra page */ + case 'f': + case K_PAGEDOWN: + case K_LEFTMOUSE: +! scroll = Rows - 1; + break; + + case 'g': /* all the way back to the start */ +! scroll = -999999; + break; + + case 'G': /* all the way to the end */ +! scroll = 999999; + lines_left = 999999; + break; + +--- 2538,2586 ---- + } + #endif + +! toscroll = 0; + switch (c) + { + case BS: /* scroll one line back */ + case K_BS: + case 'k': + case K_UP: +! toscroll = -1; + break; + + case CAR: /* one extra line */ + case NL: + case 'j': + case K_DOWN: +! toscroll = 1; + break; + + case 'u': /* Up half a page */ +! toscroll = -(Rows / 2); + break; + + case 'd': /* Down half a page */ +! toscroll = Rows / 2; + break; + + case 'b': /* one page back */ + case K_PAGEUP: +! toscroll = -(Rows - 1); + break; + + case ' ': /* one extra page */ + case 'f': + case K_PAGEDOWN: + case K_LEFTMOUSE: +! toscroll = Rows - 1; + break; + + case 'g': /* all the way back to the start */ +! toscroll = -999999; + break; + + case 'G': /* all the way to the end */ +! toscroll = 999999; + lines_left = 999999; + break; + +*************** +*** 2633,2641 **** + continue; + } + +! if (scroll != 0) + { +! if (scroll < 0) + { + /* go to start of last line */ + if (mp_last == NULL) +--- 2633,2641 ---- + continue; + } + +! if (toscroll != 0) + { +! if (toscroll < 0) + { + /* go to start of last line */ + if (mp_last == NULL) +*************** +*** 2653,2659 **** + if (mp != NULL && mp->sb_prev != NULL) + { + /* Find line to be displayed at top. */ +! for (i = 0; i > scroll; --i) + { + if (mp == NULL || mp->sb_prev == NULL) + break; +--- 2653,2659 ---- + if (mp != NULL && mp->sb_prev != NULL) + { + /* Find line to be displayed at top. */ +! for (i = 0; i > toscroll; --i) + { + if (mp == NULL || mp->sb_prev == NULL) + break; +*************** +*** 2664,2670 **** + mp_last = msg_sb_start(mp_last->sb_prev); + } + +! if (scroll == -1 && screen_ins_lines(0, 0, 1, + (int)Rows, NULL) == OK) + { + /* display line at top */ +--- 2664,2670 ---- + mp_last = msg_sb_start(mp_last->sb_prev); + } + +! if (toscroll == -1 && screen_ins_lines(0, 0, 1, + (int)Rows, NULL) == OK) + { + /* display line at top */ +*************** +*** 2680,2692 **** + ++msg_scrolled; + } + } +! scroll = 0; + } + } + else + { + /* First display any text that we scrolled back. */ +! while (scroll > 0 && mp_last != NULL) + { + /* scroll up, display line at bottom */ + msg_scroll_up(); +--- 2680,2692 ---- + ++msg_scrolled; + } + } +! toscroll = 0; + } + } + else + { + /* First display any text that we scrolled back. */ +! while (toscroll > 0 && mp_last != NULL) + { + /* scroll up, display line at bottom */ + msg_scroll_up(); +*************** +*** 2694,2704 **** + screen_fill((int)Rows - 2, (int)Rows - 1, 0, + (int)Columns, ' ', ' ', 0); + mp_last = disp_sb_line((int)Rows - 2, mp_last); +! --scroll; + } + } + +! if (scroll <= 0) + { + /* displayed the requested text, more prompt again */ + screen_fill((int)Rows - 1, (int)Rows, 0, +--- 2694,2704 ---- + screen_fill((int)Rows - 2, (int)Rows - 1, 0, + (int)Columns, ' ', ' ', 0); + mp_last = disp_sb_line((int)Rows - 2, mp_last); +! --toscroll; + } + } + +! if (toscroll <= 0) + { + /* displayed the requested text, more prompt again */ + screen_fill((int)Rows - 1, (int)Rows, 0, +*************** +*** 2708,2714 **** + } + + /* display more text, return to caller */ +! lines_left = scroll; + } + + break; +--- 2708,2714 ---- + } + + /* display more text, return to caller */ +! lines_left = toscroll; + } + + break; +*** ../vim-7.3.399/src/misc2.c 2012-01-10 16:28:41.000000000 +0100 +--- src/misc2.c 2012-01-10 22:04:25.000000000 +0100 +*************** +*** 1559,1565 **** + if (enc_utf8) + { + int c, uc; +! int nl; + char_u *s; + + c = utf_ptr2char(p); +--- 1559,1565 ---- + if (enc_utf8) + { + int c, uc; +! int newl; + char_u *s; + + c = utf_ptr2char(p); +*************** +*** 1568,1588 **** + /* Reallocate string when byte count changes. This is rare, + * thus it's OK to do another malloc()/free(). */ + l = utf_ptr2len(p); +! nl = utf_char2len(uc); +! if (nl != l) + { +! s = alloc((unsigned)STRLEN(res) + 1 + nl - l); + if (s == NULL) + break; + mch_memmove(s, res, p - res); +! STRCPY(s + (p - res) + nl, p + l); + p = s + (p - res); + vim_free(res); + res = s; + } + + utf_char2bytes(uc, p); +! p += nl; + } + else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1) + p += l; /* skip multi-byte character */ +--- 1568,1588 ---- + /* Reallocate string when byte count changes. This is rare, + * thus it's OK to do another malloc()/free(). */ + l = utf_ptr2len(p); +! newl = utf_char2len(uc); +! if (newl != l) + { +! s = alloc((unsigned)STRLEN(res) + 1 + newl - l); + if (s == NULL) + break; + mch_memmove(s, res, p - res); +! STRCPY(s + (p - res) + newl, p + l); + p = s + (p - res); + vim_free(res); + res = s; + } + + utf_char2bytes(uc, p); +! p += newl; + } + else if (has_mbyte && (l = (*mb_ptr2len)(p)) > 1) + p += l; /* skip multi-byte character */ +*** ../vim-7.3.399/src/move.c 2011-02-01 18:01:06.000000000 +0100 +--- src/move.c 2012-01-10 22:05:22.000000000 +0100 +*************** +*** 926,933 **** + * Also updates curwin->w_leftcol. + */ + void +! curs_columns(scroll) +! int scroll; /* when TRUE, may scroll horizontally */ + { + int diff; + int extra; /* offset for first screen line */ +--- 926,933 ---- + * Also updates curwin->w_leftcol. + */ + void +! curs_columns(may_scroll) +! int may_scroll; /* when TRUE, may scroll horizontally */ + { + int diff; + int extra; /* offset for first screen line */ +*************** +*** 1014,1020 **** + /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line + * is not folded. + * If scrolling is off, curwin->w_leftcol is assumed to be 0 */ +! else if (scroll + #ifdef FEAT_FOLDING + && !curwin->w_cline_folded + #endif +--- 1014,1020 ---- + /* No line wrapping: compute curwin->w_leftcol if scrolling is on and line + * is not folded. + * If scrolling is off, curwin->w_leftcol is assumed to be 0 */ +! else if (may_scroll + #ifdef FEAT_FOLDING + && !curwin->w_cline_folded + #endif +*** ../vim-7.3.399/src/netbeans.c 2011-10-20 21:58:20.000000000 +0200 +--- src/netbeans.c 2012-01-10 22:16:26.000000000 +0100 +*************** +*** 1395,1401 **** + int cmdno, + char_u *args) /* points to space before arguments or NUL */ + { +! int doupdate = 0; + long off = 0; + nbbuf_T *buf = nb_get_buf(bufno); + static int skip = 0; +--- 1395,1401 ---- + int cmdno, + char_u *args) /* points to space before arguments or NUL */ + { +! int do_update = 0; + long off = 0; + nbbuf_T *buf = nb_get_buf(bufno); + static int skip = 0; +*************** +*** 1600,1606 **** + last.lnum, last.col)); + del_from_lnum = first.lnum; + del_to_lnum = last.lnum; +! doupdate = 1; + + /* Get the position of the first byte after the deleted + * section. "next" is NULL when deleting to the end of the +--- 1600,1606 ---- + last.lnum, last.col)); + del_from_lnum = first.lnum; + del_to_lnum = last.lnum; +! do_update = 1; + + /* Get the position of the first byte after the deleted + * section. "next" is NULL when deleting to the end of the +*************** +*** 1777,1783 **** + lnum = lnum_start; + + /* Loop over the "\n" separated lines of the argument. */ +! doupdate = 1; + while (*args != NUL) + { + nl = vim_strchr(args, '\n'); +--- 1777,1783 ---- + lnum = lnum_start; + + /* Loop over the "\n" separated lines of the argument. */ +! do_update = 1; + while (*args != NUL) + { + nl = vim_strchr(args, '\n'); +*************** +*** 1992,1998 **** + EMSG("E640: invalid buffer identifier in initDone"); + return FAIL; + } +! doupdate = 1; + buf->initDone = TRUE; + nb_set_curbuf(buf->bufp); + #if defined(FEAT_AUTOCMD) +--- 1992,1998 ---- + EMSG("E640: invalid buffer identifier in initDone"); + return FAIL; + } +! do_update = 1; + buf->initDone = TRUE; + nb_set_curbuf(buf->bufp); + #if defined(FEAT_AUTOCMD) +*************** +*** 2081,2087 **** + ECMD_HIDE + ECMD_OLDBUF, curwin); + buf->bufp = curbuf; + buf->initDone = TRUE; +! doupdate = 1; + #if defined(FEAT_TITLE) + maketitle(); + #endif +--- 2081,2087 ---- + ECMD_HIDE + ECMD_OLDBUF, curwin); + buf->bufp = curbuf; + buf->initDone = TRUE; +! do_update = 1; + #if defined(FEAT_TITLE) + maketitle(); + #endif +*************** +*** 2109,2115 **** + exarg.forceit = FALSE; + dosetvisible = TRUE; + goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum); +! doupdate = 1; + dosetvisible = FALSE; + + #ifdef FEAT_GUI +--- 2109,2115 ---- + exarg.forceit = FALSE; + dosetvisible = TRUE; + goto_buffer(&exarg, DOBUF_FIRST, FORWARD, buf->bufp->b_fnum); +! do_update = 1; + dosetvisible = FALSE; + + #ifdef FEAT_GUI +*************** +*** 2309,2315 **** + buf->bufp->b_fnum, TRUE); + buf->bufp = NULL; + buf->initDone = FALSE; +! doupdate = 1; + /* =====================================================================*/ + } + else if (streq((char *)cmd, "setStyle")) /* obsolete... */ +--- 2309,2315 ---- + buf->bufp->b_fnum, TRUE); + buf->bufp = NULL; + buf->initDone = FALSE; +! do_update = 1; + /* =====================================================================*/ + } + else if (streq((char *)cmd, "setStyle")) /* obsolete... */ +*************** +*** 2400,2406 **** + return FAIL; + } + +! doupdate = 1; + + cp = (char *)args; + serNum = strtol(cp, &cp, 10); +--- 2400,2406 ---- + return FAIL; + } + +! do_update = 1; + + cp = (char *)args; + serNum = strtol(cp, &cp, 10); +*************** +*** 2448,2454 **** + nbdebug((" invalid buffer identifier in removeAnno\n")); + return FAIL; + } +! doupdate = 1; + cp = (char *)args; + serNum = strtol(cp, &cp, 10); + args = (char_u *)cp; +--- 2448,2454 ---- + nbdebug((" invalid buffer identifier in removeAnno\n")); + return FAIL; + } +! do_update = 1; + cp = (char *)args; + serNum = strtol(cp, &cp, 10); + args = (char_u *)cp; +*************** +*** 2493,2499 **** + len = strtol(cp, NULL, 10); + args = (char_u *)cp; + pos = off2pos(buf->bufp, off); +! doupdate = 1; + if (!pos) + nbdebug((" no such start pos in %s, %ld\n", cmd, off)); + else +--- 2493,2499 ---- + len = strtol(cp, NULL, 10); + args = (char_u *)cp; + pos = off2pos(buf->bufp, off); +! do_update = 1; + if (!pos) + nbdebug((" no such start pos in %s, %ld\n", cmd, off)); + else +*************** +*** 2555,2561 **** + inAtomic = 0; + if (needupdate) + { +! doupdate = 1; + needupdate = 0; + } + /* =====================================================================*/ +--- 2555,2561 ---- + inAtomic = 0; + if (needupdate) + { +! do_update = 1; + needupdate = 0; + } + /* =====================================================================*/ +*************** +*** 2636,2653 **** + * Unrecognized command is ignored. + */ + } +! if (inAtomic && doupdate) + { + needupdate = 1; +! doupdate = 0; + } + + /* + * Is this needed? I moved the netbeans_Xt_connect() later during startup + * and it may no longer be necessary. If its not needed then needupdate +! * and doupdate can also be removed. + */ +! if (buf != NULL && buf->initDone && doupdate) + { + update_screen(NOT_VALID); + setcursor(); +--- 2636,2653 ---- + * Unrecognized command is ignored. + */ + } +! if (inAtomic && do_update) + { + needupdate = 1; +! do_update = 0; + } + + /* + * Is this needed? I moved the netbeans_Xt_connect() later during startup + * and it may no longer be necessary. If its not needed then needupdate +! * and do_update can also be removed. + */ +! if (buf != NULL && buf->initDone && do_update) + { + update_screen(NOT_VALID); + setcursor(); +*** ../vim-7.3.399/src/option.c 2012-01-04 19:34:32.000000000 +0100 +--- src/option.c 2012-01-10 22:06:03.000000000 +0100 +*************** +*** 8584,8591 **** + long_u flags; + { + /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */ +! int clear = (flags & P_RCLR) == P_RCLR; +! int all = ((flags & P_RALL) == P_RALL || clear); + + #ifdef FEAT_WINDOWS + if ((flags & P_RSTAT) || all) /* mark all status lines dirty */ +--- 8584,8591 ---- + long_u flags; + { + /* Careful: P_RCLR and P_RALL are a combination of other P_ flags */ +! int doclear = (flags & P_RCLR) == P_RCLR; +! int all = ((flags & P_RALL) == P_RALL || doclear); + + #ifdef FEAT_WINDOWS + if ((flags & P_RSTAT) || all) /* mark all status lines dirty */ +*************** +*** 8596,8602 **** + changed_window_setting(); + if (flags & P_RBUF) + redraw_curbuf_later(NOT_VALID); +! if (clear) + redraw_all_later(CLEAR); + else if (all) + redraw_all_later(NOT_VALID); +--- 8596,8602 ---- + changed_window_setting(); + if (flags & P_RBUF) + redraw_curbuf_later(NOT_VALID); +! if (doclear) + redraw_all_later(CLEAR); + else if (all) + redraw_all_later(NOT_VALID); +*** ../vim-7.3.399/src/os_unix.c 2011-10-20 21:09:25.000000000 +0200 +--- src/os_unix.c 2012-01-10 21:48:49.000000000 +0100 +*************** +*** 3884,3890 **** + char_u *p_shcf_copy = NULL; + int i; + char_u *p; +- char_u *s; + int inquote; + int pty_master_fd = -1; /* for pty's */ + # ifdef FEAT_GUI +--- 3884,3889 ---- +*************** +*** 3963,3968 **** +--- 3962,3969 ---- + } + if (cmd != NULL) + { ++ char_u *s; ++ + if (extra_shell_arg != NULL) + argv[argc++] = (char *)extra_shell_arg; + +*************** +*** 4325,4331 **** + linenr_T lnum = curbuf->b_op_start.lnum; + int written = 0; + char_u *lp = ml_get(lnum); +- char_u *s; + size_t l; + + close(fromshell_fd); +--- 4326,4331 ---- +*************** +*** 4339,4345 **** + len = write(toshell_fd, "", (size_t)1); + else + { +! s = vim_strchr(lp + written, NL); + len = write(toshell_fd, (char *)lp + written, + s == NULL ? l + : (size_t)(s - (lp + written))); +--- 4339,4346 ---- + len = write(toshell_fd, "", (size_t)1); + else + { +! char_u *s = vim_strchr(lp + written, NL); +! + len = write(toshell_fd, (char *)lp + written, + s == NULL ? l + : (size_t)(s - (lp + written))); +*** ../vim-7.3.399/src/screen.c 2012-01-10 12:42:05.000000000 +0100 +--- src/screen.c 2012-01-10 22:06:51.000000000 +0100 +*************** +*** 7849,7863 **** + + /* + * screen_valid - allocate screen buffers if size changed +! * If "clear" is TRUE: clear screen if it has been resized. + * Returns TRUE if there is a valid screen to write to. + * Returns FALSE when starting up and screen not initialized yet. + */ + int +! screen_valid(clear) +! int clear; + { +! screenalloc(clear); /* allocate screen buffers if size changed */ + return (ScreenLines != NULL); + } + +--- 7849,7863 ---- + + /* + * screen_valid - allocate screen buffers if size changed +! * If "doclear" is TRUE: clear screen if it has been resized. + * Returns TRUE if there is a valid screen to write to. + * Returns FALSE when starting up and screen not initialized yet. + */ + int +! screen_valid(doclear) +! int doclear; + { +! screenalloc(doclear); /* allocate screen buffers if size changed */ + return (ScreenLines != NULL); + } + +*************** +*** 7872,7879 **** + * final size of the shell is needed. + */ + void +! screenalloc(clear) +! int clear; + { + int new_row, old_row; + #ifdef FEAT_GUI +--- 7872,7879 ---- + * final size of the shell is needed. + */ + void +! screenalloc(doclear) +! int doclear; + { + int new_row, old_row; + #ifdef FEAT_GUI +*************** +*** 8069,8075 **** + * (used when resizing the window at the "--more--" prompt or when + * executing an external command, for the GUI). + */ +! if (!clear) + { + (void)vim_memset(new_ScreenLines + new_row * Columns, + ' ', (size_t)Columns * sizeof(schar_T)); +--- 8069,8075 ---- + * (used when resizing the window at the "--more--" prompt or when + * executing an external command, for the GUI). + */ +! if (!doclear) + { + (void)vim_memset(new_ScreenLines + new_row * Columns, + ' ', (size_t)Columns * sizeof(schar_T)); +*************** +*** 8159,8165 **** + screen_Columns = Columns; + + must_redraw = CLEAR; /* need to clear the screen later */ +! if (clear) + screenclear2(); + + #ifdef FEAT_GUI +--- 8159,8165 ---- + screen_Columns = Columns; + + must_redraw = CLEAR; /* need to clear the screen later */ +! if (doclear) + screenclear2(); + + #ifdef FEAT_GUI +*** ../vim-7.3.399/src/search.c 2011-10-04 17:00:13.000000000 +0200 +--- src/search.c 2012-01-10 22:07:16.000000000 +0100 +*************** +*** 2402,2425 **** + { + if (vim_strchr(p, ';') != NULL) /* there may be comments */ + { +! int instr = FALSE; /* inside of string */ + + p = line; /* scan from start */ + while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL) + { + if (*p == '"') + { +! if (instr) + { + if (*(p - 1) != '\\') /* skip escaped quote */ +! instr = FALSE; + } + else if (p == line || ((p - line) >= 2 + /* skip #\" form */ + && *(p - 1) != '\\' && *(p - 2) != '#')) +! instr = TRUE; + } +! else if (!instr && ((p - line) < 2 + || (*(p - 1) != '\\' && *(p - 2) != '#'))) + break; /* found! */ + ++p; +--- 2402,2425 ---- + { + if (vim_strchr(p, ';') != NULL) /* there may be comments */ + { +! int in_str = FALSE; /* inside of string */ + + p = line; /* scan from start */ + while ((p = vim_strpbrk(p, (char_u *)"\";")) != NULL) + { + if (*p == '"') + { +! if (in_str) + { + if (*(p - 1) != '\\') /* skip escaped quote */ +! in_str = FALSE; + } + else if (p == line || ((p - line) >= 2 + /* skip #\" form */ + && *(p - 1) != '\\' && *(p - 2) != '#')) +! in_str = TRUE; + } +! else if (!in_str && ((p - line) < 2 + || (*(p - 1) != '\\' && *(p - 2) != '#'))) + break; /* found! */ + ++p; +*** ../vim-7.3.399/src/spell.c 2012-01-10 16:28:41.000000000 +0100 +--- src/spell.c 2012-01-10 22:09:23.000000000 +0100 +*************** +*** 5049,5055 **** + static int offset2bytes __ARGS((int nr, char_u *buf)); + static int bytes2offset __ARGS((char_u **pp)); + static void sug_write __ARGS((spellinfo_T *spin, char_u *fname)); +! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int overwrite, int added_word)); + static void spell_message __ARGS((spellinfo_T *spin, char_u *str)); + static void init_spellfile __ARGS((void)); + +--- 5049,5055 ---- + static int offset2bytes __ARGS((int nr, char_u *buf)); + static int bytes2offset __ARGS((char_u **pp)); + static void sug_write __ARGS((spellinfo_T *spin, char_u *fname)); +! static void mkspell __ARGS((int fcount, char_u **fnames, int ascii, int over_write, int added_word)); + static void spell_message __ARGS((spellinfo_T *spin, char_u *str)); + static void init_spellfile __ARGS((void)); + +*************** +*** 9085,9095 **** + * and ".spl" is appended to make the output file name. + */ + static void +! mkspell(fcount, fnames, ascii, overwrite, added_word) + int fcount; + char_u **fnames; + int ascii; /* -ascii argument given */ +! int overwrite; /* overwrite existing output file */ + int added_word; /* invoked through "zg" */ + { + char_u *fname = NULL; +--- 9085,9095 ---- + * and ".spl" is appended to make the output file name. + */ + static void +! mkspell(fcount, fnames, ascii, over_write, added_word) + int fcount; + char_u **fnames; + int ascii; /* -ascii argument given */ +! int over_write; /* overwrite existing output file */ + int added_word; /* invoked through "zg" */ + { + char_u *fname = NULL; +*************** +*** 9173,9179 **** + { + /* Check for overwriting before doing things that may take a lot of + * time. */ +! if (!overwrite && mch_stat((char *)wfname, &st) >= 0) + { + EMSG(_(e_exists)); + goto theend; +--- 9173,9179 ---- + { + /* Check for overwriting before doing things that may take a lot of + * time. */ +! if (!over_write && mch_stat((char *)wfname, &st) >= 0) + { + EMSG(_(e_exists)); + goto theend; +*** ../vim-7.3.399/src/syntax.c 2011-06-19 04:54:17.000000000 +0200 +--- src/syntax.c 2012-01-10 22:10:23.000000000 +0100 +*************** +*** 4006,4022 **** + } + + static void +! syn_list_flags(nl, flags, attr) +! struct name_list *nl; + int flags; + int attr; + { + int i; + +! for (i = 0; nl[i].flag != 0; ++i) +! if (flags & nl[i].flag) + { +! msg_puts_attr((char_u *)nl[i].name, attr); + msg_putchar(' '); + } + } +--- 4006,4022 ---- + } + + static void +! syn_list_flags(nlist, flags, attr) +! struct name_list *nlist; + int flags; + int attr; + { + int i; + +! for (i = 0; nlist[i].flag != 0; ++i) +! if (flags & nlist[i].flag) + { +! msg_puts_attr((char_u *)nlist[i].name, attr); + msg_putchar(' '); + } + } +*** ../vim-7.3.399/src/tag.c 2011-12-14 14:15:12.000000000 +0100 +--- src/tag.c 2012-01-10 21:51:05.000000000 +0100 +*************** +*** 1353,1359 **** + int match_count = 0; /* number of matches found */ + char_u **matches; + int mtt; +- int len; + int help_save; + #ifdef FEAT_MULTI_LANG + int help_pri = 0; +--- 1353,1358 ---- +*************** +*** 2235,2240 **** +--- 2234,2241 ---- + */ + if (ga_grow(&ga_match[mtt], 1) == OK) + { ++ int len; ++ + if (help_only) + { + #ifdef FEAT_MULTI_LANG +*** ../vim-7.3.399/src/window.c 2011-12-30 15:01:55.000000000 +0100 +--- src/window.c 2012-01-10 22:11:41.000000000 +0100 +*************** +*** 683,701 **** + } + + /* +! * When "newwin" is NULL: split the current window in two. +! * When "newwin" is not NULL: insert this window at the far + * top/left/right/bottom. + * return FAIL for failure, OK otherwise + */ + int +! win_split_ins(size, flags, newwin, dir) + int size; + int flags; +! win_T *newwin; + int dir; + { +! win_T *wp = newwin; + win_T *oldwin; + int new_size = size; + int i; +--- 683,701 ---- + } + + /* +! * When "new_wp" is NULL: split the current window in two. +! * When "new_wp" is not NULL: insert this window at the far + * top/left/right/bottom. + * return FAIL for failure, OK otherwise + */ + int +! win_split_ins(size, flags, new_wp, dir) + int size; + int flags; +! win_T *new_wp; + int dir; + { +! win_T *wp = new_wp; + win_T *oldwin; + int new_size = size; + int i; +*************** +*** 718,724 **** + /* add a status line when p_ls == 1 and splitting the first window */ + if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0) + { +! if (oldwin->w_height <= p_wmh && newwin == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +--- 718,724 ---- + /* add a status line when p_ls == 1 and splitting the first window */ + if (lastwin == firstwin && p_ls == 1 && oldwin->w_status_height == 0) + { +! if (oldwin->w_height <= p_wmh && new_wp == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +*************** +*** 751,757 **** + } + else + available = oldwin->w_width; +! if (available < needed && newwin == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +--- 751,757 ---- + } + else + available = oldwin->w_width; +! if (available < needed && new_wp == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +*************** +*** 815,821 **** + available = oldwin->w_height; + needed += p_wmh; + } +! if (available < needed && newwin == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +--- 815,821 ---- + available = oldwin->w_height; + needed += p_wmh; + } +! if (available < needed && new_wp == NULL) + { + EMSG(_(e_noroom)); + return FAIL; +*************** +*** 888,907 **** + p_sb)))) + { + /* new window below/right of current one */ +! if (newwin == NULL) + wp = win_alloc(oldwin, FALSE); + else + win_append(oldwin, wp); + } + else + { +! if (newwin == NULL) + wp = win_alloc(oldwin->w_prev, FALSE); + else + win_append(oldwin->w_prev, wp); + } + +! if (newwin == NULL) + { + if (wp == NULL) + return FAIL; +--- 888,907 ---- + p_sb)))) + { + /* new window below/right of current one */ +! if (new_wp == NULL) + wp = win_alloc(oldwin, FALSE); + else + win_append(oldwin, wp); + } + else + { +! if (new_wp == NULL) + wp = win_alloc(oldwin->w_prev, FALSE); + else + win_append(oldwin->w_prev, wp); + } + +! if (new_wp == NULL) + { + if (wp == NULL) + return FAIL; +*************** +*** 972,981 **** + frp->fr_parent = curfrp; + } + +! if (newwin == NULL) + frp = wp->w_frame; + else +! frp = newwin->w_frame; + frp->fr_parent = curfrp->fr_parent; + + /* Insert the new frame at the right place in the frame list. */ +--- 972,981 ---- + frp->fr_parent = curfrp; + } + +! if (new_wp == NULL) + frp = wp->w_frame; + else +! frp = new_wp->w_frame; + frp->fr_parent = curfrp->fr_parent; + + /* Insert the new frame at the right place in the frame list. */ +*************** +*** 4284,4302 **** + win_T *after UNUSED; + int hidden UNUSED; + { +! win_T *newwin; + + /* + * allocate window structure and linesizes arrays + */ +! newwin = (win_T *)alloc_clear((unsigned)sizeof(win_T)); +! if (newwin != NULL && win_alloc_lines(newwin) == FAIL) + { +! vim_free(newwin); +! newwin = NULL; + } + +! if (newwin != NULL) + { + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is not properly +--- 4284,4302 ---- + win_T *after UNUSED; + int hidden UNUSED; + { +! win_T *new_wp; + + /* + * allocate window structure and linesizes arrays + */ +! new_wp = (win_T *)alloc_clear((unsigned)sizeof(win_T)); +! if (new_wp != NULL && win_alloc_lines(new_wp) == FAIL) + { +! vim_free(new_wp); +! new_wp = NULL; + } + +! if (new_wp != NULL) + { + #ifdef FEAT_AUTOCMD + /* Don't execute autocommands while the window is not properly +*************** +*** 4309,4361 **** + */ + #ifdef FEAT_WINDOWS + if (!hidden) +! win_append(after, newwin); + #endif + #ifdef FEAT_VERTSPLIT +! newwin->w_wincol = 0; +! newwin->w_width = Columns; + #endif + + /* position the display and the cursor at the top of the file. */ +! newwin->w_topline = 1; + #ifdef FEAT_DIFF +! newwin->w_topfill = 0; + #endif +! newwin->w_botline = 2; +! newwin->w_cursor.lnum = 1; + #ifdef FEAT_SCROLLBIND +! newwin->w_scbind_pos = 1; + #endif + + /* We won't calculate w_fraction until resizing the window */ +! newwin->w_fraction = 0; +! newwin->w_prev_fraction_row = -1; + + #ifdef FEAT_GUI + if (gui.in_use) + { +! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_LEFT], +! SBAR_LEFT, newwin); +! gui_create_scrollbar(&newwin->w_scrollbars[SBAR_RIGHT], +! SBAR_RIGHT, newwin); + } + #endif + #ifdef FEAT_EVAL + /* init w: variables */ +! init_var_dict(&newwin->w_vars, &newwin->w_winvar); + #endif + #ifdef FEAT_FOLDING +! foldInitWin(newwin); + #endif + #ifdef FEAT_AUTOCMD + unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA +! newwin->w_match_head = NULL; +! newwin->w_next_match_id = 4; + #endif + } +! return newwin; + } + + #if defined(FEAT_WINDOWS) || defined(PROTO) +--- 4309,4361 ---- + */ + #ifdef FEAT_WINDOWS + if (!hidden) +! win_append(after, new_wp); + #endif + #ifdef FEAT_VERTSPLIT +! new_wp->w_wincol = 0; +! new_wp->w_width = Columns; + #endif + + /* position the display and the cursor at the top of the file. */ +! new_wp->w_topline = 1; + #ifdef FEAT_DIFF +! new_wp->w_topfill = 0; + #endif +! new_wp->w_botline = 2; +! new_wp->w_cursor.lnum = 1; + #ifdef FEAT_SCROLLBIND +! new_wp->w_scbind_pos = 1; + #endif + + /* We won't calculate w_fraction until resizing the window */ +! new_wp->w_fraction = 0; +! new_wp->w_prev_fraction_row = -1; + + #ifdef FEAT_GUI + if (gui.in_use) + { +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_LEFT], +! SBAR_LEFT, new_wp); +! gui_create_scrollbar(&new_wp->w_scrollbars[SBAR_RIGHT], +! SBAR_RIGHT, new_wp); + } + #endif + #ifdef FEAT_EVAL + /* init w: variables */ +! init_var_dict(&new_wp->w_vars, &new_wp->w_winvar); + #endif + #ifdef FEAT_FOLDING +! foldInitWin(new_wp); + #endif + #ifdef FEAT_AUTOCMD + unblock_autocmds(); + #endif + #ifdef FEAT_SEARCH_EXTRA +! new_wp->w_match_head = NULL; +! new_wp->w_next_match_id = 4; + #endif + } +! return new_wp; + } + + #if defined(FEAT_WINDOWS) || defined(PROTO) +*** ../vim-7.3.399/src/version.c 2012-01-10 18:37:53.000000000 +0100 +--- src/version.c 2012-01-10 22:23:10.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 400, + /**/ + +-- +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.3.401 b/7.3.401 new file mode 100644 index 0000000..6a473c5 --- /dev/null +++ b/7.3.401 @@ -0,0 +1,191 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.3.401 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.3.401 +Problem: A couple more shadowed variables. +Solution: Rename the variables. +Files: src/netbeans.c + + +*** ../vim-7.3.400/src/netbeans.c 2012-01-10 22:26:12.000000000 +0100 +--- src/netbeans.c 2012-01-10 22:30:17.000000000 +0100 +*************** +*** 443,449 **** + FILE *fp; + char_u buf[BUFSIZ]; + char_u *lp; +! char_u *nl; + #ifdef UNIX + struct stat st; + +--- 443,449 ---- + FILE *fp; + char_u buf[BUFSIZ]; + char_u *lp; +! char_u *nlp; + #ifdef UNIX + struct stat st; + +*************** +*** 472,479 **** + /* Read the file. There should be one of each parameter */ + while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL) + { +! if ((nl = vim_strchr(lp, '\n')) != NULL) +! *nl = 0; /* strip off the trailing newline */ + + if (STRNCMP(lp, "host=", 5) == 0) + { +--- 472,479 ---- + /* Read the file. There should be one of each parameter */ + while ((lp = (char_u *)fgets((char *)buf, BUFSIZ, fp)) != NULL) + { +! if ((nlp = vim_strchr(lp, '\n')) != NULL) +! *nlp = 0; /* strip off the trailing newline */ + + if (STRNCMP(lp, "host=", 5) == 0) + { +*************** +*** 1740,1746 **** + int added = 0; + int oldFire = netbeansFireChanges; + int old_b_changed; +! char_u *nl; + linenr_T lnum; + linenr_T lnum_start; + pos_T *pos; +--- 1740,1746 ---- + int added = 0; + int oldFire = netbeansFireChanges; + int old_b_changed; +! char_u *nlp; + linenr_T lnum; + linenr_T lnum_start; + pos_T *pos; +*************** +*** 1780,1787 **** + do_update = 1; + while (*args != NUL) + { +! nl = vim_strchr(args, '\n'); +! if (nl == NULL) + { + /* Incomplete line, probably truncated. Next "insert" + * command should append to this one. */ +--- 1780,1787 ---- + do_update = 1; + while (*args != NUL) + { +! nlp = vim_strchr(args, '\n'); +! if (nlp == NULL) + { + /* Incomplete line, probably truncated. Next "insert" + * command should append to this one. */ +*************** +*** 1789,1801 **** + } + else + { +! len = nl - args; + + /* + * We need to detect EOL style, because the commands + * use a character offset. + */ +! if (nl > args && nl[-1] == '\r') + { + ff_detected = EOL_DOS; + --len; +--- 1789,1801 ---- + } + else + { +! len = nlp - args; + + /* + * We need to detect EOL style, because the commands + * use a character offset. + */ +! if (nlp > args && nlp[-1] == '\r') + { + ff_detected = EOL_DOS; + --len; +*************** +*** 1814,1820 **** + + /* Insert halfway a line. For simplicity we assume we + * need to append to the line. */ +! newline = alloc_check((unsigned)(STRLEN(oldline) + len + 1)); + if (newline != NULL) + { + STRCPY(newline, oldline); +--- 1814,1821 ---- + + /* Insert halfway a line. For simplicity we assume we + * need to append to the line. */ +! newline = alloc_check( +! (unsigned)(STRLEN(oldline) + len + 1)); + if (newline != NULL) + { + STRCPY(newline, oldline); +*************** +*** 1826,1839 **** + { + /* Append a new line. Not that we always do this, + * also when the text doesn't end in a "\n". */ +! ml_append((linenr_T)(lnum - 1), args, (colnr_T)(len + 1), FALSE); + ++added; + } + +! if (nl == NULL) + break; + ++lnum; +! args = nl + 1; + } + + /* Adjust the marks below the inserted lines. */ +--- 1827,1841 ---- + { + /* Append a new line. Not that we always do this, + * also when the text doesn't end in a "\n". */ +! ml_append((linenr_T)(lnum - 1), args, +! (colnr_T)(len + 1), FALSE); + ++added; + } + +! if (nlp == NULL) + break; + ++lnum; +! args = nlp + 1; + } + + /* Adjust the marks below the inserted lines. */ +*** ../vim-7.3.400/src/version.c 2012-01-10 22:26:12.000000000 +0100 +--- src/version.c 2012-01-10 22:30:47.000000000 +0100 +*************** +*** 716,717 **** +--- 716,719 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 401, + /**/ + +-- +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 ///