diff options
| -rw-r--r-- | src/ChangeLog | 10 | ||||
| -rw-r--r-- | src/indent.c | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 08f33eb7d02..af2d38d2e87 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,13 @@ | |||
| 1 | 2013-04-13 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * indent.c (Fvertical_motion): Don't consider display strings on | ||
| 4 | overlay strings as display strings on the buffer position we | ||
| 5 | started from. This prevents vertical cursor motion from jumping | ||
| 6 | more than one line when there's an overlay string with a display | ||
| 7 | property at end of line. | ||
| 8 | Reported by Karl Chen <Karl.Chen@quarl.org> in | ||
| 9 | http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00362.html. | ||
| 10 | |||
| 1 | 2013-04-12 Stefan Monnier <monnier@iro.umontreal.ca> | 11 | 2013-04-12 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 12 | ||
| 3 | * window.c (select_window): `record_buffer' even if window is | 13 | * window.c (select_window): `record_buffer' even if window is |
diff --git a/src/indent.c b/src/indent.c index 67796ab8a8f..47358e17db8 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -2006,11 +2006,15 @@ whether or not it is currently displayed in some window. */) | |||
| 2006 | const char *s = SSDATA (it.string); | 2006 | const char *s = SSDATA (it.string); |
| 2007 | const char *e = s + SBYTES (it.string); | 2007 | const char *e = s + SBYTES (it.string); |
| 2008 | 2008 | ||
| 2009 | disp_string_at_start_p = | ||
| 2009 | /* If it.area is anything but TEXT_AREA, we need not bother | 2010 | /* If it.area is anything but TEXT_AREA, we need not bother |
| 2010 | about the display string, as it doesn't affect cursor | 2011 | about the display string, as it doesn't affect cursor |
| 2011 | positioning. */ | 2012 | positioning. */ |
| 2012 | disp_string_at_start_p = | 2013 | it.area == TEXT_AREA |
| 2013 | it.string_from_display_prop_p && it.area == TEXT_AREA; | 2014 | && it.string_from_display_prop_p |
| 2015 | /* A display string on anything but buffer text (e.g., on | ||
| 2016 | an overlay string) doesn't affect cursor positioning. */ | ||
| 2017 | && (it.sp > 0 && it.stack[it.sp - 1].method == GET_FROM_BUFFER); | ||
| 2014 | while (s < e) | 2018 | while (s < e) |
| 2015 | { | 2019 | { |
| 2016 | if (*s++ == '\n') | 2020 | if (*s++ == '\n') |