From: Gerd Moellmann Date: Wed, 17 Jan 2001 20:11:33 +0000 (+0000) Subject: (forward_to_next_line_start): Avoid calling X-Git-Tag: emacs-pretest-21.0.96~233 X-Git-Url: https://code.delx.au/gnu-emacs/commitdiff_plain/3aec872292038ac527a651ae98d5c586f00c8a9a (forward_to_next_line_start): Avoid calling get_next_display_element when the newline is already found. This may change the iterator's position, when its current position is equal to the iterator's stop_charpos. --- diff --git a/src/ChangeLog b/src/ChangeLog index 40404210f8..52319b2c35 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,10 @@ 2001-01-17 Gerd Moellmann + * xdisp.c (forward_to_next_line_start): Avoid calling + get_next_display_element when the newline is already found. This + may change the iterator's position, when its current position is + equal to the iterator's stop_charpos. + * dispnew.c (direct_output_for_insert): If char_ins_del_ok is zero, use this method only at the end of a line. diff --git a/src/xdisp.c b/src/xdisp.c index bdbef8a114..00e325b325 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -3507,20 +3507,18 @@ forward_to_next_line_start (it, skipped_p) /* Scan for a newline within MAX_NEWLINE_DISTANCE display elements from buffer text. */ - n = newline_found_p = 0; - while (n < MAX_NEWLINE_DISTANCE - && get_next_display_element (it) - && !newline_found_p) + for (n = newline_found_p = 0; + !newline_found_p && n < MAX_NEWLINE_DISTANCE; + n += STRINGP (it->string) ? 0 : 1) { + get_next_display_element (it); newline_found_p = it->what == IT_CHARACTER && it->c == '\n'; set_iterator_to_next (it, 0); - if (!STRINGP (it->string)) - ++n; } /* If we didn't find a newline near enough, see if we can use a short-cut. */ - if (!newline_found_p && n == MAX_NEWLINE_DISTANCE) + if (n == MAX_NEWLINE_DISTANCE) { int start = IT_CHARPOS (*it); int limit = find_next_newline_no_quit (start, 1);