# HG changeset patch # User Gerd Moellmann # Date 971791664 0 # Node ID bf84251f474b59bd89eae360a97291a9b149d7a8 # Parent 6c986070499e82ebfdc684369cace64c759afbbb (forward_to_next_line_start): Switch iterator's handling of selective display off while searching for the next line start. diff -r 6c986070499e -r bf84251f474b src/xdisp.c --- a/src/xdisp.c Tue Oct 17 12:59:41 2000 +0000 +++ b/src/xdisp.c Tue Oct 17 14:07:44 2000 +0000 @@ -3267,9 +3267,15 @@ struct it *it; int *skipped_p; { - int newline_found_p, n; + int old_selective, newline_found_p, n; const int MAX_NEWLINE_DISTANCE = 500; + /* Don't handle selective display in the following. It's (a) + unnecessary and (b) leads to an infinite recursion because + next_element_from_ellipsis indirectly calls this function. */ + old_selective = it->selective; + it->selective = 0; + /* Scan for a newline within MAX_NEWLINE_DISTANCE display elements from buffer text. */ n = newline_found_p = 0; @@ -3318,6 +3324,7 @@ } } + it->selective = old_selective; return newline_found_p; } @@ -4147,7 +4154,10 @@ } } else - reseat_at_next_visible_line_start (it, 1); + { + it->method = next_element_from_buffer; + reseat_at_next_visible_line_start (it, 1); + } return get_next_display_element (it); }