diff --git a/7.4.001 b/7.4.001 new file mode 100644 index 0000000..5788972 --- /dev/null +++ b/7.4.001 @@ -0,0 +1,489 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.001 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.001 +Problem: Character classes such as [a-z] to not react to 'ignorecase'. + Breaks man page highlighting. (Mario Grgic) +Solution: Add separate items for classes that react to 'ignorecase'. Clean + up logic handling character classes. Add more tests. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.4.000/src/regexp_nfa.c 2013-08-01 18:27:51.000000000 +0200 +--- src/regexp_nfa.c 2013-08-14 11:49:50.000000000 +0200 +*************** +*** 29,34 **** +--- 29,37 ---- + # define NFA_REGEXP_DEBUG_LOG "nfa_regexp_debug.log" + #endif + ++ /* Added to NFA_ANY - NFA_NUPPER_IC to include a NL. */ ++ #define NFA_ADD_NL 31 ++ + enum + { + NFA_SPLIT = -1024, +*************** +*** 183,188 **** +--- 186,198 ---- + NFA_NLOWER, /* Match non-lowercase char */ + NFA_UPPER, /* Match uppercase char */ + NFA_NUPPER, /* Match non-uppercase char */ ++ NFA_LOWER_IC, /* Match [a-z] */ ++ NFA_NLOWER_IC, /* Match [^a-z] */ ++ NFA_UPPER_IC, /* Match [A-Z] */ ++ NFA_NUPPER_IC, /* Match [^A-Z] */ ++ ++ NFA_FIRST_NL = NFA_ANY + NFA_ADD_NL, ++ NFA_LAST_NL = NFA_NUPPER_IC + NFA_ADD_NL, + + NFA_CURSOR, /* Match cursor pos */ + NFA_LNUM, /* Match line number */ +*************** +*** 199,207 **** + NFA_MARK_LT, /* Match < mark */ + NFA_VISUAL, /* Match Visual area */ + +- NFA_FIRST_NL = NFA_ANY + ADD_NL, +- NFA_LAST_NL = NFA_NUPPER + ADD_NL, +- + /* Character classes [:alnum:] etc */ + NFA_CLASS_ALNUM, + NFA_CLASS_ALPHA, +--- 209,214 ---- +*************** +*** 578,583 **** +--- 585,592 ---- + * On failure, return 0 (=FAIL) + * Start points to the first char of the range, while end should point + * to the closing brace. ++ * Keep in mind that 'ignorecase' applies at execution time, thus [a-z] may ++ * need to be interpreted as [a-zA-Z]. + */ + static int + nfa_recognize_char_class(start, end, extra_newl) +*************** +*** 681,687 **** + return FAIL; + + if (newl == TRUE) +! extra_newl = ADD_NL; + + switch (config) + { +--- 690,696 ---- + return FAIL; + + if (newl == TRUE) +! extra_newl = NFA_ADD_NL; + + switch (config) + { +*************** +*** 710,722 **** + case CLASS_not | CLASS_az | CLASS_AZ: + return extra_newl + NFA_NALPHA; + case CLASS_az: +! return extra_newl + NFA_LOWER; + case CLASS_not | CLASS_az: +! return extra_newl + NFA_NLOWER; + case CLASS_AZ: +! return extra_newl + NFA_UPPER; + case CLASS_not | CLASS_AZ: +! return extra_newl + NFA_NUPPER; + } + return FAIL; + } +--- 719,731 ---- + case CLASS_not | CLASS_az | CLASS_AZ: + return extra_newl + NFA_NALPHA; + case CLASS_az: +! return extra_newl + NFA_LOWER_IC; + case CLASS_not | CLASS_az: +! return extra_newl + NFA_NLOWER_IC; + case CLASS_AZ: +! return extra_newl + NFA_UPPER_IC; + case CLASS_not | CLASS_AZ: +! return extra_newl + NFA_NUPPER_IC; + } + return FAIL; + } +*************** +*** 914,920 **** + break; + } + +! extra = ADD_NL; + + /* "\_[" is collection plus newline */ + if (c == '[') +--- 923,929 ---- + break; + } + +! extra = NFA_ADD_NL; + + /* "\_[" is collection plus newline */ + if (c == '[') +*************** +*** 970,976 **** + } + #endif + EMIT(nfa_classcodes[p - classchars]); +! if (extra == ADD_NL) + { + EMIT(NFA_NEWL); + EMIT(NFA_OR); +--- 979,985 ---- + } + #endif + EMIT(nfa_classcodes[p - classchars]); +! if (extra == NFA_ADD_NL) + { + EMIT(NFA_NEWL); + EMIT(NFA_OR); +*************** +*** 1240,1260 **** + { + /* + * Try to reverse engineer character classes. For example, +! * recognize that [0-9] stands for \d and [A-Za-z_] with \h, + * and perform the necessary substitutions in the NFA. + */ + result = nfa_recognize_char_class(regparse, endp, +! extra == ADD_NL); + if (result != FAIL) + { +! if (result >= NFA_DIGIT && result <= NFA_NUPPER) +! EMIT(result); +! else /* must be char class + newline */ + { +! EMIT(result - ADD_NL); + EMIT(NFA_NEWL); + EMIT(NFA_OR); + } + regparse = endp; + mb_ptr_adv(regparse); + return OK; +--- 1249,1269 ---- + { + /* + * Try to reverse engineer character classes. For example, +! * recognize that [0-9] stands for \d and [A-Za-z_] for \h, + * and perform the necessary substitutions in the NFA. + */ + result = nfa_recognize_char_class(regparse, endp, +! extra == NFA_ADD_NL); + if (result != FAIL) + { +! if (result >= NFA_FIRST_NL && result <= NFA_LAST_NL) + { +! EMIT(result - NFA_ADD_NL); + EMIT(NFA_NEWL); + EMIT(NFA_OR); + } ++ else ++ EMIT(result); + regparse = endp; + mb_ptr_adv(regparse); + return OK; +*************** +*** 1504,1510 **** + * collection, add an OR below. But not for negated + * range. */ + if (!negated) +! extra = ADD_NL; + } + else + { +--- 1513,1519 ---- + * collection, add an OR below. But not for negated + * range. */ + if (!negated) +! extra = NFA_ADD_NL; + } + else + { +*************** +*** 1537,1543 **** + EMIT(NFA_END_COLL); + + /* \_[] also matches \n but it's not negated */ +! if (extra == ADD_NL) + { + EMIT(reg_string ? NL : NFA_NEWL); + EMIT(NFA_OR); +--- 1546,1552 ---- + EMIT(NFA_END_COLL); + + /* \_[] also matches \n but it's not negated */ +! if (extra == NFA_ADD_NL) + { + EMIT(reg_string ? NL : NFA_NEWL); + EMIT(NFA_OR); +*************** +*** 2011,2017 **** + if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL) + { + addnl = TRUE; +! c -= ADD_NL; + } + + STRCPY(code, ""); +--- 2020,2026 ---- + if (c >= NFA_FIRST_NL && c <= NFA_LAST_NL) + { + addnl = TRUE; +! c -= NFA_ADD_NL; + } + + STRCPY(code, ""); +*************** +*** 2217,2222 **** +--- 2226,2235 ---- + case NFA_NLOWER:STRCPY(code, "NFA_NLOWER"); break; + case NFA_UPPER: STRCPY(code, "NFA_UPPER"); break; + case NFA_NUPPER:STRCPY(code, "NFA_NUPPER"); break; ++ case NFA_LOWER_IC: STRCPY(code, "NFA_LOWER_IC"); break; ++ case NFA_NLOWER_IC: STRCPY(code, "NFA_NLOWER_IC"); break; ++ case NFA_UPPER_IC: STRCPY(code, "NFA_UPPER_IC"); break; ++ case NFA_NUPPER_IC: STRCPY(code, "NFA_NUPPER_IC"); break; + + default: + STRCPY(code, "CHAR(x)"); +*************** +*** 2687,2692 **** +--- 2700,2709 ---- + case NFA_NLOWER: + case NFA_UPPER: + case NFA_NUPPER: ++ case NFA_LOWER_IC: ++ case NFA_NLOWER_IC: ++ case NFA_UPPER_IC: ++ case NFA_NUPPER_IC: + /* possibly non-ascii */ + #ifdef FEAT_MBYTE + if (has_mbyte) +*************** +*** 3841,3846 **** +--- 3858,3867 ---- + case NFA_NLOWER: + case NFA_UPPER: + case NFA_NUPPER: ++ case NFA_LOWER_IC: ++ case NFA_NLOWER_IC: ++ case NFA_UPPER_IC: ++ case NFA_NUPPER_IC: + case NFA_START_COLL: + case NFA_START_NEG_COLL: + case NFA_NEWL: +*************** +*** 5872,5877 **** +--- 5893,5920 ---- + ADD_STATE_IF_MATCH(t->state); + break; + ++ case NFA_LOWER_IC: /* [a-z] */ ++ result = ri_lower(curc) || (ireg_ic && ri_upper(curc)); ++ ADD_STATE_IF_MATCH(t->state); ++ break; ++ ++ case NFA_NLOWER_IC: /* [^a-z] */ ++ result = curc != NUL ++ && !(ri_lower(curc) || (ireg_ic && ri_upper(curc))); ++ ADD_STATE_IF_MATCH(t->state); ++ break; ++ ++ case NFA_UPPER_IC: /* [A-Z] */ ++ result = ri_upper(curc) || (ireg_ic && ri_lower(curc)); ++ ADD_STATE_IF_MATCH(t->state); ++ break; ++ ++ case NFA_NUPPER_IC: /* ^[A-Z] */ ++ result = curc != NUL ++ && !(ri_upper(curc) || (ireg_ic && ri_lower(curc))); ++ ADD_STATE_IF_MATCH(t->state); ++ break; ++ + case NFA_BACKREF1: + case NFA_BACKREF2: + case NFA_BACKREF3: +*** ../vim-7.4.000/src/testdir/test64.in 2013-08-01 17:45:33.000000000 +0200 +--- src/testdir/test64.in 2013-08-14 11:50:11.000000000 +0200 +*************** +*** 289,303 **** + :call add(tl, [2, '.a\%$', " a\n "]) + :call add(tl, [2, '.a\%$', " a\n_a", "_a"]) + :" +! :"""" Test recognition of some character classes +! :call add(tl, [2, '[0-9]', '8', '8']) +! :call add(tl, [2, '[^0-9]', '8']) +! :call add(tl, [2, '[0-9a-fA-F]*', '0a7', '0a7']) +! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0a7']) +! :call add(tl, [2, '[a-z_A-Z0-9]\+', 'aso_sfoij', 'aso_sfoij']) +! :call add(tl, [2, '[a-z]', 'a', 'a']) +! :call add(tl, [2, '[a-zA-Z]', 'a', 'a']) +! :call add(tl, [2, '[A-Z]', 'a']) + :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa']) + :" + :"""" Tests for \z features +--- 289,317 ---- + :call add(tl, [2, '.a\%$', " a\n "]) + :call add(tl, [2, '.a\%$', " a\n_a", "_a"]) + :" +! :"""" Test recognition of character classes +! :call add(tl, [2, '[0-7]\+', 'x0123456789x', '01234567']) +! :call add(tl, [2, '[^0-7]\+', '0a;X+% 897', 'a;X+% 89']) +! :call add(tl, [2, '[0-9]\+', 'x0123456789x', '0123456789']) +! :call add(tl, [2, '[^0-9]\+', '0a;X+% 9', 'a;X+% ']) +! :call add(tl, [2, '[0-9a-fA-F]\+', 'x0189abcdefg', '0189abcdef']) +! :call add(tl, [2, '[^0-9A-Fa-f]\+', '0189g;X+% ab', 'g;X+% ']) +! :call add(tl, [2, '[a-z_A-Z0-9]\+', ';+aso_SfOij ', 'aso_SfOij']) +! :call add(tl, [2, '[^a-z_A-Z0-9]\+', 'aSo_;+% sfOij', ';+% ']) +! :call add(tl, [2, '[a-z_A-Z]\+', '0abyz_ABYZ;', 'abyz_ABYZ']) +! :call add(tl, [2, '[^a-z_A-Z]\+', 'abAB_09;+% yzYZ', '09;+% ']) +! :call add(tl, [2, '[a-z]\+', '0abcxyz1', 'abcxyz']) +! :call add(tl, [2, '[a-z]\+', 'AabxyzZ', 'abxyz']) +! :call add(tl, [2, '[^a-z]\+', 'a;X09+% x', ';X09+% ']) +! :call add(tl, [2, '[^a-z]\+', 'abX0;%yz', 'X0;%']) +! :call add(tl, [2, '[a-zA-Z]\+', '0abABxzXZ9', 'abABxzXZ']) +! :call add(tl, [2, '[^a-zA-Z]\+', 'ab09_;+ XZ', '09_;+ ']) +! :call add(tl, [2, '[A-Z]\+', 'aABXYZz', 'ABXYZ']) +! :call add(tl, [2, '[^A-Z]\+', 'ABx0;%YZ', 'x0;%']) +! :call add(tl, [2, '[a-z]\+\c', '0abxyzABXYZ;', 'abxyzABXYZ']) +! :call add(tl, [2, '[A-Z]\+\c', '0abABxzXZ9', 'abABxzXZ']) +! :call add(tl, [2, '\c[^a-z]\+', 'ab09_;+ XZ', '09_;+ ']) +! :call add(tl, [2, '\c[^A-Z]\+', 'ab09_;+ XZ', '09_;+ ']) + :call add(tl, [2, '\C[^A-Z]\+', 'ABCOIJDEOIFNSD jsfoij sa', ' jsfoij sa']) + :" + :"""" Tests for \z features +*** ../vim-7.4.000/src/testdir/test64.ok 2013-08-01 18:28:56.000000000 +0200 +--- src/testdir/test64.ok 2013-08-14 11:50:37.000000000 +0200 +*************** +*** 650,679 **** + OK 0 - .a\%$ + OK 1 - .a\%$ + OK 2 - .a\%$ +! OK 0 - [0-9] +! OK 1 - [0-9] +! OK 2 - [0-9] +! OK 0 - [^0-9] +! OK 1 - [^0-9] +! OK 2 - [^0-9] +! OK 0 - [0-9a-fA-F]* +! OK 1 - [0-9a-fA-F]* +! OK 2 - [0-9a-fA-F]* + OK 0 - [^0-9A-Fa-f]\+ + OK 1 - [^0-9A-Fa-f]\+ + OK 2 - [^0-9A-Fa-f]\+ + OK 0 - [a-z_A-Z0-9]\+ + OK 1 - [a-z_A-Z0-9]\+ + OK 2 - [a-z_A-Z0-9]\+ +! OK 0 - [a-z] +! OK 1 - [a-z] +! OK 2 - [a-z] +! OK 0 - [a-zA-Z] +! OK 1 - [a-zA-Z] +! OK 2 - [a-zA-Z] +! OK 0 - [A-Z] +! OK 1 - [A-Z] +! OK 2 - [A-Z] + OK 0 - \C[^A-Z]\+ + OK 1 - \C[^A-Z]\+ + OK 2 - \C[^A-Z]\+ +--- 650,721 ---- + OK 0 - .a\%$ + OK 1 - .a\%$ + OK 2 - .a\%$ +! OK 0 - [0-7]\+ +! OK 1 - [0-7]\+ +! OK 2 - [0-7]\+ +! OK 0 - [^0-7]\+ +! OK 1 - [^0-7]\+ +! OK 2 - [^0-7]\+ +! OK 0 - [0-9]\+ +! OK 1 - [0-9]\+ +! OK 2 - [0-9]\+ +! OK 0 - [^0-9]\+ +! OK 1 - [^0-9]\+ +! OK 2 - [^0-9]\+ +! OK 0 - [0-9a-fA-F]\+ +! OK 1 - [0-9a-fA-F]\+ +! OK 2 - [0-9a-fA-F]\+ + OK 0 - [^0-9A-Fa-f]\+ + OK 1 - [^0-9A-Fa-f]\+ + OK 2 - [^0-9A-Fa-f]\+ + OK 0 - [a-z_A-Z0-9]\+ + OK 1 - [a-z_A-Z0-9]\+ + OK 2 - [a-z_A-Z0-9]\+ +! OK 0 - [^a-z_A-Z0-9]\+ +! OK 1 - [^a-z_A-Z0-9]\+ +! OK 2 - [^a-z_A-Z0-9]\+ +! OK 0 - [a-z_A-Z]\+ +! OK 1 - [a-z_A-Z]\+ +! OK 2 - [a-z_A-Z]\+ +! OK 0 - [^a-z_A-Z]\+ +! OK 1 - [^a-z_A-Z]\+ +! OK 2 - [^a-z_A-Z]\+ +! OK 0 - [a-z]\+ +! OK 1 - [a-z]\+ +! OK 2 - [a-z]\+ +! OK 0 - [a-z]\+ +! OK 1 - [a-z]\+ +! OK 2 - [a-z]\+ +! OK 0 - [^a-z]\+ +! OK 1 - [^a-z]\+ +! OK 2 - [^a-z]\+ +! OK 0 - [^a-z]\+ +! OK 1 - [^a-z]\+ +! OK 2 - [^a-z]\+ +! OK 0 - [a-zA-Z]\+ +! OK 1 - [a-zA-Z]\+ +! OK 2 - [a-zA-Z]\+ +! OK 0 - [^a-zA-Z]\+ +! OK 1 - [^a-zA-Z]\+ +! OK 2 - [^a-zA-Z]\+ +! OK 0 - [A-Z]\+ +! OK 1 - [A-Z]\+ +! OK 2 - [A-Z]\+ +! OK 0 - [^A-Z]\+ +! OK 1 - [^A-Z]\+ +! OK 2 - [^A-Z]\+ +! OK 0 - [a-z]\+\c +! OK 1 - [a-z]\+\c +! OK 2 - [a-z]\+\c +! OK 0 - [A-Z]\+\c +! OK 1 - [A-Z]\+\c +! OK 2 - [A-Z]\+\c +! OK 0 - \c[^a-z]\+ +! OK 1 - \c[^a-z]\+ +! OK 2 - \c[^a-z]\+ +! OK 0 - \c[^A-Z]\+ +! OK 1 - \c[^A-Z]\+ +! OK 2 - \c[^A-Z]\+ + OK 0 - \C[^A-Z]\+ + OK 1 - \C[^A-Z]\+ + OK 2 - \C[^A-Z]\+ +*** ../vim-7.4.000/src/version.c 2013-08-10 13:29:20.000000000 +0200 +--- src/version.c 2013-08-14 11:54:57.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 1, + /**/ + +-- +How many light bulbs does it take to change a person? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.002 b/7.4.002 new file mode 100644 index 0000000..d92f4de --- /dev/null +++ b/7.4.002 @@ -0,0 +1,77 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.002 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4b.002 +Problem: Pattern with two alternative look-behind matches does not match. + (Amadeus Demarzi) +Solution: When comparing PIMs also compare their state ID to see if they are + different. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.4.001/src/regexp_nfa.c 2013-08-14 12:05:54.000000000 +0200 +--- src/regexp_nfa.c 2013-08-14 13:12:09.000000000 +0200 +*************** +*** 3782,3787 **** +--- 3782,3790 ---- + if (two_unused) + /* one is used and two is not: not equal */ + return FALSE; ++ /* compare the state id */ ++ if (one->state->id != two->state->id) ++ return FALSE; + /* compare the position */ + if (REG_MULTI) + return one->end.pos.lnum == two->end.pos.lnum +*** ../vim-7.4.001/src/testdir/test64.in 2013-08-14 12:05:54.000000000 +0200 +--- src/testdir/test64.in 2013-08-14 12:58:38.000000000 +0200 +*************** +*** 421,426 **** +--- 421,429 ---- + :call add(tl, [2, '\(foo\)\@<=\>', 'barfoo', '', 'foo']) + :call add(tl, [2, '\(foo\)\@<=.*', 'foobar', 'bar', 'foo']) + :" ++ :" complicated look-behind match ++ :call add(tl, [2, '\(r\@<=\|\w\@<!\)\/', 'x = /word/;', '/']) ++ :" + :""""" \@> + :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) + :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) +*** ../vim-7.4.001/src/testdir/test64.ok 2013-08-14 12:05:54.000000000 +0200 +--- src/testdir/test64.ok 2013-08-14 13:14:09.000000000 +0200 +*************** +*** 974,979 **** +--- 974,982 ---- + OK 0 - \(foo\)\@<=.* + OK 1 - \(foo\)\@<=.* + OK 2 - \(foo\)\@<=.* ++ OK 0 - \(r\@<=\|\w\@<!\)\/ ++ OK 1 - \(r\@<=\|\w\@<!\)\/ ++ OK 2 - \(r\@<=\|\w\@<!\)\/ + OK 0 - \(a*\)\@>a + OK 1 - \(a*\)\@>a + OK 2 - \(a*\)\@>a +*** ../vim-7.4.001/src/version.c 2013-08-14 12:05:54.000000000 +0200 +--- src/version.c 2013-08-14 13:13:45.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 2, + /**/ + +-- +From "know your smileys": + :-)-O Smiling doctor with stethoscope + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.003 b/7.4.003 new file mode 100644 index 0000000..9aad3c8 --- /dev/null +++ b/7.4.003 @@ -0,0 +1,100 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.003 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.003 +Problem: Memory access error in Ruby syntax highlighting. (Christopher Chow) +Solution: Refresh stale pointer. (James McCoy) +Files: src/regexp_nfa.c + + +*** ../vim-7.4.002/src/regexp_nfa.c 2013-08-14 13:31:03.000000000 +0200 +--- src/regexp_nfa.c 2013-08-14 14:02:06.000000000 +0200 +*************** +*** 4120,4126 **** + sub = &subs->norm; + } + #ifdef FEAT_SYN_HL +! else if (state->c >= NFA_ZOPEN) + { + subidx = state->c - NFA_ZOPEN; + sub = &subs->synt; +--- 4120,4126 ---- + sub = &subs->norm; + } + #ifdef FEAT_SYN_HL +! else if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9) + { + subidx = state->c - NFA_ZOPEN; + sub = &subs->synt; +*************** +*** 4189,4194 **** +--- 4189,4201 ---- + } + + subs = addstate(l, state->out, subs, pim, off); ++ /* "subs" may have changed, need to set "sub" again */ ++ #ifdef FEAT_SYN_HL ++ if (state->c >= NFA_ZOPEN && state->c <= NFA_ZOPEN9) ++ sub = &subs->synt; ++ else ++ #endif ++ sub = &subs->norm; + + if (save_in_use == -1) + { +*************** +*** 4237,4243 **** + sub = &subs->norm; + } + #ifdef FEAT_SYN_HL +! else if (state->c >= NFA_ZCLOSE) + { + subidx = state->c - NFA_ZCLOSE; + sub = &subs->synt; +--- 4244,4250 ---- + sub = &subs->norm; + } + #ifdef FEAT_SYN_HL +! else if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9) + { + subidx = state->c - NFA_ZCLOSE; + sub = &subs->synt; +*************** +*** 4281,4286 **** +--- 4288,4300 ---- + } + + subs = addstate(l, state->out, subs, pim, off); ++ /* "subs" may have changed, need to set "sub" again */ ++ #ifdef FEAT_SYN_HL ++ if (state->c >= NFA_ZCLOSE && state->c <= NFA_ZCLOSE9) ++ sub = &subs->synt; ++ else ++ #endif ++ sub = &subs->norm; + + if (REG_MULTI) + sub->list.multi[subidx].end = save_lpos; +*** ../vim-7.4.002/src/version.c 2013-08-14 13:31:03.000000000 +0200 +--- src/version.c 2013-08-14 14:03:51.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 3, + /**/ + +-- +Where do you want to crash today? + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.004 b/7.4.004 new file mode 100644 index 0000000..f629d67 --- /dev/null +++ b/7.4.004 @@ -0,0 +1,232 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.004 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.004 +Problem: When closing a window fails ":bwipe" may hang. +Solution: Let win_close() return FAIL and break out of the loop. +Files: src/window.c, src/proto/window.pro, src/buffer.c + + +*** ../vim-7.4.003/src/window.c 2013-07-24 17:38:29.000000000 +0200 +--- src/window.c 2013-08-14 16:52:44.000000000 +0200 +*************** +*** 2172,2179 **** + * If "free_buf" is TRUE related buffer may be unloaded. + * + * Called by :quit, :close, :xit, :wq and findtag(). + */ +! void + win_close(win, free_buf) + win_T *win; + int free_buf; +--- 2172,2180 ---- + * If "free_buf" is TRUE related buffer may be unloaded. + * + * Called by :quit, :close, :xit, :wq and findtag(). ++ * Returns FAIL when the window was not closed. + */ +! int + win_close(win, free_buf) + win_T *win; + int free_buf; +*************** +*** 2190,2210 **** + if (last_window()) + { + EMSG(_("E444: Cannot close last window")); +! return; + } + + #ifdef FEAT_AUTOCMD + if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing)) +! return; /* window is already being closed */ + if (win == aucmd_win) + { + EMSG(_("E813: Cannot close autocmd window")); +! return; + } + if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window()) + { + EMSG(_("E814: Cannot close window, only autocmd window would remain")); +! return; + } + #endif + +--- 2191,2211 ---- + if (last_window()) + { + EMSG(_("E444: Cannot close last window")); +! return FAIL; + } + + #ifdef FEAT_AUTOCMD + if (win->w_closing || (win->w_buffer != NULL && win->w_buffer->b_closing)) +! return FAIL; /* window is already being closed */ + if (win == aucmd_win) + { + EMSG(_("E813: Cannot close autocmd window")); +! return FAIL; + } + if ((firstwin == aucmd_win || lastwin == aucmd_win) && one_window()) + { + EMSG(_("E814: Cannot close window, only autocmd window would remain")); +! return FAIL; + } + #endif + +*************** +*** 2212,2218 **** + * and then close the window and the tab page to avoid that curwin and + * curtab are invalid while we are freeing memory. */ + if (close_last_window_tabpage(win, free_buf, prev_curtab)) +! return; + + /* When closing the help window, try restoring a snapshot after closing + * the window. Otherwise clear the snapshot, it's now invalid. */ +--- 2213,2219 ---- + * and then close the window and the tab page to avoid that curwin and + * curtab are invalid while we are freeing memory. */ + if (close_last_window_tabpage(win, free_buf, prev_curtab)) +! return FAIL; + + /* When closing the help window, try restoring a snapshot after closing + * the window. Otherwise clear the snapshot, it's now invalid. */ +*************** +*** 2240,2261 **** + win->w_closing = TRUE; + apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); + if (!win_valid(win)) +! return; + win->w_closing = FALSE; + if (last_window()) +! return; + } + win->w_closing = TRUE; + apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf); + if (!win_valid(win)) +! return; + win->w_closing = FALSE; + if (last_window()) +! return; + # ifdef FEAT_EVAL + /* autocmds may abort script processing */ + if (aborting()) +! return; + # endif + } + #endif +--- 2241,2262 ---- + win->w_closing = TRUE; + apply_autocmds(EVENT_BUFLEAVE, NULL, NULL, FALSE, curbuf); + if (!win_valid(win)) +! return FAIL; + win->w_closing = FALSE; + if (last_window()) +! return FAIL; + } + win->w_closing = TRUE; + apply_autocmds(EVENT_WINLEAVE, NULL, NULL, FALSE, curbuf); + if (!win_valid(win)) +! return FAIL; + win->w_closing = FALSE; + if (last_window()) +! return FAIL; + # ifdef FEAT_EVAL + /* autocmds may abort script processing */ + if (aborting()) +! return FAIL; + # endif + } + #endif +*************** +*** 2303,2309 **** + * other window or moved to another tab page. */ + else if (!win_valid(win) || last_window() || curtab != prev_curtab + || close_last_window_tabpage(win, free_buf, prev_curtab)) +! return; + + /* Free the memory used for the window and get the window that received + * the screen space. */ +--- 2304,2310 ---- + * other window or moved to another tab page. */ + else if (!win_valid(win) || last_window() || curtab != prev_curtab + || close_last_window_tabpage(win, free_buf, prev_curtab)) +! return FAIL; + + /* Free the memory used for the window and get the window that received + * the screen space. */ +*************** +*** 2383,2388 **** +--- 2384,2390 ---- + #endif + + redraw_all_later(NOT_VALID); ++ return OK; + } + + /* +*** ../vim-7.4.003/src/proto/window.pro 2013-08-10 13:37:30.000000000 +0200 +--- src/proto/window.pro 2013-08-14 16:52:50.000000000 +0200 +*************** +*** 9,15 **** + void win_equal __ARGS((win_T *next_curwin, int current, int dir)); + void close_windows __ARGS((buf_T *buf, int keep_curwin)); + int one_window __ARGS((void)); +! void win_close __ARGS((win_T *win, int free_buf)); + void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp)); + void win_free_all __ARGS((void)); + win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); +--- 9,15 ---- + void win_equal __ARGS((win_T *next_curwin, int current, int dir)); + void close_windows __ARGS((buf_T *buf, int keep_curwin)); + int one_window __ARGS((void)); +! int win_close __ARGS((win_T *win, int free_buf)); + void win_close_othertab __ARGS((win_T *win, int free_buf, tabpage_T *tp)); + void win_free_all __ARGS((void)); + win_T *winframe_remove __ARGS((win_T *win, int *dirp, tabpage_T *tp)); +*** ../vim-7.4.003/src/buffer.c 2013-07-17 16:39:00.000000000 +0200 +--- src/buffer.c 2013-08-14 16:54:34.000000000 +0200 +*************** +*** 1186,1192 **** + && !(curwin->w_closing || curwin->w_buffer->b_closing) + # endif + && (firstwin != lastwin || first_tabpage->tp_next != NULL)) +! win_close(curwin, FALSE); + #endif + + /* +--- 1186,1195 ---- + && !(curwin->w_closing || curwin->w_buffer->b_closing) + # endif + && (firstwin != lastwin || first_tabpage->tp_next != NULL)) +! { +! if (win_close(curwin, FALSE) == FAIL) +! break; +! } + #endif + + /* +*** ../vim-7.4.003/src/version.c 2013-08-14 14:18:37.000000000 +0200 +--- src/version.c 2013-08-14 17:10:23.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 4, + /**/ + +-- +From "know your smileys": + *<|:-) Santa Claus (Ho Ho Ho) + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.005 b/7.4.005 new file mode 100644 index 0000000..f85d1f0 --- /dev/null +++ b/7.4.005 @@ -0,0 +1,48 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.005 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.005 +Problem: Using "vaB" while 'virtualedit' is set selects the wrong area. + (Dimitar Dimitrov) +Solution: Reset coladd when finding a match. +Files: src/search.c + + +*** ../vim-7.4.004/src/search.c 2013-07-17 19:20:47.000000000 +0200 +--- src/search.c 2013-08-14 17:32:38.000000000 +0200 +*************** +*** 1760,1765 **** +--- 1760,1768 ---- + #endif + + pos = curwin->w_cursor; ++ #ifdef FEAT_VIRTUALEDIT ++ pos.coladd = 0; ++ #endif + linep = ml_get(pos.lnum); + + cpo_match = (vim_strchr(p_cpo, CPO_MATCH) != NULL); +*** ../vim-7.4.004/src/version.c 2013-08-14 17:11:14.000000000 +0200 +--- src/version.c 2013-08-14 17:38:05.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 5, + /**/ + +-- +You can't have everything. Where would you put it? + -- Steven Wright + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.006 b/7.4.006 new file mode 100644 index 0000000..55d3802 --- /dev/null +++ b/7.4.006 @@ -0,0 +1,66 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.006 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.006 +Problem: mkdir("foo/bar/", "p") gives an error message. (David Barnett) +Solution: Remove the trailing slash. (lcd) +Files: src/eval.c + + +*** ../vim-7.4.005/src/eval.c 2013-07-05 18:23:42.000000000 +0200 +--- src/eval.c 2013-08-22 12:00:28.000000000 +0200 +*************** +*** 14292,14297 **** +--- 14292,14301 ---- + return; + + dir = get_tv_string_buf(&argvars[0], buf); ++ if (*gettail(dir) == NUL) ++ /* remove trailing slashes */ ++ *gettail_sep(dir) = NUL; ++ + if (argvars[1].v_type != VAR_UNKNOWN) + { + if (argvars[2].v_type != VAR_UNKNOWN) +*************** +*** 14299,14305 **** + if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) + mkdir_recurse(dir, prot); + } +! rettv->vval.v_number = prot != -1 ? vim_mkdir_emsg(dir, prot) : 0; + } + #endif + +--- 14303,14309 ---- + if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) + mkdir_recurse(dir, prot); + } +! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot); + } + #endif + +*** ../vim-7.4.005/src/version.c 2013-08-14 17:45:25.000000000 +0200 +--- src/version.c 2013-08-22 12:02:46.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 6, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +97. Your mother tells you to remember something, and you look for + a File/Save command. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.007 b/7.4.007 new file mode 100644 index 0000000..5495ffb --- /dev/null +++ b/7.4.007 @@ -0,0 +1,95 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.007 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.007 +Problem: Creating a preview window on startup leaves the screen layout in a + messed up state. (Marius Gedminas) +Solution: Don't change firstwin. (Christian Brabandt) +Files: src/main.c + + +*** ../vim-7.4.006/src/main.c 2013-07-03 12:36:49.000000000 +0200 +--- src/main.c 2013-08-22 14:02:39.000000000 +0200 +*************** +*** 2727,2732 **** +--- 2727,2733 ---- + int arg_idx; /* index in argument list */ + int i; + int advance = TRUE; ++ win_T *win; + + # ifdef FEAT_AUTOCMD + /* +*************** +*** 2816,2839 **** + # ifdef FEAT_AUTOCMD + --autocmd_no_enter; + # endif + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) +! /* +! * Avoid making a preview window the current window. +! */ +! if (firstwin->w_p_pvw) + { +! win_T *win; +! +! for (win = firstwin; win != NULL; win = win->w_next) +! if (!win->w_p_pvw) +! { +! firstwin = win; +! break; +! } + } + #endif +! /* make the first window the current window */ +! win_enter(firstwin, FALSE); + + # ifdef FEAT_AUTOCMD + --autocmd_no_leave; +--- 2817,2838 ---- + # ifdef FEAT_AUTOCMD + --autocmd_no_enter; + # endif ++ ++ /* make the first window the current window */ ++ win = firstwin; + #if defined(FEAT_WINDOWS) && defined(FEAT_QUICKFIX) +! /* Avoid making a preview window the current window. */ +! while (win->w_p_pvw) + { +! win = win->w_next; +! if (win == NULL) +! { +! win = firstwin; +! break; +! } + } + #endif +! win_enter(win, FALSE); + + # ifdef FEAT_AUTOCMD + --autocmd_no_leave; +*** ../vim-7.4.006/src/version.c 2013-08-22 12:06:50.000000000 +0200 +--- src/version.c 2013-08-22 14:04:11.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 7, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +105. When someone asks you for your address, you tell them your URL. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.008 b/7.4.008 new file mode 100644 index 0000000..6abd493 --- /dev/null +++ b/7.4.008 @@ -0,0 +1,71 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.008 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.008 +Problem: New regexp engine can't be interrupted. +Solution: Check for CTRL-C pressed. (Yasuhiro Matsumoto) +Files: src/regexp_nfa.c, src/regexp.c + + +*** ../vim-7.4.007/src/regexp_nfa.c 2013-08-14 14:18:37.000000000 +0200 +--- src/regexp_nfa.c 2013-08-25 16:55:56.000000000 +0200 +*************** +*** 5089,5094 **** +--- 5089,5100 ---- + return FALSE; + } + #endif ++ /* Some patterns may take a long time to match, especially when using ++ * recursive_regmatch(). Allow interrupting them with CTRL-C. */ ++ fast_breakcheck(); ++ if (got_int) ++ return FALSE; ++ + nfa_match = FALSE; + + /* Allocate memory for the lists of nodes. */ +*** ../vim-7.4.007/src/regexp.c 2013-08-01 18:31:30.000000000 +0200 +--- src/regexp.c 2013-08-25 16:57:35.000000000 +0200 +*************** +*** 4311,4318 **** + */ + for (;;) + { +! /* Some patterns may cause a long time to match, even though they are not +! * illegal. E.g., "\([a-z]\+\)\+Q". Allow breaking them with CTRL-C. */ + fast_breakcheck(); + + #ifdef DEBUG +--- 4311,4318 ---- + */ + for (;;) + { +! /* Some patterns may take a long time to match, e.g., "\([a-z]\+\)\+Q". +! * Allow interrupting them with CTRL-C. */ + fast_breakcheck(); + + #ifdef DEBUG +*** ../vim-7.4.007/src/version.c 2013-08-22 14:14:23.000000000 +0200 +--- src/version.c 2013-08-25 16:57:51.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 8, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +124. You begin conversations with, "Who is your internet service provider?" + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.009 b/7.4.009 new file mode 100644 index 0000000..f5e5fa6 --- /dev/null +++ b/7.4.009 @@ -0,0 +1,64 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.009 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.009 +Problem: When a file was not decrypted (yet), writing it may destroy the + contents. +Solution: Mark the file as readonly until decryption was done. (Christian + Brabandt) +Files: src/fileio.c + + +*** ../vim-7.4.008/src/fileio.c 2013-08-05 21:58:03.000000000 +0200 +--- src/fileio.c 2013-08-25 17:45:27.000000000 +0200 +*************** +*** 2926,2934 **** +--- 2926,2939 ---- + int *did_ask; /* flag: whether already asked for key */ + { + int method = crypt_method_from_magic((char *)ptr, *sizep); ++ int b_p_ro = curbuf->b_p_ro; + + if (method >= 0) + { ++ /* Mark the buffer as read-only until the decryption has taken place. ++ * Avoids accidentally overwriting the file with garbage. */ ++ curbuf->b_p_ro = TRUE; ++ + set_crypt_method(curbuf, method); + if (method > 0) + (void)blowfish_self_test(); +*************** +*** 2977,2982 **** +--- 2982,2989 ---- + *sizep -= CRYPT_MAGIC_LEN + salt_len + seed_len; + mch_memmove(ptr, ptr + CRYPT_MAGIC_LEN + salt_len + seed_len, + (size_t)*sizep); ++ /* Restore the read-only flag. */ ++ curbuf->b_p_ro = b_p_ro; + } + } + /* When starting to edit a new file which does not have encryption, clear +*** ../vim-7.4.008/src/version.c 2013-08-25 17:01:36.000000000 +0200 +--- src/version.c 2013-08-25 17:44:30.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 9, + /**/ + +-- +I have a watch cat! Just break in and she'll watch. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.010 b/7.4.010 new file mode 100644 index 0000000..fee6ba5 --- /dev/null +++ b/7.4.010 @@ -0,0 +1,79 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.010 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.010 (after 7.4.006) +Problem: Crash with invalid argument to mkdir(). +Solution: Check for empty string. (lcd47) +Files: src/eval.c + + +*** ../vim-7.4.009/src/eval.c 2013-08-22 12:06:50.000000000 +0200 +--- src/eval.c 2013-08-30 15:47:47.000000000 +0200 +*************** +*** 14292,14309 **** + return; + + dir = get_tv_string_buf(&argvars[0], buf); +! if (*gettail(dir) == NUL) +! /* remove trailing slashes */ +! *gettail_sep(dir) = NUL; +! +! if (argvars[1].v_type != VAR_UNKNOWN) + { +! if (argvars[2].v_type != VAR_UNKNOWN) +! prot = get_tv_number_chk(&argvars[2], NULL); +! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) +! mkdir_recurse(dir, prot); + } +- rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot); + } + #endif + +--- 14292,14314 ---- + return; + + dir = get_tv_string_buf(&argvars[0], buf); +! if (*dir == NUL) +! rettv->vval.v_number = FAIL; +! else + { +! if (*gettail(dir) == NUL) +! /* remove trailing slashes */ +! *gettail_sep(dir) = NUL; +! +! if (argvars[1].v_type != VAR_UNKNOWN) +! { +! if (argvars[2].v_type != VAR_UNKNOWN) +! prot = get_tv_number_chk(&argvars[2], NULL); +! if (prot != -1 && STRCMP(get_tv_string(&argvars[1]), "p") == 0) +! mkdir_recurse(dir, prot); +! } +! rettv->vval.v_number = prot == -1 ? FAIL : vim_mkdir_emsg(dir, prot); + } + } + #endif + +*** ../vim-7.4.009/src/version.c 2013-08-25 17:46:05.000000000 +0200 +--- src/version.c 2013-08-30 15:48:37.000000000 +0200 +*************** +*** 729,730 **** +--- 729,732 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 10, + /**/ + +-- +I wish there was a knob on the TV to turn up the intelligence. +There's a knob called "brightness", but it doesn't seem to work. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.011 b/7.4.011 new file mode 100644 index 0000000..efff82c --- /dev/null +++ b/7.4.011 @@ -0,0 +1,100 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.011 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.011 +Problem: Cannot find out if "acl" and "xpm" features are supported. +Solution: Add "acl" and "xpm" to the list of features. (Ken Takata) +Files: src/eval.c, src/version.c + + +*** ../vim-7.4.010/src/eval.c 2013-08-30 16:00:04.000000000 +0200 +--- src/eval.c 2013-08-30 16:34:12.000000000 +0200 +*************** +*** 12135,12140 **** +--- 12135,12143 ---- + #ifndef CASE_INSENSITIVE_FILENAME + "fname_case", + #endif ++ #ifdef HAVE_ACL ++ "acl", ++ #endif + #ifdef FEAT_ARABIC + "arabic", + #endif +*************** +*** 12538,12544 **** + "xfontset", + #endif + #ifdef FEAT_XPM_W32 +! "xpm_w32", + #endif + #ifdef USE_XSMP + "xsmp", +--- 12541,12552 ---- + "xfontset", + #endif + #ifdef FEAT_XPM_W32 +! "xpm", +! "xpm_w32", /* for backward compatibility */ +! #else +! # if defined(HAVE_XPM) +! "xpm", +! # endif + #endif + #ifdef USE_XSMP + "xsmp", +*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200 +--- src/version.c 2013-08-30 16:34:37.000000000 +0200 +*************** +*** 60,65 **** +--- 60,70 ---- + + static char *(features[]) = + { ++ #ifdef HAVE_ACL ++ "+acl", ++ #else ++ "-acl", ++ #endif + #ifdef AMIGA /* only for Amiga systems */ + # ifdef FEAT_ARP + "+ARP", +*************** +*** 721,726 **** +--- 726,737 ---- + # else + "-xpm_w32", + # endif ++ #else ++ # ifdef HAVE_XPM ++ "+xpm", ++ # else ++ "-xpm", ++ # endif + #endif + NULL + }; +*** ../vim-7.4.010/src/version.c 2013-08-30 16:00:04.000000000 +0200 +--- src/version.c 2013-08-30 16:34:37.000000000 +0200 +*************** +*** 729,730 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 11, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +141. You'd rather go to http://www.weather.com/ than look out your window. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.012 b/7.4.012 new file mode 100644 index 0000000..f831442 --- /dev/null +++ b/7.4.012 @@ -0,0 +1,202 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.012 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.012 +Problem: MS-Windows: resolving shortcut does not work properly with + multi-byte characters. +Solution: Use wide system functions. (Ken Takata) +Files: src/os_mswin.c + + +*** ../vim-7.4.011/src/os_mswin.c 2013-06-16 16:41:11.000000000 +0200 +--- src/os_mswin.c 2013-08-30 16:43:23.000000000 +0200 +*************** +*** 1761,1769 **** + IPersistFile *ppf = NULL; + OLECHAR wsz[MAX_PATH]; + WIN32_FIND_DATA ffd; // we get those free of charge +! TCHAR buf[MAX_PATH]; // could have simply reused 'wsz'... + char_u *rfname = NULL; + int len; + + /* Check if the file name ends in ".lnk". Avoid calling + * CoCreateInstance(), it's quite slow. */ +--- 1761,1773 ---- + IPersistFile *ppf = NULL; + OLECHAR wsz[MAX_PATH]; + WIN32_FIND_DATA ffd; // we get those free of charge +! CHAR buf[MAX_PATH]; // could have simply reused 'wsz'... + char_u *rfname = NULL; + int len; ++ # ifdef FEAT_MBYTE ++ IShellLinkW *pslw = NULL; ++ WIN32_FIND_DATAW ffdw; // we get those free of charge ++ # endif + + /* Check if the file name ends in ".lnk". Avoid calling + * CoCreateInstance(), it's quite slow. */ +*************** +*** 1775,1792 **** + + CoInitialize(NULL); + + // create a link manager object and request its interface + hr = CoCreateInstance( + &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, + &IID_IShellLink, (void**)&psl); + if (hr != S_OK) +! goto shortcut_error; + + // Get a pointer to the IPersistFile interface. + hr = psl->lpVtbl->QueryInterface( + psl, &IID_IPersistFile, (void**)&ppf); + if (hr != S_OK) +! goto shortcut_error; + + // full path string must be in Unicode. + MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH); +--- 1779,1840 ---- + + CoInitialize(NULL); + ++ # ifdef FEAT_MBYTE ++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) ++ { ++ // create a link manager object and request its interface ++ hr = CoCreateInstance( ++ &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, ++ &IID_IShellLinkW, (void**)&pslw); ++ if (hr == S_OK) ++ { ++ WCHAR *p = enc_to_utf16(fname, NULL); ++ ++ if (p != NULL) ++ { ++ // Get a pointer to the IPersistFile interface. ++ hr = pslw->lpVtbl->QueryInterface( ++ pslw, &IID_IPersistFile, (void**)&ppf); ++ if (hr != S_OK) ++ goto shortcut_errorw; ++ ++ // "load" the name and resolve the link ++ hr = ppf->lpVtbl->Load(ppf, p, STGM_READ); ++ if (hr != S_OK) ++ goto shortcut_errorw; ++ # if 0 // This makes Vim wait a long time if the target does not exist. ++ hr = pslw->lpVtbl->Resolve(pslw, NULL, SLR_NO_UI); ++ if (hr != S_OK) ++ goto shortcut_errorw; ++ # endif ++ ++ // Get the path to the link target. ++ ZeroMemory(wsz, MAX_PATH * sizeof(WCHAR)); ++ hr = pslw->lpVtbl->GetPath(pslw, wsz, MAX_PATH, &ffdw, 0); ++ if (hr == S_OK && wsz[0] != NUL) ++ rfname = utf16_to_enc(wsz, NULL); ++ ++ shortcut_errorw: ++ vim_free(p); ++ if (hr == S_OK) ++ goto shortcut_end; ++ } ++ } ++ /* Retry with non-wide function (for Windows 98). */ ++ } ++ # endif + // create a link manager object and request its interface + hr = CoCreateInstance( + &CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, + &IID_IShellLink, (void**)&psl); + if (hr != S_OK) +! goto shortcut_end; + + // Get a pointer to the IPersistFile interface. + hr = psl->lpVtbl->QueryInterface( + psl, &IID_IPersistFile, (void**)&ppf); + if (hr != S_OK) +! goto shortcut_end; + + // full path string must be in Unicode. + MultiByteToWideChar(CP_ACP, 0, fname, -1, wsz, MAX_PATH); +*************** +*** 1794,1805 **** + // "load" the name and resolve the link + hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ); + if (hr != S_OK) +! goto shortcut_error; +! #if 0 // This makes Vim wait a long time if the target doesn't exist. + hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI); + if (hr != S_OK) +! goto shortcut_error; +! #endif + + // Get the path to the link target. + ZeroMemory(buf, MAX_PATH); +--- 1842,1853 ---- + // "load" the name and resolve the link + hr = ppf->lpVtbl->Load(ppf, wsz, STGM_READ); + if (hr != S_OK) +! goto shortcut_end; +! # if 0 // This makes Vim wait a long time if the target doesn't exist. + hr = psl->lpVtbl->Resolve(psl, NULL, SLR_NO_UI); + if (hr != S_OK) +! goto shortcut_end; +! # endif + + // Get the path to the link target. + ZeroMemory(buf, MAX_PATH); +*************** +*** 1807,1818 **** + if (hr == S_OK && buf[0] != NUL) + rfname = vim_strsave(buf); + +! shortcut_error: + // Release all interface pointers (both belong to the same object) + if (ppf != NULL) + ppf->lpVtbl->Release(ppf); + if (psl != NULL) + psl->lpVtbl->Release(psl); + + CoUninitialize(); + return rfname; +--- 1855,1870 ---- + if (hr == S_OK && buf[0] != NUL) + rfname = vim_strsave(buf); + +! shortcut_end: + // Release all interface pointers (both belong to the same object) + if (ppf != NULL) + ppf->lpVtbl->Release(ppf); + if (psl != NULL) + psl->lpVtbl->Release(psl); ++ # ifdef FEAT_MBYTE ++ if (pslw != NULL) ++ pslw->lpVtbl->Release(pslw); ++ # endif + + CoUninitialize(); + return rfname; +*** ../vim-7.4.011/src/version.c 2013-08-30 16:35:41.000000000 +0200 +--- src/version.c 2013-08-30 16:39:40.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 12, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +142. You dream about creating the world's greatest web site. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.013 b/7.4.013 new file mode 100644 index 0000000..dcbe0fb --- /dev/null +++ b/7.4.013 @@ -0,0 +1,99 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.013 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.013 +Problem: File name buffer too small for utf-8. +Solution: Use character count instead of byte count. (Ken Takata) +Files: src/os_mswin.c + + +*** ../vim-7.4.012/src/os_mswin.c 2013-08-30 16:44:15.000000000 +0200 +--- src/os_mswin.c 2013-08-30 16:47:54.000000000 +0200 +*************** +*** 456,462 **** +--- 456,469 ---- + int + mch_isFullName(char_u *fname) + { ++ #ifdef FEAT_MBYTE ++ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which ++ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is ++ * UTF-8. */ ++ char szName[_MAX_PATH * 3 + 1]; ++ #else + char szName[_MAX_PATH + 1]; ++ #endif + + /* A name like "d:/foo" and "//server/share" is absolute */ + if ((fname[0] && fname[1] == ':' && (fname[2] == '/' || fname[2] == '\\')) +*************** +*** 464,470 **** + return TRUE; + + /* A name that can't be made absolute probably isn't absolute. */ +! if (mch_FullName(fname, szName, _MAX_PATH, FALSE) == FAIL) + return FALSE; + + return pathcmp(fname, szName, -1) == 0; +--- 471,477 ---- + return TRUE; + + /* A name that can't be made absolute probably isn't absolute. */ +! if (mch_FullName(fname, szName, sizeof(szName) - 1, FALSE) == FAIL) + return FALSE; + + return pathcmp(fname, szName, -1) == 0; +*************** +*** 498,507 **** + int + vim_stat(const char *name, struct stat *stp) + { + char buf[_MAX_PATH + 1]; + char *p; + +! vim_strncpy((char_u *)buf, (char_u *)name, _MAX_PATH); + p = buf + strlen(buf); + if (p > buf) + mb_ptr_back(buf, p); +--- 505,521 ---- + int + vim_stat(const char *name, struct stat *stp) + { ++ #ifdef FEAT_MBYTE ++ /* WinNT and later can use _MAX_PATH wide characters for a pathname, which ++ * means that the maximum pathname is _MAX_PATH * 3 bytes when 'enc' is ++ * UTF-8. */ ++ char buf[_MAX_PATH * 3 + 1]; ++ #else + char buf[_MAX_PATH + 1]; ++ #endif + char *p; + +! vim_strncpy((char_u *)buf, (char_u *)name, sizeof(buf) - 1); + p = buf + strlen(buf); + if (p > buf) + mb_ptr_back(buf, p); +*** ../vim-7.4.012/src/version.c 2013-08-30 16:44:15.000000000 +0200 +--- src/version.c 2013-08-30 16:47:36.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 13, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +143. You dream in pallettes of 216 websafe colors. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.014 b/7.4.014 new file mode 100644 index 0000000..f655433 --- /dev/null +++ b/7.4.014 @@ -0,0 +1,102 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.014 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.014 +Problem: MS-Windows: check for writing to device does not work. +Solution: Fix #ifdefs. (Ken Takata) +Files: src/fileio.c + + +*** ../vim-7.4.013/src/fileio.c 2013-08-25 17:46:05.000000000 +0200 +--- src/fileio.c 2013-08-30 16:56:46.000000000 +0200 +*************** +*** 428,440 **** + } + } + +- #ifdef UNIX +- /* +- * On Unix it is possible to read a directory, so we have to +- * check for it before the mch_open(). +- */ + if (!read_stdin && !read_buffer) + { + perm = mch_getperm(fname); + if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */ + # ifdef S_ISFIFO +--- 428,440 ---- + } + } + + if (!read_stdin && !read_buffer) + { ++ #ifdef UNIX ++ /* ++ * On Unix it is possible to read a directory, so we have to ++ * check for it before the mch_open(). ++ */ + perm = mch_getperm(fname); + if (perm >= 0 && !S_ISREG(perm) /* not a regular file ... */ + # ifdef S_ISFIFO +*************** +*** 457,464 **** + msg_scroll = msg_save; + return FAIL; + } +! +! # if defined(MSDOS) || defined(MSWIN) || defined(OS2) + /* + * MS-Windows allows opening a device, but we will probably get stuck + * trying to read it. +--- 457,464 ---- + msg_scroll = msg_save; + return FAIL; + } +! #endif +! #if defined(MSDOS) || defined(MSWIN) || defined(OS2) + /* + * MS-Windows allows opening a device, but we will probably get stuck + * trying to read it. +*************** +*** 470,478 **** + msg_scroll = msg_save; + return FAIL; + } +- # endif +- } + #endif + + /* Set default or forced 'fileformat' and 'binary'. */ + set_file_options(set_options, eap); +--- 470,477 ---- + msg_scroll = msg_save; + return FAIL; + } + #endif ++ } + + /* Set default or forced 'fileformat' and 'binary'. */ + set_file_options(set_options, eap); +*** ../vim-7.4.013/src/version.c 2013-08-30 16:51:15.000000000 +0200 +--- src/version.c 2013-08-30 16:54:33.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 14, + /**/ + +-- +Drink wet cement and get really stoned. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.015 b/7.4.015 new file mode 100644 index 0000000..e8b284d --- /dev/null +++ b/7.4.015 @@ -0,0 +1,106 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.015 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.015 +Problem: MS-Windows: Detecting node type does not work for multi-byte + characters. +Solution: Use wide character function when needed. (Ken Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.014/src/os_win32.c 2013-08-10 12:39:12.000000000 +0200 +--- src/os_win32.c 2013-08-30 17:09:47.000000000 +0200 +*************** +*** 3107,3112 **** +--- 3107,3115 ---- + { + HANDLE hFile; + int type; ++ #ifdef FEAT_MBYTE ++ WCHAR *wn = NULL; ++ #endif + + /* We can't open a file with a name "\\.\con" or "\\.\prn" and trying to + * read from it later will cause Vim to hang. Thus return NODE_WRITABLE +*************** +*** 3114,3127 **** + if (STRNCMP(name, "\\\\.\\", 4) == 0) + return NODE_WRITABLE; + +! hFile = CreateFile(name, /* file name */ +! GENERIC_WRITE, /* access mode */ +! 0, /* share mode */ +! NULL, /* security descriptor */ +! OPEN_EXISTING, /* creation disposition */ +! 0, /* file attributes */ +! NULL); /* handle to template file */ + + if (hFile == INVALID_HANDLE_VALUE) + return NODE_NORMAL; + +--- 3117,3157 ---- + if (STRNCMP(name, "\\\\.\\", 4) == 0) + return NODE_WRITABLE; + +! #ifdef FEAT_MBYTE +! if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) +! { +! wn = enc_to_utf16(name, NULL); +! if (wn != NULL) +! { +! hFile = CreateFileW(wn, /* file name */ +! GENERIC_WRITE, /* access mode */ +! 0, /* share mode */ +! NULL, /* security descriptor */ +! OPEN_EXISTING, /* creation disposition */ +! 0, /* file attributes */ +! NULL); /* handle to template file */ +! if (hFile == INVALID_HANDLE_VALUE +! && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) +! { +! /* Retry with non-wide function (for Windows 98). */ +! vim_free(wn); +! wn = NULL; +! } +! } +! } +! if (wn == NULL) +! #endif +! hFile = CreateFile(name, /* file name */ +! GENERIC_WRITE, /* access mode */ +! 0, /* share mode */ +! NULL, /* security descriptor */ +! OPEN_EXISTING, /* creation disposition */ +! 0, /* file attributes */ +! NULL); /* handle to template file */ + ++ #ifdef FEAT_MBYTE ++ vim_free(wn); ++ #endif + if (hFile == INVALID_HANDLE_VALUE) + return NODE_NORMAL; + +*** ../vim-7.4.014/src/version.c 2013-08-30 17:06:56.000000000 +0200 +--- src/version.c 2013-08-30 17:09:35.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 15, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +144. You eagerly await the update of the "Cool Site of the Day." + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.016 b/7.4.016 new file mode 100644 index 0000000..c58c605 --- /dev/null +++ b/7.4.016 @@ -0,0 +1,221 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.016 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.016 +Problem: MS-Windows: File name completion doesn't work properly with + Chinese characters. (Yue Wu) +Solution: Add fname_casew(). (Ken Takata) +Files: src/os_win32.c + + +*** ../vim-7.4.015/src/os_win32.c 2013-08-30 17:11:29.000000000 +0200 +--- src/os_win32.c 2013-08-30 17:28:30.000000000 +0200 +*************** +*** 2500,2508 **** +--- 2500,2624 ---- + } + + ++ #ifdef FEAT_MBYTE ++ /* ++ * fname_casew(): Wide version of fname_case(). Set the case of the file name, ++ * if it already exists. When "len" is > 0, also expand short to long ++ * filenames. ++ * Return FAIL if wide functions are not available, OK otherwise. ++ * NOTE: much of this is identical to fname_case(), keep in sync! ++ */ ++ static int ++ fname_casew( ++ WCHAR *name, ++ int len) ++ { ++ WCHAR szTrueName[_MAX_PATH + 2]; ++ WCHAR szTrueNameTemp[_MAX_PATH + 2]; ++ WCHAR *ptrue, *ptruePrev; ++ WCHAR *porig, *porigPrev; ++ int flen; ++ WIN32_FIND_DATAW fb; ++ HANDLE hFind; ++ int c; ++ int slen; ++ ++ flen = (int)wcslen(name); ++ if (flen > _MAX_PATH) ++ return OK; ++ ++ /* slash_adjust(name) not needed, already adjusted by fname_case(). */ ++ ++ /* Build the new name in szTrueName[] one component at a time. */ ++ porig = name; ++ ptrue = szTrueName; ++ ++ if (iswalpha(porig[0]) && porig[1] == L':') ++ { ++ /* copy leading drive letter */ ++ *ptrue++ = *porig++; ++ *ptrue++ = *porig++; ++ *ptrue = NUL; /* in case nothing follows */ ++ } ++ ++ while (*porig != NUL) ++ { ++ /* copy \ characters */ ++ while (*porig == psepc) ++ *ptrue++ = *porig++; ++ ++ ptruePrev = ptrue; ++ porigPrev = porig; ++ while (*porig != NUL && *porig != psepc) ++ { ++ *ptrue++ = *porig++; ++ } ++ *ptrue = NUL; ++ ++ /* To avoid a slow failure append "\*" when searching a directory, ++ * server or network share. */ ++ wcscpy(szTrueNameTemp, szTrueName); ++ slen = (int)wcslen(szTrueNameTemp); ++ if (*porig == psepc && slen + 2 < _MAX_PATH) ++ wcscpy(szTrueNameTemp + slen, L"\\*"); ++ ++ /* Skip "", "." and "..". */ ++ if (ptrue > ptruePrev ++ && (ptruePrev[0] != L'.' ++ || (ptruePrev[1] != NUL ++ && (ptruePrev[1] != L'.' || ptruePrev[2] != NUL))) ++ && (hFind = FindFirstFileW(szTrueNameTemp, &fb)) ++ != INVALID_HANDLE_VALUE) ++ { ++ c = *porig; ++ *porig = NUL; ++ ++ /* Only use the match when it's the same name (ignoring case) or ++ * expansion is allowed and there is a match with the short name ++ * and there is enough room. */ ++ if (_wcsicoll(porigPrev, fb.cFileName) == 0 ++ || (len > 0 ++ && (_wcsicoll(porigPrev, fb.cAlternateFileName) == 0 ++ && (int)(ptruePrev - szTrueName) ++ + (int)wcslen(fb.cFileName) < len))) ++ { ++ wcscpy(ptruePrev, fb.cFileName); ++ ++ /* Look for exact match and prefer it if found. Must be a ++ * long name, otherwise there would be only one match. */ ++ while (FindNextFileW(hFind, &fb)) ++ { ++ if (*fb.cAlternateFileName != NUL ++ && (wcscoll(porigPrev, fb.cFileName) == 0 ++ || (len > 0 ++ && (_wcsicoll(porigPrev, ++ fb.cAlternateFileName) == 0 ++ && (int)(ptruePrev - szTrueName) ++ + (int)wcslen(fb.cFileName) < len)))) ++ { ++ wcscpy(ptruePrev, fb.cFileName); ++ break; ++ } ++ } ++ } ++ FindClose(hFind); ++ *porig = c; ++ ptrue = ptruePrev + wcslen(ptruePrev); ++ } ++ else if (hFind == INVALID_HANDLE_VALUE ++ && GetLastError() == ERROR_CALL_NOT_IMPLEMENTED) ++ return FAIL; ++ } ++ ++ wcscpy(name, szTrueName); ++ return OK; ++ } ++ #endif ++ + /* + * fname_case(): Set the case of the file name, if it already exists. + * When "len" is > 0, also expand short to long filenames. ++ * NOTE: much of this is identical to fname_casew(), keep in sync! + */ + void + fname_case( +*************** +*** 2520,2530 **** + int slen; + + flen = (int)STRLEN(name); +! if (flen == 0 || flen > _MAX_PATH) + return; + + slash_adjust(name); + + /* Build the new name in szTrueName[] one component at a time. */ + porig = name; + ptrue = szTrueName; +--- 2636,2679 ---- + int slen; + + flen = (int)STRLEN(name); +! if (flen == 0) + return; + + slash_adjust(name); + ++ #ifdef FEAT_MBYTE ++ if (enc_codepage >= 0 && (int)GetACP() != enc_codepage) ++ { ++ WCHAR *p = enc_to_utf16(name, NULL); ++ ++ if (p != NULL) ++ { ++ char_u *q; ++ WCHAR buf[_MAX_PATH + 2]; ++ ++ wcscpy(buf, p); ++ vim_free(p); ++ ++ if (fname_casew(buf, (len > 0) ? _MAX_PATH : 0) == OK) ++ { ++ q = utf16_to_enc(buf, NULL); ++ if (q != NULL) ++ { ++ vim_strncpy(name, q, (len > 0) ? len - 1 : flen); ++ vim_free(q); ++ return; ++ } ++ } ++ } ++ /* Retry with non-wide function (for Windows 98). */ ++ } ++ #endif ++ ++ /* If 'enc' is utf-8, flen can be larger than _MAX_PATH. ++ * So we should check this after calling wide function. */ ++ if (flen > _MAX_PATH) ++ return; ++ + /* Build the new name in szTrueName[] one component at a time. */ + porig = name; + ptrue = szTrueName; +*** ../vim-7.4.015/src/version.c 2013-08-30 17:11:29.000000000 +0200 +--- src/version.c 2013-08-30 17:15:06.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 16, + /**/ + +-- +Fingers not found - Pound head on keyboard to continue. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.017 b/7.4.017 new file mode 100644 index 0000000..7d7fad8 --- /dev/null +++ b/7.4.017 @@ -0,0 +1,78 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.017 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.017 +Problem: ":help !!" does not find the "!!" tag in the help file. (Ben + Fritz) +Solution: When reading the start of the tags file do parse lines that are + not header lines. +Files: src/tag.c + + +*** ../vim-7.4.016/src/tag.c 2013-06-15 22:26:26.000000000 +0200 +--- src/tag.c 2013-09-05 12:03:38.000000000 +0200 +*************** +*** 1797,1809 **** + */ + if (state == TS_START) + { +! /* The header ends when the line sorts below "!_TAG_". +! * There may be non-header items before the header though, +! * e.g. "!" itself. When case is folded lower case letters +! * sort before "_". */ + if (STRNCMP(lbuf, "!_TAG_", 6) <= 0 + || (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1]))) + { + /* + * Read header line. + */ +--- 1797,1812 ---- + */ + if (state == TS_START) + { +! /* The header ends when the line sorts below "!_TAG_". When +! * case is folded lower case letters sort before "_". */ + if (STRNCMP(lbuf, "!_TAG_", 6) <= 0 + || (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1]))) + { ++ if (STRNCMP(lbuf, "!_TAG_", 6) != 0) ++ /* Non-header item before the header, e.g. "!" itself. ++ */ ++ goto parse_line; ++ + /* + * Read header line. + */ +*************** +*** 1898,1903 **** +--- 1901,1907 ---- + #endif + } + ++ parse_line: + /* + * Figure out where the different strings are in this line. + * For "normal" tags: Do a quick check if the tag matches. +*** ../vim-7.4.016/src/version.c 2013-08-30 17:29:10.000000000 +0200 +--- src/version.c 2013-09-05 12:02:01.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 17, + /**/ + +-- +An error has occurred. Hit any user to continue. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.018 b/7.4.018 new file mode 100644 index 0000000..2214c30 --- /dev/null +++ b/7.4.018 @@ -0,0 +1,45 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.018 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.018 +Problem: When completing item becomes unselected. (Shougo Matsu) +Solution: Revert patch 7.3.1269. +Files: src/edit.c + + +*** ../vim-7.4.017/src/edit.c 2013-07-04 20:22:25.000000000 +0200 +--- src/edit.c 2013-09-05 12:39:53.000000000 +0200 +*************** +*** 3467,3473 **** + } + + compl_enter_selects = !compl_used_match; +- compl_shown_match = compl_curr_match = compl_first_match; + + /* Show the popup menu with a different set of matches. */ + ins_compl_show_pum(); +--- 3467,3472 ---- +*** ../vim-7.4.017/src/version.c 2013-09-05 12:06:26.000000000 +0200 +--- src/version.c 2013-09-05 12:40:34.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 18, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +169. You hire a housekeeper for your home page. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.019 b/7.4.019 new file mode 100644 index 0000000..b1532c1 --- /dev/null +++ b/7.4.019 @@ -0,0 +1,61 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.019 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.019 +Problem: MS-Windows: File name completion doesn't work properly with + Chinese characters. (Yue Wu) +Solution: Take care of multi-byte characters when looking for the start of + the file name. (Ken Takata) +Files: src/edit.c + + +*** ../vim-7.4.018/src/edit.c 2013-09-05 12:49:48.000000000 +0200 +--- src/edit.c 2013-09-05 13:45:27.000000000 +0200 +*************** +*** 5183,5190 **** + } + else if (ctrl_x_mode == CTRL_X_FILES) + { +! while (--startcol >= 0 && vim_isfilec(line[startcol])) +! ; + compl_col += ++startcol; + compl_length = (int)curs_col - startcol; + compl_pattern = addstar(line + compl_col, compl_length, +--- 5183,5196 ---- + } + else if (ctrl_x_mode == CTRL_X_FILES) + { +! char_u *p = line + startcol; +! +! /* Go back to just before the first filename character. */ +! mb_ptr_back(line, p); +! while (vim_isfilec(PTR2CHAR(p)) && p >= line) +! mb_ptr_back(line, p); +! startcol = p - line; +! + compl_col += ++startcol; + compl_length = (int)curs_col - startcol; + compl_pattern = addstar(line + compl_col, compl_length, +*** ../vim-7.4.018/src/version.c 2013-09-05 12:49:48.000000000 +0200 +--- src/version.c 2013-09-05 13:41:47.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 19, + /**/ + +-- + Very funny, Scotty. Now beam down my clothes. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.020 b/7.4.020 new file mode 100644 index 0000000..942d82f --- /dev/null +++ b/7.4.020 @@ -0,0 +1,82 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.020 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.020 +Problem: NFA engine matches too much with \@>. (John McGowan) +Solution: When a whole pattern match is found stop searching. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.4.019/src/regexp_nfa.c 2013-08-25 17:01:36.000000000 +0200 +--- src/regexp_nfa.c 2013-09-05 15:59:44.000000000 +0200 +*************** +*** 5322,5328 **** + log_subsexpr(m); + #endif + nfa_match = TRUE; +! break; + + case NFA_START_INVISIBLE: + case NFA_START_INVISIBLE_FIRST: +--- 5322,5331 ---- + log_subsexpr(m); + #endif + nfa_match = TRUE; +! /* See comment above at "goto nextchar". */ +! if (nextlist->n == 0) +! clen = 0; +! goto nextchar; + + case NFA_START_INVISIBLE: + case NFA_START_INVISIBLE_FIRST: +*** ../vim-7.4.019/src/testdir/test64.in 2013-08-14 13:31:03.000000000 +0200 +--- src/testdir/test64.in 2013-09-05 15:35:44.000000000 +0200 +*************** +*** 427,432 **** +--- 427,433 ---- + :""""" \@> + :call add(tl, [2, '\(a*\)\@>a', 'aaaa']) + :call add(tl, [2, '\(a*\)\@>b', 'aaab', 'aaab', 'aaa']) ++ :call add(tl, [2, '^\(.\{-}b\)\@>.', ' abcbd', ' abc', ' ab']) + :" TODO: BT engine does not restore submatch after failure + :call add(tl, [1, '\(a*\)\@>a\|a\+', 'aaaa', 'aaaa']) + :" +*** ../vim-7.4.019/src/testdir/test64.ok 2013-08-14 13:31:03.000000000 +0200 +--- src/testdir/test64.ok 2013-09-05 16:03:34.000000000 +0200 +*************** +*** 983,988 **** +--- 983,991 ---- + OK 0 - \(a*\)\@>b + OK 1 - \(a*\)\@>b + OK 2 - \(a*\)\@>b ++ OK 0 - ^\(.\{-}b\)\@>. ++ OK 1 - ^\(.\{-}b\)\@>. ++ OK 2 - ^\(.\{-}b\)\@>. + OK 0 - \(a*\)\@>a\|a\+ + OK 2 - \(a*\)\@>a\|a\+ + OK 0 - \_[^8-9]\+ +*** ../vim-7.4.019/src/version.c 2013-09-05 13:50:49.000000000 +0200 +--- src/version.c 2013-09-05 16:04:32.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 20, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +173. You keep tracking down the email addresses of all your friends + (even childhood friends). + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.021 b/7.4.021 new file mode 100644 index 0000000..0936d9a --- /dev/null +++ b/7.4.021 @@ -0,0 +1,86 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.021 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.021 +Problem: NFA regexp: Using \ze in one branch which doesn't match may cause + end of another branch to be wrong. (William Fugh) +Solution: Set end position if it wasn't set yet. +Files: src/regexp_nfa.c, src/testdir/test64.in, src/testdir/test64.ok + + +*** ../vim-7.4.020/src/regexp_nfa.c 2013-09-05 16:05:32.000000000 +0200 +--- src/regexp_nfa.c 2013-09-05 20:56:25.000000000 +0200 +*************** +*** 4209,4218 **** + break; + + case NFA_MCLOSE: +! if (nfa_has_zend) + { +! /* Do not overwrite the position set by \ze. If no \ze +! * encountered end will be set in nfa_regtry(). */ + subs = addstate(l, state->out, subs, pim, off); + break; + } +--- 4209,4219 ---- + break; + + case NFA_MCLOSE: +! if (nfa_has_zend && (REG_MULTI +! ? subs->norm.list.multi[0].end.lnum >= 0 +! : subs->norm.list.line[0].end != NULL)) + { +! /* Do not overwrite the position set by \ze. */ + subs = addstate(l, state->out, subs, pim, off); + break; + } +*** ../vim-7.4.020/src/testdir/test64.in 2013-09-05 16:05:32.000000000 +0200 +--- src/testdir/test64.in 2013-09-05 20:55:18.000000000 +0200 +*************** +*** 328,333 **** +--- 328,334 ---- + :call add(tl, [2, 'abc \zsmatch\ze abc', 'abc abc abc match abc abc', 'match']) + :call add(tl, [2, '\v(a \zsif .*){2}', 'a if then a if last', 'if last', 'a if last']) + :call add(tl, [2, '\>\zs.', 'aword. ', '.']) ++ :call add(tl, [2, '\s\+\ze\[/\|\s\zs\s\+', 'is [a t', ' ']) + :" + :"""" Tests for \@= and \& features + :call add(tl, [2, 'abc\@=', 'abc', 'ab']) +*** ../vim-7.4.020/src/testdir/test64.ok 2013-09-05 16:05:32.000000000 +0200 +--- src/testdir/test64.ok 2013-09-05 21:09:56.000000000 +0200 +*************** +*** 752,757 **** +--- 752,760 ---- + OK 0 - \>\zs. + OK 1 - \>\zs. + OK 2 - \>\zs. ++ OK 0 - \s\+\ze\[/\|\s\zs\s\+ ++ OK 1 - \s\+\ze\[/\|\s\zs\s\+ ++ OK 2 - \s\+\ze\[/\|\s\zs\s\+ + OK 0 - abc\@= + OK 1 - abc\@= + OK 2 - abc\@= +*** ../vim-7.4.020/src/version.c 2013-09-05 16:05:32.000000000 +0200 +--- src/version.c 2013-09-05 21:11:38.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 21, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +174. You know what a listserv is. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.022 b/7.4.022 new file mode 100644 index 0000000..81a0901 --- /dev/null +++ b/7.4.022 @@ -0,0 +1,148 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.022 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.022 +Problem: Deadlock while exiting, because of allocating memory. +Solution: Do not use gettext() in deathtrap(). (James McCoy) +Files: src/os_unix.c, src/misc1.c + + +*** ../vim-7.4.021/src/os_unix.c 2013-07-03 16:32:32.000000000 +0200 +--- src/os_unix.c 2013-09-05 21:40:06.000000000 +0200 +*************** +*** 957,964 **** + + /* + * This function handles deadly signals. +! * It tries to preserve any swap file and exit properly. + * (partly from Elvis). + */ + static RETSIGTYPE + deathtrap SIGDEFARG(sigarg) +--- 957,966 ---- + + /* + * This function handles deadly signals. +! * It tries to preserve any swap files and exit properly. + * (partly from Elvis). ++ * NOTE: Avoid unsafe functions, such as allocating memory, they can result in ++ * a deadlock. + */ + static RETSIGTYPE + deathtrap SIGDEFARG(sigarg) +*************** +*** 1090,1107 **** + } + if (entered == 2) + { +! OUT_STR(_("Vim: Double signal, exiting\n")); + out_flush(); + getout(1); + } + + #ifdef SIGHASARG +! sprintf((char *)IObuff, _("Vim: Caught deadly signal %s\n"), + signal_info[i].name); + #else +! sprintf((char *)IObuff, _("Vim: Caught deadly signal\n")); + #endif +! preserve_exit(); /* preserve files and exit */ + + #ifdef NBDEBUG + reset_signals(); +--- 1092,1114 ---- + } + if (entered == 2) + { +! /* No translation, it may call malloc(). */ +! OUT_STR("Vim: Double signal, exiting\n"); + out_flush(); + getout(1); + } + ++ /* No translation, it may call malloc(). */ + #ifdef SIGHASARG +! sprintf((char *)IObuff, "Vim: Caught deadly signal %s\n", + signal_info[i].name); + #else +! sprintf((char *)IObuff, "Vim: Caught deadly signal\n"); + #endif +! +! /* Preserve files and exit. This sets the really_exiting flag to prevent +! * calling free(). */ +! preserve_exit(); + + #ifdef NBDEBUG + reset_signals(); +*** ../vim-7.4.021/src/misc1.c 2013-08-03 17:29:33.000000000 +0200 +--- src/misc1.c 2013-09-05 21:34:04.000000000 +0200 +*************** +*** 9174,9179 **** +--- 9174,9181 ---- + /* + * Preserve files and exit. + * When called IObuff must contain a message. ++ * NOTE: This may be called from deathtrap() in a signal handler, avoid unsafe ++ * functions, such as allocating memory. + */ + void + preserve_exit() +*************** +*** 9196,9202 **** + { + if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL) + { +! OUT_STR(_("Vim: preserving files...\n")); + screen_start(); /* don't know where cursor is now */ + out_flush(); + ml_sync_all(FALSE, FALSE); /* preserve all swap files */ +--- 9198,9204 ---- + { + if (buf->b_ml.ml_mfp != NULL && buf->b_ml.ml_mfp->mf_fname != NULL) + { +! OUT_STR("Vim: preserving files...\n"); + screen_start(); /* don't know where cursor is now */ + out_flush(); + ml_sync_all(FALSE, FALSE); /* preserve all swap files */ +*************** +*** 9206,9212 **** + + ml_close_all(FALSE); /* close all memfiles, without deleting */ + +! OUT_STR(_("Vim: Finished.\n")); + + getout(1); + } +--- 9208,9214 ---- + + ml_close_all(FALSE); /* close all memfiles, without deleting */ + +! OUT_STR("Vim: Finished.\n"); + + getout(1); + } +*** ../vim-7.4.021/src/version.c 2013-09-05 21:15:38.000000000 +0200 +--- src/version.c 2013-09-05 21:30:18.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 22, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +175. You send yourself e-mail before you go to bed to remind you + what to do when you wake up. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.023 b/7.4.023 new file mode 100644 index 0000000..0300521 --- /dev/null +++ b/7.4.023 @@ -0,0 +1,53 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.023 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.023 +Problem: Compiler warning on 64 bit windows. +Solution: Add type cast. (Mike Williams) +Files: src/edit.c + + +*** ../vim-7.4.022/src/edit.c 2013-09-05 13:50:49.000000000 +0200 +--- src/edit.c 2013-09-06 17:32:55.000000000 +0200 +*************** +*** 5189,5195 **** + mb_ptr_back(line, p); + while (vim_isfilec(PTR2CHAR(p)) && p >= line) + mb_ptr_back(line, p); +! startcol = p - line; + + compl_col += ++startcol; + compl_length = (int)curs_col - startcol; +--- 5189,5195 ---- + mb_ptr_back(line, p); + while (vim_isfilec(PTR2CHAR(p)) && p >= line) + mb_ptr_back(line, p); +! startcol = (int)(p - line); + + compl_col += ++startcol; + compl_length = (int)curs_col - startcol; +*** ../vim-7.4.022/src/version.c 2013-09-05 21:41:35.000000000 +0200 +--- src/version.c 2013-09-06 17:33:41.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 23, + /**/ + +-- +Wizards had always known that the act of observation changed the thing that +was observed, and sometimes forgot that it also changed the observer too. + Terry Pratchett - Interesting times + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.024 b/7.4.024 new file mode 100644 index 0000000..da0df9c --- /dev/null +++ b/7.4.024 @@ -0,0 +1,61 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.024 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.024 +Problem: When root edits a file the undo file is owned by root while the + edited file may be owned by another user, which is not allowed. + (cac2s) +Solution: Accept an undo file owned by the current user. +Files: src/undo.c + + +*** ../vim-7.4.023/src/undo.c 2013-06-10 20:13:37.000000000 +0200 +--- src/undo.c 2013-09-07 15:45:56.000000000 +0200 +*************** +*** 1604,1613 **** + + #ifdef UNIX + /* For safety we only read an undo file if the owner is equal to the +! * owner of the text file. */ + if (mch_stat((char *)orig_name, &st_orig) >= 0 + && mch_stat((char *)file_name, &st_undo) >= 0 +! && st_orig.st_uid != st_undo.st_uid) + { + if (p_verbose > 0) + { +--- 1604,1614 ---- + + #ifdef UNIX + /* For safety we only read an undo file if the owner is equal to the +! * owner of the text file or equal to the current user. */ + if (mch_stat((char *)orig_name, &st_orig) >= 0 + && mch_stat((char *)file_name, &st_undo) >= 0 +! && st_orig.st_uid != st_undo.st_uid +! && st_undo.st_uid != getuid()) + { + if (p_verbose > 0) + { +*** ../vim-7.4.023/src/version.c 2013-09-07 16:35:38.000000000 +0200 +--- src/version.c 2013-09-08 15:38:52.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 24, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +186. You overstay in the office so you can have more time surfing the net. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.025 b/7.4.025 new file mode 100644 index 0000000..9ead176 --- /dev/null +++ b/7.4.025 @@ -0,0 +1,62 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.025 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.025 (after 7.4.019 +Problem: Reading before start of a string. +Solution: Do not call mb_ptr_back() at start of a string. (Dominique Pelle) +Files: src/edit.c + + +*** ../vim-7.4.024/src/edit.c 2013-09-07 16:35:38.000000000 +0200 +--- src/edit.c 2013-09-08 15:57:20.000000000 +0200 +*************** +*** 5187,5197 **** + + /* Go back to just before the first filename character. */ + mb_ptr_back(line, p); +! while (vim_isfilec(PTR2CHAR(p)) && p >= line) + mb_ptr_back(line, p); +! startcol = (int)(p - line); + +! compl_col += ++startcol; + compl_length = (int)curs_col - startcol; + compl_pattern = addstar(line + compl_col, compl_length, + EXPAND_FILES); +--- 5187,5199 ---- + + /* Go back to just before the first filename character. */ + mb_ptr_back(line, p); +! while (p > line && vim_isfilec(PTR2CHAR(p))) + mb_ptr_back(line, p); +! startcol = (int)(p - line) + 1; +! if (p == line && vim_isfilec(PTR2CHAR(p))) +! startcol = 0; + +! compl_col += startcol; + compl_length = (int)curs_col - startcol; + compl_pattern = addstar(line + compl_col, compl_length, + EXPAND_FILES); +*** ../vim-7.4.024/src/version.c 2013-09-08 15:40:45.000000000 +0200 +--- src/version.c 2013-09-08 15:52:39.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 25, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +188. You purchase a laptop so you can surf while sitting on the can. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.026 b/7.4.026 new file mode 100644 index 0000000..8add91f --- /dev/null +++ b/7.4.026 @@ -0,0 +1,65 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.026 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.026 +Problem: Clang warning for int shift overflow. +Solution: Use unsigned and cast back to int. (Dominique Pelle) +Files: src/misc2.c + + +*** ../vim-7.4.025/src/misc2.c 2013-07-07 16:03:35.000000000 +0200 +--- src/misc2.c 2013-09-08 16:04:54.000000000 +0200 +*************** +*** 6496,6508 **** + get4c(fd) + FILE *fd; + { +! int n; + +! n = getc(fd); +! n = (n << 8) + getc(fd); +! n = (n << 8) + getc(fd); +! n = (n << 8) + getc(fd); +! return n; + } + + /* +--- 6496,6510 ---- + get4c(fd) + FILE *fd; + { +! /* Use unsigned rather than int otherwise result is undefined +! * when left-shift sets the MSB. */ +! unsigned n; + +! n = (unsigned)getc(fd); +! n = (n << 8) + (unsigned)getc(fd); +! n = (n << 8) + (unsigned)getc(fd); +! n = (n << 8) + (unsigned)getc(fd); +! return (int)n; + } + + /* +*** ../vim-7.4.025/src/version.c 2013-09-08 16:03:40.000000000 +0200 +--- src/version.c 2013-09-08 16:05:40.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 26, + /**/ + +-- +A computer program does what you tell it to do, not what you want it to do. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.4.027 b/7.4.027 new file mode 100644 index 0000000..ab43d59 --- /dev/null +++ b/7.4.027 @@ -0,0 +1,89 @@ +To: vim_dev@googlegroups.com +Subject: Patch 7.4.027 +Fcc: outbox +From: Bram Moolenaar <Bram@moolenaar.net> +Mime-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.4.027 (after 7.4.025) +Problem: Another valgrind error when using CTRL-X CTRL-F at the start of + the line. (Dominique Pelle) +Solution: Don't call mb_ptr_back() at the start of the line. Add a test. +Files: src/edit.c, src/testdir/test32.in + + +*** ../vim-7.4.026/src/edit.c 2013-09-08 16:03:40.000000000 +0200 +--- src/edit.c 2013-09-08 18:18:32.000000000 +0200 +*************** +*** 5183,5197 **** + } + else if (ctrl_x_mode == CTRL_X_FILES) + { +- char_u *p = line + startcol; +- + /* Go back to just before the first filename character. */ +! mb_ptr_back(line, p); +! while (p > line && vim_isfilec(PTR2CHAR(p))) + mb_ptr_back(line, p); +! startcol = (int)(p - line) + 1; +! if (p == line && vim_isfilec(PTR2CHAR(p))) +! startcol = 0; + + compl_col += startcol; + compl_length = (int)curs_col - startcol; +--- 5183,5201 ---- + } + else if (ctrl_x_mode == CTRL_X_FILES) + { + /* Go back to just before the first filename character. */ +! if (startcol > 0) +! { +! char_u *p = line + startcol; +! + mb_ptr_back(line, p); +! while (p > line && vim_isfilec(PTR2CHAR(p))) +! mb_ptr_back(line, p); +! if (p == line && vim_isfilec(PTR2CHAR(p))) +! startcol = 0; +! else +! startcol = (int)(p - line) + 1; +! } + + compl_col += startcol; + compl_length = (int)curs_col - startcol; +*** ../vim-7.4.026/src/testdir/test32.in 2010-05-15 13:04:10.000000000 +0200 +--- src/testdir/test32.in 2013-09-08 18:08:07.000000000 +0200 +*************** +*** 36,41 **** +--- 36,44 ---- + :w Xtest11.one + :w Xtest11.two + OIXA ++ :" use CTRL-X CTRL-F to complete Xtest11.one, remove it and then use ++ :" CTRL-X CTRL-F again to verify this doesn't cause trouble. ++ OXddk + :se cpt=w + OST + :se cpt=u nohid +*** ../vim-7.4.026/src/version.c 2013-09-08 16:07:03.000000000 +0200 +--- src/version.c 2013-09-08 18:14:17.000000000 +0200 +*************** +*** 740,741 **** +--- 740,743 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 27, + /**/ + +-- +hundred-and-one symptoms of being an internet addict: +190. You quickly hand over your wallet, leather jacket, and car keys + during a mugging, then proceed to beat the crap out of your + assailant when he asks for your laptop. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ an exciting new programming language -- http://www.Zimbu.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/README.patches b/README.patches index 5f4a880..183a75d 100644 --- a/README.patches +++ b/README.patches @@ -1,1346 +1,53 @@ -Patches for Vim - Vi IMproved 7.3 +Patches for Vim - Vi IMproved 7.4 -The files in this directory contain source code changes to fix -problems in released versions of Vim. Each file also contains an -explanation of the problem that is fixed, like the message that -was sent to the vim-dev maillist. +The files in this directory contain source code changes to fix problems +in a released version of Vim. Each file also contains an explanation of +the problem that is fixed, like the message that was sent to the vim-dev +maillist. -The best is to apply the patches in sequence. This avoids problems -when a patch depends on a previous patch. If you did not unpack the -extra archive, you may want to skip patches marked with "(extra)". -Similarly for the "lang" archive. Or ignore errors for missing files. +The best is to apply the patches in sequence. This avoids problems when +a patch depends on a previous patch. -Before patching, change to the top Vim directory, where the "src" -and "runtime" directories are located. -Depending on the version of "patch" that you use, you may have add -an argument to make it patch the right file: - patch -p < 7.3.001 - patch -p0 < 7.3.001 +Before patching, change to the top Vim directory, where the "src" and +"runtime" directories are located. +Depending on the version of "patch" that you use, you may have add an +argument to make it patch the right file: + patch -p < 7.4.001 + patch -p0 < 7.4.001 -After applying a patch, you need to compile Vim. There are no -patches for binaries. +After applying a patch, you need to compile Vim. There are no patches +for binaries. Checksums for the patch files can be found in the file MD5. -These patches were edited after their original submission to avoid patch to -fail. The original files are available with "orig." prepended: - 22565 7.3.202 cannot influence the indent inside a namespace - 5725 7.3.203 MS-Windows: Can't run external command without console window - 10891 7.3.223 MingW cross compilation doesn't work with tiny feat. - -Individual patches for Vim 7.3: +Individual patches for Vim 7.4: SIZE NAME FIXES - 1720 7.3.001 ":find" completion does not always shorten match properly - 1610 7.3.002 ":find" completion didn't work halfway an environment variable - 1299 7.3.003 crash with specific BufWritePost autocmd - 1300 7.3.004 crash when using very long regexp - 2747 7.3.005 crash when using undotree() - 2987 7.3.006 can't build some multi-byte code with C89 - 4442 7.3.007 Python code redefines "buffer", re-implements a grow-array - 11982 7.3.008 'cursorbind' is kept in places where 'scrollbind' is reset - 3197 7.3.009 Win32: Crash when using a bad argument for strftime() - 5466 7.3.010 Mac GUI: Missing break statements - 8811 7.3.011 X11 clipboard doesn't work in GUI, after :sh selection fails - 2127 7.3.012 problems building with MingW - 5979 7.3.013 dynamic loading with Ruby doesn't work for 1.9.2 - 2497 7.3.014 "a" in Ex mode with backslash at end of line doesn't work - 2223 7.3.015 a test is using an error message that no longer exists - 7448 7.3.016 netbeans interface doesn't work under Athena - 4314 7.3.017 errors reported by smatch - 2488 7.3.018 (after 7.3.012) missing argument to windres in MingW makefiles - 1577 7.3.019 ":nbstart" can fail silently - 3696 7.3.020 cursor position wrong when joining lines and 'fo' contains "a" - 2145 7.3.021 Mac: Boolean redefined when building with X11 - 1750 7.3.022 when opening a new window 'spellcapcheck' is cleared - 2086 7.3.023 external program may hang when it tries to write to the tty - 3222 7.3.024 named signs do not use a negative number as intended - 3412 7.3.025 ":mksession" does not escape file name properly - 1848 7.3.026 CTRL-] in a help file doesn't always work - 2668 7.3.027 MS-Windows: Opening a file on a network share is very slow - 5065 7.3.028 (after 7.3.024) signs don't show up - 4623 7.3.029 ":sort n" sorts lines without a number as number zero - 12512 7.3.030 cannot store Dict and List in viminfo file - 3620 7.3.031 can't pass the X window ID to another application - 21839 7.3.032 maparg() doesn't return the flags, e.g., <buffer>, <script> - 1395 7.3.033 (after 7.3.032) can't build without FEAT_LOCALMAP - 12987 7.3.034 Win32: may load .dll from wrong directory - 1882 7.3.035 (after 7.3.034) stray semicolon - 1946 7.3.036 Win32 GUI: different dialog font when building without menus - 4147 7.3.037 compiler warnings for loss of data - 2638 7.3.038 v:windowid isn't set for MS-Windows - 2567 7.3.039 crash when using skk.vim plugin - 1627 7.3.040 go past end of string when comparing while ignoring case - 1857 7.3.041 compiler warning for mediumVersion - 1915 7.3.042 no spell highlighting when re-using an empty buffer - 14836 7.3.043 can't load Ruby dynamically on Unix - 1857 7.3.044 preview window too high when opened by the popup menu - 1739 7.3.045 compiler warning for uninitialized variable - 2126 7.3.046 can't build Ruby on MS-Windows - 6058 7.3.047 (after 7.3.032) missing makefile updates for test 75 - 3410 7.3.048 ":earlier 1f" doesn't work after loading undo file - 19335 7.3.049 PLT has rebranded their Scheme to Racket - 6138 7.3.050 the link script is clumsy, should use --as-needed - 3305 7.3.051 crash when $PATH is empty - 10719 7.3.052 various errors when 'completefunc' opens a new window - 2948 7.3.053 complete() function doesn't reset complete direction - 3354 7.3.054 can define a user command for :Print, but it doesn't work - 10470 7.3.055 endless loop when recursively comparing lists and dicts - 17935 7.3.056 "getline" argument in do_cmdline() shadows global - 1980 7.3.057 segfault with command line abbreviation - 4735 7.3.058 error "code converter not found" when loading Ruby script - 3226 7.3.059 Netbeans: Problem with recursive messages for Athena/Motif - 5326 7.3.060 Netbeans: crash when socket is disconnected unexpectedly - 3307 7.3.061 remote ":drop" does not respect 'autochdir' - 23639 7.3.062 Python has problems when installed in an unusual directory - 2250 7.3.063 Win32: Running a filter command makes Vim lose focus - 2493 7.3.064 Win32: ":dis +" shows nothing, but "+p does insert text - 3389 7.3.065 can't get current line number in a source file - 2852 7.3.066 crash when changing to another window during :vimgrep command - 2315 7.3.067 Ruby: Init_prelude is not always available - 1550 7.3.068 using freed memory on ":saveas" if autocommand sets 'acd' - 1618 7.3.069 GTK: pressing Enter in inputdialog() doesn't work like OK - 1604 7.3.070 can set environment variables in the sandbox - 2095 7.3.071 cursor binding not reset when editing another file - 9432 7.3.072 can't complete file names while ignoring case - 2466 7.3.073 double free memory when netbeans command follows DETACH - 7659 7.3.074 can't use the "+ register like "* for yank and put - 3872 7.3.075 (after 7.3.072) also use 'wildignorecase' in expand() - 5538 7.3.076 Clang warnings for dead code - 3099 7.3.077 when updating swapfile crypt fails there is no error message - 1565 7.3.078 warning for unused variable - 1377 7.3.079 duplicate lines in MSVC makefile - 6011 7.3.080 spelling doesn't work on VMS - 2257 7.3.081 non-printable characters in 'statusline' cause trouble - 1634 7.3.082 leaking file descriptor when netbeans hostname doesn't exist - 9996 7.3.083 when a read() or write() is interrupted by a signal it fails - 3508 7.3.084 after window split the new one scrolls with cursor at top - 8843 7.3.085 (after 7.3.083) inconsistency with preproc symbols - 4005 7.3.086 v:count has value of previous command in expression mapping - 4349 7.3.087 (after 7.3.083) missing include for errno.h - 4868 7.3.088 Ruby can't load Gems sometimes, may cause a crash - 1550 7.3.089 compiler warning on 64 bit MS-Windows - 2377 7.3.090 wrong help text for Cscope - 9421 7.3.091 "vim -w foo" writes key codes for removed escape sequences - 1678 7.3.092 resizing the window when exiting - 5483 7.3.093 new DLL dependencies in MingW with gcc 4.5.0 - 2167 7.3.094 using abs() requires type cast to int - 1999 7.3.095 Win32: In Chinese tear-off menu doesn't work - 2767 7.3.096 can't interrupt "gvim -nb", leak file descriptor on errro - 1760 7.3.097 ":call" inside "if 0" gives error for dict function - 1712 7.3.098 ignored error may still cause status line to be disabled - 1628 7.3.099 crash when splitting a window with zero height - 1497 7.3.100 when using ":normal" v:count isn't set - 2449 7.3.101 ino_t defined with wrong size in Ruby and Lua interfaces - 23045 7.3.102 Ex command typed at reload prompt is ignored - 4500 7.3.103 changing 'ff', then using ":w" in empty file sets 'mod' - 1428 7.3.104 conceal: using Tab for cchar causes problems - 1539 7.3.105 can't get the value of "b:changedtick" with getbufvar() - 1650 7.3.106 other window scrolls if both 'scrollbind' and 'cursorbind' set - 1986 7.3.107 year in :undolist can be confusing - 3425 7.3.108 useless check for NULL when calling vim_free() - 7203 7.3.109 processing new Esperanto spell file fails and crashes Vim - 2122 7.3.110 the "nbsp" item in 'listchars' isn't used for ":list" - 4010 7.3.111 :normal command in 'statusline' causes the cursor to move - 1978 7.3.112 setting 'statusline' to "%!'asdf%' reads uninitialized memory - 1838 7.3.113 Windows: Fall back directory for creating temp file is wrong - 1568 7.3.114 potential problem using 'verbosefile' uninitialized - 1645 7.3.115 Vim can crash when tmpnam() returns NULL - 1788 7.3.116 'cursorline' too short with concealed chars and 'list' set - 3835 7.3.117 build failed when --as-needed excludes ncurses - 2283 7.3.118 Ruby uses SIGVTALARM which makes Vim exit - 1637 7.3.119 (after 7.3.114) build problem on Mac - 2597 7.3.120 message for existing swap file does not fit in 25 lines - 1721 7.3.121 crash when using complicated 'statusline' - 3936 7.3.122 having src/auto/config.mk in the distribution causes problems - 1954 7.3.123 ml_get error when 'conceallevel' is set - 6777 7.3.124 EOL may be missing from written file - 2672 7.3.125 MSVC: quote in link argument causes trouble - 1652 7.3.126 compiler warning for signed pointer - 1747 7.3.127 compiler complains about comma after last enum item - 1706 7.3.128 another compiler warning for signed pointer - 6608 7.3.129 using integer like a boolean - 1908 7.3.130 clipboard_event_time misplaced in #ifdef - 1280 7.3.131 including errno.h too often - 2648 7.3.132 C++ style comments - 3169 7.3.133 when using encryption it's not clear what method was used - 1470 7.3.134 drag-n-drop doesn't work in KDE Dolphin - 2678 7.3.135 inconsistency: last substitute pattern isn't used for search - 1653 7.3.136 duplicate include of assert.h - 2881 7.3.137 when 'lazyredraw' is set the screen may not be updated - 2399 7.3.138 ":com" changes the multi-byte text of :echo - 3685 7.3.139 (after 7.3.137) can't read ":ver" output when 'lazyredraw' set - 1797 7.3.140 crash when 'cursorline' and 'list' both set - 2968 7.3.141 when a key code is not set get a confusing error message - 2593 7.3.142 Python stdout doesn't have flush(), causing an import to fail - 45956 7.3.143 memfile insufficiently tested; inefficient with many blocks - 2387 7.3.144 crash with ":python help(dir)" - 2400 7.3.145 (after 7.3.144) can't build with Python dynamically loading - 6571 7.3.146 can assign to dict member with invalid name - 1575 7.3.147 (after 7.3.143) can't build on HP-UX - 7615 7.3.148 huge number of syntax items or clusters causes hang or crash - 2205 7.3.149 the cursor disappears after the 'setDot' netbeans command - 2960 7.3.150 readline() does not return the last line when NL is missing - 2077 7.3.151 with "unnamedplus" in 'clipboard' selection also copied to "* - 14784 7.3.152 xxd does not check for errors of library functions - 1775 7.3.153 compiler warning for ambiguous else, missing prototype in xxd - 3570 7.3.154 (after 7.3.148) can't compile with tiny features - 8459 7.3.155 crash when using map(), filter(), remove(), extend() on v: - 2727 7.3.156 Tty names possibly left unterminated - 1583 7.3.157 superfluous assignment - 1497 7.3.158 might use uninitialized memory in C indenting - 1587 7.3.159 using uninitialized pointer when out of memory - 13647 7.3.160 unsafe string copying - 43528 7.3.161 items on the stack may be too big - 2564 7.3.162 no error message assigning to a list with index out of range - 2016 7.3.163 the default 'shellpipe' doesn't recognize "mksh" and "pdksh" - 4014 7.3.164 C-indenting doesn't recognize some function declarations - 1558 7.3.165 ":find" completion does not escape spaces in directory name - 1765 7.3.166 buffer on the stack may be too big - 2932 7.3.167 when using internal grep QuickFixCmdPost is not triggered - 2019 7.3.168 CR in second argument of input() causes problems - 3659 7.3.169 freeing memory already freed, warning from code analyzer - 2429 7.3.170 VMS: test77 missing from Makefile - 4511 7.3.171 confusing message from ":yank" when no clipboard support - 8382 7.3.172 MS-Windows: rename() might delete a file - 2429 7.3.173 ":cwindow" may open a window when the quickfix list is empty - 4618 7.3.174 when Exuberant ctags binary is exctags it's not found - 1482 7.3.175 ":new" may result in wrong 'colorcolumn' highlighting - 6968 7.3.176 Ruby linking doesn't work properly on Mac OS X - 2814 7.3.177 MS-Windows: mkdir() works wrong when 'encoding' is "utf-8" - 4019 7.3.178 C-indent doesn't handle code right after { correctly - 2144 7.3.179 C-indent doesn't handle colon in string correctly - 8439 7.3.180 better matching end part of 'comments' not used after middle - 4509 7.3.181 display update error when repeating insert of CTRL-V / digraph - 1684 7.3.182 (after 7.3.180) unused variable compiler warning - 3761 7.3.183 when Exuberant ctags binary is exuberant-ctags it's not found - 2532 7.3.184 static code analysis errors in riscOS - 2570 7.3.185 ":windo g/pattern/q" reports wrong number of lines - 1713 7.3.186 v:register wrong when 'clipboard' contains "unnamed" -173872 7.3.187 the RISC OS port is not being maintained, remove it - 7901 7.3.188 some more RISC OS files to be removed - 1476 7.3.189 (after 7.3.186) build fails without +clipboard - 1462 7.3.190 "containedin" syntax argument may make highlighting be wrong - 13294 7.3.191 still some RISC OS stuff to remove - 1701 7.3.192 command ":s/ \?/ /g" splits multi-byte characters into bytes - 1998 7.3.193 in the command line window ":close" doesn't work properly - 1397 7.3.194 "!mkdir a | ln -s a b", resolve("b/") doesn't result in "a/" - 4951 7.3.195 "} else" causes following lines to be indented too much - 7478 7.3.196 can't intercept a character that is going to be inserted - 2367 7.3.197 get E42 error when a QuickfixCmdPost event removes all errors - 12240 7.3.198 there is no completion for ":lang" - 1857 7.3.199 MS-Windows: Compilation problem of OLE with MingW compiler - 2213 7.3.200 (after 7.3.198) CTRL-D doesn't complete :lang - 3303 7.3.201 (after 7.3.195) still bad indenting after "} else" - 21467 7.3.202 (fixed) cannot influence the indent inside a namespace - 3199 7.3.203 (fixed) MS-Windows: Can't run ext. cmd without console window - 1588 7.3.204 (after 7.3.201) compiler warning - 2430 7.3.205 syntax "extend" doesn't work correctly - 1617 7.3.206 64bit MS-Windows compiler warning - 1603 7.3.207 can't compile with MSVC with pentium4 and 64 bit - 1597 7.3.208 early terminated if statement in Mac code - 2886 7.3.209 MSVC Install instructions point to wrong batch file - 5906 7.3.210 can't always find the file when using cscope - 1730 7.3.211 (after 7.3.210) compiler warning - 11261 7.3.212 with Python 3.2 ":py3" fails - 2985 7.3.213 javascript object literal is not indented correctly - 1615 7.3.214 the text displayed by ":z-" isn't exactly like old Vi - 2079 7.3.215 (after 7.3.210) wrong file names in previous patch - 9055 7.3.216 when recovering a file a range of lines is missing - 1916 7.3.217 inside an "if" a ":wincmd" causes problems - 4735 7.3.218 (after 7.3.212) tiny configuration problem with Python 3 - 3087 7.3.219 can't compile with GTK on Mac - 37536 7.3.220 various Python 3 problems - 8061 7.3.221 text from clipboard is not consistently handled as linewise - 2214 7.3.222 warning for building GvimExt - 10890 7.3.223 (fixed) MingW cross compilation doesn't work with tiny feat. - 5522 7.3.224 can't pass dict to sort function - 18841 7.3.225 "\n" in a substitute() inside ":s" not handled correctly - 1838 7.3.226 on a 64 bit system "syn sync fromstart" is very slow - 3430 7.3.227 after 7.3.221) Mac OS doesn't have the linewise clipboard fix - 1390 7.3.228 "2gj" does not always move to the correct position - 1645 7.3.229 fork() makes Mac gvim crash when build with CoreFoundation - 2295 7.3.230 ":wundo" and ":rundo" don't unescape their argument - 5151 7.3.231 runtime file patches failed for 7.3.202 and 7.3.203 - 2324 7.3.232 Python doesn't compile without +multi_byte - 2476 7.3.233 ":scriptnames" and ":breaklist" show long file names - 5209 7.3.234 with GTK menu may be popping down - 11651 7.3.235 ";" gets stuck on a "t" command, it's not useful - 2994 7.3.236 (after 7.3.232) Python 3 doesn't compile without +multi_byte - 7267 7.3.237 filetype completion doesn't work on Windows - 1599 7.3.238 compiler warning for conversion - 8837 7.3.239 Python corrects cursor column without using 'virtualedit' - 22002 7.3.240 external commands can't use pipes on MS-Windows - 2115 7.3.241 CTRL-R CTRL-W on command line may insert only part of word - 2070 7.3.242 illegal memory access in after_pathsep() - 1652 7.3.243 illegal memory access in readline() - 1537 7.3.244 MS-Windows: Build problem with old compiler - 4115 7.3.245 Python 3.2 libraries not correctly detected - 1927 7.3.246 Repeating "f4" in "4444" skips one 4 - 2825 7.3.247 tests change users viminfo file; no test for patch 7.3.246 - 4825 7.3.248 PC Install instructions missing install instructions - 3283 7.3.249 wrong indenting for array initializer - 3509 7.3.250 Python: Errors in Unicode characters not handled nicely - 5229 7.3.251 "gH<Del>" deletes current line, except when it's the last line - 1220 7.3.252 (after 7.3.247) tests fail - 16588 7.3.253 "echo 'abc' > ''" returns 0 or 1, depending on 'ignorecase' - 1369 7.3.254 coladd not reset for ":call" command - 2839 7.3.255 Windows: error when editing a file with invalid wildcard - 5982 7.3.256 Javascript indenting not sufficiently tested - 3310 7.3.257 not all completions are available to user commands - 2128 7.3.258 MS-Windows: can't disable edit with existing vim menu entries - 21799 7.3.259 equivalence classes only work for latin characters - 2138 7.3.260 CursorHold triggers on an incomplete mapping - 2969 7.3.261 G++ error message errornously recognized as error - 30045 7.3.262 Photon code style doesn't match Vim style - 4291 7.3.263 Perl and Tcl have a few code style problems - 5190 7.3.264 tags file not find when current dir name contains wildcards - 4017 7.3.265 storing search pattern in history without separator check - 1677 7.3.266 in Gvim with iBus typing space in Insert mode doesn't work - 1784 7.3.267 Ruby on Mac OS X 10.7 may crash - 2093 7.3.268 Vim freezes when executing an external command with zsh - 2871 7.3.269 'shellcmdflag' only works with one flag - 1514 7.3.270 illegal memory access - 12980 7.3.271 code not following Vim coding style - 1545 7.3.272 ":put =list" does not add empty line for trailing empty item - 3544 7.3.273 a BOM in an error file is seen as text - 1791 7.3.274 with concealed characters tabs do not have the right size - 2872 7.3.275 MS-Windows: screen flicker when using a black background - 4279 7.3.276 GvimExt sets $LANG in the wrong way - 9130 7.3.277 MS-Windows: some characters do not show in dialogs - 2098 7.3.278 passing the file name to open in VisVim doesn't work - 3769 7.3.279 GTK: opening new tab may cause gvim window to be too big - 5024 7.3.280 ":lmake" does not update the quickfix window title - 3803 7.3.281 after expand('%:8') the current buffer name is changed - 1915 7.3.282 text displayed incorrect when using input() + :echo in a loop - 3387 7.3.283 multi-byte text in an expression mapping gets messed up - 5785 7.3.284 str2special() doesn't handle multi-byte chars properly - 3983 7.3.285 (after 7.3.284) mapping <char-123> does not work - 2682 7.3.286 crash when using "zd" on a large number of folds - 2829 7.3.287 can't compile with MSVC and tiny options - 2545 7.3.288 has('python') may give an error message - 1763 7.3.289 complete function isn't called when the leader changed - 2494 7.3.290 if BufWriteCmd autocmd resets 'modified' undo state is wrong - 4345 7.3.291 configure doesn't work properly with Python3 - 1940 7.3.292 crash with fold markers and visual block that goes to EOL - 2390 7.3.293 MSVC compiler has a problem with non-ASCII characters - 1978 7.3.294 (after 7.3.289) patch 289 causes more problems than it solves - 3455 7.3.295 when filtering text Vim may not read all the output - 5673 7.3.296 zombie process may remain when writing to external command - 5101 7.3.297 can't load Perl 5.14 dynamically - 6312 7.3.298 built-in colors are different from rgb.txt - 12218 7.3.299 source code not in Vim style - 2281 7.3.300 Python doesn't parse multi-byte argument correctly - 2901 7.3.301 Tab inserted when 'expandtab' and 'copyindent' are set - 2107 7.3.302 (after 7.3.301) test 19 fails without 'smartindent' and +eval - 1726 7.3.303 (after 7.3.296) compilation error - 3125 7.3.304 strawberry Perl doesn't work on MS-Windows - 1763 7.3.305 display scrolls up when auto-loading a function - 6330 7.3.306 unexpected GUI resize may cause a crash - 5383 7.3.307 Python 3 does not support slice assignment - 6788 7.3.308 writing to 'verbosefile' has problems, e.g. for :highlight - 3536 7.3.309 (after 7.3.307) warnings for pointer types - 92586 7.3.310 source code not in Vim style - 11313 7.3.311 complete function isn't called when the leader changed - 1815 7.3.312 (after 7.3.306) can't compile with tiny features - 2141 7.3.313 (after 7.3.307) warning compiling with dynamic Python 3 - 1740 7.3.314 (after 7.3.304) missing parenthesis - 13684 7.3.315 opening a window before forking causes problems for GTK - 1499 7.3.316 (after 7.3.306) crash if 'colorcolumn' set and closing buffer - 3918 7.3.317 Lua: debug.debug() may hang - 2662 7.3.318 "C" on the last line deletes that line if it's blank - 4573 7.3.319 redobuff doesn't always include completion leader changes - 3363 7.3.320 0xa0 character in sourced file is hard to spot - 7855 7.3.321 code not following Vim style - 1585 7.3.322 #ifdef for PDP_RETVAL doesn't work, INT_PTR can be a typedef - 3022 7.3.323 the default 'efm' does not ignore some "included from" lines - 1676 7.3.324 (after 7.3.237) completion for ":compiler" shows color schemes - 1901 7.3.325 a duplicated function argument gives an internal error - 8244 7.3.326 MingW 4.6 no longer supports the -mno-cygwin option - 1902 7.3.327 when jumping to a help tag a closed fold doesn't open - 1487 7.3.328 wrapping command line displays wrong multi-byte cursor - 2337 7.3.329 error when skipping over dict function inside :for - 1340 7.3.330 state not properly restored when longjmp() is invoked - 1815 7.3.331 "vit" gets confused when one tag name starts contains another - 4994 7.3.332 indent after "public:" is not increased in C++ code - 7688 7.3.333 "." repeats a Visual delete by byte size instead of characters - 1710 7.3.334 latest MingW complains about XSUBPP referencing itself - 1532 7.3.335 changing 'imdisable' in Insert mode takes effect only later - 30156 7.3.336 encoding in tags file causes trouble (NOW IN LATIN1) - 1876 7.3.337 no screen update after resizing xterm until character typed - 2851 7.3.338 using getchar() in an expression mapping doesn't work well - 1762 7.3.339 "make shadow" doesn't link all test files - 1887 7.3.340 when 'verbosefile' is set ftplugof.vim can give an error - 9335 7.3.341 translated and local help files are not listed in help.* - 3079 7.3.342 code not in Vim style - 6949 7.3.343 no mouse support for urxvt - 3131 7.3.344 problem with GUI startup related to XInitThreads - 1395 7.3.345 window title not updated when switching language with ":lang" - 5238 7.3.346 it's hard to test netbeans commands - 1689 7.3.347 dropped text is HTML although "html" is not in 'clipboard' - 1634 7.3.348 "call range(1, 947948399)" causes a crash - 2793 7.3.349 opening swapfile loops forever when out of memory in startup - 1525 7.3.350 block of code after ":lua << EOF" may not work - 1453 7.3.351 text formatting uses insert start position when it should not - 3276 7.3.352 when completing functions script-local functions come first - 4245 7.3.353 (after 7.3.343) missing urxvt patch for term.c - 2182 7.3.354 ":set backspace+=eol" doesn't work when 'backspace' is 2 - 1683 7.3.355 GTK warnings when using netrw.vim - 2453 7.3.356 using "o" with 'cindent' set may freeze Vim - 1511 7.3.357 compiler warning in MS-Windows console build - 1994 7.3.358 (after 7.3.353) mouse support doesn't work properly - 1727 7.3.359 command line completion shows dict functions - 2183 7.3.360 interrupting autoload function load may cause a crash - 1733 7.3.361 accessing memory after it is freed when EXITFREE is defined - 1828 7.3.362 ml_get error when using ":g" with folded lines - 2914 7.3.363 C indenting is wrong after #endif followed by a semicolon - 1924 7.3.364 (after 7.3.353) can't compile on HP-UX - 3451 7.3.365 crash when using a large Unicode character with syntax highl. - 2192 7.3.366 a tags file with an extremely long name causes errors - 1650 7.3.367 :wundo and :rundo use a wrong checksum - 4734 7.3.368 gcc complains about redefining _FORTIFY_SOURCE - 1452 7.3.369 get an error message when using --help and compiled with Gnome - 1766 7.3.370 compiler warns for unused variable in Lua interface - 2155 7.3.371 crash in autocomplete - 1603 7.3.372 command line mapping to <Up> doesn't work for file completion - 2464 7.3.373 (after 7.3.366) infinite loop in tags file with long name - 1670 7.3.374 ++encoding is not recognized - 1716 7.3.375 duplicate return statement - 1817 7.3.376 Win32: Toolbar repainting not always right - 12178 7.3.377 no support for bitwise AND, OR, XOR and invert - 2773 7.3.378 configure fails when cross-compiling - 2257 7.3.379 C-indenting wrong for static enum - 7825 7.3.380 C-indenting wrong for function header - 7960 7.3.381 configure can't be told to stop when a language is unavailable - 4585 7.3.382 (after 7.3.376) IME characters are inserted twice - 1489 7.3.383 for EBCDIC pound sign is defined as 't' - 1869 7.3.384 mapping CTRL-K breaks CTRL-X CTRL-K for dictionary completion - 2220 7.3.385 with expression mapping cursor may end up in the wrong place - 1577 7.3.386 test 83 fails when iconv does not support cp932 - 1708 7.3.387 (after 7.3.386) test 83 may fail for some encodings - 1378 7.3.388 crash on exit when EXITFREE is defined and using tiny features - 2117 7.3.389 after typing at a prompt the "MORE" message appears too soon - 4295 7.3.390 using NULL buffer pointer in a window - 1520 7.3.391 can't check if the XPM_W32 feature is enabled - 3505 7.3.392 setting 'undofile' does not trigger reading the undo file - 4803 7.3.393 Win32: When resizing Vim it may be moved to another monitor - 1866 7.3.394 screen messed up when placing a mark while starting up - 3012 7.3.395 (after 7.3.251) "dv?bar" deletes too much and breaks undo - 1598 7.3.396 operator can become linewise after forcing it characterwise - 6186 7.3.397 ":helpgrep" does not work when 'encoding' is not utf-8 - 1928 7.3.398 jumping to wrong location after creating 10 location lists - 4052 7.3.399 ":cd" doesn't work when the path contains wildcards - 44950 7.3.400 compiler warnings for shadowed variables - 5138 7.3.401 couple more compiler warning for shadowed variables - 2006 7.3.402 line of text redrawn while at the more prompt - 2976 7.3.403 ":helpgrep" does not trigger QuickFixCmd* autocommands - 2638 7.3.404 using refresh "always" in a complete function breaks redo - 3074 7.3.405 xterm may delete the urxvt mouse termcap code - 2830 7.3.406 Win32: multi-byte characters in b:browsefilter broken - 7268 7.3.407 ":12verbose call F()" duplicates text while trying to truncate - 1446 7.3.408 (after 7.3.406) missing declaration breaks compilation - 1565 7.3.409 the license in pty.c is unclear - 1396 7.3.410 compiler error for // comment - 1775 7.3.411 pasting in Visual mode using the "" register does not work - 1502 7.3.412 storing a float in a session file has an additional '&' - 2770 7.3.413 compiler warnings on MS-Windows - 2304 7.3.414 using CTRL-A on "000" drops the leading zero - 1727 7.3.415 (after 7.3.359) function completion stops after a dictionary - 1687 7.3.416 (after 7.3.415) compiler warning for pointer type - 1460 7.3.417 (after 7.3.395) test 43 fails with a tiny build - 1705 7.3.418 get an error message when a user complete function returns -1 - 2376 7.3.419 DBCS encoding in a user command does not always work - 2202 7.3.420 "it" and "at" don't work properly with a dash in the tag name - 2161 7.3.421 get E832 when setting 'undofile' in vimrc - 3076 7.3.422 Python 3 does not have __members__ - 4733 7.3.423 small mistakes in comments, proto and indent - 2210 7.3.424 Win16 version missing some functions - 2572 7.3.425 (after 7.3.265) search history lines are duplicated - 8345 7.3.426 with '$' in 'cpoptions' $ is not displayed in the first column - 10278 7.3.427 readfile() can be slow with long lines - 2881 7.3.428 Win32: an xpm file without a mask crashes Vim - 5441 7.3.429 with 'E' in 'cpoptions' redo wrong after "c0" in first column - 2949 7.3.430 conf filetype detection may end up in the wrong augroup - 8810 7.3.431 fetching a key at a prompt may be confused by escape sequences - 6926 7.3.432 ACLs are not supported for ZFS or NFSv4 on Solaris - 2538 7.3.433 using continued lines in a Vim script can be slow - 6194 7.3.434 using join() can be slow - 1864 7.3.435 compiler warning for unused variable - 3128 7.3.436 compiler warnings for types on Windows - 2282 7.3.437 looping inside FOR_ALL_TAB_WINDOWS even when already done - 4305 7.3.438 there is no way to avoid ":doautoall" reading modelines - 2487 7.3.439 compiler warnings to size casts in Perl interface - 5664 7.3.440 Vim does not support UTF8_STRING for the X selection - 9578 7.3.441 newer versions of MzScheme require earlier initialisation - 5445 7.3.442 (after 7.3.438) still read modelines for ":doautocmd" - 8329 7.3.443 MS-Windows: 'shcf' and 'sxq' defaults are not very good - 3159 7.3.444 ":all!" and ":sall!" give error E477 - 6224 7.3.445 (after 7.3.443) can't properly escape commands for cmd.exe - 5338 7.3.446 (after 7.3.445) external command with special char doesnt work - 10262 7.3.447 (after 7.3.446) External commands with "start" do not work - 5192 7.3.448 (after 7.3.447) Win32: Still a problem with "!start /b" - 15177 7.3.449 crash when a BufWinLeave autocmd closes the only other window - 2359 7.3.450 (after 7.3.448) Win32: Still a problem with "!start /b" - 10656 7.3.451 Tcl doesn't work on 64 bit MS-Windows - 2329 7.3.452 undo broken when pasting close to the last line - 1718 7.3.453 pasting in the command line is slow - 2299 7.3.454 re-allocating memory slows Vim down - 1891 7.3.455 using many continuation lines can be slow - 10445 7.3.456 ":tab drop file" handling doesn't work well - 2123 7.3.457 message translation dir not set when setting $VIMRUNTIME later - 1532 7.3.458 crash when calling smsg() during startup - 2196 7.3.459 compiler warnings for types on Windows - 2785 7.3.460 Win32: UPX does not compress 64 bit binaries - 6734 7.3.461 InsertCharPre event not always triggered - 5129 7.3.462 when using ":loadview" folds may be closed unexpectedly - 1774 7.3.463 cursor moved after using ":s///c" - 1969 7.3.464 compiler warning for sprintf - 14135 7.3.465 cannot get file name with newline from glob() - 1606 7.3.466 ml_get error when replacing several selected lines - 1526 7.3.467 cursor position wrong at command line when using input method - 4775 7.3.468 for some compilers the error file is not easily readable - 1557 7.3.469 compiler warning for unused argument - 1892 7.3.470 test 62 fails when compiled without GUI and X11 - 2817 7.3.471 can't abort listing placed signs - 2792 7.3.472 crash when using ":redraw" in a BufEnter autocmd - 2119 7.3.473 'cursorbind' does not work correctly with 'virtualedit' "all" - 1682 7.3.474 gcc 4 build with Perl fails - 3670 7.3.475 in terminal with few colors omnicomplete menu is hard to see - 1874 7.3.476 backspacing in a Visual block selection causes problems. - 1725 7.3.477 scrolling back at the more prompt shows the wrong text - 1354 7.3.478 memory leak when the ':rv!' command reads a dict or list - 6622 7.3.479 'cursorline' line number highlighting can't be set separately - 6208 7.3.480 when using ":qa" priority of changed buffers could be better - 1945 7.3.481 changing 'virtualedit' in an operator function does not work - 1827 7.3.482 with 'cursorbind' set moving up/down does not keep the column - 3003 7.3.483 (after 7.3.477) more prompt shows up too ofte. - 2206 7.3.484 "vim --help" does not mention -E and --echo-wid - 1677 7.3.485 LDFLAGS isn't passed on to building xxd - 1803 7.3.486 build error with mingw64 on Windows 7 - 19665 7.3.487 column position is reset unnecessarily when setting an option - 1458 7.3.488 ":help!" in a help file does not work as documented - 2783 7.3.489 Insert mode CTRL-] does not expand abbr. from a mapping - 74085 7.3.490 Lua interface: Member confusion, missing luaeval() - 7738 7.3.491 no tests for Lua - 14093 7.3.492 can't indent conditions separately from function arguments - 1565 7.3.493 (after 7.3.492) two unused variables - 6811 7.3.494 (after 7.3.491) can't build with Lua 9.1 or dynamic Lua - 3559 7.3.495 (after 7.3.492) compiler warnings - 2262 7.3.496 MS-DOS: tests fail when "diff" trips over line separators - 1606 7.3.497 crash when doing ":python print", compiled with gcc -O2 - 2021 7.3.498 the behavior of "- register changes depending on 'clipboard' - 2561 7.3.499 may wait for the wrong child process to terminate - 1414 7.3.500 Ming makefile unconditionally sets WINVER - 1761 7.3.501 error for "flush" not being defined when using Ruby command - 2010 7.3.502 Netbeans insert halfway a line actually appends to the line - 1288 7.3.503 (after 7.3.501) warning for unused argument - 2602 7.3.504 commands in help files are not highlighted - 3376 7.3.505 test 11 fails on MS-Windows in some versions - 3040 7.3.506 GTK gives an error when selecting a non-existent file - 5241 7.3.507 overwriting existing file without question from file dialog - 2838 7.3.508 default for v:register is not set - 8621 7.3.509 'autochdir' causes :vimgrep to fail - 1462 7.3.510 test 77 fails on Solaris 7 - 1563 7.3.511 crash when using FileReadCmd autocmd that does :e {file} - 2049 7.3.512 undofile() returns a useless name when passed an empty string - 3925 7.3.513 cannot use CTRL-E and CTRL-Y with "r" - 7792 7.3.514 no completion for :history command - 2073 7.3.515 'wildignorecase' only applies to the last part of the path - 2784 7.3.516 extend(o, o) may crash Vim - 1718 7.3.517 crash when using "vipvv" - 1976 7.3.518 ":helptags" cannot find tag when 'encoding' is double-byte - 1894 7.3.519 completefunction cannot indicate end of completion mode - 4238 7.3.520 Gvim starts up slow on Unbuntu 12.04 - 3388 7.3.521 spell checking may crash when using multi-byte characters - 1885 7.3.522 crash in vim_realloc() when using MEM_PROFILE - 3493 7.3.523 ":diffupdate" doesn't check for files changed elsewhere - 1271 7.3.524 missing comma in version.c - 1884 7.3.525 compiler warning on 64 bit MS-Windows - 1950 7.3.526 confusing indenting for #ifdef - 4408 7.3.527 clang complains about non-ASCII characters in a string - 5919 7.3.528 crash when closing last window in a tab - 2439 7.3.529 using a count before "v" and "V" does not work - 1559 7.3.530 (after 7.3.520) gvim does not work when 'guioptions' has "f" - 1546 7.3.531 (after 7.3.530) GUI does not work on MS-Windows - 1685 7.3.532 compiler warning from Clang - 1323 7.3.533 memory leak when writing undo file - 2944 7.3.534 (after 7.3.461) autoindent fails with InsertCharPre autocmd - 8436 7.3.535 many #ifdefs for MB_MAXBYTES - 2014 7.3.536 German sharp s is not seen as a word character - 1352 7.3.537 unecessary call to init_spell_chartab() - 9735 7.3.538 'efm' does not handle Tabs in pointer lines - 1625 7.3.539 redraw multi-byte char on command line does not work properly - 1658 7.3.540 cursor is left on the text instead of the command line - 31063 7.3.541 when joining lines comment leaders need to be removed manually - 2240 7.3.542 (after 7.3.506) function is sometimes unused - 1632 7.3.543 the cursor is in the wrong line after using ":copen" - 3088 7.3.544 no autocommand for :quit before deciding to exit - 10435 7.3.545 autocommands may close a window that is already being closed - 1628 7.3.546 weird line break - 1661 7.3.547 (after 7.3.541) compiler warning for uninitialized variable - 1552 7.3.548 compiler warning on 64 bit Windows - 2957 7.3.549 in 'cinoptions' "0s" is interpreted as one shiftwidth - 4392 7.3.550 (after 7.3.541) with "j" in 'fo' a list leader is not removed - 13725 7.3.551 on :tablose a TabEnter autocommand is triggered too early - 17001 7.3.552 inside comments formatting does not use the "2" flag in 'fo' - 2515 7.3.553 text displayed one cell off if 'listchars' contains "precedes" - 1660 7.3.554 compiler warning for unused argument - 7968 7.3.555 building on IBM z/OS fails - 2194 7.3.556 compiler warnings on 64 bit Windows - 2958 7.3.557 crash when an autocommand wipes out a buffer when it is hidden - 2956 7.3.558 (after 7.3.552) memory access error - 3483 7.3.559 home_replace() does not work with 8.3 filename - 1551 7.3.560 get an error for a locked argument in extend() - 1511 7.3.561 refresh: always in a complete function breaks the "." command - 1659 7.3.562 ":profdel" works when the +profile feature is disabled - 2742 7.3.563 (after 7.3.557) can't build with tiny features - 1785 7.3.564 (after 7.3.559) warning for pointer conversion - 1806 7.3.565 can't generate proto file for Python 3 - 2363 7.3.566 (after 7.3.561) redo works incorrectly without refresh:always - 1739 7.3.567 missing copyright notice - 3890 7.3.568 bad indents for #ifdefs -133265 7.3.569 evaluating Vim expression in Python is insufficient - 4659 7.3.570 ":vimgrep" does not obey 'wildignore' - 3915 7.3.571 duplicated condition - 1915 7.3.572 duplicate statement in if and else - 1419 7.3.573 using array index before bounds checking - 2491 7.3.574 a CTRL-L character is not pasted on the search command line - 1586 7.3.575 "ygt" tries to yank instead of giving an error - 7301 7.3.576 formatting of lists inside comments is not right yet - 6542 7.3.577 size of memory does not fit in 32 bit unsigned - 2025 7.3.578 misplaced declaration. - 7644 7.3.579 (after 7.3.569) can't compile with Python 2.5 - 1517 7.3.580 warning on 64 bit MS-Windows - 4236 7.3.581 problems compiling with Python - 1342 7.3.582 missing pieces in test OK file - 3125 7.3.583 PyObject_NextNotImplemented is not defined before Python 2.7 - 4088 7.3.584 PyCObject is not always defined - 1696 7.3.585 calling changed_bytes() too often - 3055 7.3.586 MEMORYSTATUSEX not defined when compiling with Cygwin or MingW - 2248 7.3.587 compiler warning for local var shadowing global var - 2464 7.3.588 crash on NULL pointer - 1974 7.3.589 crash when $HOME is not set - 1804 7.3.590 the '< and '> marks cannot be set directly - 5247 7.3.591 can only move to a tab by absolute number - 3343 7.3.592 Vim on GTK does not support g:browsefilter - 2237 7.3.593 no easy way to decide if b:browsefilter will work - 4873 7.3.594 the X command server sends an empty reply for as-keys requests - 3921 7.3.595 the X command server responds slowly - 4967 7.3.596 can't remove all signs for a file or buffer - 21669 7.3.597 'clipboard' "autoselect" only applies to the * register - 2635 7.3.598 cannot act upon end of insert mode completion - 3042 7.3.599 (after 7.3.597) missing change in one file - 1572 7.3.600 <f-args> is not expanded properly with DBCS encoding - 1492 7.3.601 bad code style - 1532 7.3.602 missing files in distribution - 11248 7.3.603 it is possible to add or replace builtin functions - 1861 7.3.604 inputdialog() doesn't use the cancel argument in the console - 2334 7.3.605 MS-Windows: Can't compile with older compilers - 2522 7.3.606 CTRL-P completion has a problem with multi-byte characters - 2139 7.3.607 with 8 color terminal selected menu item is black on black - 3847 7.3.608 winrestview() does not always restore the view correctly - 5843 7.3.609 file names in :checkpath! output are garbled - 12106 7.3.610 cannot operate on the text that a search pattern matches - 1895 7.3.611 can't use Vim dictionary as self argument in Python - 2081 7.3.612 auto formatting messes up text when 'fo' contains "2" - 6886 7.3.613 including Python's config.c in the build causes trouble - 5747 7.3.614 number arg gets turned into number while it should be string - 2915 7.3.615 completion does not recognized escaped spaces - 1289 7.3.616 (after 7.3.610) can't compile without +visual - 1781 7.3.617 (after 7.3.615) hang on completion - 10033 7.3.618 (after 7.3.616) still doesn't compile with small features - 1583 7.3.619 when executing a shell command Vim may become slow to respond - 4897 7.3.620 building with recent Ruby on Win32 doesn't work - 2259 7.3.621 compiler warnings on 64 bit windows - 1867 7.3.622 XPM library for Win32 can't be found - 2426 7.3.623 Perl 5.14 commands crash Vim on MS-Windows - 1800 7.3.624 when cancelling input() it returns the third argument - 4327 7.3.625 "gn" does not handle zero-width matches correctly - 1500 7.3.626 Python interface doesn't build with Python 2.4 or older - 2803 7.3.627 expression not evaluated when using "n" flag with ":s" - 1802 7.3.628 ":open!" results in a confusing error message - 12019 7.3.629 there is no way to make 'shiftwidth' follow 'tabstop' - 1487 7.3.630 "|" does not behave correctly when 'virtualedit' is set - 10100 7.3.631 cannot complete user names - 14770 7.3.632 cannot select beyond 222 columns with the mouse in xterm - 2238 7.3.633 selection remains highlighted after selecting another text - 1884 7.3.634 Month/Day format for undo is confusing - 1586 7.3.635 system call during startup sets 'lines' to a wrong value - 4539 7.3.636 (after 7.3.625) "gn" fails for some zero-width matches - 3117 7.3.637 cannot catch error caused by a foldopen when there is no fold - 1783 7.3.638 unecessary redraw of the previous character - 31440 7.3.639 it's not easy to build Vim on Windows with XPM support -455297 7.3.640 binary files for 7.3.639 - 2219 7.3.641 ":mkview" uses ":normal" instead of ":normal!" for folds - 1810 7.3.642 segfault with specific autocommands - 2060 7.3.643 MS-Windows: 'lines' is wrong when starting up maximized - 1925 7.3.644 dead code for BeOS GUI - 2910 7.3.645 no tests for patch 7.3.625 and 7.3.637 - 2353 7.3.646 undo file unusable after reloading a buffer - 5213 7.3.647 "gnd" doesn't work correctly in Visual mode - 3831 7.3.648 crash when using a very long file name - 2256 7.3.649 with 'clipboard' set to "unnamed" small deletes go to "1 - 1679 7.3.650 Completing ":help \{-" gives error and messes up command line - 3120 7.3.651 Completing ":help \{-" gives error message - 2304 7.3.652 workaround for Python crash isn't perfect - 7986 7.3.653 lacking XPM support for MingW, 32 and 64 objects mixed up - 3301 7.3.654 creating Vim dictionary from Python an empty key might be used - 88812 7.3.655 64 bit MingW xpm .a file is missing - 3106 7.3.656 internal error in :pyeval - 6680 7.3.657 Python bindings silently truncate string values containing NUL - 4244 7.3.658 NUL bytes truncate strings when converted from Python - 6242 7.3.659 recent Python changes are not tested - 1448 7.3.660 ":help !" jumps to help for ":!" - 5339 7.3.661 (after 7.3.652) SEGV in Python code - 3126 7.3.662 can't build Ruby interface with Ruby 1.9.3 - 1498 7.3.663 end of color scheme name not clear in E185 - 2171 7.3.664 buffer overflow in unescaping multi-byte characters - 2414 7.3.665 MSVC 11 is not supported - 3195 7.3.666 Win32.mak can't be found - 3213 7.3.667 unused variables in Perl interface - 2763 7.3.668 loading Perl dynamically still uses static library - 4757 7.3.669 when building with Cygwin loading Python dynamically fails - 2318 7.3.670 tiny memory leak when throwing exception in Python - 8213 7.3.671 more Python code can be shared between Python 2 and 3 - 22436 7.3.672 not possible to lock/unlock lists in Python interface - 1967 7.3.673 "gN" while 'selection' is "exclusive" misses one character - 10873 7.3.674 can't compile with Lua/dyn on Cygwin - 1597 7.3.675 accessing uninitialized memory with a very long file name - 2721 7.3.676 Ruby compilation on Windows 32 bit doesn't work - 8428 7.3.677 buf_spname() is used inconsistently - 2887 7.3.678 Ruby .so name may not be correct - 11455 7.3.679 Ruby detection uses Config, newer Ruby versions use RbConfig - 2190 7.3.680 some files missing in the list of distributed files - 2014 7.3.681 list of distributed files picks up backup files - 1791 7.3.682 (after 7.3.677) compiler complains about incompatible types - 2578 7.3.683 ":python" may crash when vimbindeval() returns None - 4714 7.3.684 "make test" does not delete lua.vim - 1827 7.3.685 no test for what patch 7.3.673 fixes - 2226 7.3.686 cannot use CTRL-\ e mapping when entering an expression - 1386 7.3.687 test 16 fails when $DISPLAY is not set - 5283 7.3.688 Python 3.3 is not supported - 2266 7.3.689 MzScheme and Lua may use a NULL string - 1806 7.3.690 crash with directory name equal to maximum path length - 1910 7.3.691 state specific to the Python thread is discarded - 1598 7.3.692 can't build GTK version with GTK 2.0 - 5071 7.3.693 can't make 'softtabstop' follow 'shiftwidth' - 4631 7.3.694 'shiftwidth' is not so easy to use in indent files - 3710 7.3.695 balloon cannot show multi-byte text - 2994 7.3.696 message about added spell language can be wrong - 6108 7.3.697 leaking resources when setting GUI font - 2742 7.3.698 Python 3 does not preserve state beween commands - 2522 7.3.699 manually set 'ttymouse' is overruled by automatic detection - 2214 7.3.700 cannot detect URXVT and SGR mouse support - 2616 7.3.701 MS-Windows: Crash with stack overflow when setting 'encoding' - 1352 7.3.702 nmake from VS6 service pack 6 is not recognized - 3326 7.3.703 when 'undofile' is reset the hash is computed unnecessarily - 2906 7.3.704 repeating "cgn" does not always work correctly - 2581 7.3.705 mouse features are not in alphabetical order - 1638 7.3.706 (after 7.3.697) can't build Motif version - 4088 7.3.707 (after 7.3.701) library name with non-latin characters fails - 3001 7.3.708 filler lines above the first line may be hidden - 1513 7.3.709 compiler warning for unused argument - 1685 7.3.710 (after 7.3.704) "fn" is broken - 7579 7.3.711 (after 7.3.688) vim.current.buffer is not available - 1474 7.3.712 nmake from VS2010 SP1 is not recognized - 3513 7.3.713 printf() can only align to bytes, not characters - 2296 7.3.714 :setlocal and :setglobal do not work in the sandbox - 8244 7.3.715 crash when calling setloclist() in BufUnload autocmd - 1857 7.3.716 error on exit when using Python 3 - 1581 7.3.717 when changing font size only MS-Windows limits window size - 1559 7.3.718 when re-using the current buffer the buffer-local options stay - 18500 7.3.719 cannot run new version of cproto - 11303 7.3.720 proto files are outdated - 1624 7.3.721 Ruby interface defines local functions globally - 2244 7.3.722 Perl flags may contain "-g", which breaks "make proto" - 7337 7.3.723 various tiny problem. - 2294 7.3.724 building with Ruby and Tcl on MS-Windows 64 bit does not work - 2064 7.3.725 :aboveleft and :belowright have no effect on :copen - 1900 7.3.726 typos and duplicate info in README - 1405 7.3.727 can't always find Win32.mak when building GvimExt - 7176 7.3.728 cannot compile with MzScheme interface on Ubuntu 12.10 - 1763 7.3.729 building with Ruby fails on some systems - 2575 7.3.730 crash in PHP file when using syntastic - 2188 7.3.731 Py3Init_vim() is exported uneccessarily - 3772 7.3.732 compiler warnings for function arguments - 2735 7.3.733 tests fail when including MzScheme - 3680 7.3.734 cannot put help files in a sub-directory - 3694 7.3.735 cannot build Ruby 1.9 with MingW or Cygwin - 7558 7.3.736 file name completion in input() escapes white space - 1380 7.3.737 when using do_cmdline() recursively did_endif is not reset - 5106 7.3.738 (after 7.3.730) unused function argument - 2326 7.3.739 computing number of lines may have an integer overflow - 4818 7.3.740 IOC tool complains about undefined behavior for int - 1576 7.3.741 (after 7.3.737) tiny build fails - 1302 7.3.742 leaking memory when :vimgrep restores the directory - 1773 7.3.743 (after 7.3.741) tiny build still fails - 1467 7.3.744 64 bit compiler warning - 2697 7.3.745 automatically setting 'ttymouse' doesn't work - 2902 7.3.746 memory leaks when using location lists - 2285 7.3.747 tab alignment does not work when characters are concealed - 14505 7.3.748 no tests for conceal mode - 1675 7.3.749 cannot build Python interface without multi-byte feature - 3050 7.3.750 the justify macro does not always work correctly - 3267 7.3.751 test 61 is flaky, it fails once in a while - 2410 7.3.752 test 49 script file doesn't fold properly - 3777 7.3.753 ":q" twice does not work when there is a QuitPre autocommand - 1488 7.3.754 latest nmake is not recognized - 5332 7.3.755 autoconf doesn't find Python 3 if it's called "python" - 2957 7.3.756 a location list can get a wrong count in :lvimgrep - 1549 7.3.757 issue 96: access freed memory if put command triggers autocmd - 3173 7.3.758 matchit plugin does not handle space in #ifdef - 3080 7.3.759 MS-Windows: Updating tabline is slow when there are many tabs - 3055 7.3.760 dv_ deletes the white space before the line - 2828 7.3.761 in Visual mode a "-p does not work - 1798 7.3.762 (after 7.3.759) on some systems the tabline is not redraw. - 2044 7.3.763 jumping to a mark does not open fold if it is in the same line - 4060 7.3.764 not all message translation files are installed - 3254 7.3.765 segfault when doing "cclose" on BufUnload in a python function - 2865 7.3.766 ":help cpo-*" jumps to the wrong place - 4437 7.3.767 (Win32) The _errno used for iconv may be the wrong one - 1979 7.3.768 settabvar() and setwinvar() may move the cursor - 9748 7.3.769 'matchpairs' does not work with multi-byte characters - 3912 7.3.770 vim.h indentation is inconsistent - 2074 7.3.771 (after 7.3.769) uninitialized variable - 1539 7.3.772 cursor at wrong location after doing %s/x/y/c - 1496 7.3.773 (after 7.3.767) crash when OriginalFirstThunk is zero - 2567 7.3.774 tiny GUI version misses console dialog feature - 2761 7.3.775 Cygwin and Mingw builds miss dependency on gui_w48.c - 12411 7.3.776 ml_get error when searching, caused by curwin/curbuf mismatch - 2035 7.3.777 when building with Gnome locale gets reset - 1664 7.3.778 compiler error for adding up two pointers - 4570 7.3.779 backwards search lands in wrong place when on a multibyte char - 6439 7.3.780 char2nr() and nr2char() always use 'encoding' - 5262 7.3.781 drawing with 'guifontwide' can be slow - 4964 7.3.782 Windows: IME composition may use a wrong font - 1329 7.3.783 crash when mark is not set - 1914 7.3.784 (after 7.3.781) error when 'guifontwide' has a comma - 3145 7.3.785 (after 7.3.776) crash with specific use of search pattern - 2928 7.3.786 Python threads don't run in the background (issue 103) - 4304 7.3.787 with 'relativenumber' can't see the absolute line number - 1481 7.3.788 when only using patches build fails on missing nl.po - 5078 7.3.789 (after 7.3.776) "\k" in regexp does not work in other window - 1727 7.3.790 after reloading a buffer the modelines are not processed - 61514 7.3.791 MzScheme interface doesn't work propely - 4000 7.3.792 ":substitute" works differently without confirmation - 1768 7.3.793 (after 7.3.792) new :substutite behavior is not tested - 1999 7.3.794 tiny build fails - 5967 7.3.795 MzScheme does not build with tiny features - 3027 7.3.796 "/[^\n]" does match at a line break - 2040 7.3.797 (after 7.3.792) compiler warning for size_t to int conversion - 3208 7.3.798 (after 7.3.791) MzScheme: circular list works wrong - 1666 7.3.799 the color column is not correct when entering a buffer - 2085 7.3.800 the " mark is not adjusted when inserting lines - 2053 7.3.801 ":window set nu?" displays the cursor line - 1426 7.3.802 no error when setting 'isk' to a value ending in a comma - 2523 7.3.803 (after 7.3.792) ":s/a/b/gc" is a no-op when typing 'q' - 1373 7.3.804 (after 7.3.799) compiler warning for tiny build - 3434 7.3.805 Lua version 5.2 is not detected properly on Arch Linux - 4287 7.3.806 compiler warnings in Perl code when using Visual studio 2012 - 1620 7.3.807 popup menu does not work properly in some situations - 8219 7.3.808 Python threads still do not work properly - 1609 7.3.809 the dosinst.c program has a buffer overflow - 8532 7.3.810 'relativenumber is reset unexpectedly - 1867 7.3.811 useless termresponse parsing for SGR mouse - 2481 7.3.812 when 'indentexpr' moves the cursor "curswant" not restored - 2028 7.3.813 the CompleteDone event is not always triggered - 4425 7.3.814 Win32 console: problem if 'enc' differs from current codepage - 4694 7.3.815 building with Cygwin and Ruby doesn't work - 12480 7.3.816 can't compute a hash - 1567 7.3.817 test 89 fails with tiny and small features - 4236 7.3.818 when test 40 fails it may leave files behind - 16345 7.3.819 (CORRECTED) compiling without +eval and Python isn't working - 3295 7.3.820 errors when building with small features and Lua, Perl or Ruby - 2199 7.3.821 build with OLE and Cygwin is broken - 4013 7.3.822 (after 7.3.799) crash when accessing freed buffer - 2051 7.3.823 (after 7.3.821) building with Cygwin: '-lsupc++' is not needed - 1566 7.3.824 can redefine builtin functions - 4540 7.3.825 with Python errors are not always clear - 3807 7.3.826 list of features in :version output is hard to read - 3112 7.3.827 (after 7.3.825) Python tests fail - 4780 7.3.828 mappings are not aware of wildmenu mode - 2664 7.3.829 'showmatch' shows wrong match and may scroll the screen - 2841 7.3.830 :mksession confuses bytes and characters when placing cursor - 20653 7.3.831 clumsy to handle the situation that a variable does not exist - 1830 7.3.832 compiler warning - 2985 7.3.833 In the terminal scroll wheel always scrolls the active window - 2556 7.3.834 Ruby 2.0 has a few API changes - 1755 7.3.835 "xxd -i" fails on an empty file - 59985 7.3.836 clipboard does not work on Win32 when compiled with Cygwin - 2221 7.3.837 empty lines in :version output when 'columns' is 320 - 11057 7.3.838 (after 7.3.830) insufficient testing for mksession - 2012 7.3.839 some files missing in the list of distributed files - 1652 7.3.840 "\@<!" in regexp does not work correctly with cp932 - 2073 7.3.841 parse error in "cond ? one : two" expression with a subscript - 1724 7.3.842 compiler warning - 3883 7.3.843 (after 7.3.841) missing test file changes - 5894 7.3.844 enum is not indented correctly with "public" etc - 2057 7.3.845 (after 7.3.844) enum indenting is not tested - 1442 7.3.846 missing proto file, listing a non-existing proto file - 1546 7.3.847 test 55 fails when messages are translated - 4475 7.3.848 can't build with Ruby 2.0 when using MinGW x64 or MSVC10 - 1773 7.3.849 ":g//" gives "Pattern not found error" with E486 - 2719 7.3.850 ":vimgrep //" matches everywhere - 2264 7.3.851 empty pattern with :sort incorrect without previous pattern - 3376 7.3.852 system() breaks clipboard text - 2711 7.3.853 "ra" does not replace all chars on multi-byte chars > 1 line - 1630 7.3.854 after BS in insert mode completion current entry is wrong - 1831 7.3.855 compiler warnings - 8587 7.3.856 system() garbles multi-byte clipboard contents - 2763 7.3.857 QuitPre autocommand event does not trigger for :qa and :wq - 4120 7.3.858 "gv" selects the wrong area after some operators - 9955 7.3.859 'ambiwidth' must be set by the user - 2602 7.3.860 in --remote-expr try/catch does not work - 4494 7.3.861 ":setlocal number" clears global value of 'relativenumber' - 5831 7.3.862 dragging the status line can be slow - 3025 7.3.863 (after 7.3.859) 'ambiwidth' detection for ANSI terminal - 1516 7.3.864 (after 7.3.862) can't build without the mouse feature - 2015 7.3.865 (after 7.3.862) mouse position can be wrong - 4745 7.3.866 not serving the X selection during system() isn't nice - 9641 7.3.867 matchparen does not update match when using auto-indenting - 2567 7.3.868 empty line at hit-return prompt with few lines of text - 11112 7.3.869 bufwinnr() matches buffers in other tabs - 6562 7.3.870 compiler warnings when using MingW 4.5.3 - 2741 7.3.871 search('^$', 'c') does not use empty match under the cursor - 14914 7.3.872 on some systems file name case is always ignored - 5967 7.3.873 cannot easily use :s to make title case - 3480 7.3.874 comparing file names does not handle multi-byte chars properly - 1865 7.3.875 (after 7.3.866) build problem with a combination of features - 2182 7.3.876 #if indents are off - 3069 7.3.877 (after 7.3.871) forward searching with search() is broken - 3124 7.3.878 'fileignorecase' is missing in options window and quickref - 2792 7.3.879 aborting an ex command does not abort a pending operator - 7907 7.3.880 new viminfo history lines may be replacd with old lines - 2849 7.3.881 Python list does not work correctly - 1714 7.3.882 CursorHold may trigger after receiving the termresponse - 2350 7.3.883 (after 7.3.880) can't build with some combination of features - 2150 7.3.884 compiler warning for variable shadowing another - 2408 7.3.885 double free for list and dict in Lua - 2567 7.3.886 can't build with multi-byte on Solaris 10 - 9601 7.3.887 no tests for Visual mode operators, what 7.3.879 fixes - 3933 7.3.888 filename completion with 'fic' does not work for multi-byte - 2040 7.3.889 can't build with Ruby 2.0 on a 64 bit system - 1563 7.3.890 test 79 fails on Windows - 3761 7.3.891 merging viminfo history doesn't work well - 7984 7.3.892 (after 7.3.891) still merging problems for viminfo history - 19606 7.3.893 crash when using b:, w: or t: after closing the buffer etc. - 2219 7.3.894 using wrong RUBY_VER causing Ruby build to break - 5927 7.3.895 valgrind error in test 91 - 5208 7.3.896 memory leaks in Lua interface - 4487 7.3.897 configure doesn't always find the shared library - 7367 7.3.898 memory leak reported by valgrind in test 91 - 2116 7.3.899 #if indents are off - 1639 7.3.900 not obvious that some mouse features are mutual-exclusive - 2748 7.3.901 outdated comment, ugly condition - 1345 7.3.902 tabline not updated when deleting last buffer in other tab - 1827 7.3.903 (after 7.3.892) crash on exit writing viminfo - 1465 7.3.904 (after 7.3.893) using memory freed by the garbage collector - 1394 7.3.905 (after 7.3.903) crash when writing viminfo - 1796 7.3.906 the "sleep .2" for running tests does not work on Solaris - 5559 7.3.907 Python uses IndexError when a dict key is not found - 1307 7.3.908 possible crash when using a list in Python - 57917 7.3.909 duplicate Python code - 2955 7.3.910 Python code in #ifdef branches with only minor differences - 11651 7.3.911 Python: Access to Vim variables is not so easy - 1673 7.3.912 typing ":" at hit-enter dialog fails if the a file changed - 2166 7.3.913 (after 7.3.905) still a crash when writing viminfo - 1966 7.3.914 ~/.viminfo is messed up when running tests - 1461 7.3.915 next encoding in 'fencs' is not used if error at the end - 3213 7.3.916 using freed memory when pasting with the mouse (Issue 130) - 2504 7.3.917 when a path ends in backslash appending a comma fails - 2634 7.3.918 repeating Ex command after using Visual motion does not work - 1777 7.3.919 (after 7.3.788) empty nl.po file does not work with old msgfmt - 1578 7.3.920 compiler warning for size_t to int - 1840 7.3.921 trying to create a fontset handle when 'guifontset' is not set - 2073 7.3.922 no test for what 7.3.918 fixes - 3123 7.3.923 configure check for X11 header files fails on Solaris - 44449 7.3.924 Python interface can't easily access options - 99193 7.3.925 typos in source code and build files - 26424 7.3.926 triggering autocommands is wrong for :tabclose et al. - 4329 7.3.927 missing combining characters when putting text in a register - 2141 7.3.928 (after 7.3.924) can't build with strict C compiler - 4270 7.3.929 (after 7.3.924) unused variable, not freeing unused string - 1375 7.3.930 MSVC 2012 update is not recognized - 1915 7.3.931 no completion for :xmap and :smap - 1388 7.3.932 compiler warning for uninitialized variable - 4739 7.3.933 Ruby on Mac crashes due to GC failure - 2023 7.3.934 E381 and E380 make the user think nothing happened - 3655 7.3.935 (after 7.3.933) Ruby init stack differs on 64 bit systems - 23271 7.3.936 (after 7.3.935) Ruby missing piece for static 64 bit linking - 16512 7.3.937 more can be shared between Python 2 and 3 - 4418 7.3.938 Python: not so easy to get the window number - 2053 7.3.939 Using Py_BuildValue is inefficient sometimes - 3030 7.3.940 Python: Can't get position of window - 32095 7.3.941 Python: Stuff in if_py_both.h is ordered badly - 5470 7.3.942 Python: SEGV in Buffer functions - 6867 7.3.943 Python: Negative indices were failing - 2283 7.3.944 external program receives the termrespone - 16738 7.3.945 Python: List of buffers is not very useful - 3029 7.3.946 sometimes keys starting with <Esc>[ ar not working - 17613 7.3.947 Python: No iterator for vim.list and vim.bufferlist - 11841 7.3.948 cannot build with Python 2.2 - 25668 7.3.949 Python: no easy access to tabpages - 5750 7.3.950 Python: Stack trace printer can't handle messages - 15906 7.3.951 Python exceptions have problems - 5245 7.3.952 Python: It's not easy to change window/buffer/tabpage - 3924 7.3.953 Python: string exceptions are deprecated - 2374 7.3.954 No check if PyObject_IsTrue fails - 12291 7.3.955 Python: Not enough tests - 5261 7.3.956 Python vim.bindeval() causes SIGABRT - 9959 7.3.957 Python does not have a "do" command like Perl or Lua - 1772 7.3.958 Python: Iteration destructor not set - 2058 7.3.959 (after 7.3.957) missing error number - 1366 7.3.960 compiler warning for unused variable - 3054 7.3.961 tests 86 and 87 fail when using another language than English - 8389 7.3.962 Python tests are not portable - 18867 7.3.963 setting curbuf without curwin causes trouble - 13179 7.3.964 Python: not so easy to access tab pages - 8088 7.3.965 Python garbage collection not working properly - 10038 7.3.966 there is ":py3do" but no ":pydo" - 3304 7.3.967 (after 7.3.965) build fails on Mac OSX - 2100 7.3.968 multi-byte support is only available with "big" features - 1603 7.3.969 can't built with Python 3 and without Python 2 -182647 7.3.970 (fixed) pattern matching is slow, include the NFA engine - 4337 7.3.971 no support for VS2012 static code analysis - 3720 7.3.972 cursor not restored properly after InsertEnter autocommand - 3881 7.3.973 (after 7.3.970) compiler warnings, crash on startup - 4775 7.3.974 can't build with ruby 1.8.5 - 2301 7.3.975 (after 7.3.970) crash in regexp parsing - 2254 7.3.976 (after 7.3.970) can't build with HP-UX - 7028 7.3.977 compiler warnings, white space, uncommented for testing - 4535 7.3.978 regexp debug logs don't have a good name - 2268 7.3.979 complex NFA regexp doesn't work - 3597 7.3.980 regexp logs contain garbage; character classes don't work - 3105 7.3.981 old regexp engine fails on \i, \I, \f and \F with mbyte chars - 2800 7.3.982 \p does not work on multi-byte chars in new regexp engine - 2675 7.3.983 uneccessary temp variable - 1706 7.3.984 Visual mapping using CTRL-G works differently from Insert mode - 1691 7.3.985 GTK vim not started as gvim has WM_CLASS property wrong - 2113 7.3.986 test 95 doesn't pass when 'encoding' isn't utf-8 - 6338 7.3.987 no easy to run an individual test; test 64 may fail - 1552 7.3.988 new regexp engine is slow - 1944 7.3.989 new regexp engine compares negative numbers to character - 7487 7.3.990 memory leak in new regexp engine - 18482 7.3.991 more can be shared between python 2 and 3 - 70337 7.3.992 Python: Too many type casts - 7832 7.3.993 (after 7.3.992) later patch does things slightly differently - 7845 7.3.994 Python: using magic constants - 13902 7.3.995 Python: Module initialization is duplicated - 14039 7.3.996 Python: Can't check types of what is returned by bindeval() - 23712 7.3.997 Vim and Python exceptions are different - 11177 7.3.998 Python: garbage collection issues - 4683 7.3.999 new regexp engine sets curbuf temporarily - 1637 7.3.1000 (whoa!) typo in char value causes out of bounds access - 1651 7.3.1001 duplicate condition in if - 4012 7.3.1002 valgrind errors for Python interface - 11873 7.3.1003 Python interface does not compile with Python 2.2 - 10551 7.3.1004 Python: no error when option could not be set - 6658 7.3.1005 get stuck on regexp "\n*" and on "%s/^\n\+/\r" - 2012 7.3.1006 NFA engine not used for "\_[0-9]" - 1745 7.3.1007 can't build on Minix 3.2.1 - 2577 7.3.1008 test 95 fails on MS-Windows - 1517 7.3.1009 Python: compiler warning for ambiguous else - 4767 7.3.1010 new regexp: adding \Z makes every character match - 12440 7.3.1011 new regexp engine is inefficient with multi-byte characters - 5335 7.3.1012 \Z does not work properly with the new regexp engine - 8601 7.3.1013 new regexp logging is a bit messy - 5064 7.3.1014 new regexp state dump is hard to read - 5630 7.3.1015 new regexp engine: Matching composing characters is wrong - 4452 7.3.1016 unused field in nfa_state - 11523 7.3.1017 zero width match changes length of match - 2979 7.3.1018 new regexp engine wastes memory - 4149 7.3.1019 not working with the new regexp engine: \%[oxduU]123 - 60056 7.3.1020 not all patterns are tested with auto / old / new engine - 6612 7.3.1021 new regexp engine does not ignore order of composing chars - 21993 7.3.1022 compiler warning for shadowed variable - 3777 7.3.1023 mixed results for pattern with composing char only and \Z - 16114 7.3.1024 new regexp: End of matching pattern not set correctly - 6270 7.3.1025 new regexp: not matching newline in string - 3384 7.3.1026 new regexp: pattern that includs a new-line matches too early - 2380 7.3.1027 new regexp performance: Calling no_Magic() very often - 22962 7.3.1028 new regexp performance: Copying a lot of position state - 2536 7.3.1030 (after 7.3.1028) can't build for debugging - 2224 7.3.1031 compiler warnings for shadowed variable - 13629 7.3.1032 "\ze" is not supported by the new regexp engine - 35107 7.3.1033 "\1" .. "\9" are not supported in the new regexp engine - 5753 7.3.1034 new regexp code using strange multi-byte code - 1624 7.3.1035 compiler warning on 64 bit windows - 13539 7.3.1036 can't build on HP-UX - 10869 7.3.1037 look-behind matching is very slow on long lines - 4527 7.3.1038 crash when using Cscope - 10088 7.3.1039 new regexp engine does not support \%23c, \%<23c and the like - 11134 7.3.1040 Python: Problems with debugging dynamic build - 4010 7.3.1041 Python: valgrind invalid read errors. - 25871 7.3.1042 Python: can't assign to vim.Buffer.name - 9319 7.3.1043 Python: Dynamic compilation with 2.3 fails - 11091 7.3.1044 Python: No {Buffer,TabPage,Window}.valid attributes - 4247 7.3.1045 Python: No error handling for VimToPython function - 3272 7.3.1046 Python: Using Py_BuildValue for building strings - 20246 7.3.1047 Python: dir() does not work properly - 14215 7.3.1048 Python: no consistent naming - 4082 7.3.1049 Python: no consistent naming - 1447 7.3.1050 Python: Typo in pyiter_to_tv - 6973 7.3.1051 Python: possible memory leaks - 1536 7.3.1052 Python: possible SEGV and negative refcount - 4324 7.3.1053 Python: no flag for types with tp_traverse+tp_clear - 4802 7.3.1054 (after 7.3.1042) can't build without the +autocmd feature - 3228 7.3.1055 negated collection does not match newline - 14318 7.3.1056 Python: possible memory leaks - 5348 7.3.1057 Python: not enough compatibilty - 5291 7.3.1058 call of funcref does not succeed in other script - 9667 7.3.1059 Python: Using fixed size buffers - 1959 7.3.1060 Python: can't repr() a function - 57340 7.3.1061 Python: Dictionary is not standard - 14819 7.3.1062 Python: List is not standard - 17732 7.3.1063 Python: Function is not standard - 4594 7.3.1064 Python: insufficient error checking - 11849 7.3.1065 Python: key mapping is not standard -117512 7.3.1066 Python: Insufficient exception and error testing - 6571 7.3.1067 Python: documentation lags behind - 6483 7.3.1068 Python: Script is auto-loaded on function creation - 4576 7.3.1069 Python: memory leaks - 3020 7.3.1070 crash in Python tests; compiler warning for unused function - 12592 7.3.1071 new regexp engine: backreferences don't work correctly - 1428 7.3.1072 compiler warning for uninitialized variable - 10492 7.3.1073 new regexp engine may run out of states - 1955 7.3.1074 compiler warning for printf format - 1394 7.3.1075 compiler warning for storing a long_u in an int - 12338 7.3.1076 new regexp engine: \@= and \& don't work - 10048 7.3.1077 Python: Allocating dict the wrong way, causing a crash - 6808 7.3.1078 new regexp engine: \@! doesn't work - 50300 7.3.1079 test 87 fails - 11448 7.3.1080 test 86 fails - 2133 7.3.1081 compiler warnings on 64-bit Windows - 5220 7.3.1082 new regexp engine: Problem with \@= matching - 4273 7.3.1083 new regexp engine: Does not support \%^ and \%$ - 8656 7.3.1084 new regexp engine: only accepts up to \{,10} - 8679 7.3.1085 new regexp engine: Non-greedy multi doesn't work - 3841 7.3.1086 old regexp engine accepts illegal range, new one doesn't - 7441 7.3.1087 a leading star is not seen as a normal char when \{} follows - 4864 7.3.1089 tests 86 and 87 fail on MS-Windows - 49092 7.3.1090 new regexp engine does not support \z1 .. \z9 and \z( - 3296 7.3.1091 new regexp engine: no error for \z1 or \z( when not working - 5478 7.3.1092 regexp debugging: can't build, debug output has wrong pattern - 3094 7.3.1093 new regexp engine: empty \1 skips a character - 8453 7.3.1094 new regexp engine: Attempts to match "^" at every character - 8835 7.3.1095 compiler warnings for shadowed variables - 10518 7.3.1096 Python: popitem() was not defined in a standard way - 2779 7.3.1097 Python: a few recently added items are not documented - 2298 7.3.1098 Python: Possible memory leaks - 15612 7.3.1099 Python: changing directory causes problems - 34271 7.3.1100 Python: a few more memory problems - 9379 7.3.1101 configure doesn't find Python 3 on Ubuntu 13.04 - 1450 7.3.1102 completion of ":py3do" and ":py3file" fails after ":py3" - 11276 7.3.1103 new regexp engine: overhead in saving and restoring - 2663 7.3.1104 new regexp engine does not handle "~" - 12905 7.3.1105 new regexp engine: too much code in one function; dead code - 10519 7.3.1106 new regexp engine: save/restore lastlist takes a lot of time - 2325 7.3.1107 compiler warnings for unused variables - 1327 7.3.1108 error message for os.fchdir() - 4969 7.3.1109 building on MS-Windows doesn't see changes in if_py_both.h - 23743 7.3.1110 new regexp matching: Using \@= and the like can be slow - 16284 7.3.1111 nfa_recognize_char_class() implementation is inefficient - 7450 7.3.1112 new regexp engine: \%V not supported - 8095 7.3.1113 new regexp engine: \%'m not supported - 1807 7.3.1114 (after 7.3.1110) can't build without the syntax feature - 8246 7.3.1115 users don't like cursor line number with 'relativenumber' set - 2461 7.3.1116 can't build without Visual mode - 8737 7.3.1117 new regexp engine: \%[abc] not supported - 4590 7.3.1118 match failure rate is not very specific - 6657 7.3.1119 flags in 'cpo' are searched for several times - 2736 7.3.1120 crash when regexp logging is enabled - 3151 7.3.1121 new regexp engine: adding states that are not used - 13428 7.3.1122 new regexp engine: \@> not supported - 1613 7.3.1123 can't build tiny Vim on MS-Windows - 1336 7.3.1124 Python: Crash on MS-Windows when os.fchdir() is not available - 3014 7.3.1125 error for using \%V in a pattern in tiny Vim - 1392 7.3.1126 compiler warning for uninitialized variable - 2533 7.3.1127 no error for using empty \%[] - 7328 7.3.1128 every failure in the NFA engine is a syntax error - 21365 7.3.1129 can't see what pattern in syntax highlighting is slow - 6016 7.3.1130 (after 7.3.1129) can't build with anything but huge features - 5173 7.3.1131 new regexp engine is a bit slow - 2704 7.3.1132 crash when debugging regexp - 8763 7.3.1133 new regexp engine is a bit slow - 2048 7.3.1134 running test 49 takes a long time - 2020 7.3.1135 compiler warning for unused argument - 1465 7.3.1136 ":func Foo" does not show attributes - 26955 7.3.1137 new regexp engine: collections are slow - 16357 7.3.1138 new regexp engine: neglist no longer used - 14897 7.3.1139 new regexp engine: negated flag is hardly used - 5298 7.3.1140 new regexp engine: can skip expensive match - 2548 7.3.1141 Win32: Check for available memory is not reliable - 1347 7.3.1142 memory leak in ":syntime report" - 1646 7.3.1143 when mapping NUL it is displayed as an X - 2557 7.3.1144 "RO" is not translated everywhere - 4036 7.3.1145 new regexp engine: addstate() is called very often - 10156 7.3.1146 new regexp engine: look-behind followed by zero-width fails - 4905 7.3.1147 new regexp engine: regstart is only used to find first match - 5345 7.3.1148 no command line completion for ":syntime" - 41306 7.3.1149 new regexp engine: Matching plain text could be faster - 10878 7.3.1150 new regexpengine: Slow for look-behind match without a width - 5073 7.3.1151 new regexp engine: Slow for look-behind plus zero-width match - 1795 7.3.1152 In tiny build ireg_icombine is undefined - 25686 7.3.1153 new regexp engine: look-behind matches can be very expensive - 2966 7.3.1154 new regexp_nfa engine: Uneccessary code - 1446 7.3.1155 MS-DOS: "make test" uses external rmdir command - 2852 7.3.1156 compiler warnings - 5289 7.3.1157 new regexp engine fails on "\(\<command\)\@<=.*" - 3303 7.3.1158 crash when running test 86 - 4965 7.3.1159 the round() function is not always available - 1649 7.3.1160 mixing long and pointer doesn't always work - 4992 7.3.1161 Python: PyList_SetItem() is inefficient - 5274 7.3.1162 Python: Memory leaks - 41871 7.3.1163 not easy to load Python modules - 4881 7.3.1164 can't test what is actually displayed on screen - 2261 7.3.1165 HP-UX compiler can't handle zero size array - 5466 7.3.1166 loading Python modules is not tested - 33215 7.3.1167 no good Python 3 configure check; may need -pthreads - 6704 7.3.1168 Python "sane" configure checks give a warning message - 13917 7.3.1169 new regexp engine: doing work while executing a pattern - 3128 7.3.1170 (after 7.3.1058) can'tuse a function reference as a string - 2400 7.3.1171 check for digits and ascii letters can be faster - 22201 7.3.1172 Python 2: loading modules doesn't work well - 93253 7.3.1173 Python 2 tests don't have the same output everywhere - 22984 7.3.1174 Python 2 and 3 use different ways to load modules - 3393 7.3.1175 using isalpha() and isalnum() can be slow - 2785 7.3.1176 compiler warnings on 64 bit system - 3624 7.3.1177 wasting memory on padding - 12533 7.3.1178 can't put all Vim config files together in one directory - 4300 7.3.1179 waiting for character after buffer-local map match - 2122 7.3.1180 path from cscope may not be valid after changing directory - 2575 7.3.1181 wrong error message for 1.0[0] - 13491 7.3.1182 'backupcopy' default on MS-Windows does not work for links - 1601 7.3.1183 Python tests 86 and 87 fail - 2023 7.3.1184 highlighting is sometimes wrong - 2734 7.3.1185 new regexp engine: no match with ^ after \n - 2903 7.3.1186 Python 3: test 87 may crash - 2647 7.3.1187 (after 7.3.1170) "s:" is recognized but "<SID>" is not - 2131 7.3.1188 newline characters messing up error message - 2305 7.3.1189 (after 7.3.1185) highlighting is still wrong sometimes - 1818 7.3.1190 compiler warning for parentheses - 8174 7.3.1191 Backreference to previous line doesn't work - 4439 7.3.1192 valgrind reports errors when using backreferences - 1765 7.3.1193 fail_if_missing not used for Python 3 - 2192 7.3.1194 Yaml highlighting is slow - 1535 7.3.1195 compiler warning for unitialized variable - 7934 7.3.1196 old regexp engine does not match pattern with backref right - 6096 7.3.1197 ":wviminfo!" does not write history read from a viminfo file - 2960 7.3.1198 build error when using Perl 5.18.0 and dynamic loading - 3597 7.3.1199 error from evaluating 'foldexpr' is silently ignored - 2718 7.3.1200 calling setline() from Insert mode messes up undo - 1980 7.3.1201 on startup preview window may be used as the current window - 1875 7.3.1202 tags are not found in case-folded tags file - 1575 7.3.1203 matches from matchadd() might be highlighted incorrectly - 8835 7.3.1204 calling gettabwinvar() in 'tabline' cancels Visual mode - 2008 7.3.1205 logtalk.dict is not removed on uninstall - 2965 7.3.1206 inconsistent function argument declarations - 2745 7.3.1207 new regexp engine: no match found on "#if FOO" - 2369 7.3.1208 compiler warnings on MS-Windows - 1363 7.3.1209 no completion for ":tabdo" - 1937 7.3.1210 (after 7.3.1182) 'backupcopy' default on MS-Windows is wrong - 6882 7.3.1211 MS-Windows: ":hardcopy" does not work properly - 3225 7.3.1212 "make test" on MS-Windows does not report like Unix does - 6963 7.3.1213 can't build with Python and small features. - 2511 7.3.1214 missing declaration for init_users() and realloc_post_list() - 1553 7.3.1215 compiler warning for function not defined - 4902 7.3.1216 configure can't find Motif on Ubuntu - 2775 7.3.1217 new regexp engine: Can't handle \%[[ao]] - 2655 7.3.1218 "make test" on MS-Windows does not clean all temporary files - 1826 7.3.1219 no test for using []] inside \%[] - 5738 7.3.1220 MS-Windows: When using wide font italic/bold are not included - 8519 7.3.1221 when build flags change "make distclean" causes an error - 2948 7.3.1222 cannot execute some tests from the src directly - 7033 7.3.1223 tests fail on MS-Windows - 2640 7.3.1224 Clang gives warnings on xxd - 1765 7.3.1225 compiler warnings when building with Motif - 7157 7.3.1226 Python: duplicate code - 18950 7.3.1227 Python: inconsistent string conversion - 9788 7.3.1228 Python: various inconsistencies and problems - 34007 7.3.1229 Python: not so easy to delete/restore translating -185712 7.3.1230 Python: Exception messages are not clear - 22564 7.3.1231 Python: use of numbers not consistent - 54051 7.3.1232 Python: inconsistencies in variable names -185882 7.3.1233 various Python problems - 30099 7.3.1234 (after 7.3.1229) Python: Strings are not marked for translate - 1928 7.3.1235 inserting CTRL-] differs between insert and command-line mode -150895 7.3.1236 Python: WindowSetattr() missing support for NUMBER_UNSIGNED - 3493 7.3.1237 Python: non-import errors not handled correctly - 3329 7.3.1238 crash in Python interface on 64 bit machines - 2921 7.3.1239 can't build with Python and MSVC10 - 1755 7.3.1240 memory leak in findfile() - 1774 7.3.1241 (after 7.3.1236) some test files missing from distribution - 2224 7.3.1242 no failure when trying to use a number as a string - 5926 7.3.1243 back references in look-behind match don't work - 1811 7.3.1244 MS-Windows: confirm() dialog text may not fit - 2739 7.3.1245 MS-Windows: confirm() dialog text may still not fit - 4263 7.3.1246 wrong window layout when resizing with 'winfixheight' set - 4263 7.3.1247 pattern '[ ]\@!\p\%([ ]\@!\p\)*:' does not always match - 8725 7.3.1248 still have old hacking code for Input Method - 1802 7.3.1249 modeline not recognized when using "Vim" instead of "vim" - 4165 7.3.1250 Python tests fail on MS-Windows - 1410 7.3.1251 test 61 messes up viminf. - 1774 7.3.1252 Win32: Gvim does not always find the toolbar bitmap file - 2265 7.3.1253 still undo problem after using CTRL-R = setline() - 1849 7.3.1254 (after 7.3.1252) can't build without the multi-lang feature - 2359 7.3.1255 Clang warnings when building with Athena - 4034 7.3.1256 can't build without eval or autocmd feature - 1820 7.3.1257 GNU gettext() ignores :lang language setting - 1881 7.3.1258 using submatch() may crash Vim - 2626 7.3.1259 no test for patch 7.3.1258 - 3774 7.3.1260 completion gets incomplete command line in cmdline window - 10176 7.3.1261 (after 7.3.1179) keymap causes global mapping to stop working - 5601 7.3.1262 crash and compilation warnings with Cygwin - 1690 7.3.1263 typo in short option name - 2349 7.3.1264 (after 7.3.1261) missing m_nowait - 1521 7.3.1265 (after 7.3.1249) errors for allowing "Vim:" in a modeline - 1857 7.3.1266 QNX: GUI fails to start - 12040 7.3.1267 MS-Windows ACL support doesn't work well - 3846 7.3.1268 ACL support doesn't work when when compiled with MingW - 1668 7.3.1269 insert completion keeps wrong entry selected - 1825 7.3.1270 using "Vp" in an empty buffer can't be undone - 1891 7.3.1271 (after 7.3.1260) command line completion does not work - 2962 7.3.1272 crash when editing Ruby file - 1652 7.3.1273 when copying a location list the index might be wrong - 3332 7.3.1274 using wrong window when using entry from location list - 5535 7.3.1275 "gn" does not work when the match is a single character - 1657 7.3.1276 resizing the window may send SIGWINCH to cscope and it quits - 3286 7.3.1277 in diff mode 'cursorline' also draws in the non-active window - 4461 7.3.1278 limit the screen size set by "stty" - 1814 7.3.1279 compiler warning for variable uninitialized - 6899 7.3.1280 (after 7.3.1247) reading memory already freed - 2145 7.3.1281 When 'ttymouse' is "xterm2" click in column 123 moves to 96 - 3251 7.3.1282 'cursorline' not drawn in any other window - 2408 7.3.1283 test 71 fails on MS-Windows - 3800 7.3.1284 compiler warnings in MS-Windows clipboard handling - 10725 7.3.1285 no tests for picking window when using entry in location list - 1487 7.3.1286 check for screen size missing for Athena and Motif - 13995 7.3.1287 Python SystemExit exception is not handled properly - 14385 7.3.1288 the first ":echo 'hello'" command output doesn't show - 2406 7.3.1289 get GLIB warning when removing a menu item - 1385 7.3.1290 (after 7.3.1253) CTRL-R = in Insert mode starts new insert - 2028 7.3.1291 (after 7.3.1288) compiler warnings for uninitialized variable - 1635 7.3.1292 possibly using invalid pointer when searcing for window - 1811 7.3.1293 put in empty buffer cannot be undone - 9214 7.3.1294 ":diffoff" resets options - 10783 7.3.1295 glob()/globpath() do not handle escaped special chars well - 1626 7.3.1296 only MS-Windows limits GUI window size to fit on the monitor - 4409 7.3.1297 findfile() directory matching fails with a star after text - 2116 7.3.1298 (after 7.3.1297) crash - 14986 7.3.1299 errors when doing "make proto"; dependencies outdated - 3033 7.3.1300 Mac: tiny and small build fails - 6786 7.3.1301 some tests fail on MS-Windows - 3717 7.3.1302 test 17 fails on MS-Windows, includes line break in file name - 4568 7.3.1303 (after 7.3.1290) undo is synced whenever CTRL-R = is called - 1416 7.3.1304 test 89 still fails on MS-Windows - 2929 7.3.1305 warnings from 64 bit compiler - 3533 7.3.1306 when redrawing screen during startup intro message is cleared - 10325 7.3.1307 MS-Windows build instructions are outdated - 2576 7.3.1308 minor typos in MS-Windows files - 2407 7.3.1309 no wait to hit enter when a script defines a function - 3097 7.3.1310 typos in nsis script. Can use better compression - 2115 7.3.1311 compiler warnings on Cygwin - 2161 7.3.1312 Python: not giving correct error messages for SystemExit() - 2076 7.3.1313 :py and :py3 don't work with Cygwin or MingW and 64 bit - 2640 7.3.1314 test 87 fails with Python 3.3 + 13179 7.4.001 'ic' doesn't work for patterns such as [a-z] + 2522 7.4.002 pattern with two alternative look-behind matches doesn't match + 2680 7.4.003 memory access error in Ruby syntax highlighting + 7145 7.4.004 when closing a window fails ":bwipe" may hang + 1391 7.4.005 "vaB" while 'virtualedit' is set selects the wrong area + 1952 7.4.006 mkdir("foo/bar/", "p") gives an error message + 2538 7.4.007 creating a preview window on startup messes up the screen + 2176 7.4.008 new regexp engine can't be interrupted + 2051 7.4.009 too easy to write a file was not decrypted (yet) + 2307 7.4.010 (after 7.4.006) crash with invalid argument to mkdir() + 2270 7.4.011 cannot find out if "acl" and "xpm" features are supported + 6180 7.4.012 MS-Windows: resolving multi-bye shortcut does not work + 2986 7.4.013 MS-Windows: File name buffer too small for utf-8 + 2671 7.4.014 MS-Windows: check for writing to device does not work + 3135 7.4.015 MS-Windows: Detecting node type fails for multi-byte chars + 5999 7.4.016 MS-Windows: File name completion has problem with Chinese + 2319 7.4.017 ":help !!" does not find the "!!" tag in the help file + 1400 7.4.018 when completing item becomes unselected + 1948 7.4.019 file name completion fails with Chinese characters + 2586 7.4.020 NFA engine matches too much with \@> + 2806 7.4.021 NFA regexp: Using \ze may result in wrong end + 4209 7.4.022 deadlock while exiting, because of allocating memory + 1704 7.4.023 MS-Windows: warning for 64 bit type + 1992 7.4.024 current user cannot always use the undo file he created + 2074 7.4.025 reading before start of a string + 1710 7.4.026 clang warning for int shift overflow + 2815 7.4.027 valgrind error when using CTRL-X CTRL-F at start of the line diff --git a/vim.spec b/vim.spec index 20cb407..aca8092 100644 --- a/vim.spec +++ b/vim.spec @@ -1,5 +1,4 @@ -# used for CVS snapshots: -%define CVSDATE %{nil} +%define patchlevel 027 %if %{?WITH_SELINUX:0}%{!?WITH_SELINUX:1} %define WITH_SELINUX 1 %endif @@ -15,19 +14,16 @@ %define withruby 1 %define baseversion 7.4 -#used for pre-releases: -%define beta %{nil} -%define vimdir vim74%{?beta} -%define patchlevel 0 +%define vimdir vim74 Summary: The VIM editor URL: http://www.vim.org/ Name: vim -Version: %{baseversion}.%{beta}%{patchlevel} -Release: 4%{?dist} +Version: %{baseversion}.%{patchlevel} +Release: 1%{?dist} License: Vim Group: Applications/Editors -Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}%{?beta}%{?CVSDATE}.tar.bz2 +Source0: ftp://ftp.vim.org/pub/vim/unix/vim-%{baseversion}.tar.bz2 Source3: gvim.desktop Source4: vimrc Source5: ftp://ftp.vim.org/pub/vim/patches/README.patches @@ -51,6 +47,33 @@ BuildRequires: hunspell-devel %endif # If you're as lazy as me, generate the list using # for i in `seq 1 14`; do printf "Patch%03d: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.%03d\n" $i $i; done +Patch001: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.001 +Patch002: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.002 +Patch003: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.003 +Patch004: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.004 +Patch005: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.005 +Patch006: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.006 +Patch007: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.007 +Patch008: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.008 +Patch009: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.009 +Patch010: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.010 +Patch011: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.011 +Patch012: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.012 +Patch013: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.013 +Patch014: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.014 +Patch015: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.015 +Patch016: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.016 +Patch017: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.017 +Patch018: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.018 +Patch019: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.019 +Patch020: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.020 +Patch021: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.021 +Patch022: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.022 +Patch023: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.023 +Patch024: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.024 +Patch025: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.025 +Patch026: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.026 +Patch027: ftp://ftp.vim.org/pub/vim/patches/7.4/7.4.027 Patch3000: vim-7.4-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -196,8 +219,33 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk # Base patches... # for i in `seq 1 14`; do printf "%%patch%03d -p0 \n" $i; done -#patch001 -p0 - +%patch001 -p0 +%patch002 -p0 +%patch003 -p0 +%patch004 -p0 +%patch005 -p0 +%patch006 -p0 +%patch007 -p0 +%patch008 -p0 +%patch009 -p0 +%patch010 -p0 +%patch011 -p0 +%patch012 -p0 +%patch013 -p0 +%patch014 -p0 +%patch015 -p0 +%patch016 -p0 +%patch017 -p0 +%patch018 -p0 +%patch019 -p0 +%patch020 -p0 +%patch021 -p0 +%patch022 -p0 +%patch023 -p0 +%patch024 -p0 +%patch025 -p0 +%patch026 -p0 +%patch027 -p0 # install spell files %if %{withvimspell} @@ -697,6 +745,33 @@ rm -rf %{buildroot} %{_datadir}/icons/hicolor/*/apps/* %changelog +* Wed Sep 11 2013 Karsten Hopp <karsten@redhat.com> 7.4.027-1 +- patchlevel 027 + +* Wed Sep 04 2013 Karsten Hopp <karsten@redhat.com> 7.4.016-1 +- patchlevel 016 + +* Wed Aug 28 2013 Karsten Hopp <karsten@redhat.com> 7.4.009-1 +- patchlevel 009 + mkdir("foo/bar/", "p") gives an error message + creating a preview window on startup messes up the screen + new regexp engine can't be interrupted + too easy to write a file was not decrypted (yet) + +* Wed Aug 21 2013 Karsten Hopp <karsten@redhat.com> 7.4.5-1 +- patchlevel 5 +- when closing a window fails ":bwipe" may hang +- "vaB" while 'virtualedit' is set selects the wrong area + +* Wed Aug 21 2013 Karsten Hopp <karsten@redhat.com> 7.4.3-1 +- patchlevel 3, memory access error in Ruby syntax highlighting + +* Wed Aug 21 2013 Karsten Hopp <karsten@redhat.com> 7.4.2-1 +- patchlevel 2, pattern with two alternative look-behind matches doesn't match + +* Wed Aug 21 2013 Karsten Hopp <karsten@redhat.com> 7.4.1-1 +- patchlevel 1, 'ic' doesn't work for patterns such as [a-z] + * Mon Aug 12 2013 Karsten Hopp <karsten@redhat.com> 7.4.0-1 - update to vim-7.4