Selection now handles empty lines less counter-intuitively. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e5ff746430725b05e223c454febbde949df2fde2
 (DIR) parent da182612b7c7a6be67b2c7be0c0d85562220f1e4
 (HTM) Author: Alexander Sedov <alex0player@gmail.com>
       Date:   Thu, 18 Apr 2013 12:47:23 +0400
       
       Selection now handles empty lines less counter-intuitively.
       
       Now, when you are selecting a region, you will get all empty lines that happen
       to be in it, including trailing ones. Last line terminator is omitted as it previously
       was, though.
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M st.c                                |       7 ++-----
       
       1 file changed, 2 insertions(+), 5 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -752,7 +752,7 @@ bpress(XEvent *e) {
        void
        selcopy(void) {
                char *str, *ptr;
       -        int x, y, bufsize, isselected = 0, size;
       +        int x, y, bufsize, size;
                Glyph *gp, *last;
        
                if(sel.bx == -1) {
       @@ -763,7 +763,6 @@ selcopy(void) {
        
                        /* append every set & selected glyph to the selection */
                        for(y = sel.b.y; y < sel.e.y + 1; y++) {
       -                        isselected = 0;
                                gp = &term.line[y][0];
                                last = gp + term.col;
        
       @@ -774,8 +773,6 @@ selcopy(void) {
                                for(x = 0; gp <= last; x++, ++gp) {
                                        if(!selected(x, y)) {
                                                continue;
       -                                } else {
       -                                        isselected = 1;
                                        }
        
                                        size = utf8size(gp->c);
       @@ -792,7 +789,7 @@ selcopy(void) {
                                 * st.
                                 * FIXME: Fix the computer world.
                                 */
       -                        if(isselected && y < sel.e.y)
       +                        if(y < sel.e.y)
                                        *ptr++ = '\n';
                        }
                        *ptr = 0;