[hackers] [st] Fix copy of line with len = 0 || Roberto E. Vargas Caballero

From: <git_AT_suckless.org>
Date: Thu, 10 Sep 2015 11:57:15 +0200 (CEST)

commit 5d2d9d540d84761cf11648ea42a6413001a5d7b9
Author: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
AuthorDate: Thu Sep 10 11:53:11 2015 +0200
Commit: Roberto E. Vargas Caballero <k0ga_AT_shike2.com>
CommitDate: Thu Sep 10 11:53:11 2015 +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).

diff --git a/st.c b/st.c
index 530d7e4..bd8b815 100644
--- a/st.c
+++ b/st.c
_AT_@ -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];
Received on Thu Sep 10 2015 - 11:57:15 CEST

This archive was generated by hypermail 2.3.0 : Thu Sep 10 2015 - 12:00:14 CEST