Better comments for the snapping code.

This commit is contained in:
Christoph Lohmann 2013-05-04 08:01:17 +02:00
parent 8618386de9
commit 5938fa9d32

9
st.c
View file

@ -681,6 +681,10 @@ void
selsnap(int mode, int *x, int *y, int direction) { selsnap(int mode, int *x, int *y, int direction) {
switch(mode) { switch(mode) {
case SNAP_WORD: case SNAP_WORD:
/*
* Snap around if the word wraps around at the end or
* beginning of a line.
*/
for(;;) { for(;;) {
if(direction < 0 && *x <= 0) { if(direction < 0 && *x <= 0) {
if(*y > 0 && term.line[*y - 1][term.col-1].mode if(*y > 0 && term.line[*y - 1][term.col-1].mode
@ -708,6 +712,11 @@ selsnap(int mode, int *x, int *y, int direction) {
} }
break; break;
case SNAP_LINE: case SNAP_LINE:
/*
* Snap around if the the previous line or the current one
* has set ATTR_WRAP at its end. Then the whole next or
* previous line will be selected.
*/
*x = (direction < 0) ? 0 : term.col - 1; *x = (direction < 0) ? 0 : term.col - 1;
if(direction < 0 && *y > 0) { if(direction < 0 && *y > 0) {
for(; *y > 0; *y += direction) { for(; *y > 0; *y += direction) {