aboutsummaryrefslogtreecommitdiff
path: root/st.c
diff options
context:
space:
mode:
Diffstat (limited to 'st.c')
-rw-r--r--st.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/st.c b/st.c
index 533fb0a..d73aaa1 100644
--- a/st.c
+++ b/st.c
@@ -681,6 +681,10 @@ void
681selsnap(int mode, int *x, int *y, int direction) { 681selsnap(int mode, int *x, int *y, int direction) {
682 switch(mode) { 682 switch(mode) {
683 case SNAP_WORD: 683 case SNAP_WORD:
684 /*
685 * Snap around if the word wraps around at the end or
686 * beginning of a line.
687 */
684 for(;;) { 688 for(;;) {
685 if(direction < 0 && *x <= 0) { 689 if(direction < 0 && *x <= 0) {
686 if(*y > 0 && term.line[*y - 1][term.col-1].mode 690 if(*y > 0 && term.line[*y - 1][term.col-1].mode
@@ -708,6 +712,11 @@ selsnap(int mode, int *x, int *y, int direction) {
708 } 712 }
709 break; 713 break;
710 case SNAP_LINE: 714 case SNAP_LINE:
715 /*
716 * Snap around if the the previous line or the current one
717 * has set ATTR_WRAP at its end. Then the whole next or
718 * previous line will be selected.
719 */
711 *x = (direction < 0) ? 0 : term.col - 1; 720 *x = (direction < 0) ? 0 : term.col - 1;
712 if(direction < 0 && *y > 0) { 721 if(direction < 0 && *y > 0) {
713 for(; *y > 0; *y += direction) { 722 for(; *y > 0; *y += direction) {