# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 5d2d9d540d84761cf11648ea42a6413001a5d7b9
    parent a1ed5071e54e4f8ce765c07d5415da7d8cedf618
    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];