diff options
author | Ron Yorston | 2021-07-02 08:23:06 +0100 |
---|---|---|
committer | Denys Vlasenko | 2021-07-13 13:36:29 +0200 |
commit | 2916443ab650b10fd401ceb221d26fa58e2e99b3 (patch) | |
tree | fe6cb95a050bd41a9fe5146b92fccffd771ffa11 /editors/vi.c | |
parent | b50ac07cba558c370be66226ae0ad762157ee59a (diff) | |
download | busybox-2916443ab650b10fd401ceb221d26fa58e2e99b3.zip busybox-2916443ab650b10fd401ceb221d26fa58e2e99b3.tar.gz |
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>
Diffstat (limited to 'editors/vi.c')
-rw-r--r-- | editors/vi.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/editors/vi.c b/editors/vi.c index 22b8f7c..34d577e 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); |