commit 54ad6d512bdd9b15553d9e1bd8be5c33e4561535 Author: Roberto E. Vargas Caballero <k...@shike2.com> AuthorDate: Thu Jan 7 11:37:56 2016 +0100 Commit: sin <s...@2f30.org> CommitDate: Mon Jan 11 15:37:58 2016 +0000
Fix rematch() 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. diff --git a/ed.c b/ed.c index e98acda..0fc07b1 100644 --- a/ed.c +++ b/ed.c @@ -404,8 +404,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