[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    vi backward regex search
From:       Andrey Dobrovolsky <andrey.dobrovolsky.odessa () gmail ! com>
Date:       2020-02-15 23:38:28
Message-ID: CAN5FJ7d7Lf0dLJX5wHEWJw6SFyrf_-4Sbuwqcs13BBXRR7H79g () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Hi, busy people!

If busybox is built with CONFIG_FEATURE_VI_REGEX_SEARCH=y vi is unable to
search backward. Proposed patch for 1.31.1 is:

--- vi.c.old 2019-06-10 13:50:53.000000000 +0300
+++ vi.c 2020-02-15 15:22:24.851557863 +0200
@@ -2189,15 +2189,11 @@
  // re_search() >= 0: index of found pattern
  //           struct pattern   char     int   int    int    struct reg
  // re_search(*pattern_buffer, *string, size, start, range, *regs)
- i = re_search(&preg, q, size, /*start:*/ 0, range, /*struct
re_registers*:*/ NULL);
+ i = re_search(&preg, q, size, (range<0)?size:0 , range, /*struct
re_registers*:*/ NULL);
  regfree(&preg);
  if (i < 0)
  return NULL;
- if (dir_and_range > 0) // FORWARD?
- p = p + i;
- else
- p = p - i;
- return p;
+ return (q + i) ;
 }
 # else
 #  if ENABLE_FEATURE_VI_SETOPTS

Regards!

[Attachment #5 (text/html)]

<div dir="ltr">Hi, busy people!<div><br></div><div>If busybox is built with \
CONFIG_FEATURE_VI_REGEX_SEARCH=y vi is unable to   search backward. Proposed patch \
for 1.31.1 is:</div><div><br></div><div>--- vi.c.old	2019-06-10 13:50:53.000000000 \
+0300<br>+++ vi.c	2020-02-15 15:22:24.851557863 +0200<br>@@ -2189,15 +2189,11 @@<br>  \
// re_search() &gt;= 0: index of found pattern<br>  	//                struct pattern \
char       int    int      int      struct reg<br>  	// re_search(*pattern_buffer, \
*string, size, start, range, *regs)<br>-	i = re_search(&amp;preg, q, size, /*start:*/ \
0, range, /*struct re_registers*:*/ NULL);<br>+	i = re_search(&amp;preg, q, size, \
(range&lt;0)?size:0 , range, /*struct re_registers*:*/ NULL);<br>  \
regfree(&amp;preg);<br>  	if (i &lt; 0)<br>  		return NULL;<br>-	if (dir_and_range \
&gt; 0) // FORWARD?<br>-		p = p + i;<br>-	else<br>-		p = p - i;<br>-	return \
p;<br>+	return (q + i) ;<br>  }<br>  # else<br>  #   if \
ENABLE_FEATURE_VI_SETOPTS<br></div><div><br></div><div>Regards!</div><div><br></div></div>




_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic