From ee33503402c1af31216694f3776dfd15d898e82d Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Sun, 29 Nov 2015 13:20:08 +0000
Subject: [PATCH] Using the main multidata-cache-allocation routine. (Note that
 there can only be colorstrings when there /is/ a syntax, so there is no need
 to check for the latter here.)

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5452 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog   |  1 +
 src/winio.c | 14 ++++----------
 2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index c9169455..e8f21d80 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@
 	* src/winio.c (edit_draw): When an end is found but nothing is painted
 	(because the coloured part is horizontally scrolled off), nevertheless
 	set the multidata to CBEGINBEFORE.  This fixes Savannah bug #46545.
+	* src/winio.c (edit_draw): Use the main cache-allocation routine.
 
 2015-11-28  Benno Schulenberg  <bensberg@justemail.net>
 	* src/nano.c (main): Allow the user full control over the values of
diff --git a/src/winio.c b/src/winio.c
index 93f868b8..473b09a4 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2481,16 +2481,10 @@ void edit_draw(filestruct *fileptr, const char *converted, int
     if (openfile->colorstrings != NULL && !ISSET(NO_COLOR_SYNTAX)) {
 	const colortype *tmpcolor = openfile->colorstrings;
 
-	/* Set up multi-line color data for this line if it's not yet
-	 * calculated. */
-	if (fileptr->multidata == NULL && openfile->syntax
-		&& openfile->syntax->nmultis > 0) {
-	    int i;
-	    fileptr->multidata = (short *)nmalloc(openfile->syntax->nmultis * sizeof(short));
-	    for (i = 0; i < openfile->syntax->nmultis; i++)
-		/* Assume this applies until we know otherwise. */
-		fileptr->multidata[i] = -1;
-	}
+	/* If there are multiline regexes, make sure there is a cache. */
+	if (openfile->syntax->nmultis > 0)
+	    alloc_multidata_if_needed(fileptr);
+
 	for (; tmpcolor != NULL; tmpcolor = tmpcolor->next) {
 	    int x_start;
 		/* Starting column for mvwaddnstr.  Zero-based. */
-- 
GitLab