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 <[email protected]> Signed-off-by: Ron Yorston <[email protected]> --- editors/vi.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editors/vi.c b/editors/vi.c index 7cbeb7113..a19acb20b 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); -- 2.31.1 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
