[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r112274: Fix vertical cursor motion w
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r112274: Fix vertical cursor motion when there are overlay strings at EOL. |
Date: |
Sat, 13 Apr 2013 11:54:02 +0300 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 112274
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2013-04-13 11:54:02 +0300
message:
Fix vertical cursor motion when there are overlay strings at EOL.
src/indent.c (Fvertical_motion): Don't consider display strings on
overlay strings as display strings on the buffer position we
started from. This prevents vertical cursor motion from jumping
more than one line when there's an overlay string with a display
property at end of line.
Reported by Karl Chen <address@hidden> in
http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
modified:
src/ChangeLog
src/indent.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-04-12 17:32:52 +0000
+++ b/src/ChangeLog 2013-04-13 08:54:02 +0000
@@ -1,3 +1,13 @@
+2013-04-13 Eli Zaretskii <address@hidden>
+
+ * indent.c (Fvertical_motion): Don't consider display strings on
+ overlay strings as display strings on the buffer position we
+ started from. This prevents vertical cursor motion from jumping
+ more than one line when there's an overlay string with a display
+ property at end of line.
+ Reported by Karl Chen <address@hidden> in
+ http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html.
+
2013-04-12 Stefan Monnier <address@hidden>
* window.c (select_window): `record_buffer' even if window is
=== modified file 'src/indent.c'
--- a/src/indent.c 2013-04-02 01:54:56 +0000
+++ b/src/indent.c 2013-04-13 08:54:02 +0000
@@ -2006,11 +2006,15 @@
const char *s = SSDATA (it.string);
const char *e = s + SBYTES (it.string);
+ disp_string_at_start_p =
/* If it.area is anything but TEXT_AREA, we need not bother
about the display string, as it doesn't affect cursor
positioning. */
- disp_string_at_start_p =
- it.string_from_display_prop_p && it.area == TEXT_AREA;
+ it.area == TEXT_AREA
+ && it.string_from_display_prop_p
+ /* A display string on anything but buffer text (e.g., on
+ an overlay string) doesn't affect cursor positioning. */
+ && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER);
while (s < e)
{
if (*s++ == '\n')
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r112274: Fix vertical cursor motion when there are overlay strings at EOL.,
Eli Zaretskii <=