Count columns used by ND_SPACE character when splitting lines

ND_SPACE take up a printable column, so they need to be counted.  Reproducer:

/eval echo $repeat(160 $chr(19))XXXXXXXXXXXXXXXXXXXXXXX
This commit is contained in:
Kevin Easton
2018-05-17 16:26:17 +10:00
parent 9bffcf91ba
commit f859f9e2f8
2 changed files with 6 additions and 3 deletions

View File

@@ -1,5 +1,7 @@
[Changes 1.2.2] [Changes 1.2.2]
* Count columns used by ND_SPACE character when splitting lines. (caf)
* Use target window width rather than terminal width to wrap /list -wide * Use target window width rather than terminal width to wrap /list -wide
output. (caf) output. (caf)

View File

@@ -500,10 +500,11 @@ char **BX_prepare_display(const char *orig_str,
/* /*
* Just swallop up any ND's over the max * Just swallop up any ND's over the max
*/ */
if ((nds_max > 0) && (nds_count > nds_max)) if ((nds_count <= nds_max) || (nds_max <= 0))
; {
else
buffer[pos++] = ND_SPACE; buffer[pos++] = ND_SPACE;
col++;
}
break; break;
} }
case '\n': /* Forced newline */ case '\n': /* Forced newline */