From 893e62ee7e3630c981adb3efa39ef409500d7657 Mon Sep 17 00:00:00 2001 From: John Shahid Date: Sat, 23 Jun 2018 11:12:44 -0400 Subject: [PATCH] Avoid turning on the global-minor-mode recursively (Bug#31793) * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Reset the buffer-list inside ,MODE-enable-in-buffers to avoid enabling the mode recursively --- lisp/emacs-lisp/easy-mmode.el | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index b83b53a8e5..648b88ca77 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -474,7 +474,9 @@ define-globalized-minor-mode ;; The function that calls TURN-ON in each buffer. (defun ,MODE-enable-in-buffers () - (dolist (buf ,MODE-buffers) + (let ((buffers ,MODE-buffers)) + (setq ,MODE-buffers nil) + (dolist (buf buffers) (when (buffer-live-p buf) (with-current-buffer buf (unless ,MODE-set-explicitly @@ -484,12 +486,11 @@ define-globalized-minor-mode (,mode -1) (funcall #',turn-on)) (funcall #',turn-on)))) - (setq ,MODE-major-mode major-mode))))) + (setq ,MODE-major-mode major-mode)))))) (put ',MODE-enable-in-buffers 'definition-name ',global-mode) (defun ,MODE-check-buffers () (,MODE-enable-in-buffers) - (setq ,MODE-buffers nil) (remove-hook 'post-command-hook ',MODE-check-buffers)) (put ',MODE-check-buffers 'definition-name ',global-mode) -- 2.18.0