Le 28/06/2021 à 14:24, Andrey Dobrovolsky a écrit :
 From b3b8fc90d095a4cfec5ad7448105ba3a815fb51e Mon Sep 17 00:00:00 2001
From: Ron Yorston <[email protected]>
Date: Fri, 25 Jun 2021 08:24:25 +0100
Subject: [PATCH 1/2] vi: use basic regular expressions for search

Usually people send the patches to themself to tune their delivery scripts, not 
to the list.


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 f0bbc9518..959362b25 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 mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to