Collapse whitespace while wrapping and discard trailing space

The latter avoids an extra blank line when a message ends with
whitespace that hits the edge of the window.
master
C. McEnroe 2021-01-04 14:25:41 -05:00
parent 4b883177dc
commit 3b54425ec1
1 changed files with 12 additions and 5 deletions

View File

@ -160,11 +160,18 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) {
wrapStyle = style; wrapStyle = style;
} }
n = mbtowc(&wc, wrap, strlen(wrap));
if (n < 0) {
n = 1;
} else if (!iswspace(wc)) {
n = 0; n = 0;
len = strlen(wrap);
for (int m; wrap[n] && (m = mbtowc(&wc, &wrap[n], len - n)); n += m) {
if (m < 0) {
m = 1;
} else if (!iswspace(wc)) {
break;
}
}
if (!wrap[n]) {
*wrap = '\0';
break;
} }
flowed++; flowed++;