Mercurial > vim
comparison src/evalfunc.c @ 31802:ddbc560ecc41 v9.0.1233
patch 9.0.1233: search() loops forever if "skip" is TRUE for all matches
Commit: https://github.com/vim/vim/commit/3d79f0a4309995956bd8889940cca22f7a15881d
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jan 22 20:14:26 2023 +0000
patch 9.0.1233: search() loops forever if "skip" is TRUE for all matches
Problem: search() loops forever if "skip" is TRUE for all matches.
Solution: Keep the position of the first match.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 22 Jan 2023 21:15:03 +0100 |
parents | 152bb9e6b4b4 |
children | e16361210675 |
comparison
equal
deleted
inserted
replaced
31801:c476ed5d66ef | 31802:ddbc560ecc41 |
---|---|
8792 subpatnum = FAIL; | 8792 subpatnum = FAIL; |
8793 | 8793 |
8794 if (subpatnum == FAIL || !use_skip) | 8794 if (subpatnum == FAIL || !use_skip) |
8795 // didn't find it or no skip argument | 8795 // didn't find it or no skip argument |
8796 break; | 8796 break; |
8797 firstpos = pos; | 8797 if (firstpos.lnum == 0) |
8798 firstpos = pos; | |
8798 | 8799 |
8799 // If the skip expression matches, ignore this match. | 8800 // If the skip expression matches, ignore this match. |
8800 { | 8801 { |
8801 int do_skip; | 8802 int do_skip; |
8802 int err; | 8803 int err; |