From e36e829ad064d4f80fbd7b3249d3b33c4ebbf64c Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Thu, 5 Jan 2017 21:25:30 +0100
Subject: [PATCH] tweaks: set the length of a search match in a clearer manner

---
 src/search.c | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/src/search.c b/src/search.c
index 9b67997e..fcd95ef6 100644
--- a/src/search.c
+++ b/src/search.c
@@ -234,8 +234,8 @@ int search_init(bool replacing, bool use_answer)
 int findnextstr(const char *needle, bool whole_word_only, size_t *match_len,
 	const filestruct *begin, size_t begin_x)
 {
-    size_t found_len;
-	/* The length of the match we find. */
+    size_t found_len = strlen(needle);
+	/* The length of a match -- will be recomputed for a regex. */
     int feedback = 0;
 	/* When bigger than zero, show and wipe the "Searching..." message. */
     filestruct *fileptr = openfile->current;
@@ -290,14 +290,11 @@ int findnextstr(const char *needle, bool whole_word_only, size_t *match_len,
 	found = strstrwrapper(fileptr->data, needle, rev_start);
 
 	if (found != NULL) {
-	    /* Remember the length of the potential match. */
-	    found_len =
 #ifdef HAVE_REGEX_H
-		ISSET(USE_REGEXP) ?
-		regmatches[0].rm_eo - regmatches[0].rm_so :
+	    /* When doing a regex search, compute the length of the match. */
+	    if (ISSET(USE_REGEXP))
+		found_len = regmatches[0].rm_eo - regmatches[0].rm_so;
 #endif
-		strlen(needle);
-
 #ifndef DISABLE_SPELLER
 	    /* When we're spell checking, a match is only a true match when
 	     * it is a separate word. */
-- 
GitLab