Mercurial > vim
diff src/regexp.c @ 19892:5feb426d2ea1 v8.2.0502
patch 8.2.0502: Vim9: some code is not tested
Commit: https://github.com/vim/vim/commit/e8c4abbbd711af8fd3ed85ea69e9ac3d63a0d879
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 2 21:13:25 2020 +0200
patch 8.2.0502: Vim9: some code is not tested
Problem: Vim9: some code is not tested.
Solution: Add more tests. Fix uncovered problems.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 02 Apr 2020 21:15:04 +0200 |
parents | 08f4dc2ba716 |
children | aadd1cae2ff5 |
line wrap: on
line diff
--- a/src/regexp.c +++ b/src/regexp.c @@ -537,16 +537,30 @@ skip_anyof(char_u *p) * Stop at end of "startp" or where "dirc" is found ('/', '?', etc). * Take care of characters with a backslash in front of it. * Skip strings inside [ and ]. - * When "newp" is not NULL and "dirc" is '?', make an allocated copy of the - * expression and change "\?" to "?". If "*newp" is not NULL the expression - * is changed in-place. */ char_u * skip_regexp( char_u *startp, int dirc, + int magic) +{ + return skip_regexp_ex(startp, dirc, magic, NULL, NULL); +} + +/* + * skip_regexp() with extra arguments: + * When "newp" is not NULL and "dirc" is '?', make an allocated copy of the + * expression and change "\?" to "?". If "*newp" is not NULL the expression + * is changed in-place. + * If a "\?" is changed to "?" then "dropped" is incremented, unless NULL. + */ + char_u * +skip_regexp_ex( + char_u *startp, + int dirc, int magic, - char_u **newp) + char_u **newp, + int *dropped) { int mymagic; char_u *p = startp; @@ -579,6 +593,8 @@ skip_regexp( if (*newp != NULL) p = *newp + (p - startp); } + if (dropped != NULL) + ++*dropped; if (*newp != NULL) STRMOVE(p, p + 1); else