]> Sergey Matveev's repositories - st.git/commitdiff
Trim trailing whitespaces in every selection case
authorIvan Delalande <colona@ycc.fr>
Sun, 16 Nov 2014 08:02:57 +0000 (09:02 +0100)
committerRoberto E. Vargas Caballero <k0ga@shike2.com>
Wed, 19 Nov 2014 17:53:17 +0000 (18:53 +0100)
Trailing whitespaces are trimmed when copying from normal selection and
rectangular selection on lines that have their last character included
or on the left of the selection. It leads to inconsistent behaviors when
copying the exact same text from the left and right window in
applications with vertical splits.
This patch solves this issue by always trimming the selection.

st.c

diff --git a/st.c b/st.c
index 4499be6618b9c2b3d264858d58065c6fdc62739f..fc913340fdd7760179445211d856dfcb22090cf6 100644 (file)
--- a/st.c
+++ b/st.c
@@ -947,6 +947,8 @@ getsel(void) {
                        lastx = (sel.ne.y == y) ? sel.ne.x : term.col-1;
                }
                last = &term.line[y][MIN(lastx, linelen-1)];
+               while(last >= gp && last->c[0] == ' ')
+                       --last;
 
                for( ; gp <= last; ++gp) {
                        if(gp->mode & ATTR_WDUMMY)