commit 69784d51db317c37c80e4be6793b2e8596b9b4b6
parent 3c3eb4909d3275229c2f7f35eb8ab50d3fa38cab
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Wed, 8 Mar 2017 14:32:36 +0100
screen: don't push the longer-line indicator ($) to the next row
If the last two columns of a row would be taken up by a double-width
character (and the line is longer than that), don't print it, because
it wouldn't leave any room for the $ character.
This fixes https://savannah.gnu.org/bugs/?50491.
Reported-by: David Lawrence Ramsey <pooka109@gmail.com>
Diffstat:
1 file changed, 4 insertions(+), 0 deletions(-)
diff --git a/src/winio.c b/src/winio.c
@@ -1928,6 +1928,10 @@ char *display_string(const char *buf, size_t start_col, size_t span,
/* Null-terminate converted. */
converted[index] = '\0';
+ /* If there is more text than can be shown, make room for the $. */
+ if (*buf != '\0' && isdata && !ISSET(SOFTWRAP))
+ span--;
+
/* Make sure converted takes up no more than span columns. */
index = actual_x(converted, span);
null_at(&converted, index);