Mercurial > emacs
changeset 7485:a1b7f72e0ea2
(save_excursion_restore): Don't run activate-mark-hook
if mark position is unchanged.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Fri, 13 May 1994 08:29:22 +0000 |
parents | 5a10d0a7c8a1 |
children | cfe4840ffde9 |
files | src/editfns.c |
diffstat | 1 files changed, 10 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/editfns.c Fri May 13 08:22:50 1994 +0000 +++ b/src/editfns.c Fri May 13 08:29:22 1994 +0000 @@ -295,7 +295,7 @@ save_excursion_restore (info) register Lisp_Object info; { - register Lisp_Object tem, tem1; + register Lisp_Object tem, tem1, omark, nmark; tem = Fmarker_buffer (Fcar (info)); /* If buffer being returned to is now deleted, avoid error */ @@ -309,7 +309,9 @@ Fgoto_char (tem); unchain_marker (tem); tem = Fcar (Fcdr (info)); + omark = Fmarker_position (current_buffer->mark); Fset_marker (current_buffer->mark, tem, Fcurrent_buffer ()); + nmark = Fmarker_position (tem); unchain_marker (tem); tem = Fcdr (Fcdr (info)); #if 0 /* We used to make the current buffer visible in the selected window @@ -326,8 +328,14 @@ current_buffer->mark_active = Fcdr (tem); if (!NILP (Vrun_hooks)) { + /* If mark is active now, and either was not active + or was at a different place, run the activate hook. */ if (! NILP (current_buffer->mark_active)) - call1 (Vrun_hooks, intern ("activate-mark-hook")); + { + if (! EQ (omark, nmark)) + call1 (Vrun_hooks, intern ("activate-mark-hook")); + } + /* If mark has ceased to be active, run deactivate hook. */ else if (! NILP (tem1)) call1 (Vrun_hooks, intern ("deactivate-mark-hook")); }