From d49c267f91ef5f37de056c9d5e621f0b306a9c90 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sun, 14 Jun 2015 17:56:44 +0000 Subject: [PATCH] Skipping to the next step when a found start has been qualified as an end earlier. This helps with Python's triple-quoted strings. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5247 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 3 +++ src/winio.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/ChangeLog b/ChangeLog index 58c0018e..3d1af7d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,9 @@ 2015-06-14 Benno Schulenberg * src/winio.c (edit_draw): Add some debugging code to track which multidata codes (for multiline regexes) get assigned to which lines. + * src/winio.c (edit_draw): Start and end regexes can be very similar; + so if a found start has been qualified as an end earlier, believe it + and skip to the next step. This helps with Python's docstrings. 2015-06-11 Benno Schulenberg * src/winio.c (get_key_buffer): Add some debugging code to make it diff --git a/src/winio.c b/src/winio.c index 053b226b..286b7504 100644 --- a/src/winio.c +++ b/src/winio.c @@ -2600,6 +2600,12 @@ void edit_draw(filestruct *fileptr, const char *converted, int start_line = start_line->prev; } + /* If the found start has been qualified as an end earlier, + * believe it and skip to the next step. */ + if (start_line != NULL && + start_line->multidata[tmpcolor->id] == CBEGINBEFORE) + goto step_two; + /* Skip over a zero-length regex match. */ if (startmatch.rm_so == startmatch.rm_eo) startmatch.rm_eo++; -- 2.39.5