diff options
Diffstat (limited to 'source/ap/vim/patches/7.3.636')
-rw-r--r-- | source/ap/vim/patches/7.3.636 | 148 |
1 files changed, 0 insertions, 148 deletions
diff --git a/source/ap/vim/patches/7.3.636 b/source/ap/vim/patches/7.3.636 deleted file mode 100644 index 453a7fc9..00000000 --- a/source/ap/vim/patches/7.3.636 +++ /dev/null @@ -1,148 +0,0 @@ -To: vim_dev@googlegroups.com -Subject: Patch 7.3.636 -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.636 (after 7.3.625) -Problem: Not all zero-width matches handled correctly for "gn". -Solution: Move zero-width detection to a separate function. (Christian - Brabandt) -Files: src/search.c - - -*** ../vim-7.3.635/src/search.c 2012-08-08 15:27:54.000000000 +0200 ---- src/search.c 2012-08-23 15:52:50.000000000 +0200 -*************** -*** 4526,4531 **** ---- 4526,4533 ---- - #endif /* FEAT_TEXTOBJ */ - - #if defined(FEAT_VISUAL) || defined(PROTO) -+ static int is_zerowidth __ARGS((char_u *pattern)); -+ - /* - * Find next search match under cursor, cursor at end. - * Used while an operator is pending, and in Visual mode. -*************** -*** 4546,4556 **** - int visual_active = FALSE; - int flags = 0; - pos_T save_VIsual; -- regmmatch_T regmatch; -- int nmatched = 0; - int zerowidth = FALSE; - -- - /* wrapping should not occur */ - p_ws = FALSE; - ---- 4548,4555 ---- -*************** -*** 4583,4606 **** - else - 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 ---- 4582,4592 ---- - else - orig_pos = pos = start_pos = curwin->w_cursor; - -! /* Is the pattern is zero-width? */ -! zerowidth = is_zerowidth(spats[last_idx].pat); -! if (zerowidth == -1) - return FAIL; - - /* - * The trick is to first search backwards and then search forward again, - * so that a match at the current cursor position will be correctly -*************** -*** 4693,4698 **** ---- 4679,4721 ---- - - return OK; - } -+ -+ /* -+ * Check if the pattern is zero-width. -+ * Returns TRUE, FALSE or -1 for failure. -+ */ -+ static int -+ is_zerowidth(pattern) -+ char_u *pattern; -+ { -+ regmmatch_T regmatch; -+ int nmatched = 0; -+ int result = -1; -+ pos_T pos; -+ -+ if (search_regcomp(pattern, RE_SEARCH, RE_SEARCH, -+ SEARCH_KEEP, ®match) == FAIL) -+ return -1; -+ -+ /* move to match */ -+ clearpos(&pos); -+ if (searchit(curwin, curbuf, &pos, FORWARD, spats[last_idx].pat, 1, -+ SEARCH_KEEP, RE_SEARCH, 0, NULL) != FAIL) -+ { -+ /* Zero-width pattern should match somewhere, then we can check if -+ * start and end are in the same position. */ -+ nmatched = vim_regexec_multi(®match, curwin, curbuf, -+ pos.lnum, (colnr_T)0, NULL); -+ -+ if (!called_emsg) -+ result = (nmatched != 0 -+ && regmatch.startpos[0].lnum == regmatch.endpos[0].lnum -+ && regmatch.startpos[0].col == regmatch.endpos[0].col); -+ } -+ -+ vim_free(regmatch.regprog); -+ return result; -+ } - #endif /* FEAT_VISUAL */ - - #if defined(FEAT_LISP) || defined(FEAT_CINDENT) || defined(FEAT_TEXTOBJ) \ -*** ../vim-7.3.635/src/version.c 2012-08-23 13:28:50.000000000 +0200 ---- src/version.c 2012-08-23 15:25:23.000000000 +0200 -*************** -*** 721,722 **** ---- 721,724 ---- - { /* Add new patch number below this line */ -+ /**/ -+ 636, - /**/ - --- -Edison's greatest achievement came in 1879, when he invented the -electric company. Edison's design was a brilliant adaptation of the -simple electrical circuit: the electric company sends electricity -through a wire to a customer, then immediately gets the electricity -back through another wire - - /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ -/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ -\\\ an exciting new programming language -- http://www.Zimbu.org /// - \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |