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]
* Count columns used by ND_SPACE character when splitting lines. (caf)
* Use target window width rather than terminal width to wrap /list -wide
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
*/
if ((nds_max > 0) && (nds_count > nds_max))
;
else
if ((nds_count <= nds_max) || (nds_max <= 0))
{
buffer[pos++] = ND_SPACE;
col++;
}
break;
}
case '\n': /* Forced newline */