commit 5283acdcf360f41ef2e597b8def1aaf479e981d3
parent 0d9a73472439cab26d2d33adea88aa193fea6951
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Tue, 14 Mar 2017 21:11:51 +0100
tweaks: trim a displayable string in a more efficient manner
Instead of redetermining the entire span of the converted string,
simply move one character left, and then bite it off to make place
for the trailing $.
Diffstat:
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/winio.c b/src/winio.c
@@ -1925,16 +1925,12 @@ char *display_string(const char *buf, size_t start_col, size_t span,
buf += charlength + 7;
}
- /* 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--;
+ index = move_mbleft(converted, index);
- /* Make sure converted takes up no more than span columns. */
- index = actual_x(converted, span);
- null_at(&converted, index);
+ /* Null-terminate the converted string. */
+ converted[index] = '\0';
return converted;
}