st

simple terminal

git clone https://9o.is/git/st.git

commit 4e57ae1f0685d006aef9a885cdda328b0dd47c03
parent 9b02b12863f7e8824d4335c4d96a1b66b4549f45
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Thu, 10 Sep 2015 11:53:11 +0200

Fix copy of line with len = 0

When a line has no any character linelen is 0, so last = &term.line[y][MIN(lastx, linelen-1)]
generated a pointer to the end of the previous line. The best thing we can do in this case
is to add a newline, because we don't have a glyph to print (and consult its state of
wrapping).

Diffstat:
Mst.c | 5++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/st.c b/st.c @@ -1004,7 +1004,10 @@ getsel(void) /* append every set & selected glyph to the selection */ for (y = sel.nb.y; y <= sel.ne.y; y++) { - linelen = tlinelen(y); + if ((linelen = tlinelen(y)) == 0) { + *ptr++ = '\n'; + continue; + } if (sel.type == SEL_RECTANGULAR) { gp = &term.line[y][sel.nb.x];