From e8c4abbbd711af8fd3ed85ea69e9ac3d63a0d879 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Thu, 2 Apr 2020 21:13:25 +0200 Subject: patch 8.2.0502: Vim9: some code is not tested Problem: Vim9: some code is not tested. Solution: Add more tests. Fix uncovered problems. --- src/regexp.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/regexp.c') diff --git a/src/regexp.c b/src/regexp.c index 4e21d44cc..b4fb59598 100644 --- 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 ]. + */ + 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( +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 -- cgit v1.2.1