From 355a07bbce710181af6d775a03a621543534123d Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Tue, 28 Feb 2017 16:53:51 +0100 Subject: [PATCH] tweaks: don't optimize for the wrong case Running strlenpt() on a string that takes up more than 80 columns (the width of an average terminal) takes /more/ time than simply converting an extra character (the one that will be overwritten by the "$" at the edge of the terminal). So... just convert one more character than necessary when the line is overlong. In the most common case, however, the line will fit fully onscreen, and we save a whole call of strlenpt(). --- src/winio.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/winio.c b/src/winio.c index e70440dd..3f43d031 100644 --- a/src/winio.c +++ b/src/winio.c @@ -1810,13 +1810,6 @@ char *display_string(const char *buf, size_t start_col, size_t span, size_t beyond = start_col + span; /* The column number just beyond the last shown character. */ - /* If this is data, make room for the "$" at the end of the line. */ - if (isdata && !ISSET(SOFTWRAP) && strlenpt(buf) > beyond) - span--; - - if (span == 0) - return mallocstrcpy(NULL, ""); - start_index = actual_x(buf, start_col); column = strnlenpt(buf, start_index);