[prev in list] [next in list] [prev in thread] [next in thread]
List: busybox-cvs
Subject: [git commit] vi: use basic regular expressions for search
From: Denys Vlasenko <vda.linux () googlemail ! com>
Date: 2021-07-13 11:36:29
Message-ID: 20210713111459.73458841B3 () busybox ! osuosl ! org
[Download RAW message or body]
commit: https://git.busybox.net/busybox/commit/?id=2916443ab650b10fd401ceb221d26fa58e2e99b3
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master
Both traditional vi and vim use basic regular expressions for
search. Also, they don't allow matches to extend across line
endings. Thus with the file:
123
234
the search '/2.*4$' should find the second '2', not the first.
Make BusyBox vi do the same.
Whether or not VI_REGEX_SEARCH is enabled:
function old new delta
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/0 up/down: 0/0) Total: 0 bytes
Signed-off-by: Andrey Dobrovolsky <andrey.dobrovolsky.odessa@gmail.com>
Signed-off-by: Ron Yorston <rmy@pobox.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
editors/vi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/editors/vi.c b/editors/vi.c
index 22b8f7cf1..34d577e90 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -2378,9 +2378,9 @@ static char *char_search(char *p, const char *pat, int dir_and_range)
char *q;
int i, size, range, start;
- re_syntax_options = RE_SYNTAX_POSIX_EXTENDED;
+ re_syntax_options = RE_SYNTAX_POSIX_BASIC & (~RE_DOT_NEWLINE);
if (ignorecase)
- re_syntax_options = RE_SYNTAX_POSIX_EXTENDED | RE_ICASE;
+ re_syntax_options |= RE_ICASE;
memset(&preg, 0, sizeof(preg));
err = re_compile_pattern(pat, strlen(pat), &preg);
_______________________________________________
busybox-cvs mailing list
busybox-cvs@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic