nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

commit ecd18c1694e229c050e9d0be99b28b627a5977b6
parent bc8a3a50a4bd3282767fb0e88b7403f957d5451a
Author: Benno Schulenberg <bensberg@justemail.net>
Date:   Sun, 18 Dec 2016 19:57:33 +0100

history: search for the two position numbers from EOL instead of BOL

A filename might contain spaces, so we can't look for the numbers
(the second and third elements) starting from the head of the line
-- we have to start at the tail and work backward.

This fixes https://savannah.gnu.org/bugs/?49879.

Diffstat:
Msrc/files.c | 9+++++++--
1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/src/files.c b/src/files.c @@ -3190,8 +3190,13 @@ void load_poshistory(void) /* Decode nulls as newlines. */ unsunder(line, read); - lineptr = parse_next_word(line); - xptr = parse_next_word(lineptr); + /* Find where x index and line number are in the line. */ + xptr = revstrstr(line, " ", line + read); + lineptr = revstrstr(line, " ", xptr - 1); + + /* Now separate the three elements of the line. */ + *(xptr++) = '\0'; + *(lineptr++) = '\0'; /* Create a new position record. */ newrecord = (poshiststruct *)nmalloc(sizeof(poshiststruct));