Fix filtering of file notification events in autorevert.el.
authorEli Zaretskii <eliz@gnu.org>
Sat, 12 Jan 2013 11:25:39 +0000 (13:25 +0200)
committerEli Zaretskii <eliz@gnu.org>
Sat, 12 Jan 2013 11:25:39 +0000 (13:25 +0200)
 lisp/autorevert.el (auto-revert-notify-handler): Fix filtering of
 file notification by ACTION. For filtering by file name, compare
 only the non-directory part of the file name.

lisp/ChangeLog
lisp/autorevert.el

index 665620f..c0290c5 100644 (file)
@@ -1,3 +1,9 @@
+2013-01-12  Eli Zaretskii  <eliz@gnu.org>
+
+       * autorevert.el (auto-revert-notify-handler): Fix filtering of
+       file notification by ACTION. For filtering by file name, compare
+       only the non-directory part of the file name.
+
 2013-01-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * autorevert.el: Use cl-lib instead of cl.
index fae2b88..60235cd 100644 (file)
@@ -528,13 +528,17 @@ will use an up-to-date value of `auto-revert-interval'"
        ;; Check, that event is meant for us.
        ;; TODO: Filter events which stop watching, like `move' or `removed'.
        (cl-assert descriptor)
-       (when (featurep 'inotify) (cl-assert (memq 'modify descriptor)))
-       (when (featurep 'w32notify) (cl-assert (eq 'modified descriptor)))
+       (when (featurep 'inotify) (cl-assert (memq 'modify action)))
+       (when (featurep 'w32notify) (cl-assert (eq 'modified action)))
        (cl-assert (bufferp buffer))
        (when (stringp file)
          (cl-assert (string-equal
-                      (directory-file-name file)
-                      (directory-file-name (buffer-file-name buffer)))))
+                     ;; w32notify returns the basename of the file
+                     ;; without its leading directories; inotify
+                     ;; returns its full absolute file name.
+                      (file-name-nondirectory (directory-file-name file))
+                      (file-name-nondirectory (directory-file-name
+                                              (buffer-file-name buffer))))))
 
        ;; Mark buffer modified.
        (with-current-buffer buffer