all repos — st @ 5d2d9d540d84761cf11648ea42a6413001a5d7b9

st (suckless terminal) config

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).
Roberto E. Vargas Caballero k0ga@shike2.com
commit

5d2d9d540d84761cf11648ea42a6413001a5d7b9

parent

a1ed5071e54e4f8ce765c07d5415da7d8cedf618

1 files changed, 4 insertions(+), 1 deletions(-)

jump to
M st.cst.c

@@ -1004,7 +1004,10 @@ ptr = str = xmalloc(bufsize);

/* 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];