nano

nano with my custom patches
git clone git://bsandro.tech/nano
Log | Files | Refs | README | LICENSE

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:
Msrc/winio.c | 10+++-------
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; }