[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c,v
From: |
Kim F. Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c,v |
Date: |
Mon, 17 Jul 2006 14:25:06 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Kim F. Storm <kfstorm> 06/07/17 14:25:05
Index: xdisp.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/xdisp.c,v
retrieving revision 1.1110
retrieving revision 1.1111
diff -u -b -r1.1110 -r1.1111
--- xdisp.c 17 Jul 2006 07:46:05 -0000 1.1110
+++ xdisp.c 17 Jul 2006 14:25:05 -0000 1.1111
@@ -3880,7 +3880,7 @@
{
Lisp_Object form;
Lisp_Object location, value;
- struct text_pos start_pos;
+ struct text_pos start_pos, save_pos;
int valid_p;
/* If SPEC is a list of the form `(when FORM . VALUE)', evaluate FORM.
@@ -4097,7 +4097,10 @@
/* Save current settings of IT so that we can restore them
when we are finished with the glyph property value. */
+ save_pos = it->position;
+ it->position = *position;
push_it (it);
+ it->position = save_pos;
it->area = TEXT_AREA;
it->what = IT_IMAGE;
@@ -4171,7 +4174,10 @@
{
/* Save current settings of IT so that we can restore them
when we are finished with the glyph property value. */
+ save_pos = it->position;
+ it->position = *position;
push_it (it);
+ it->position = save_pos;
if (NILP (location))
it->area = TEXT_AREA;
@@ -4983,6 +4989,12 @@
case GET_FROM_STRETCH:
it->object = p->u.comp.object;
break;
+ case GET_FROM_BUFFER:
+ it->object = it->w->buffer;
+ break;
+ case GET_FROM_STRING:
+ it->object = it->string;
+ break;
}
it->end_charpos = p->end_charpos;
it->string_nchars = p->string_nchars;
@@ -5302,7 +5314,6 @@
xassert (CHARPOS (pos) >= BEGV && CHARPOS (pos) <= ZV);
it->current.pos = it->position = pos;
- XSETBUFFER (it->object, current_buffer);
it->end_charpos = ZV;
it->dpvec = NULL;
it->current.dpvec_index = -1;
@@ -5800,14 +5811,12 @@
{
IT_STRING_BYTEPOS (*it) += it->len;
IT_STRING_CHARPOS (*it) += it->cmp_len;
- it->object = it->string;
goto consider_string_end;
}
else if (it->method == GET_FROM_BUFFER)
{
IT_BYTEPOS (*it) += it->len;
IT_CHARPOS (*it) += it->cmp_len;
- it->object = it->w->buffer;
}
break;
@@ -6047,9 +6056,7 @@
}
}
- /* Record what we have and where it came from. Note that we store a
- buffer position in IT->position although it could arguably be a
- string position. */
+ /* Record what we have and where it came from. */
it->what = IT_CHARACTER;
it->object = it->string;
it->position = position;
@@ -6764,6 +6771,10 @@
if (reached)
break;
}
+ else if (BUFFERP (it->object)
+ && it->method == GET_FROM_BUFFER
+ && IT_CHARPOS (*it) >= to_charpos)
+ skip = MOVE_POS_MATCH_OR_ZV;
else
skip = move_it_in_display_line_to (it, to_charpos, -1, MOVE_TO_POS);
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kim F. Storm, 2006/07/01
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Kim F. Storm, 2006/07/10
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Thien-Thi Nguyen, 2006/07/17
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v,
Kim F. Storm <=
- [Emacs-diffs] Changes to emacs/src/xdisp.c,v, Richard M. Stallman, 2006/07/28