diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 665620ff375..c0290c57a50 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2013-01-12 Eli Zaretskii + + * 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 * autorevert.el: Use cl-lib instead of cl. diff --git a/lisp/autorevert.el b/lisp/autorevert.el index fae2b88b3e2..60235cdd77b 100644 --- a/lisp/autorevert.el +++ b/lisp/autorevert.el @@ -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