Removing an undefined case. just do regular selections. - st - simple terminal HTML git clone https://git.parazyd.org/st DIR Log DIR Files DIR Refs DIR README DIR LICENSE --- DIR commit a1e3b94b374c269f9d379f40b67b8519a485b8a6 DIR parent 4b17dddb104bd2ac87dd6e334aafd325197c1407 HTML Author: Christoph Lohmann <20h@r-36.net> Date: Fri, 29 Mar 2013 18:39:01 +0100 Removing an undefined case. just do regular selections. Diffstat: M st.c | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) --- DIR diff --git a/st.c b/st.c @@ -653,16 +653,14 @@ selected(int x, int y) { return BETWEEN(x, bx, ex); } - switch(sel.type) { - case SEL_REGULAR: - return ((sel.b.y < y && y < sel.e.y) - || (y == sel.e.y && x <= sel.e.x)) - || (y == sel.b.y && x >= sel.b.x - && (x <= sel.e.x || sel.b.y != sel.e.y)); - case SEL_RECTANGULAR: + if(sel.type == SEL_RECTANGULAR) { return ((sel.b.y <= y && y <= sel.e.y) && (sel.b.x <= x && x <= sel.e.x)); - }; + } + return ((sel.b.y < y && y < sel.e.y) + || (y == sel.e.y && x <= sel.e.x)) + || (y == sel.b.y && x >= sel.b.x + && (x <= sel.e.x || sel.b.y != sel.e.y)); } void @@ -1254,8 +1252,12 @@ selscroll(int orig, int n) { sel.bx = -1; return; } - switch(sel.type) { - case SEL_REGULAR: + if(sel.type == SEL_RECTANGULAR) { + if(sel.by < term.top) + sel.by = term.top; + if(sel.ey > term.bot) + sel.ey = term.bot; + } else { if(sel.by < term.top) { sel.by = term.top; sel.bx = 0; @@ -1264,14 +1266,7 @@ selscroll(int orig, int n) { sel.ey = term.bot; sel.ex = term.col; } - break; - case SEL_RECTANGULAR: - if(sel.by < term.top) - sel.by = term.top; - if(sel.ey > term.bot) - sel.ey = term.bot; - break; - }; + } sel.b.y = sel.by, sel.b.x = sel.bx; sel.e.y = sel.ey, sel.e.x = sel.ex; }