From ce3731cff62a5045c11b9ae017c0c3ce5bb2e87e Mon Sep 17 00:00:00 2001 From: Karsten Hopp Date: Jan 10 2008 10:14:44 +0000 Subject: - patchlevel 214 --- diff --git a/7.1.212 b/7.1.212 new file mode 100644 index 0000000..a9aa7f5 --- /dev/null +++ b/7.1.212 @@ -0,0 +1,47 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.212 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.212 +Problem: Accessing a byte before a line. +Solution: Check that the column is 1 or more. (Dominuque Pelle) +Files: src/edit.c + + +*** ../vim-7.1.211/src/edit.c Sun Jan 6 20:05:36 2008 +--- src/edit.c Mon Jan 7 22:31:36 2008 +*************** +*** 8452,8457 **** +--- 8452,8458 ---- + if ( mode == BACKSPACE_CHAR + && ((p_sta && in_indent) + || (curbuf->b_p_sts != 0 ++ && curwin->w_cursor.col > 0 + && (*(ml_get_cursor() - 1) == TAB + || (*(ml_get_cursor() - 1) == ' ' + && (!*inserted_space_p +*** ../vim-7.1.211/src/version.c Sun Jan 6 20:05:36 2008 +--- src/version.c Wed Jan 9 10:11:49 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 212, + /**/ + +-- +CRONE: Who sent you? +ARTHUR: The Knights Who Say Ni! +CRONE: Aaaagh! (she looks around in rear) No! We have no shrubberies here. + "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.213 b/7.1.213 new file mode 100644 index 0000000..aee3248 --- /dev/null +++ b/7.1.213 @@ -0,0 +1,57 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.213 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.213 +Problem: A ":tabedit" command that results in the "swap file exists" dialog + and selecting "abort" doesn't close the new tab. (Al Budden) +Solution: Pass "old_curwin" to do_exedit(). +Files: src/ex_docmd.c + + +*** ../vim-7.1.212/src/ex_docmd.c Sun Jan 6 20:05:36 2008 +--- src/ex_docmd.c Wed Jan 9 20:11:13 2008 +*************** +*** 7126,7132 **** + : eap->addr_count == 0 ? 0 + : (int)eap->line2 + 1) != FAIL) + { +! do_exedit(eap, NULL); + + /* set the alternate buffer for the window we came from */ + if (curwin != old_curwin +--- 7127,7133 ---- + : eap->addr_count == 0 ? 0 + : (int)eap->line2 + 1) != FAIL) + { +! do_exedit(eap, old_curwin); + + /* set the alternate buffer for the window we came from */ + if (curwin != old_curwin +*** ../vim-7.1.212/src/version.c Wed Jan 9 10:13:24 2008 +--- src/version.c Wed Jan 9 20:29:09 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 213, + /**/ + +-- +Q: What do you call a fish without an eye? +A: fsh! +Q: What do you call a deer with no eyes? +A: no eye deer. +Q: What do you call a deer with no eyes and no legs? +A: still no eye deer. + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/7.1.214 b/7.1.214 new file mode 100644 index 0000000..8378667 --- /dev/null +++ b/7.1.214 @@ -0,0 +1,266 @@ +To: vim-dev@vim.org +Subject: Patch 7.1.214 +Fcc: outbox +From: Bram Moolenaar +Mime-Version: 1.0 +Content-Type: text/plain; charset=ISO-8859-1 +Content-Transfer-Encoding: 8bit +------------ + +Patch 7.1.214 +Problem: ":1s/g\n\zs1//" deletes characters from the first line. (A Politz) +Solution: Start replacing in the line where the match starts. +Files: src/ex_cmds.c + + +*** ../vim-7.1.213/src/ex_cmds.c Fri Jan 4 14:52:14 2008 +--- src/ex_cmds.c Wed Jan 9 22:32:26 2008 +*************** +*** 4200,4206 **** + linenr_T old_line_count = curbuf->b_ml.ml_line_count; + linenr_T line2; + long nmatch; /* number of lines in match */ +- linenr_T sub_firstlnum; /* nr of first sub line */ + char_u *sub_firstline; /* allocated copy of first sub line */ + int endcolumn = FALSE; /* cursor in last column when done */ + pos_T old_cursor = curwin->w_cursor; +--- 4200,4205 ---- +*************** +*** 4447,4453 **** + #endif + ); ++lnum) + { +- sub_firstlnum = lnum; + nmatch = vim_regexec_multi(®match, curwin, curbuf, lnum, (colnr_T)0); + if (nmatch) + { +--- 4446,4451 ---- +*************** +*** 4463,4468 **** +--- 4461,4467 ---- + long nmatch_tl = 0; /* nr of lines matched below lnum */ + int do_again; /* do it again after joining lines */ + int skip_match = FALSE; ++ linenr_T sub_firstlnum; /* nr of first sub line */ + + /* + * The new text is build up step by step, to avoid too much +*************** +*** 4482,4489 **** + * far. + * new_end The new text, where to append new text. + * +! * lnum The line number where we were looking for the +! * first match in the old line. + * sub_firstlnum The line number in the buffer where to look + * for a match. Can be different from "lnum" + * when the pattern or substitute string contains +--- 4481,4490 ---- + * far. + * new_end The new text, where to append new text. + * +! * lnum The line number where we found the start of +! * the match. Can be below the line we searched +! * when there is a \n before a \zs in the +! * pattern. + * sub_firstlnum The line number in the buffer where to look + * for a match. Can be different from "lnum" + * when the pattern or substitute string contains +*************** +*** 4507,4518 **** + * updating the screen or handling a multi-line match. The "old_" + * pointers point into this copy. + */ +! sub_firstline = vim_strsave(ml_get(sub_firstlnum)); +! if (sub_firstline == NULL) +! { +! vim_free(new_start); +! goto outofmem; +! } + copycol = 0; + matchcol = 0; + +--- 4508,4514 ---- + * updating the screen or handling a multi-line match. The "old_" + * pointers point into this copy. + */ +! sub_firstlnum = lnum; + copycol = 0; + matchcol = 0; + +*************** +*** 4533,4538 **** +--- 4529,4556 ---- + */ + for (;;) + { ++ /* Advance "lnum" to the line where the match starts. The ++ * match does not start in the first line when there is a line ++ * break before \zs. */ ++ if (regmatch.startpos[0].lnum > 0) ++ { ++ lnum += regmatch.startpos[0].lnum; ++ sub_firstlnum += regmatch.startpos[0].lnum; ++ nmatch -= regmatch.startpos[0].lnum; ++ vim_free(sub_firstline); ++ sub_firstline = NULL; ++ } ++ ++ if (sub_firstline == NULL) ++ { ++ sub_firstline = vim_strsave(ml_get(sub_firstlnum)); ++ if (sub_firstline == NULL) ++ { ++ vim_free(new_start); ++ goto outofmem; ++ } ++ } ++ + /* Save the line number of the last change for the final + * cursor position (just like Vi). */ + curwin->w_cursor.lnum = lnum; +*************** +*** 4638,4644 **** + temp = RedrawingDisabled; + RedrawingDisabled = 0; + +! search_match_lines = regmatch.endpos[0].lnum; + search_match_endcol = regmatch.endpos[0].col; + highlight_match = TRUE; + +--- 4656,4663 ---- + temp = RedrawingDisabled; + RedrawingDisabled = 0; + +! search_match_lines = regmatch.endpos[0].lnum +! - regmatch.startpos[0].lnum; + search_match_endcol = regmatch.endpos[0].col; + highlight_match = TRUE; + +*************** +*** 4749,4755 **** + * 3. substitute the string. + */ + /* get length of substitution part */ +! sublen = vim_regsub_multi(®match, sub_firstlnum, + sub, sub_firstline, FALSE, p_magic, TRUE); + + /* When the match included the "$" of the last line it may +--- 4768,4775 ---- + * 3. substitute the string. + */ + /* get length of substitution part */ +! sublen = vim_regsub_multi(®match, +! sub_firstlnum - regmatch.startpos[0].lnum, + sub, sub_firstline, FALSE, p_magic, TRUE); + + /* When the match included the "$" of the last line it may +*************** +*** 4819,4825 **** + mch_memmove(new_end, sub_firstline + copycol, (size_t)i); + new_end += i; + +! (void)vim_regsub_multi(®match, sub_firstlnum, + sub, new_end, TRUE, p_magic, TRUE); + sub_nsubs++; + did_sub = TRUE; +--- 4839,4846 ---- + mch_memmove(new_end, sub_firstline + copycol, (size_t)i); + new_end += i; + +! (void)vim_regsub_multi(®match, +! sub_firstlnum - regmatch.startpos[0].lnum, + sub, new_end, TRUE, p_magic, TRUE); + sub_nsubs++; + did_sub = TRUE; +*************** +*** 4908,4917 **** + skip: + /* We already know that we did the last subst when we are at + * the end of the line, except that a pattern like +! * "bar\|\nfoo" may match at the NUL. */ + lastone = (skip_match + || got_int + || got_quit + || !(do_all || do_again) + || (sub_firstline[matchcol] == NUL && nmatch <= 1 + && !re_multiline(regmatch.regprog))); +--- 4929,4941 ---- + skip: + /* We already know that we did the last subst when we are at + * the end of the line, except that a pattern like +! * "bar\|\nfoo" may match at the NUL. "lnum" can be below +! * "line2" when there is a \zs in the pattern after a line +! * break. */ + lastone = (skip_match + || got_int + || got_quit ++ || lnum > line2 + || !(do_all || do_again) + || (sub_firstline[matchcol] == NUL && nmatch <= 1 + && !re_multiline(regmatch.regprog))); +*************** +*** 4926,4937 **** + * When asking the user we like to show the already replaced + * text, but don't do it when "\<@=" or "\<@!" is used, it + * changes what matches. + */ + if (lastone + || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, +! curbuf, sub_firstlnum, matchcol)) == 0) + { + if (new_start != NULL) + { +--- 4950,4964 ---- + * When asking the user we like to show the already replaced + * text, but don't do it when "\<@=" or "\<@!" is used, it + * changes what matches. ++ * When the match starts below where we start searching also ++ * need to replace the line first (using \zs after \n). + */ + if (lastone + || (do_ask && !re_lookbehind(regmatch.regprog)) + || nmatch_tl > 0 + || (nmatch = vim_regexec_multi(®match, curwin, +! curbuf, sub_firstlnum, matchcol)) == 0 +! || regmatch.startpos[0].lnum > 0) + { + if (new_start != NULL) + { +*************** +*** 5001,5007 **** +--- 5028,5041 ---- + * 5. break if there isn't another match in this line + */ + if (nmatch <= 0) ++ { ++ /* If the match found didn't start where we were ++ * searching, do the next search in the line where we ++ * found the match. */ ++ if (nmatch == -1) ++ lnum -= regmatch.startpos[0].lnum; + break; ++ } + } + + line_breakcheck(); +*** ../vim-7.1.213/src/version.c Wed Jan 9 20:29:51 2008 +--- src/version.c Wed Jan 9 22:37:47 2008 +*************** +*** 668,669 **** +--- 668,671 ---- + { /* Add new patch number below this line */ ++ /**/ ++ 214, + /**/ + +-- +Q: What's orange and sounds like a parrot? +A: A carrot + + /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ +/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ +\\\ download, build and distribute -- http://www.A-A-P.org /// + \\\ help me help AIDS victims -- http://ICCF-Holland.org /// diff --git a/README.patches b/README.patches index 9032033..fc5825a 100644 --- a/README.patches +++ b/README.patches @@ -242,3 +242,6 @@ Individual patches for Vim 7.1: 2249 7.1.209 GTK GUI: when using the netrw plugin ":gui" causes a hang 1923 7.1.210 listing mapping for 0xdb fails when 'encoding' is utf-8 25525 7.1.211 matchparen plugin may take so long it looks like Vim hangs + 1491 7.1.212 accessing a byte before a line + 1750 7.1.213 aborting ":tabedit" from the ATTENTION dialog leaves tab open + 8399 7.1.214 ":1s/g\n\zs1//" deletes characters from the first line diff --git a/vim.spec b/vim.spec index d8fa5ab..164608e 100644 --- a/vim.spec +++ b/vim.spec @@ -15,7 +15,7 @@ #used for pre-releases: %define beta %{nil} %define vimdir vim71%{?beta} -%define patchlevel 211 +%define patchlevel 214 Summary: The VIM editor URL: http://www.vim.org/ @@ -262,6 +262,9 @@ Patch208: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.208 Patch209: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.209 Patch210: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.210 Patch211: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.211 +Patch212: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.212 +Patch213: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.213 +Patch214: ftp://ftp.vim.org/pub/vim/patches/7.1/7.1.214 Patch3000: vim-7.0-syntax.patch Patch3002: vim-7.1-nowarnings.patch @@ -605,6 +608,9 @@ perl -pi -e "s,bin/nawk,bin/awk,g" runtime/tools/mve.awk %patch209 -p0 %patch210 -p0 %patch211 -p0 +%patch212 -p0 +%patch213 -p0 +%patch214 -p0 # install spell files @@ -991,6 +997,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/*/apps/* %changelog +* Thu Jan 10 2008 Karsten Hopp 7.1.214-1 +- patchlevel 214 + * Mon Jan 07 2008 Karsten Hopp 7.1.211-1 - patchlevel 211