]> git.wh0rd.org Git - nano.git/commitdiff
Fusing three functions into a single one.
authorBenno Schulenberg <bensberg@justemail.net>
Fri, 4 Dec 2015 20:54:34 +0000 (20:54 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Fri, 4 Dec 2015 20:54:34 +0000 (20:54 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5477 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/color.c

index f1fad86f9064e47226186b78431f8a7211588d49..e52423051422d8dfa58290d963c0185d21f79796 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
 2015-12-03  Benno Schulenberg  <bensberg@justemail.net>
        * src/proto.h: Avoid a compilation warning.
+       * src/color.c (reset_multis_for_id, reset_multis_before/after):
+       Fuse these three functions into a single one.
 
 2015-12-03  Benno Schulenberg  <bensberg@justemail.net>
        * src/text.c (discard_until): Move the trimming of the undo stack
index b45736dc587daae56a8780eb79da4ab12914b8bb..8557aa20b3d13a56bd6888f92f1a33f0be44b2ea 100644 (file)
@@ -365,54 +365,44 @@ void color_update(void)
     }
 }
 
-/* Reset the multicolor info cache for records for any lines which need
- * to be recalculated. */
-void reset_multis_after(filestruct *fileptr, int mindex)
+/* Reset the multiline coloring cache for one specific regex (given by
+ * index) for lines that need reevaluation. */
+void reset_multis_for_id(filestruct *fileptr, int index)
 {
-    filestruct *oof;
-    for (oof = fileptr->next; oof != NULL; oof = oof->next) {
-       alloc_multidata_if_needed(oof);
-       if (oof->multidata[mindex] != CNONE)
-           oof->multidata[mindex] = -1;
-       else
+    filestruct *row;
+
+    /* Reset the cache of earlier lines, as far back as needed. */
+    for (row = fileptr->prev; row != NULL; row = row->prev) {
+       alloc_multidata_if_needed(row);
+       if (row->multidata[index] == CNONE)
            break;
+       row->multidata[index] = -1;
     }
-    for (; oof != NULL; oof = oof->next) {
-       alloc_multidata_if_needed(oof);
-       if (oof->multidata[mindex] == CNONE)
-           oof->multidata[mindex] = -1;
-       else
+    for (; row != NULL; row = row->prev) {
+       alloc_multidata_if_needed(row);
+       if (row->multidata[index] != CNONE)
            break;
+       row->multidata[index] = -1;
     }
-    edit_refresh_needed = TRUE;
-}
 
-void reset_multis_before(filestruct *fileptr, int mindex)
-{
-    filestruct *oof;
-    for (oof = fileptr->prev; oof != NULL; oof = oof->prev) {
-       alloc_multidata_if_needed(oof);
-       if (oof->multidata[mindex] != CNONE)
-           oof->multidata[mindex] = -1;
-       else
+    /* Reset the cache of the current line. */
+    fileptr->multidata[index] = -1;
+
+    /* Reset the cache of later lines, as far ahead as needed. */
+    for (row = fileptr->next; row != NULL; row = row->next) {
+       alloc_multidata_if_needed(row);
+       if (row->multidata[index] == CNONE)
            break;
+       row->multidata[index] = -1;
     }
-    for (; oof != NULL; oof = oof->prev) {
-       alloc_multidata_if_needed(oof);
-       if (oof->multidata[mindex] == CNONE)
-           oof->multidata[mindex] = -1;
-       else
+    for (; row != NULL; row = row->next) {
+       alloc_multidata_if_needed(row);
+       if (row->multidata[index] != CNONE)
            break;
+       row->multidata[index] = -1;
     }
-    edit_refresh_needed = TRUE;
-}
 
-/* Reset one multiline regex info. */
-void reset_multis_for_id(filestruct *fileptr, int num)
-{
-    reset_multis_before(fileptr, num);
-    reset_multis_after(fileptr, num);
-    fileptr->multidata[num] = -1;
+    edit_refresh_needed = TRUE;
 }
 
 /* Reset multi-line strings around the filestruct fileptr, trying to be