Select to the end of row if end of line is reached.
authorChristoph Lohmann <20h@r-36.net>
Sat, 4 May 2013 06:05:11 +0000 (08:05 +0200)
committerChristoph Lohmann <20h@r-36.net>
Sat, 4 May 2013 06:05:11 +0000 (08:05 +0200)
Thanks Alexander Rezinsky <alexrez@gmail.com>!

st.c

diff --git a/st.c b/st.c
index d73aaa1..e2e6c57 100644 (file)
--- a/st.c
+++ b/st.c
@@ -679,6 +679,8 @@ selected(int x, int y) {
 
 void
 selsnap(int mode, int *x, int *y, int direction) {
+       int i;
+
        switch(mode) {
        case SNAP_WORD:
                /*
@@ -735,6 +737,16 @@ selsnap(int mode, int *x, int *y, int direction) {
                }
                break;
        default:
+               /*
+                * Select the whole line when the end of line is reached.
+                */
+               if(direction > 0) {
+                       i = term.col;
+                       while(--i > 0 && term.line[*y][i].c[0] == ' ')
+                               /* nothing */;
+                       if(i > 0 && i < *x)
+                               *x = term.col - 1;
+               }
                break;
        }
 }