[hackers] [sbase][PATCH] Fix rematch()

From: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
Date: Thu, 7 Jan 2016 11:37:56 +0100

Rematch() was incremnenting the last match always, even in the
cases when it was not matching anything. This patch detects
this situation and it updates it only when there is a match.
---
 ed.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/ed.c b/ed.c
index c560d1a..77aad19 100644
--- a/ed.c
+++ b/ed.c
_AT_@ -406,8 +406,13 @@ match(int num)
 static int
 rematch(int num)
 {
-	lastmatch += matchs[0].rm_eo;
-	return !regexec(pattern, lastmatch, 10, matchs, 0);
+	regoff_t off = matchs[0].rm_eo;
+
+	if (!regexec(pattern, lastmatch + off, 10, matchs, 0)) {
+		lastmatch += off;
+		return 1;
+	}
+	return 0;
 }
 
 static int
-- 
2.1.4
Received on Thu Jan 07 2016 - 11:37:56 CET

This archive was generated by hypermail 2.3.0 : Thu Jan 07 2016 - 11:48:13 CET