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
parent
4b883177dc
commit
3b54425ec1
15
buffer.c
15
buffer.c
|
@ -160,11 +160,18 @@ static int flow(struct Lines *hard, int cols, const struct Line *soft) {
|
|||
wrapStyle = style;
|
||||
}
|
||||
|
||||
n = mbtowc(&wc, wrap, strlen(wrap));
|
||||
if (n < 0) {
|
||||
n = 1;
|
||||
} else if (!iswspace(wc)) {
|
||||
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++;
|
||||
|
|
Loading…
Reference in New Issue