1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-31 20:02:42 +00:00

(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.
This commit is contained in:
Gerd Moellmann 2001-01-17 20:11:33 +00:00
parent 35e8600f86
commit 3aec872292
2 changed files with 10 additions and 7 deletions

View File

@ -1,5 +1,10 @@
2001-01-17 Gerd Moellmann <gerd@gnu.org>
* 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.

View File

@ -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);