aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2021-07-02 08:23:06 +0100
committerDenys Vlasenko <vda.linux@googlemail.com>2021-07-13 13:36:29 +0200
commit2916443ab650b10fd401ceb221d26fa58e2e99b3 (patch)
treefe6cb95a050bd41a9fe5146b92fccffd771ffa11
parentb50ac07cba558c370be66226ae0ad762157ee59a (diff)
downloadbusybox-w32-2916443ab650b10fd401ceb221d26fa58e2e99b3.tar.gz
busybox-w32-2916443ab650b10fd401ceb221d26fa58e2e99b3.tar.bz2
busybox-w32-2916443ab650b10fd401ceb221d26fa58e2e99b3.zip
vi: use basic regular expressions for search
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>
-rw-r--r--editors/vi.c4
1 files 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)
2378 char *q; 2378 char *q;
2379 int i, size, range, start; 2379 int i, size, range, start;
2380 2380
2381 re_syntax_options = RE_SYNTAX_POSIX_EXTENDED; 2381 re_syntax_options = RE_SYNTAX_POSIX_BASIC & (~RE_DOT_NEWLINE);
2382 if (ignorecase) 2382 if (ignorecase)
2383 re_syntax_options = RE_SYNTAX_POSIX_EXTENDED | RE_ICASE; 2383 re_syntax_options |= RE_ICASE;
2384 2384
2385 memset(&preg, 0, sizeof(preg)); 2385 memset(&preg, 0, sizeof(preg));
2386 err = re_compile_pattern(pat, strlen(pat), &preg); 2386 err = re_compile_pattern(pat, strlen(pat), &preg);