[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c
From: |
Kim F . Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c |
Date: |
Fri, 03 Sep 2004 09:05:43 -0400 |
Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.901 emacs/src/xdisp.c:1.902
*** emacs/src/xdisp.c:1.901 Thu Sep 2 17:01:20 2004
--- emacs/src/xdisp.c Thu Sep 2 22:34:07 2004
***************
*** 306,311 ****
--- 306,312 ----
extern Lisp_Object Qheight;
extern Lisp_Object QCwidth, QCheight, QCascent;
extern Lisp_Object Qscroll_bar;
+ extern Lisp_Object Qcursor;
/* Non-nil means highlight trailing whitespace. */
***************
*** 10647,10652 ****
--- 10648,10654 ----
{
struct glyph *glyph = row->glyphs[TEXT_AREA];
struct glyph *end = glyph + row->used[TEXT_AREA];
+ struct glyph *cursor = NULL;
/* The first glyph that starts a sequence of glyphs from string. */
struct glyph *string_start;
/* The X coordinate of string_start. */
***************
*** 10656,10661 ****
--- 10658,10664 ----
/* The last known character position before string_start. */
int string_before_pos;
int x = row->x;
+ int cursor_x = x;
int pt_old = PT - delta;
/* Skip over glyphs not having an object at the start of the row.
***************
*** 10688,10699 ****
string_start = glyph;
string_start_x = x;
/* Skip all glyphs from string. */
! SKIP_GLYPHS (glyph, end, x, STRINGP (glyph->object));
}
}
! if (string_start
! && (glyph == end || !BUFFERP (glyph->object) || last_pos > pt_old))
{
/* We may have skipped over point because the previous glyphs
are from string. As there's no easy way to know the
--- 10691,10719 ----
string_start = glyph;
string_start_x = x;
/* Skip all glyphs from string. */
! do
! {
! if ((cursor == NULL || glyph > cursor)
! && !NILP (Fget_char_property (make_number ((glyph)->charpos),
! Qcursor, (glyph)->object)))
! {
! cursor = glyph;
! cursor_x = x;
! }
! x += glyph->pixel_width;
! ++glyph;
! }
! while (glyph < end && STRINGP (glyph->object));
}
}
! if (cursor != NULL)
! {
! glyph = cursor;
! x = cursor_x;
! }
! else if (string_start
! && (glyph == end || !BUFFERP (glyph->object) || last_pos > pt_old))
{
/* We may have skipped over point because the previous glyphs
are from string. As there's no easy way to know the
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Steven Tamm, 2004/09/02
- [Emacs-diffs] Changes to emacs/src/xdisp.c,
Kim F . Storm <=
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2004/09/04
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2004/09/04
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2004/09/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2004/09/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2004/09/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2004/09/09
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2004/09/18
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2004/09/28
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2004/09/29