Fix for moving caret to the line beginning/ending when word-wrapping is enabled

This commit is contained in:
Sergey Sharybin 2010-12-17 20:24:13 +00:00
parent 8b28c24d16
commit 96dfaa215c

@ -1541,6 +1541,7 @@ static void wrap_move_bol(SpaceText *st, ARegion *ar, short sel)
*charp= endj; *charp= endj;
if(j>=oldc) { if(j>=oldc) {
if(ch=='\0') *charp= start;
loop= 0; loop= 0;
break; break;
} }
@ -1549,10 +1550,11 @@ static void wrap_move_bol(SpaceText *st, ARegion *ar, short sel)
start= end; start= end;
end += max; end += max;
chop= 0; chop= 1;
} }
else if(ch==' ' || ch=='-' || ch=='\0') { else if(ch==' ' || ch=='-' || ch=='\0') {
if(j>=oldc) { if(j>=oldc) {
*charp= start;
loop= 0; loop= 0;
break; break;
} }
@ -1603,17 +1605,18 @@ static void wrap_move_eol(SpaceText *st, ARegion *ar, short sel)
while(chars--) { while(chars--) {
if(i-start>=max) { if(i-start>=max) {
if(chop) endj= j-1;
if(endj>=oldc) { if(endj>=oldc) {
*charp= endj; if(ch=='\0') *charp= (*linep)->len;
else *charp= endj;
loop= 0; loop= 0;
break; break;
} }
if(chop) endj= j;
start= end; start= end;
end += max; end += max;
chop= 0; chop= 1;
} else if(ch=='\0') { } else if(ch=='\0') {
*charp= (*linep)->len; *charp= (*linep)->len;
loop= 0; loop= 0;