]> code.delx.au - gnu-emacs/commitdiff
; Fix thinko in last commit of filenotify.el
authorMichael Albinus <michael.albinus@gmx.de>
Wed, 23 Sep 2015 19:21:49 +0000 (21:21 +0200)
committerMichael Albinus <michael.albinus@gmx.de>
Wed, 23 Sep 2015 19:21:49 +0000 (21:21 +0200)
lisp/filenotify.el

index d48d3f94bc61a544a70706b44488f7aa36cd01d7..a07f99adcbf5a5aafad8d3e444bc72db4e501aa0 100644 (file)
@@ -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))