st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit c490a60b804f467490cd4d8275a181dc37edef9f
parent 83dea7fd7bb5f6e8a11a7ac8a734d8016d1ed0cb
Author: Ivan Delalande <colona@ycc.fr>
Date:   Wed, 20 Aug 2014 21:14:08 +0200

Move calls to selsnap into selnormalize

This simplifies getbuttoninfo() and bpress(), and fixes a bug which made word
snapping behave incorrectly when a delimiter was at the beginning or end of
line.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>

Diffstat:
Mst.c | 14+++-----------
1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/st.c b/st.c
@@ -682,6 +682,9 @@ selnormalize(void) {
     sel.nb.y = MIN(sel.ob.y, sel.oe.y);
     sel.ne.y = MAX(sel.ob.y, sel.oe.y);
 
+    selsnap(sel.snap, &sel.nb.x, &sel.nb.y, -1);
+    selsnap(sel.snap, &sel.ne.x, &sel.ne.y, +1);
+
     /* expand selection over line breaks */
     if (sel.type == SEL_RECTANGULAR)
         return;
@@ -777,15 +780,6 @@ getbuttoninfo(XEvent *e) {
 
     sel.oe.x = x2col(e->xbutton.x);
     sel.oe.y = y2row(e->xbutton.y);
-
-    if(sel.ob.y < sel.oe.y
-            || (sel.ob.y == sel.oe.y && sel.ob.x < sel.oe.x)) {
-        selsnap(sel.snap, &sel.ob.x, &sel.ob.y, -1);
-        selsnap(sel.snap, &sel.oe.x, &sel.oe.y, +1);
-    } else {
-        selsnap(sel.snap, &sel.oe.x, &sel.oe.y, -1);
-        selsnap(sel.snap, &sel.ob.x, &sel.ob.y, +1);
-    }
     selnormalize();
 
     sel.type = SEL_REGULAR;
@@ -900,8 +894,6 @@ bpress(XEvent *e) {
         } else {
             sel.snap = 0;
         }
-        selsnap(sel.snap, &sel.ob.x, &sel.ob.y, -1);
-        selsnap(sel.snap, &sel.oe.x, &sel.oe.y, +1);
         selnormalize();
 
         /*