Selection now handles empty lines less counter-intuitively.
authorAlexander Sedov <alex0player@gmail.com>
Thu, 18 Apr 2013 08:47:23 +0000 (12:47 +0400)
committerChristoph Lohmann <20h@r-36.net>
Thu, 18 Apr 2013 14:51:52 +0000 (16:51 +0200)
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>
st.c

diff --git a/st.c b/st.c
index 8e39ec2..686ed5d 100644 (file)
--- 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;