Subject: bug#13027: closed (Re: bug#13027: Activating mark does not run mark activation hook)

From: [email-masked] (GNU bug Tracking System)
Date: Thu, 29 Nov 2012 20:13:01 +0000

Your bug report

#13027: Activating mark does not run mark activation hook

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
13027: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13027
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#13027: Activating mark does not run mark activation hook
From: Stefan Monnier <[email-masked]>
To: Kelly Dean <[email-masked]>
Cc: [email-masked]
Date: Thu, 29 Nov 2012 15:10:05 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

> The bug is fixed by changing that to:
> (defun activate-mark ()
>   "Activate the mark."
>   (when (mark t)
>     (setq mark-active t)
>     (run-hooks 'activate-mark-hook)
>     (unless transient-mark-mode
>       (setq transient-mark-mode 'lambda))))

Thank you, installed,

        Stefan

Subject: Activating mark does not run mark activation hook
From: Kelly Dean <[email-masked]>
To: [email-masked]
Date: Thu, 29 Nov 2012 02:08:19 -0800 (PST)
List-Id: <debbugs-submit.debbugs.gnu.org>

In 24.2, from emacs -Q
(add-hook 'deactivate-mark-hook (lambda () (message "Deactivate mark hook called.")))
(add-hook 'activate-mark-hook (lambda () (message "Activate mark hook called.")))
C-SPC C-SPC C-SPC C-SPC
In *Messages* you get:

Mark set
Activate mark hook called.
Deactivate mark hook called.
Mark deactivated
Mark activated
Deactivate mark hook called.
Mark deactivated

Notice that the second "Activate mark hook called" is missing.

simple.el has:
(defun activate-mark ()
  "Activate the mark."
  (when (mark t)
    (setq mark-active t)
    (unless transient-mark-mode
      (setq transient-mark-mode 'lambda))))

The bug is fixed by changing that to:
(defun activate-mark ()
  "Activate the mark."
  (when (mark t)
    (setq mark-active t)
    (run-hooks 'activate-mark-hook)
    (unless transient-mark-mode
      (setq transient-mark-mode 'lambda))))