[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r110507: * editfns.c (save_excursion_
From: |
Dmitry Antipov |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r110507: * editfns.c (save_excursion_save): Use nil if mark points to nowhere. |
Date: |
Thu, 11 Oct 2012 17:23:12 +0400 |
User-agent: |
Bazaar (2.5.0) |
------------------------------------------------------------
revno: 110507
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Thu 2012-10-11 17:23:12 +0400
message:
* editfns.c (save_excursion_save): Use nil if mark points to nowhere.
(save_excursion_restore): Do not restore mark if it was not saved.
modified:
src/ChangeLog
src/editfns.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2012-10-11 04:33:12 +0000
+++ b/src/ChangeLog 2012-10-11 13:23:12 +0000
@@ -1,3 +1,8 @@
+2012-10-11 Dmitry Antipov <address@hidden>
+
+ * editfns.c (save_excursion_save): Use nil if mark points to nowhere.
+ (save_excursion_restore): Do not restore mark if it was not saved.
+
2012-10-11 Paul Eggert <address@hidden>
* marker.c (cached_modiff): EMACS_INT, not int.
=== modified file 'src/editfns.c'
--- a/src/editfns.c 2012-09-23 08:44:20 +0000
+++ b/src/editfns.c 2012-10-11 13:23:12 +0000
@@ -819,9 +819,13 @@
{
bool visible = (XBUFFER (XWINDOW (selected_window)->buffer)
== current_buffer);
+ /* Do not copy the mark if it points to nowhere. */
+ Lisp_Object mark = (XMARKER (BVAR (current_buffer, mark))->buffer
+ ? Fcopy_marker (BVAR (current_buffer, mark), Qnil)
+ : Qnil);
return Fcons (Fpoint_marker (),
- Fcons (Fcopy_marker (BVAR (current_buffer, mark), Qnil),
+ Fcons (mark,
Fcons (visible ? Qt : Qnil,
Fcons (BVAR (current_buffer, mark_active),
selected_window))));
@@ -856,9 +860,14 @@
info = XCDR (info);
tem = XCAR (info);
omark = Fmarker_position (BVAR (current_buffer, mark));
- Fset_marker (BVAR (current_buffer, mark), tem, Fcurrent_buffer ());
- nmark = Fmarker_position (tem);
- unchain_marker (XMARKER (tem));
+ if (NILP (tem))
+ unchain_marker (XMARKER (BVAR (current_buffer, mark)));
+ else
+ {
+ Fset_marker (BVAR (current_buffer, mark), tem, Fcurrent_buffer ());
+ nmark = Fmarker_position (tem);
+ unchain_marker (XMARKER (tem));
+ }
/* visible */
info = XCDR (info);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r110507: * editfns.c (save_excursion_save): Use nil if mark points to nowhere.,
Dmitry Antipov <=