diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.625')
-rw-r--r-- | source/ap/vim/patches/7.3.625 | 140 |
1 files changed, 0 insertions, 140 deletions
diff --git a/source/ap/vim/patches/7.3.625 b/source/ap/vim/patches/7.3.625 deleted file mode 100644 index 5334bc8f..00000000 --- a/source/ap/vim/patches/7.3.625 +++ /dev/null @@ -1,140 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.625 -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.3.625 -Problem: "gn" does not handle zero-width matches correctly. -Solution: Handle zero-width patterns specially. (Christian Brabandt) -Files: src/search.c - - -*** ../vim-7.3.624/src/search.c 2012-08-02 21:24:38.000000000 +0200 ---- src/search.c 2012-08-08 15:25:12.000000000 +0200 -*************** -*** 4546,4551 **** ---- 4546,4554 ---- - int visual_active = FALSE; - int flags = 0; - pos_T save_VIsual; -+ regmmatch_T regmatch; -+ int nmatched = 0; -+ int zerowidth = FALSE; - - - /* wrapping should not occur */ -*************** -*** 4581,4603 **** - orig_pos = pos = start_pos = curwin->w_cursor; - - /* - * The trick is to first search backwards and then search forward again, - * so that a match at the current cursor position will be correctly - * captured. - */ - for (i = 0; i < 2; i++) - { -- if (i && count == 1) -- flags = SEARCH_START; -- - if (forward) - dir = i; - else - dir = !i; - result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD), - spats[last_idx].pat, (long) (i ? count : 1), -! SEARCH_KEEP | flags | (dir ? 0 : SEARCH_END), -! RE_SEARCH, 0, NULL); - - /* First search may fail, but then start searching from the - * beginning of the file (cursor might be on the search match) ---- 4584,4625 ---- - orig_pos = pos = start_pos = curwin->w_cursor; - - /* -+ * Check for zero-width pattern. -+ */ -+ if (search_regcomp(spats[last_idx].pat, RE_SEARCH, RE_SEARCH, -+ ((SEARCH_HIS + SEARCH_KEEP)), ®match) == FAIL) -+ return FAIL; -+ -+ /* Zero-width pattern should match somewhere, then we can check if start -+ * and end are in the same position. */ -+ nmatched = vim_regexec_multi(®match, curwin, curbuf, -+ curwin->w_cursor.lnum, (colnr_T)0, NULL); -+ if (called_emsg) -+ return FAIL; -+ if (nmatched && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum -+ && regmatch.endpos[0].col == regmatch.startpos[0].col) -+ zerowidth = TRUE; -+ vim_free(regmatch.regprog); -+ -+ /* - * The trick is to first search backwards and then search forward again, - * so that a match at the current cursor position will be correctly - * captured. - */ - for (i = 0; i < 2; i++) - { - if (forward) - dir = i; - else - dir = !i; -+ -+ flags = 0; -+ if (!dir && !zerowidth) -+ flags = SEARCH_END; -+ - result = searchit(curwin, curbuf, &pos, (dir ? FORWARD : BACKWARD), - spats[last_idx].pat, (long) (i ? count : 1), -! SEARCH_KEEP | flags, RE_SEARCH, 0, NULL); - - /* First search may fail, but then start searching from the - * beginning of the file (cursor might be on the search match) -*************** -*** 4629,4638 **** - } - - start_pos = pos; -! flags = (forward ? SEARCH_END : 0); - -! /* move to match */ -! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD), - spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL); - - if (!VIsual_active) ---- 4651,4662 ---- - } - - start_pos = pos; -! flags = forward ? SEARCH_END : 0; - -! /* move to match, except for zero-width matches, in which case, we are -! * already on the next match */ -! if (!zerowidth) -! result = searchit(curwin, curbuf, &pos, (forward ? FORWARD : BACKWARD), - spats[last_idx].pat, 0L, flags | SEARCH_KEEP, RE_SEARCH, 0, NULL); - - if (!VIsual_active) -*** ../vim-7.3.624/src/version.c 2012-08-08 14:33:16.000000000 +0200 ---- src/version.c 2012-08-08 15:21:53.000000000 +0200 -*************** -*** 716,717 **** ---- 716,719 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 625, - /**/ - --- -hundred-and-one symptoms of being an internet addict: -222. You send more than 20 personal e-mails a day. - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ an exciting new programming language -- http://www.Zimbu.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |