From 1f55c8819bbdd4812b468d8399185d8ee54278be Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Fri, 28 Apr 2017 14:05:07 +0200
Subject: [PATCH] tweaks: swap the names of two variables, to make more sense

An iterator should not be called "start_col", because it is only the
starting column at the very beginning.

Also, start_col (after the rename) can never be /larger/ than column.
---
 src/proto.h |  3 +--
 src/winio.c | 62 +++++++++++++++++++++++++----------------------------
 2 files changed, 30 insertions(+), 35 deletions(-)

diff --git a/src/proto.h b/src/proto.h
index e6c39cee..4ec30057 100644
--- a/src/proto.h
+++ b/src/proto.h
@@ -638,8 +638,7 @@ void blank_edit(void);
 void blank_statusbar(void);
 void blank_bottombars(void);
 void check_statusblank(void);
-char *display_string(const char *buf, size_t start_col, size_t span,
-	bool dollars);
+char *display_string(const char *buf, size_t column, size_t span, bool isdata);
 void titlebar(const char *path);
 extern void set_modified(void);
 void statusbar(const char *msg);
diff --git a/src/winio.c b/src/winio.c
index d06a51af..12dfa0b1 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -1805,31 +1805,29 @@ void check_statusblank(void)
 	edit_refresh();
 }
 
-/* Convert buf into a string that can be displayed on screen.  The
- * caller wants to display buf starting with column start_col, and
- * extending for at most span columns.  start_col is zero-based.  span
- * is one-based, so span == 0 means you get "" returned.  The returned
- * string is dynamically allocated, and should be freed.  If isdata is
- * TRUE, the caller might put "$" at the beginning or end of the line if
- * it's too long. */
-char *display_string(const char *buf, size_t start_col, size_t span,
-	bool isdata)
+/* Convert buf into a string that can be displayed on screen.  The caller
+ * wants to display buf starting with the given column, and extending for
+ * at most span columns.  column is zero-based, and span is one-based, so
+ * span == 0 means you get "" returned.  The returned string is dynamically
+ * allocated, and should be freed.  If isdata is TRUE, the caller might put
+ * "$" at the beginning or end of the line if it's too long. */
+char *display_string(const char *buf, size_t column, size_t span, bool isdata)
 {
     size_t start_index;
 	/* Index in buf of the first character shown. */
-    size_t column;
+    size_t start_col;
 	/* Screen column that start_index corresponds to. */
     char *converted;
-	/* The string we return. */
+	/* The expanded string we will return. */
     size_t index;
 	/* Current position in converted. */
-    size_t beyond = start_col + span;
+    size_t beyond = column + span;
 	/* The column number just beyond the last shown character. */
 
-    start_index = actual_x(buf, start_col);
-    column = strnlenpt(buf, start_index);
+    start_index = actual_x(buf, column);
+    start_col = strnlenpt(buf, start_index);
 
-    assert(column <= start_col);
+    assert(start_col <= column);
 
     index = 0;
 #ifdef USING_OLD_NCURSES
@@ -1842,32 +1840,31 @@ char *display_string(const char *buf, size_t start_col, size_t span,
 
     /* If the first character starts before the left edge, or would be
      * overwritten by a "$" token, then show placeholders instead. */
-    if (*buf != '\0' && *buf != '\t' && (column < start_col ||
-				(column > 0 && isdata && !ISSET(SOFTWRAP)))) {
+    if (*buf != '\0' && *buf != '\t' && (start_col < column ||
+			(start_col > 0 && isdata && !ISSET(SOFTWRAP)))) {
 	if (is_cntrl_mbchar(buf)) {
-	    if (column < start_col) {
+	    if (start_col < column) {
 		converted[index++] = control_mbrep(buf, isdata);
-		start_col++;
+		column++;
 		buf += parse_mbchar(buf, NULL, NULL);
 	    }
 	}
 #ifdef ENABLE_UTF8
 	else if (mbwidth(buf) == 2) {
-	    if (column >= start_col) {
+	    if (start_col == column) {
 		converted[index++] = ' ';
-		start_col++;
+		column++;
 	    }
 
 	    /* Display the right half of a two-column character as '<'. */
 	    converted[index++] = '<';
-	    start_col++;
-
+	    column++;
 	    buf += parse_mbchar(buf, NULL, NULL);
 	}
 #endif
     }
 
-    while (*buf != '\0' && start_col < beyond) {
+    while (*buf != '\0' && column < beyond) {
 	int charlength, charwidth = 1;
 
 	if (*buf == ' ') {
@@ -1881,7 +1878,7 @@ char *display_string(const char *buf, size_t start_col, size_t span,
 	    } else
 #endif
 		converted[index++] = ' ';
-	    start_col++;
+	    column++;
 	    buf++;
 	    continue;
 	} else if (*buf == '\t') {
@@ -1895,11 +1892,11 @@ char *display_string(const char *buf, size_t start_col, size_t span,
 	    } else
 #endif
 		converted[index++] = ' ';
-	    start_col++;
+	    column++;
 	    /* Fill the tab up with the required number of spaces. */
-	    while (start_col % tabsize != 0) {
+	    while (column % tabsize != 0) {
 		converted[index++] = ' ';
-		start_col++;
+		column++;
 	    }
 	    buf++;
 	    continue;
@@ -1911,7 +1908,7 @@ char *display_string(const char *buf, size_t start_col, size_t span,
 	if (is_cntrl_mbchar(buf)) {
 	    converted[index++] = '^';
 	    converted[index++] = control_mbrep(buf, isdata);
-	    start_col += 2;
+	    column += 2;
 	    buf += charlength;
 	    continue;
 	}
@@ -1921,7 +1918,7 @@ char *display_string(const char *buf, size_t start_col, size_t span,
 	    for (; charlength > 0; charlength--)
 		converted[index++] = *(buf++);
 
-	    start_col += charwidth;
+	    column += charwidth;
 #ifdef USING_OLD_NCURSES
 	    if (charwidth > 1)
 		seen_wide = TRUE;
@@ -1933,8 +1930,7 @@ char *display_string(const char *buf, size_t start_col, size_t span,
 	converted[index++] = '\xEF';
 	converted[index++] = '\xBF';
 	converted[index++] = '\xBD';
-
-	start_col += 1;
+	column++;
 	buf++;
 
 	/* For invalid codepoints, skip extra bytes. */
@@ -1943,7 +1939,7 @@ char *display_string(const char *buf, size_t start_col, size_t span,
     }
 
     /* If there is more text than can be shown, make room for the $ or >. */
-    if (*buf != '\0' && (start_col > beyond || (isdata && !ISSET(SOFTWRAP)))) {
+    if (*buf != '\0' && (column > beyond || (isdata && !ISSET(SOFTWRAP)))) {
 	index = move_mbleft(converted, index);
 
 #ifdef ENABLE_UTF8
-- 
GitLab