Commit 0404474e authored by David Lawrence Ramsey's avatar David Lawrence Ramsey Committed by Benno Schulenberg
Browse files

tweaks: stop converting text once we overshoot span columns

Since we only need span columns of the string, stop scanning the string
as soon as we have that many columns, instead of scanning the string all
the way to the end.  This speeds up the conversion of very long lines.
No related merge requests found
Showing with 4 additions and 2 deletions
+4 -2
......@@ -1807,9 +1807,11 @@ char *display_string(const char *buf, size_t start_col, size_t span,
/* The string we return. */
size_t index;
/* Current position in converted. */
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) > start_col + span)
if (isdata && !ISSET(SOFTWRAP) && strlenpt(buf) > beyond)
span--;
if (span == 0)
......@@ -1855,7 +1857,7 @@ char *display_string(const char *buf, size_t start_col, size_t span,
#endif
}
while (*buf != '\0') {
while (*buf != '\0' && start_col < beyond) {
int charlength, charwidth = 1;
if (*buf == ' ') {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment