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. --- st.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)
diff --git a/st.c b/st.c index 009388c..4bc9e70 100644 --- a/st.c +++ b/st.c @@ -681,6 +681,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; @@ -776,15 +779,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; @@ -899,8 +893,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(); /* -- 2.0.4 -- Ivan "Colona" Delalande