diff options
| author | Glenn Morris | 2012-11-23 17:57:09 -0800 |
|---|---|---|
| committer | Glenn Morris | 2012-11-23 17:57:09 -0800 |
| commit | d125ca15f3751f36a1ec49e3d9f9de1735b43698 (patch) | |
| tree | 5d2764d6a135cdd7d664c8c43f915a14932cd94c /src | |
| parent | 678a34f4f8e93b8c43e5cdfba423189f4767e5c5 (diff) | |
| parent | 6d4e8f62e93b575a1da2cd2b4abeb9dce56e1e52 (diff) | |
| download | emacs-d125ca15f3751f36a1ec49e3d9f9de1735b43698.tar.gz emacs-d125ca15f3751f36a1ec49e3d9f9de1735b43698.zip | |
Merge from emacs-24; up to 2012-11-19T11:36:02Z!yamaoka@jpl.org
Diffstat (limited to 'src')
| -rw-r--r-- | src/.gdbinit | 3 | ||||
| -rw-r--r-- | src/ChangeLog | 14 | ||||
| -rw-r--r-- | src/indent.c | 8 | ||||
| -rw-r--r-- | src/xdisp.c | 2 |
4 files changed, 24 insertions, 3 deletions
diff --git a/src/.gdbinit b/src/.gdbinit index fa580cc99bf..e1ee81e66b5 100644 --- a/src/.gdbinit +++ b/src/.gdbinit | |||
| @@ -495,7 +495,8 @@ define pgx | |||
| 495 | end | 495 | end |
| 496 | xgettype ($g.object) | 496 | xgettype ($g.object) |
| 497 | if ($type == Lisp_String) | 497 | if ($type == Lisp_String) |
| 498 | printf " str=%x[%d]", $g.object, $g.charpos | 498 | xgetptr $g.object |
| 499 | printf " str=0x%x[%d]", ((struct Lisp_String *)$ptr)->data, $g.charpos | ||
| 499 | else | 500 | else |
| 500 | printf " pos=%d", $g.charpos | 501 | printf " pos=%d", $g.charpos |
| 501 | end | 502 | end |
diff --git a/src/ChangeLog b/src/ChangeLog index e5669da5196..32a14ef9e62 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,17 @@ | |||
| 1 | 2012-11-24 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not | ||
| 4 | between bpos_covered and bpos_max. This fixes cursor display when | ||
| 5 | several display strings follow each other. | ||
| 6 | |||
| 7 | * .gdbinit (pgx): If the glyph's object is a string, display the | ||
| 8 | pointer to string data, rather than the value of the string object | ||
| 9 | itself (which barfs under CHECK_LISP_OBJECT_TYPE). | ||
| 10 | |||
| 11 | * indent.c (Fvertical_motion): If the starting position is covered | ||
| 12 | by a display string, return to one position before that, to avoid | ||
| 13 | overshooting it inside move_it_to. (Bug#12930) | ||
| 14 | |||
| 1 | 2012-11-23 Dmitry Antipov <dmantipov@yandex.ru> | 15 | 2012-11-23 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 16 | ||
| 3 | * frame.h (struct frame): Remove display_preempted member | 17 | * frame.h (struct frame): Remove display_preempted member |
diff --git a/src/indent.c b/src/indent.c index eee96061e25..a3abf88feeb 100644 --- a/src/indent.c +++ b/src/indent.c | |||
| @@ -2048,7 +2048,13 @@ whether or not it is currently displayed in some window. */) | |||
| 2048 | comment said this is "so we don't move too far" (2005-01-19 | 2048 | comment said this is "so we don't move too far" (2005-01-19 |
| 2049 | checkin by kfs). But this does nothing useful that I can | 2049 | checkin by kfs). But this does nothing useful that I can |
| 2050 | tell, and it causes Bug#2694 . -- cyd */ | 2050 | tell, and it causes Bug#2694 . -- cyd */ |
| 2051 | move_it_to (&it, PT, -1, -1, -1, MOVE_TO_POS); | 2051 | /* When the position we started from is covered by a display |
| 2052 | string, move_it_to will overshoot it, while vertical-motion | ||
| 2053 | wants to put the cursor _before_ the display string. So in | ||
| 2054 | that case, we move to buffer position before the display | ||
| 2055 | string, and avoid overshooting. */ | ||
| 2056 | move_it_to (&it, disp_string_at_start_p ? PT - 1 : PT, | ||
| 2057 | -1, -1, -1, MOVE_TO_POS); | ||
| 2052 | 2058 | ||
| 2053 | /* IT may move too far if truncate-lines is on and PT lies | 2059 | /* IT may move too far if truncate-lines is on and PT lies |
| 2054 | beyond the right margin. IT may also move too far if the | 2060 | beyond the right margin. IT may also move too far if the |
diff --git a/src/xdisp.c b/src/xdisp.c index 5d260d851ef..2390475ca77 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -14233,7 +14233,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, | |||
| 14233 | GLYPH_BEFORE and GLYPH_AFTER. */ | 14233 | GLYPH_BEFORE and GLYPH_AFTER. */ |
| 14234 | if (!((row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end) | 14234 | if (!((row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end) |
| 14235 | && BUFFERP (glyph->object) && glyph->charpos == pt_old) | 14235 | && BUFFERP (glyph->object) && glyph->charpos == pt_old) |
| 14236 | && bpos_covered < pt_old) | 14236 | && !(bpos_max < pt_old && pt_old <= bpos_covered)) |
| 14237 | { | 14237 | { |
| 14238 | /* An empty line has a single glyph whose OBJECT is zero and | 14238 | /* An empty line has a single glyph whose OBJECT is zero and |
| 14239 | whose CHARPOS is the position of a newline on that line. | 14239 | whose CHARPOS is the position of a newline on that line. |