[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c [emacs-unicode-2]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c [emacs-unicode-2] |
Date: |
Wed, 28 Jul 2004 03:09:58 -0400 |
Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.843.2.17 emacs/src/xdisp.c:1.843.2.18
*** emacs/src/xdisp.c:1.843.2.17 Fri Jul 23 04:30:44 2004
--- emacs/src/xdisp.c Wed Jul 28 07:05:52 2004
***************
*** 5750,5758 ****
{
int x, i, ascent = 0, descent = 0;
! /* Stop when ZV or TO_CHARPOS reached. */
if (!get_next_display_element (it)
! || BUFFER_POS_REACHED_P ())
{
result = MOVE_POS_MATCH_OR_ZV;
break;
--- 5750,5762 ----
{
int x, i, ascent = 0, descent = 0;
! /* Stop when ZV reached.
! We used to stop here when TO_CHARPOS reached as well, but that is
! too soon if this glyph does not fit on this line. So we handle it
! explicitly below. */
if (!get_next_display_element (it)
! || (it->truncate_lines_p
! && BUFFER_POS_REACHED_P ()))
{
result = MOVE_POS_MATCH_OR_ZV;
break;
***************
*** 5812,5817 ****
--- 5816,5823 ----
/* We want to leave anything reaching TO_X to the caller. */
if ((op & MOVE_TO_X) && new_x > to_x)
{
+ if (BUFFER_POS_REACHED_P ())
+ goto buffer_pos_reached;
it->current_x = x;
result = MOVE_X_REACHED;
break;
***************
*** 5839,5850 ****
#ifdef HAVE_WINDOW_SYSTEM
if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
{
! if (!get_next_display_element (it)
! || BUFFER_POS_REACHED_P ())
{
result = MOVE_POS_MATCH_OR_ZV;
break;
}
if (ITERATOR_AT_END_OF_LINE_P (it))
{
result = MOVE_NEWLINE_OR_CR;
--- 5845,5863 ----
#ifdef HAVE_WINDOW_SYSTEM
if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
{
! if (!get_next_display_element (it))
{
result = MOVE_POS_MATCH_OR_ZV;
break;
}
+ if (BUFFER_POS_REACHED_P ())
+ {
+ if (ITERATOR_AT_END_OF_LINE_P (it))
+ result = MOVE_POS_MATCH_OR_ZV;
+ else
+ result = MOVE_LINE_CONTINUED;
+ break;
+ }
if (ITERATOR_AT_END_OF_LINE_P (it))
{
result = MOVE_NEWLINE_OR_CR;
***************
*** 5866,5871 ****
--- 5879,5886 ----
result = MOVE_LINE_CONTINUED;
break;
}
+ else if (BUFFER_POS_REACHED_P ())
+ goto buffer_pos_reached;
else if (new_x > it->first_visible_x)
{
/* Glyph is visible. Increment number of glyphs that
***************
*** 5882,5887 ****
--- 5897,5911 ----
if (result != MOVE_UNDEFINED)
break;
}
+ else if (BUFFER_POS_REACHED_P ())
+ {
+ buffer_pos_reached:
+ it->current_x = x;
+ it->max_ascent = ascent;
+ it->max_descent = descent;
+ result = MOVE_POS_MATCH_OR_ZV;
+ break;
+ }
else if ((op & MOVE_TO_X) && it->current_x >= to_x)
{
/* Stop when TO_X specified and reached. This check is