* bug#23933: 25.1.50; Run a buffer-local hook with mapc
@ 2016-07-10 10:18 Tino Calancha
2016-07-10 14:44 ` Eli Zaretskii
2016-07-11 16:06 ` bug#23933: (no subject) Tino Calancha
0 siblings, 2 replies; 18+ messages in thread
From: Tino Calancha @ 2016-07-10 10:18 UTC (permalink / raw
To: 23933; +Cc: kifer
[-- Attachment #1: Type: text/plain, Size: 1595 bytes --]
Prevent calling (funcall t) when running a buffer-local hook
as (mapc #'funcall LOCAL-HOOK).
emacs -Q /tmp
M-! for f in foo bar foo-new bar-new; do echo $f>/tmp/$f;done RET
M-! for f in foo bar; do diff -u /tmp/$f /tmp/${f}-new >> /tmp/patch;done
RET
M-x epatch RET n patch RET C-k RET y n v q y
;; funcall: Symbol’s function definition is void: t
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
From de693cda8c6a174149b523fb4adcfae6d28bc202 Mon Sep 17 00:00:00 2001
From: Tino Calancha <tino.calancha@gmail.com>
Date: Sun, 10 Jul 2016 18:02:16 +0900
Subject: [PATCH] Run a buffer-local hook with mapc
* lisp/vc/ediff-util.el (ediff-really-quit): Avoid to apply funcall on 't'
(Bug#23933).
---
lisp/vc/ediff-util.el | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index a6b88d5..3d2b9a3 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -2522,7 +2522,8 @@ ediff-really-quit
(frame-selected-window warp-frame))
2 1))
- (mapc #'funcall after-quit-hook-internal)
+ ;; after-quit-hook-internal is buffer-local; see
`ediff-filegroup-action'.
+ (mapc (lambda (f) (or (eq f t) (funcall f))) after-quit-hook-internal)
))
;; Returns frame under mouse, if this frame is not a minibuffer
--
2.8.1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
In GNU Emacs 25.1.50.5 (x86_64-pc-linux-gnu, GTK+ Version 3.20.6)
of 2016-07-10
Repository revision: 466ee1b3ea76425d201b5d59950e88251870c836
Ediff 2.81.5 of July 4, 2013;
^ permalink raw reply related [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 10:18 bug#23933: 25.1.50; Run a buffer-local hook with mapc Tino Calancha
@ 2016-07-10 14:44 ` Eli Zaretskii
2016-07-10 15:18 ` Stefan Monnier
2016-07-11 16:06 ` bug#23933: (no subject) Tino Calancha
1 sibling, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2016-07-10 14:44 UTC (permalink / raw
To: Tino Calancha, Stefan Monnier; +Cc: kifer, 23933
> From: Tino Calancha <tino.calancha@gmail.com>
> Date: Sun, 10 Jul 2016 19:18:33 +0900 (JST)
> Cc: kifer@cs.stonybrook.edu
>
> --- a/lisp/vc/ediff-util.el
> +++ b/lisp/vc/ediff-util.el
> @@ -2522,7 +2522,8 @@ ediff-really-quit
> (frame-selected-window warp-frame))
> 2 1))
>
> - (mapc #'funcall after-quit-hook-internal)
> + ;; after-quit-hook-internal is buffer-local; see
> `ediff-filegroup-action'.
> + (mapc (lambda (f) (or (eq f t) (funcall f))) after-quit-hook-internal)
> ))
Thanks, but why do we use mapc to run hooks? We used to have
run-hooks there.
Stefan, why did you make that change? The log message says just "use
lexical-binding"; is something wrong with run-hooks and
lexical-binding living together?
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 14:44 ` Eli Zaretskii
@ 2016-07-10 15:18 ` Stefan Monnier
2016-07-10 15:55 ` Eli Zaretskii
2016-07-10 15:56 ` Eli Zaretskii
0 siblings, 2 replies; 18+ messages in thread
From: Stefan Monnier @ 2016-07-10 15:18 UTC (permalink / raw
To: Eli Zaretskii; +Cc: kifer, Tino Calancha, 23933
>> - (mapc #'funcall after-quit-hook-internal)
>> + ;; after-quit-hook-internal is buffer-local; see `ediff-filegroup-action'.
>> + (mapc (lambda (f) (or (eq f t) (funcall f))) after-quit-hook-internal)
>> ))
> Thanks, but why do we use mapc to run hooks? We used to have
> run-hooks there.
after-quit-hook-internal is a variable, not a hook.
A hook is a symbol whose symbol-value slot holds a list of functions;
this happens to match a dynamically-bound variable, but not
a lexically-bound variable.
Stefan
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 15:18 ` Stefan Monnier
@ 2016-07-10 15:55 ` Eli Zaretskii
2016-07-10 17:01 ` Stefan Monnier
2016-07-10 15:56 ` Eli Zaretskii
1 sibling, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2016-07-10 15:55 UTC (permalink / raw
To: Stefan Monnier; +Cc: kifer, tino.calancha, 23933
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Tino Calancha <tino.calancha@gmail.com>, 23933@debbugs.gnu.org, kifer@cs.stonybrook.edu
> Date: Sun, 10 Jul 2016 11:18:56 -0400
>
> >> - (mapc #'funcall after-quit-hook-internal)
> >> + ;; after-quit-hook-internal is buffer-local; see `ediff-filegroup-action'.
> >> + (mapc (lambda (f) (or (eq f t) (funcall f))) after-quit-hook-internal)
> >> ))
> > Thanks, but why do we use mapc to run hooks? We used to have
> > run-hooks there.
>
> after-quit-hook-internal is a variable, not a hook.
Then how come it includes t in its value?
> A hook is a symbol whose symbol-value slot holds a list of functions;
> this happens to match a dynamically-bound variable, but not
> a lexically-bound variable.
So you are saying we should convert that variable to a hook?
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 15:18 ` Stefan Monnier
2016-07-10 15:55 ` Eli Zaretskii
@ 2016-07-10 15:56 ` Eli Zaretskii
2016-07-10 17:02 ` Stefan Monnier
2016-07-10 18:28 ` Andreas Schwab
1 sibling, 2 replies; 18+ messages in thread
From: Eli Zaretskii @ 2016-07-10 15:56 UTC (permalink / raw
To: Stefan Monnier; +Cc: kifer, tino.calancha, 23933
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Tino Calancha <tino.calancha@gmail.com>, 23933@debbugs.gnu.org, kifer@cs.stonybrook.edu
> Date: Sun, 10 Jul 2016 11:18:56 -0400
>
> A hook is a symbol whose symbol-value slot holds a list of functions;
> this happens to match a dynamically-bound variable, but not
> a lexically-bound variable.
Maybe I misunderstand this, but are you saying a hook (and run-hooks)
cannot be used in a file that uses lexical-binding? If so, we had
better documented that.
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 15:55 ` Eli Zaretskii
@ 2016-07-10 17:01 ` Stefan Monnier
2016-07-10 17:12 ` npostavs
2016-07-10 17:15 ` Eli Zaretskii
0 siblings, 2 replies; 18+ messages in thread
From: Stefan Monnier @ 2016-07-10 17:01 UTC (permalink / raw
To: Eli Zaretskii; +Cc: kifer, tino.calancha, 23933
>> after-quit-hook-internal is a variable, not a hook.
> Then how come it includes t in its value?
A variable can very well hold a list with t inside. As to why/where was
this t added, I don't know. It's probably a good idea to try and track
it down. Maybe because the value of that var was copied from the value
of an actual hook.
Stefan
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 15:56 ` Eli Zaretskii
@ 2016-07-10 17:02 ` Stefan Monnier
2016-07-10 18:28 ` Andreas Schwab
1 sibling, 0 replies; 18+ messages in thread
From: Stefan Monnier @ 2016-07-10 17:02 UTC (permalink / raw
To: Eli Zaretskii; +Cc: kifer, tino.calancha, 23933
>> A hook is a symbol whose symbol-value slot holds a list of functions;
>> this happens to match a dynamically-bound variable, but not
>> a lexically-bound variable.
> Maybe I misunderstand this, but are you saying a hook (and run-hooks)
> cannot be used in a file that uses lexical-binding? If so, we had
> better documented that.
No, the issue is simply that `run-hooks' takes a symbol as argument.
You can do (run-hooks '<mydynvar>) because (symbol-value '<mydynvar>)
works, but you can't do (run-hooks '<mylexvar>) because (symbol-value
'<mylexvar>) won't work.
Using `run-hooks' on a let-bound variable is just a bad idea (just like
mixing let-binding and buffer-local binding on the same variable is
asking for trouble).
Stefan
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:01 ` Stefan Monnier
@ 2016-07-10 17:12 ` npostavs
2016-07-10 21:12 ` Stefan Monnier
2016-07-10 17:15 ` Eli Zaretskii
1 sibling, 1 reply; 18+ messages in thread
From: npostavs @ 2016-07-10 17:12 UTC (permalink / raw
To: Stefan Monnier; +Cc: 23933, kifer, tino.calancha
Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> after-quit-hook-internal is a variable, not a hook.
>> Then how come it includes t in its value?
>
> [...] Maybe because the value of that var was copied from the value
> of an actual hook.
Yes:
(defun ediff-really-quit (reverse-default-keep-variants)
...
(let (...
(after-quit-hook-internal ediff-after-quit-hook-internal)
And as mentioned in the patch, ediff-filegroup-action calls add-hook
with non-nil LOCAL on ediff-after-quit-hook-internal.
- (mapc #'funcall after-quit-hook-internal)
+ ;; after-quit-hook-internal is buffer-local; see `ediff-filegroup-action'.
+ (mapc (lambda (f) (or (eq f t) (funcall f))) after-quit-hook-internal)
))
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:01 ` Stefan Monnier
2016-07-10 17:12 ` npostavs
@ 2016-07-10 17:15 ` Eli Zaretskii
2016-07-10 17:31 ` Tino Calancha
1 sibling, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2016-07-10 17:15 UTC (permalink / raw
To: Stefan Monnier; +Cc: kifer, tino.calancha, 23933
> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: tino.calancha@gmail.com, 23933@debbugs.gnu.org, kifer@cs.stonybrook.edu
> Date: Sun, 10 Jul 2016 13:01:55 -0400
>
> >> after-quit-hook-internal is a variable, not a hook.
> > Then how come it includes t in its value?
>
> A variable can very well hold a list with t inside. As to why/where was
> this t added, I don't know. It's probably a good idea to try and track
> it down. Maybe because the value of that var was copied from the value
> of an actual hook.
Tino, can you figure out why t is there? Perhaps the solution is
simply to remove it?
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:15 ` Eli Zaretskii
@ 2016-07-10 17:31 ` Tino Calancha
2016-07-10 17:41 ` Noam Postavsky
2016-07-10 17:52 ` Eli Zaretskii
0 siblings, 2 replies; 18+ messages in thread
From: Tino Calancha @ 2016-07-10 17:31 UTC (permalink / raw
To: Eli Zaretskii; +Cc: kifer, 23933, tino.calancha, Stefan Monnier, npostavs
On Sun, 10 Jul 2016, Eli Zaretskii wrote:
> Tino, can you figure out why t is there? Perhaps the solution is
> simply to remove it?
Just explained in previous e-mail by Noam.
I have tried another approach: drop the let binding
and call run-hooks over the actual hook, as follows:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index a6b88d5..b50ac6d 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -2439,7 +2439,6 @@ ediff-really-quit
;; restore buffer mode line id's in buffer-A/B/C
(let ((control-buffer ediff-control-buffer)
(meta-buffer ediff-meta-buffer)
- (after-quit-hook-internal ediff-after-quit-hook-internal)
(session-number ediff-meta-session-number)
;; suitable working frame
(warp-frame (if (and (ediff-window-display-p) (eq ediff-grab-mouse
t))
@@ -2522,7 +2521,7 @@ ediff-really-quit
(frame-selected-window warp-frame))
2 1))
- (mapc #'funcall after-quit-hook-internal)
+ (run-hooks 'ediff-after-quit-hook-internal)
))
;; Returns frame under mouse, if this frame is not a minibuffer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
but it doesn't work: the meta-buffer is not shown.
I prefer my initial patch which behaves the same as before
adding the lexical-binding.
Tino
^ permalink raw reply related [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:31 ` Tino Calancha
@ 2016-07-10 17:41 ` Noam Postavsky
2016-07-10 17:52 ` Eli Zaretskii
1 sibling, 0 replies; 18+ messages in thread
From: Noam Postavsky @ 2016-07-10 17:41 UTC (permalink / raw
To: Tino Calancha; +Cc: 23933, kifer, Stefan Monnier
On Sun, Jul 10, 2016 at 1:31 PM, Tino Calancha <tino.calancha@gmail.com> wrote:
> I have tried another approach: drop the let binding
> and call run-hooks over the actual hook, as follows:
[...]
> but it doesn't work: the meta-buffer is not shown.
> I prefer my initial patch which behaves the same as before
> adding the lexical-binding.
The easiest fix might be to just make after-quit-hook-internal a
dynamic variable (i.e., declare it with defvar). But perhaps better is
to stop using add-hook for ediff-after-quit-hook-internal, and just
use push.
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:31 ` Tino Calancha
2016-07-10 17:41 ` Noam Postavsky
@ 2016-07-10 17:52 ` Eli Zaretskii
2016-07-10 18:14 ` Tino Calancha
1 sibling, 1 reply; 18+ messages in thread
From: Eli Zaretskii @ 2016-07-10 17:52 UTC (permalink / raw
To: Tino Calancha; +Cc: kifer, 23933, tino.calancha, monnier, npostavs
> From: Tino Calancha <tino.calancha@gmail.com>
> Date: Mon, 11 Jul 2016 02:31:52 +0900 (JST)
> cc: Stefan Monnier <monnier@iro.umontreal.ca>, tino.calancha@gmail.com,
> 23933@debbugs.gnu.org, kifer@cs.stonybrook.edu,
> npostavs@users.sourceforge.net
>
> > Tino, can you figure out why t is there? Perhaps the solution is
> > simply to remove it?
> Just explained in previous e-mail by Noam.
> I have tried another approach: drop the let binding
> and call run-hooks over the actual hook, as follows:
Can't we simply remove the t? If not, why not?
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:52 ` Eli Zaretskii
@ 2016-07-10 18:14 ` Tino Calancha
0 siblings, 0 replies; 18+ messages in thread
From: Tino Calancha @ 2016-07-10 18:14 UTC (permalink / raw
To: Eli Zaretskii; +Cc: kifer, 23933, Tino Calancha, monnier, npostavs
On Sun, 10 Jul 2016, Eli Zaretskii wrote:
> Can't we simply remove the t? If not, why not?
Yes, we can and it is more readable:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el
index a6b88d5..f98c2f4 100644
--- a/lisp/vc/ediff-util.el
+++ b/lisp/vc/ediff-util.el
@@ -2522,7 +2522,7 @@ ediff-really-quit
(frame-selected-window warp-frame))
2 1))
- (mapc #'funcall after-quit-hook-internal)
+ (mapc #'funcall (delq t after-quit-hook-internal))
))
;; Returns frame under mouse, if this frame is not a minibuffer
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
I also tried Noam suggestion about using push instead of add-hook on
ediff-after-quit-hook-internal, that works also OK:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el
index 7f0db5d..a092218 100644
--- a/lisp/vc/ediff-mult.el
+++ b/lisp/vc/ediff-mult.el
@@ -1904,13 +1904,12 @@ ediff-filegroup-action
file1 file2
;; provide startup hooks
`(list (lambda ()
- (add-hook
- 'ediff-after-quit-hook-internal
+ (push
(lambda ()
(if (ediff-buffer-live-p
,(current-buffer))
(ediff-show-meta-buffer
,(current-buffer) ,session-number)))
- nil 'local)
+ ediff-after-quit-hook-internal)
(setq ediff-meta-buffer ,(current-buffer)
ediff-meta-session-number
,session-number)
@@ -1933,15 +1932,14 @@ ediff-filegroup-action
file1
;; provide startup hooks
`(list (lambda ()
- (add-hook
- 'ediff-after-quit-hook-internal
+ (push
(lambda ()
(if (ediff-buffer-live-p
,(current-buffer))
(ediff-show-meta-buffer
,(current-buffer)
,session-number)))
- nil 'local)
+ ediff-after-quit-hook-internal)
(setq ediff-meta-buffer ,(current-buffer)
ediff-meta-session-number
,session-number)
@@ -1962,15 +1960,14 @@ ediff-filegroup-action
file1 file2
;; provide startup hooks
`(list (lambda ()
- (add-hook
- 'ediff-after-quit-hook-internal
+ (push
(lambda ()
(if (ediff-buffer-live-p
,(current-buffer))
(ediff-show-meta-buffer
,(current-buffer)
,session-number)))
- nil 'local)
+ ediff-after-quit-hook-internal)
(setq ediff-meta-buffer ,(current-buffer)
ediff-meta-session-number
,session-number)
@@ -1991,15 +1988,14 @@ ediff-filegroup-action
file1 file2 file3
;; arrange startup hooks
`(list (lambda ()
- (add-hook
- 'ediff-after-quit-hook-internal
+ (push
(lambda ()
(if (ediff-buffer-live-p
,(current-buffer))
(ediff-show-meta-buffer
,(current-buffer)
,session-number)))
- nil 'local)
+ ediff-after-quit-hook-internal)
(setq ediff-merge-store-file
,(if (ediff-nonempty-string-p
merge-autostore-dir)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
What aproach looks better?
^ permalink raw reply related [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 15:56 ` Eli Zaretskii
2016-07-10 17:02 ` Stefan Monnier
@ 2016-07-10 18:28 ` Andreas Schwab
1 sibling, 0 replies; 18+ messages in thread
From: Andreas Schwab @ 2016-07-10 18:28 UTC (permalink / raw
To: Eli Zaretskii; +Cc: kifer, tino.calancha, Stefan Monnier, 23933
Eli Zaretskii <eliz@gnu.org> writes:
> Maybe I misunderstand this, but are you saying a hook (and run-hooks)
> cannot be used in a file that uses lexical-binding?
A hook is always a global variable.
Andreas.
--
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 17:12 ` npostavs
@ 2016-07-10 21:12 ` Stefan Monnier
2016-07-11 16:02 ` Tino Calancha
0 siblings, 1 reply; 18+ messages in thread
From: Stefan Monnier @ 2016-07-10 21:12 UTC (permalink / raw
To: npostavs; +Cc: 23933, kifer, tino.calancha
> (defun ediff-really-quit (reverse-default-keep-variants)
> ...
> (let (...
> (after-quit-hook-internal ediff-after-quit-hook-internal)
> And as mentioned in the patch, ediff-filegroup-action calls add-hook
> with non-nil LOCAL on ediff-after-quit-hook-internal.
And there we have a problem. When t is encountered in the buffer-local
part of ediff-after-quit-hook-internal, it means to run the global part
of ediff-after-quit-hook-internal, but when we copy the list to
after-quit-hook-internal, this link is broken and run-hooks can't know
that a t in after-quit-hook-internal means to run the functions found in
the global part of ediff-after-quit-hook-internal.
Or looked at it another way, this let-binding does not copy the whole
content of the hook, only the buffer-local part of it which is not
sufficient when the hook has a buffer-local value as well as a non-nil
global value.
Most likely it works OK in practice because
ediff-after-quit-hook-internal typically has a nil global binding.
It might make sense to use something like:
;; FIXME: Here we ignore the global part of the
;; ediff-after-quit-hook-internal hook.
(after-quit-hook-internal (remq t ediff-after-quit-hook-internal))
-- Stefan
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-10 21:12 ` Stefan Monnier
@ 2016-07-11 16:02 ` Tino Calancha
2016-07-11 16:05 ` Tino Calancha
0 siblings, 1 reply; 18+ messages in thread
From: Tino Calancha @ 2016-07-11 16:02 UTC (permalink / raw
To: Stefan Monnier; +Cc: npostavs, tino.calancha, kifer, 23933
On Sun, 10 Jul 2016, Stefan Monnier wrote:
> It might make sense to use something like:
>
> ;; FIXME: Here we ignore the global part of the
> ;; ediff-after-quit-hook-internal hook.
> (after-quit-hook-internal (remq t ediff-after-quit-hook-internal))
Thank you very much Stefan for the detailed comments; they really help
me to understand deeply the issue.
I have pushed your suggested patch to the master branch.
Thanks also to Noam and Eli to helping fixing this bug.
Tino
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: 25.1.50; Run a buffer-local hook with mapc
2016-07-11 16:02 ` Tino Calancha
@ 2016-07-11 16:05 ` Tino Calancha
0 siblings, 0 replies; 18+ messages in thread
From: Tino Calancha @ 2016-07-11 16:05 UTC (permalink / raw
To: Tino Calancha; +Cc: kifer, npostavs, Stefan Monnier, 23933
On Tue, 12 Jul 2016, Tino Calancha wrote:
> Thanks also to Noam and Eli to helping fixing this bug.
And thanks also to Andreas.
^ permalink raw reply [flat|nested] 18+ messages in thread
* bug#23933: (no subject)
2016-07-10 10:18 bug#23933: 25.1.50; Run a buffer-local hook with mapc Tino Calancha
2016-07-10 14:44 ` Eli Zaretskii
@ 2016-07-11 16:06 ` Tino Calancha
1 sibling, 0 replies; 18+ messages in thread
From: Tino Calancha @ 2016-07-11 16:06 UTC (permalink / raw
To: 23933-done
Fixed in the master branch
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2016-07-11 16:06 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-10 10:18 bug#23933: 25.1.50; Run a buffer-local hook with mapc Tino Calancha
2016-07-10 14:44 ` Eli Zaretskii
2016-07-10 15:18 ` Stefan Monnier
2016-07-10 15:55 ` Eli Zaretskii
2016-07-10 17:01 ` Stefan Monnier
2016-07-10 17:12 ` npostavs
2016-07-10 21:12 ` Stefan Monnier
2016-07-11 16:02 ` Tino Calancha
2016-07-11 16:05 ` Tino Calancha
2016-07-10 17:15 ` Eli Zaretskii
2016-07-10 17:31 ` Tino Calancha
2016-07-10 17:41 ` Noam Postavsky
2016-07-10 17:52 ` Eli Zaretskii
2016-07-10 18:14 ` Tino Calancha
2016-07-10 15:56 ` Eli Zaretskii
2016-07-10 17:02 ` Stefan Monnier
2016-07-10 18:28 ` Andreas Schwab
2016-07-11 16:06 ` bug#23933: (no subject) Tino Calancha
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.