JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Applying the patch of Rafa Garcia Gallega <rafael.garcia.gallego@gmail.com> to
authorChristoph Lohmann <20h@r-36.net>
Sun, 28 Oct 2012 05:32:54 +0000 (06:32 +0100)
committerChristoph Lohmann <20h@r-36.net>
Sun, 28 Oct 2012 05:32:54 +0000 (06:32 +0100)
not emulate the vt100 behaviour of selecting all whitespaces. Thanks!

st.c

diff --git a/st.c b/st.c
index e19cefd..3cd7831 100644 (file)
--- a/st.c
+++ b/st.c
@@ -678,7 +678,7 @@ bpress(XEvent *e) {
 
 void
 selcopy(void) {
 
 void
 selcopy(void) {
-       char *str, *ptr, *p;
+       char *str, *ptr;
        int x, y, bufsize, is_selected = 0, size;
        Glyph *gp;
 
        int x, y, bufsize, is_selected = 0, size;
        Glyph *gp;
 
@@ -693,11 +693,12 @@ selcopy(void) {
                        for(x = 0; x < term.col; x++) {
                                gp = &term.line[y][x];
 
                        for(x = 0; x < term.col; x++) {
                                gp = &term.line[y][x];
 
-                               if(!(is_selected = selected(x, y)))
+                               if(!(is_selected = selected(x, y))
+                                               || !(gp->state & GLYPH_SET)) {
                                        continue;
                                        continue;
-                               p = (gp->state & GLYPH_SET) ? gp->c : " ";
-                               size = utf8size(p);
-                               memcpy(ptr, p, size);
+                               }
+                               size = utf8size(gp->c);
+                               memcpy(ptr, gp->c, size);
                                ptr += size;
                        }
                        /* \n at the end of every selected line except for the last one */
                                ptr += size;
                        }
                        /* \n at the end of every selected line except for the last one */