]> git.wh0rd.org Git - nano.git/commitdiff
Stepping backward or forward not simply one byte
authorBenno Schulenberg <bensberg@justemail.net>
Sun, 22 Mar 2015 11:42:29 +0000 (11:42 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sun, 22 Mar 2015 11:42:29 +0000 (11:42 +0000)
but one character (possibly multibyte).
This fixes Savannah bug #42175.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5148 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/search.c

index 6f646e0b25aca05c09deb94bc8cb84a74a3d3106..7c86e3a1fc428fe16acfc51c7c598402a45e2e52 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,10 @@
        * src/chars.c (move_mbleft): Start looking for a multibyte char
        not at the start of the string, but only as far back as such a
        char can possibly be.  Change suggested by Mark Majeres.
+       *  src/search.c (findnextstr): Step backward or forward not simply
+       one byte but one character (possibly multibyte).  Fixes Savannah
+       bug #42175, reported by myself, and the finding of ghosts seen in
+       https://lists.gnu.org/archive/html/nano-devel/2015-03/msg00055.html.
 
 2015-03-21  Benno Schulenberg  <bensberg@justemail.net>
        * src/text.c (do_alt_speller): Remove some leftovers.
index d0656972bc850f0c4a1996c1183fd4c5009256bd..a5233b5b8ecb5e5e7adcbd3d078327955b523c1f 100644 (file)
@@ -286,9 +286,9 @@ bool findnextstr(
     rev_start +=
 #ifndef NANO_TINY
        ISSET(BACKWARDS_SEARCH) ?
-       openfile->current_x - 1 :
+       ((openfile->current_x == 0) ? -1 : move_mbleft(fileptr->data, openfile->current_x)) :
 #endif
-       openfile->current_x + 1;
+       move_mbright(fileptr->data, openfile->current_x);
 
     /* Look for needle in the current line we're searching. */
     enable_nodelay();