aboutsummaryrefslogtreecommitdiffstats
path: root/src/indent.c
diff options
context:
space:
mode:
authorRichard M. Stallman1997-05-27 04:59:29 +0000
committerRichard M. Stallman1997-05-27 04:59:29 +0000
commit98136db32ab60663ab450f73e4bf1c3fa12cb2fc (patch)
tree45fb44e0f934d1f4e5f5ce7c66ff267d5328d8ca /src/indent.c
parent098401cfa2769a1be43535cbb401cfff2de036b5 (diff)
downloademacs-98136db32ab60663ab450f73e4bf1c3fa12cb2fc.tar.gz
emacs-98136db32ab60663ab450f73e4bf1c3fa12cb2fc.zip
(compute_motion): Return correctly if skip_invisible
takes us past TO.
Diffstat (limited to 'src/indent.c')
-rw-r--r--src/indent.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/indent.c b/src/indent.c
index 507b8e36cbe..66392353828 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -997,6 +997,8 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
997 { 997 {
998 while (pos == next_boundary) 998 while (pos == next_boundary)
999 { 999 {
1000 int newpos;
1001
1000 /* If the caller says that the screen position came from an earlier 1002 /* If the caller says that the screen position came from an earlier
1001 call to compute_motion, then we've already accounted for the 1003 call to compute_motion, then we've already accounted for the
1002 overlay strings at point. This is only true the first time 1004 overlay strings at point. This is only true the first time
@@ -1020,7 +1022,12 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
1020 (but not necessarily all that there are here), 1022 (but not necessarily all that there are here),
1021 and store in next_boundary the next position where 1023 and store in next_boundary the next position where
1022 we need to call skip_invisible. */ 1024 we need to call skip_invisible. */
1023 pos = skip_invisible (pos, &next_boundary, to, window); 1025 newpos = skip_invisible (pos, &next_boundary, to, window);
1026
1027 if (newpos >= to)
1028 goto after_loop;
1029
1030 pos = newpos;
1024 } 1031 }
1025 1032
1026 /* Handle right margin. */ 1033 /* Handle right margin. */
@@ -1361,6 +1368,8 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
1361 } 1368 }
1362 } 1369 }
1363 1370
1371 after_loop:
1372
1364 /* Remember any final width run in the cache. */ 1373 /* Remember any final width run in the cache. */
1365 if (current_buffer->width_run_cache 1374 if (current_buffer->width_run_cache
1366 && width_run_width == 1 1375 && width_run_width == 1