Also make sure y never exceeds term.row-1 even if ATTR_WRAP is set for
some reason.
---
 st.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/st.c b/st.c
index 4d383be..ac3c9f1 100644
--- a/st.c
+++ b/st.c
@@ -765,15 +765,15 @@ selsnap(int *x, int *y, int direction) {
                 * previous line will be selected.
                 */
                *x = (direction < 0) ? 0 : term.col - 1;
-               if(direction < 0 && *y > 0) {
+               if(direction < 0) {
                        for(; *y > 0; *y += direction) {
                                if(!(term.line[*y-1][term.col-1].mode
                                                & ATTR_WRAP)) {
                                        break;
                                }
                        }
-               } else if(direction > 0 && *y < term.row-1) {
-                       for(; *y < term.row; *y += direction) {
+               } else if(direction > 0) {
+                       for(; *y < term.row-1; *y += direction) {
                                if(!(term.line[*y][term.col-1].mode
                                                & ATTR_WRAP)) {
                                        break;
-- 
1.8.4


Reply via email to