emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 8c3c506: ; Fix thinko in last commit of filenotify.


From: Michael Albinus
Subject: [Emacs-diffs] master 8c3c506: ; Fix thinko in last commit of filenotify.el
Date: Wed, 23 Sep 2015 19:21:59 +0000

branch: master
commit 8c3c506aa52b96bac8a24ebfd81f403fcfe0228d
Author: Michael Albinus <address@hidden>
Commit: Michael Albinus <address@hidden>

    ; Fix thinko in last commit of filenotify.el
---
 lisp/filenotify.el |   33 +++++++++++++++++----------------
 1 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/lisp/filenotify.el b/lisp/filenotify.el
index d48d3f9..a07f99a 100644
--- a/lisp/filenotify.el
+++ b/lisp/filenotify.el
@@ -327,30 +327,31 @@ DESCRIPTOR should be an object returned by 
`file-notify-add-watch'."
   (let* ((desc (if (consp descriptor) (car descriptor) descriptor))
         (file (if (consp descriptor) (cdr descriptor)))
         (dir (car (gethash desc file-notify-descriptors)))
-        handler registered)
+        (handler (and (stringp dir)
+                       (find-file-name-handler dir 'file-notify-rm-watch)))
+         (registered (gethash desc file-notify-descriptors)))
 
     (when (stringp dir)
       ;; Call low-level function.
-      (setq handler (find-file-name-handler dir 'file-notify-rm-watch))
-      (condition-case nil
-          (if handler
-              ;; A file name handler could exist even if there is no
-              ;; local file notification support.
-              (funcall handler 'file-notify-rm-watch desc)
-
-            (funcall
-             (cond
-              ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch)
-              ((eq file-notify--library 'inotify) 'inotify-rm-watch)
-              ((eq file-notify--library 'w32notify) 'w32notify-rm-watch))
-             desc))
-        (file-notify-error nil))
+      (when (null (cdr registered))
+        (condition-case nil
+            (if handler
+                ;; A file name handler could exist even if there is no local
+                ;; file notification support.
+                (funcall handler 'file-notify-rm-watch desc)
+
+              (funcall
+               (cond
+                ((eq file-notify--library 'gfilenotify) 'gfile-rm-watch)
+                ((eq file-notify--library 'inotify) 'inotify-rm-watch)
+                ((eq file-notify--library 'w32notify) 'w32notify-rm-watch))
+               desc))
+          (file-notify-error nil)))
 
       ;; Modify `file-notify-descriptors'.
       (if (not file)
          (remhash desc file-notify-descriptors)
 
-       (setq registered (gethash desc file-notify-descriptors))
        (setcdr registered
                (delete (assoc file (cdr registered)) (cdr registered)))
        (if (null (cdr registered))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]