From: Roberto E. Vargas Caballero Date: Thu, 10 Sep 2015 09:53:11 +0000 (+0200) Subject: Fix copy of line with len = 0 X-Git-Url: https://git.danieliu.xyz/?a=commitdiff_plain;h=5d2d9d540d84761cf11648ea42a6413001a5d7b9;p=st.git 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). --- diff --git a/st.c b/st.c index 530d7e4..bd8b815 100644 --- 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];