From b7c2513f7d2357360833b42da423af3e69311f6f Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Thu, 12 Jan 2017 18:25:50 +0100
Subject: [PATCH] tweaks: rename some variables, to better distinguish rows
 from lines

And columns from indexes -- columns are places on the screen, while
indexes point to characters in a line in the current buffer.
---
 src/winio.c | 55 ++++++++++++++++++++++++++---------------------------
 1 file changed, 27 insertions(+), 28 deletions(-)

diff --git a/src/winio.c b/src/winio.c
index 96c291b5..e090864d 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -2655,25 +2655,28 @@ void edit_draw(filestruct *fileptr, const char *converted,
 #endif /* !NANO_TINY */
 }
 
-/* Just update one line in the edit buffer.  This is basically a wrapper
- * for edit_draw().  The line will be displayed starting with
- * fileptr->data[index].  Likely arguments are current_x or zero.
- * Returns: Number of additional lines consumed (needed for SOFTWRAP). */
+/* Redraw one line from the edit buffer.  The line will be displayed starting
+ * with fileptr->data[index].  Likely values of index are current_x or zero.
+ * Return the number of additional rows consumed (needed for SOFTWRAP). */
 int update_line(filestruct *fileptr, size_t index)
 {
     int row = 0;
 	/* The row in the edit window we will be updating. */
-    int extralinesused = 0;
+    int extra_rows = 0;
+	/* The number of extra rows a softwrapped line occupies. */
     char *converted;
 	/* The data of the line with tabs and control characters expanded. */
-    size_t page_start;
+    size_t from_col = 0;
+	/* From which column a horizontally scrolled line is displayed. */
 
 #ifndef NANO_TINY
     if (ISSET(SOFTWRAP)) {
-	filestruct *tmp;
+	filestruct *line = openfile->edittop;
 
-	for (tmp = openfile->edittop; tmp && tmp != fileptr; tmp = tmp->next)
-	    row += (strlenpt(tmp->data) / editwincols) + 1;
+	while (line != fileptr && line != NULL) {
+	    row += (strlenpt(line->data) / editwincols) + 1;
+	    line = line->next;
+	}
     } else
 #endif
 	row = fileptr->lineno - openfile->edittop->lineno;
@@ -2684,61 +2687,57 @@ int update_line(filestruct *fileptr, size_t index)
     /* First, blank out the row. */
     blank_row(edit, row, 0, COLS);
 
-    /* Next, convert variables that index the line to their equivalent
-     * positions in the expanded line. */
-#ifndef NANO_TINY
-    if (ISSET(SOFTWRAP))
-	index = 0;
-    else
-#endif
-	index = strnlenpt(fileptr->data, index);
-    page_start = get_page_start(index);
+    /* Next, find out from which column to start displaying the line. */
+    if (!ISSET(SOFTWRAP))
+	from_col = get_page_start(strnlenpt(fileptr->data, index));
 
     /* Expand the line, replacing tabs with spaces, and control
      * characters with their displayed forms. */
-    converted = display_string(fileptr->data, page_start, editwincols, TRUE);
+    converted = display_string(fileptr->data, from_col, editwincols, TRUE);
 #ifdef DEBUG
     if (ISSET(SOFTWRAP) && strlen(converted) >= editwincols - 2)
 	fprintf(stderr, "update_line(): converted(1) line = %s\n", converted);
 #endif
 
     /* Draw the line. */
-    edit_draw(fileptr, converted, row, page_start);
+    edit_draw(fileptr, converted, row, from_col);
     free(converted);
 
 #ifndef NANO_TINY
     if (!ISSET(SOFTWRAP)) {
 #endif
-	if (page_start > 0)
+	if (from_col > 0)
 	    mvwaddch(edit, row, margin, '$');
-	if (strlenpt(fileptr->data) > page_start + editwincols)
+	if (strlenpt(fileptr->data) > from_col + editwincols)
 	    mvwaddch(edit, row, COLS - 1, '$');
 #ifndef NANO_TINY
     } else {
 	size_t full_length = strlenpt(fileptr->data);
-	for (index += editwincols; index <= full_length && row < editwinrows - 1; index += editwincols) {
+
+	for (from_col += editwincols; from_col <= full_length &&
+			row < editwinrows - 1; from_col += editwincols) {
 	    row++;
 #ifdef DEBUG
-	    fprintf(stderr, "update_line(): softwrap code, moving to %d index %lu\n", row, (unsigned long)index);
+	    fprintf(stderr, "update_line(): softwrap code, moving to %d column %lu\n", row, (unsigned long)from_col);
 #endif
 	    blank_row(edit, row, 0, COLS);
 
 	    /* Expand the line, replacing tabs with spaces, and control
 	     * characters with their displayed forms. */
-	    converted = display_string(fileptr->data, index, editwincols, TRUE);
+	    converted = display_string(fileptr->data, from_col, editwincols, TRUE);
 #ifdef DEBUG
 	    if (ISSET(SOFTWRAP) && strlen(converted) >= editwincols - 2)
 		fprintf(stderr, "update_line(): converted(2) line = %s\n", converted);
 #endif
 	    /* Draw the line. */
-	    edit_draw(fileptr, converted, row, index);
+	    edit_draw(fileptr, converted, row, from_col);
 	    free(converted);
 
-	    extralinesused++;
+	    extra_rows++;
 	}
     }
 #endif /* !NANO_TINY */
-    return extralinesused;
+    return extra_rows;
 }
 
 /* Check whether old_column and new_column are on different "pages" (or that
-- 
GitLab