]> code.delx.au - gnu-emacs-elpa/commitdiff
fix el-search-hl-post-command-fun auto-removal
authorMichael Heerdegen <michael_heerdegen@web.de>
Tue, 20 Oct 2015 14:27:14 +0000 (16:27 +0200)
committerMichael Heerdegen <michael_heerdegen@web.de>
Sat, 31 Oct 2015 18:16:58 +0000 (19:16 +0100)
packages/el-search/el-search.el

index d51f61bba92f7e203d9080970ece9e1feef8b2bd..e7786c1585341c8c7d4b3b411c5e9c1d4d10a9f4 100644 (file)
@@ -402,21 +402,22 @@ return nil (no error)."
         (apply #'move-overlay el-search-hl-overlay bounds)
       (overlay-put (setq el-search-hl-overlay (apply #'make-overlay bounds))
                    'face 'el-search-match)))
-  (add-hook 'post-command-hook (el-search-hl-post-command-fun (current-buffer)) t))
+  (add-hook 'post-command-hook (el-search-hl-post-command-fun (current-buffer)) t t))
 
 (defun el-search-hl-remove ()
   (when (overlayp el-search-hl-overlay)
     (delete-overlay el-search-hl-overlay)))
 
 (defun el-search-hl-post-command-fun (buf)
-  (lambda ()
-    (when (buffer-live-p buf)
-      (unless (or el-search-keep-hl
-                  (eq this-command 'el-search-query-replace)
-                  (eq this-command 'el-search-pattern))
-        (with-current-buffer buf
-          (el-search-hl-remove)
-          (remove-hook 'post-command-hook #'el-search-hl-post-command-fun t))))))
+  (letrec ((fun (lambda ()
+                  (when (buffer-live-p buf)
+                    (unless (or el-search-keep-hl
+                                (eq this-command 'el-search-query-replace)
+                                (eq this-command 'el-search-pattern))
+                      (with-current-buffer buf
+                        (el-search-hl-remove)
+                        (remove-hook 'post-command-hook fun t)))))))
+    fun))
 
 
 ;;;; Core functions