Commit c362f195 authored by Xue Fuqiao's avatar Xue Fuqiao
Browse files

Merge from mainline.

parents d3ffe17c b9110c6b
2013-06-03 Michael Albinus <>
* (HAVE_GFILENOTIFY): Check for gio >= 2.24.
2013-06-03 Eli Zaretskii <>
* (HAVE_GFILENOTIFY): Do not change $LIBS.
2013-06-03 Jan Djärv <>
* (HAVE_GLIB): Add GLib check. Set XGSELOBJ if GLib is
used. Remove xgselect.o from XOBJ.
2013-06-03 Michael Albinus <>
* (file-notification): New option, replaces inotify option.
(HAVE_W32): Remove w32notify.o.
(with_file_notification): Add checks for glib and w32. Adapt check
for inotify.
(Summary): Add entry for file notification.
* autogen/ Add entries for HAVE_GFILENOTIFY,
2013-06-02 Juanma Barranquero <>
* .bzrignore: Ignore dirs libexec/, share/ and var/.
2013-06-02 Eric Ludlam <>
* grammars/srecode-template.wy (variable): Accept a single number
as a variable value. Allows the 'priority' to be set to a number.
(wisent-srecode-template-lexer): Move number up so it can be
2013-05-16 Glenn Morris <>
* cus-test.el (cus-test-cus-load-groups): New function.
......@@ -125,6 +125,10 @@ opt-read-fcn
: SET symbol insertable-string-list newline
(VARIABLE-TAG $2 nil $3)
| SET symbol number newline
;; This so a common error w/ priority works.
;; Note that "number" still has a string value in the lexer.
(VARIABLE-TAG $2 nil (list $3))
| SHOW symbol newline
(VARIABLE-TAG $2 nil t)
......@@ -260,8 +264,8 @@ It ignores whitespace, newlines and comments."
......@@ -132,7 +132,7 @@ along with GNU Emacs. If not, see <>. */
#if !defined _FORTIFY_SOURCE && defined __OPTIMIZE__ && __OPTIMIZE__
# define _FORTIFY_SOURCE 2
/* Define to 1 if futimesat mishandles a NULL file name. */
......@@ -547,6 +547,9 @@ along with GNU Emacs. If not, see <>. */
/* Define to 1 if you have the `get_current_dir_name' function. */
/* Define to 1 to use glib's notify. */
/* Define to 1 if you have a gif (or ungif) library. */
#undef HAVE_GIF
......@@ -1140,6 +1143,9 @@ along with GNU Emacs. If not, see <>. */
/* Define to 1 if you have the <vfork.h> header file. */
/* Define to 1 to use w32notify. */
/* Define to 1 if you have the <wchar.h> header file. */
......@@ -1496,6 +1502,9 @@ along with GNU Emacs. If not, see <>. */
/* Define to nonzero if you want access control list support. */
#undef USE_ACL
/* Define to 1 if if using file notifications. */
/* Define to 1 if using GTK. */
#undef USE_GTK
......@@ -1836,4 +1845,3 @@ Local Variables:
mode: c
......@@ -200,7 +200,23 @@ OPTION_DEFAULT_ON([gconf],[don't compile with GConf support])
OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
OPTION_DEFAULT_ON([inotify],[don't compile with inotify (file-watch) support])
[use a file notification library (LIB one of: yes, gfile, inotify, w32, no)])],
[ case "${withval}" in
y | ye | yes ) val=yes ;;
n | no ) val=no ;;
g | gf | gfi | gfil | gfile ) val=gfile ;;
i | in | ino | inot | inoti | inotif | inotify ) val=inotify ;;
w | w3 | w32 ) val=w32 ;;
* ) AC_MSG_ERROR([`--with-file-notification=$withval' is invalid;
this option's value should be `yes', `no', `gfile', `inotify' or `w32'.
`yes' is a synonym for `w32' on MS-Windows, and for `gfile' otherwise.])
## For the times when you want to build Emacs but don't have
## a suitable makeinfo, and can live without the manuals.
......@@ -1668,7 +1684,6 @@ if test "${HAVE_W32}" = "yes"; then
W32_OBJ="$W32_OBJ w32.o w32console.o w32heap.o w32inevt.o w32proc.o"
W32_OBJ="$W32_OBJ w32notify.o"
W32_LIBS="$W32_LIBS -lwinmm -lgdi32 -lcomdlg32"
W32_LIBS="$W32_LIBS -lmpr -lwinspool -lole32 -lcomctl32 -lusp10"
......@@ -2294,16 +2309,58 @@ fi
dnl Set defaults of $with_file_notification.
if test "${with_file_notification}" = "yes"; then
if test "${opsys}" = "mingw32"; then
dnl g_file_monitor exists since glib 2.18. G_FILE_MONITOR_EVENT_MOVED
dnl has been added in glib 2.24. It has been tested under
dnl GNU/Linux only. We take precedence over inotify, but this makes
dnl only sense when glib has been compiled with inotify support. How
dnl to check?
if test "${with_file_notification}" = "gfile"; then
if test "$HAVE_GFILENOTIFY" = "yes"; then
AC_DEFINE(HAVE_GFILENOTIFY, 1, [Define to 1 if using GFile.])
NOTIFY_SUMMARY="yes -lgio (gfile)"
dnl inotify is only available on GNU/Linux.
if test "${with_inotify}" = "yes"; then
if test "${with_file_notification}" = "inotify"; then
if test "$ac_cv_header_sys_inotify_h" = yes ; then
if test "$ac_cv_func_inotify_init1" = yes; then
AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
NOTIFY_SUMMARY="yes -lglibc (inotify)"
dnl MS Windows native file monitor is available for mingw32 only.
if test "${with_file_notification}" = "w32"; then
if test "$ac_cv_header_windows_h" = yes ; then
AC_DEFINE(HAVE_W32NOTIFY, 1, [Define to 1 to use w32notify.])
NOTIFY_SUMMARY="yes (w32)"
if test "$ac_cv_func_inotify_init1" = yes; then
AC_DEFINE(HAVE_INOTIFY, 1, [Define to 1 to use inotify.])
if test -n "$NOTIFY_OBJ"; then
AC_DEFINE(USE_FILE_NOTIFY, 1, [Define to 1 if using file notifications.])
dnl Do not put whitespace before the #include statements below.
dnl Older compilers (eg sunos4 cc) choke on it.
......@@ -3557,6 +3614,23 @@ AC_FUNC_FORK
dnl Check this late. It depends on what other libraries (lrsvg, Gtk+ etc)
dnl Emacs uses.
AC_MSG_CHECKING([whether GLib is linked in])
[[#include <glib.h>
[[g_print ("Hello world");]])],
if test "${links_glib}" = "yes"; then
AC_DEFINE(HAVE_GLIB, 1, [Define to 1 if GLib is linked in.])
dnl Adapted from Haible's version.
AC_CACHE_CHECK([for nl_langinfo and CODESET], emacs_cv_langinfo_codeset,
[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <langinfo.h>]],
......@@ -4343,7 +4417,7 @@ if test "${HAVE_X_WINDOWS}" = "yes" ; then
[Define to 1 if you want to use the X window system.])
XOBJ="xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o xgselect.o"
XOBJ="xterm.o xfns.o xselect.o xrdb.o xsmfns.o xsettings.o"
if test "$HAVE_XFT" = "yes"; then
FONT_OBJ="$FONT_OBJ ftfont.o xftfont.o ftxfont.o"
......@@ -4682,6 +4756,7 @@ echo " Does Emacs use -lgpm? ${HAVE_GPM}"
echo " Does Emacs use -ldbus? ${HAVE_DBUS}"
echo " Does Emacs use -lgconf? ${HAVE_GCONF}"
echo " Does Emacs use GSettings? ${HAVE_GSETTINGS}"
echo " Does Emacs use a file notification library? ${NOTIFY_SUMMARY}"
echo " Does Emacs use -lselinux? ${HAVE_LIBSELINUX}"
echo " Does Emacs use -lgnutls? ${HAVE_GNUTLS}"
echo " Does Emacs use -lxml2? ${HAVE_LIBXML2}"
2013-06-03 Juri Linkov <>
* display.texi (Highlight Interactively): Add global keybindings
with the key prefix `M-s h'. Document old command `highlight-phrase'.
Document new command `highlight-symbol-at-point'.
2013-06-02 Xue Fuqiao <>
* maintaining.texi (Branches): Add motivations for branching.
......@@ -5,6 +11,12 @@
(VC Directory Commands): Mention `vc-dir-hide-up-to-date' with
prefix argument.
2013-06-02 Michael Albinus <>
* cmdargs.texi (General Variables): Use "unix:path=/dev/null" as
dummy value for $DBUS_SESSION_BUS_ADDRESS. It also suppresses
autolaunching of the D-Bus session bus.
2013-06-01 Glenn Morris <>
* programs.texi (Semantic): Fix typo.
......@@ -438,8 +438,8 @@ when you specify a relative directory name.
Used by D-Bus when Emacs is compiled with it. Usually, there is no
need to change it. Setting it to a dummy address, like
@samp{unix:path=/tmp/foo}, suppresses connections to the D-Bus session
@samp{unix:path=/dev/null}, suppresses connections to the D-Bus session
bus as well as autolaunching the D-Bus session bus if not running yet.
Directory for the architecture-independent files that come with Emacs.
This is used to initialize the variable @code{data-directory}.
......@@ -903,14 +903,16 @@ that you specify explicitly the regular expressions to highlight. You
control them with these commands:
@table @kbd
@item C-x w h @var{regexp} @key{RET} @var{face} @key{RET}
@item M-s h r @var{regexp} @key{RET} @var{face} @key{RET}
@itemx C-x w h @var{regexp} @key{RET} @var{face} @key{RET}
@kindex M-s h r
@kindex C-x w h
@findex highlight-regexp
Highlight text that matches @var{regexp} using face @var{face}
(@code{highlight-regexp}). The highlighting will remain as long as
the buffer is loaded. For example, to highlight all occurrences of
the word ``whim'' using the default face (a yellow background)
@kbd{C-x w h whim @key{RET} @key{RET}}. Any face can be used for
@kbd{M-s h r whim @key{RET} @key{RET}}. Any face can be used for
highlighting, Hi Lock provides several of its own and these are
pre-loaded into a list of default values. While being prompted
for a face use @kbd{M-n} and @kbd{M-p} to cycle through them.
......@@ -918,7 +920,9 @@ for a face use @kbd{M-n} and @kbd{M-p} to cycle through them.
You can use this command multiple times, specifying various regular
expressions to highlight in different ways.
@item C-x w r @var{regexp} @key{RET}
@item M-s h u @var{regexp} @key{RET}
@itemx C-x w r @var{regexp} @key{RET}
@kindex M-s h u
@kindex C-x w r
@findex unhighlight-regexp
Unhighlight @var{regexp} (@code{unhighlight-regexp}).
......@@ -926,13 +930,15 @@ Unhighlight @var{regexp} (@code{unhighlight-regexp}).
If you invoke this from the menu, you select the expression to
unhighlight from a list. If you invoke this from the keyboard, you
use the minibuffer. It will show the most recently added regular
expression; use @kbd{M-p} to show the next older expression and
@kbd{M-n} to select the next newer expression. (You can also type the
expression; use @kbd{M-n} to show the next older expression and
@kbd{M-p} to select the next newer expression. (You can also type the
expression by hand, with completion.) When the expression you want to
unhighlight appears in the minibuffer, press @kbd{@key{RET}} to exit
the minibuffer and unhighlight it.
@item C-x w l @var{regexp} @key{RET} @var{face} @key{RET}
@item M-s h l @var{regexp} @key{RET} @var{face} @key{RET}
@itemx C-x w l @var{regexp} @key{RET} @var{face} @key{RET}
@kindex M-s h l
@kindex C-x w l
@findex highlight-lines-matching-regexp
@cindex lines, highlighting
......@@ -940,7 +946,31 @@ the minibuffer and unhighlight it.
Highlight entire lines containing a match for @var{regexp}, using face
@var{face} (@code{highlight-lines-matching-regexp}).
@item C-x w b
@item M-s h p @var{phrase} @key{RET} @var{face} @key{RET}
@itemx C-x w p @var{phrase} @key{RET} @var{face} @key{RET}
@kindex M-s h p
@kindex C-x w p
@findex highlight-phrase
@cindex phrase, highlighting
@cindex highlighting phrase
Highlight matches of @var{phrase}, using face @var{face}
(@code{highlight-phrase}). @var{phrase} can be any regexp,
but spaces will be replaced by matches to whitespace and
initial lower-case letters will become case insensitive.
@item M-s h .
@itemx C-x w .
@kindex M-s h .
@kindex C-x w .
@findex highlight-symbol-at-point
@cindex symbol, highlighting
@cindex highlighting symbol at point
Highlight the symbol found near point without prompting, using the next
available face automatically (@code{highlight-symbol-at-point}).
@item M-s h w
@itemx C-x w b
@kindex M-s h w
@kindex C-x w b
@findex hi-lock-write-interactive-patterns
Insert all the current highlighting regexp/face pairs into the buffer
......@@ -952,7 +982,9 @@ These patterns are extracted from the comments, if appropriate, if you
invoke @kbd{M-x hi-lock-find-patterns}, or if you visit the file while
Hi Lock mode is enabled (since that runs @code{hi-lock-find-patterns}).
@item C-x w i
@item M-s h f
@itemx C-x w i
@kindex M-s h f
@kindex C-x w i
@findex hi-lock-find-patterns
Extract regexp/face pairs from comments in the current buffer
2013-06-03 Tassilo Horn <>
* NEWS: Document eshell visual subcommands and options.
2013-06-02 Eric Ludlam <>
* srecode/ (header_guard): Add :c parameter so it works
2013-06-01 Alex Ott <>
* tutorials/ Fix incorrectly translated wording.
......@@ -28,6 +28,12 @@ This happens by default if a suitable support library is found at
build time, like libacl on GNU/Linux. To prevent this, use the
configure option `--disable-acl'.
** Emacs can be compiled with file notification support.
The configure option `--with-file-notification=LIB' enables file
notification support in Emacs. This option's value should be `yes',
`no', `gfile', `inotify' or `w32'. `yes' is a synonym for `w32' on
MS-Windows, and for `gfile' otherwise. The default value is `yes'.
** The configure option --with-crt-dir has been removed.
It is no longer needed, as the crt*.o files are no longer linked
......@@ -129,6 +135,18 @@ You can pick the name of the function and the variables with `C-x 4 a'.
* Changes in Specialized Modes and Packages in Emacs 24.4
** `eshell' now supports visual subcommands and options
Eshell has been able to handle "visual" commands (interactive,
non-line oriented commands such as top that require display
capabilities not provided by eshell) by running them in an Emacs
terminal emulator. See `eshell-visual-commands'.
This feature has been extended to subcommands and options that make a
usually line-oriented command a visual command. Typical examples are
"git log" and "git <command> --help" which display their output in a
pager by default. See `eshell-visual-subcommands' and
** `remember' can now store notes in separates files
You can use the new function `remember-store-in-files' within the
`remember-handler-functions' option.
......@@ -248,8 +266,22 @@ callers to fit the image to a frame other than the selected frame.
entries displayed by `Info-index-next', `Info-virtual-index' and
** Hi-Lock
*** New option `hi-lock-auto-select-face'. When non-nil, hi-lock commands
will cycle through faces in `hi-lock-face-defaults' without prompting.
*** New global command `M-s h .' (`highlight-symbol-at-point')
highlights the symbol found near point without prompting,
using the next face automatically.
** Search and Replace
*** New global command `M-s .' (`isearch-forward-symbol-at-point')
starts a symbol (identifier) incremental search forward with the
symbol found near point added to the search string initially.
*** `C-x 8 RET' in Isearch mode reads a character by its Unicode name
and adds it to the search string.
......@@ -418,8 +450,9 @@ The few hooks that used with-wrapper-hook are replaced as follows:
** Support for filesystem notifications.
Emacs now supports notifications of filesystem changes, such as
creation, modification, and deletion of files. This requires the
'inotify' API on GNU/Linux systems. On MS-Windows systems, this is
supported for Windows XP and newer versions.
`glib' API, or the 'inotify' API (on GNU/Linux systems only). On
MS-Windows systems, this is supported for Windows XP and newer
** Changes in autorevert.el
......@@ -44,7 +44,7 @@ template empty :time :user :file :c
template header_guard :file :blank
template header_guard :file :blank :c
#ifndef {{FILENAME_SYMBOL:upcase}}
#define {{FILENAME_SYMBOL:upcase}} 1
2013-06-03 Tassilo Horn <>
* eshell/em-term.el (cl-lib): Require `cl-lib'.
2013-06-03 Stefan Monnier <>
* emacs-lisp/lisp.el: Use lexical-binding.
(lisp--local-variables-1, lisp--local-variables): New functions.
(lisp--local-variables-completion-table): New var.
(lisp-completion-at-point): Use it to provide completion of let-bound vars.
* emacs-lisp/lisp-mode.el (eval-sexp-add-defvars): Expand macros
eagerly (bug#14422).
2013-06-03 Michael Albinus <>
* autorevert.el (auto-revert-notify-enabled)
(auto-revert-notify-rm-watch, auto-revert-notify-add-watch)
(auto-revert-notify-event-p, auto-revert-notify-event-file-name)
(auto-revert-notify-handler): Handle also gfilenotify.
* subr.el: (file-notify-handle-event): New defun. Replacing ...
(inotify-event-p, inotify-handle-event, w32notify-handle-event):
2013-06-03 Juri Linkov <>
* bindings.el (search-map): Bind `highlight-symbol-at-point' to
`M-s h .'. (Bug#14427)
* hi-lock.el (highlight-symbol-at-point): New alias for the new
command `hi-lock-face-symbol-at-point'.
(hi-lock-face-symbol-at-point): New command.
(hi-lock-map): Bind `highlight-symbol-at-point' to `C-x w .'.
(hi-lock-menu): Add `highlight-symbol-at-point'.
(hi-lock-mode): Doc fix.
* isearch.el (isearch-forward-symbol-at-point): New command.
(search-map): Bind `isearch-forward-symbol-at-point' to `M-s .'.
(isearch-highlight-regexp): Add a regexp which matches
words/symbols for word/symbol mode.
* subr.el (find-tag-default-bounds): New function with the body
mostly moved from `find-tag-default'.
(find-tag-default): Move most code to `find-tag-default-bounds',
call it and apply `buffer-substring-no-properties' afterwards.
2013-06-03 Tassilo Horn <>
* eshell/em-term.el (eshell-term-initialize): Use
`cl-intersection' rather than `intersection'.
2013-06-02 Xue Fuqiao <>
* vc/log-view.el: Doc fix.
(log-view-mode-map): Copy keymap from `special-mode-map'.
2013-06-02 Eric Ludlam <>
* emacs-lisp/eieio.el (eieio--defalias, eieio-hook)
(eieio-error-unsupported-class-tags, eieio-skip-typecheck)
(eieio-optimize-primary-methods-flag, eieio-initializing-object)
(eieio-unbound, eieio-default-superclass)
(eieio--define-field-accessors, method-static, method-before)
(method-primary, method-after, method-num-lists)
(method-generic-before, method-generic-primary)
(method-generic-after, method-num-slots)
(eieio--check-type, class-v, class-p)
(eieio-class-name, define-obsolete-function-alias)
(eieio-class-parents-fast, eieio-class-children-fast)
(same-class-fast-p, class-constructor, generic-p)
(generic-primary-only-p, generic-primary-only-one-p)
(class-option-assoc, class-option, eieio-object-p)
(class-abstract-p, class-method-invocation-order)
(eieio-defclass-autoload-map, eieio-defclass-autoload)
(eieio-class-un-autoload, eieio-defclass)
(eieio-eval-default-p, eieio-perform-slot-validation-for-default)
(eieio-add-new-slot, eieio-copy-parents-into-subclass)
(eieio--defgeneric-init-form, eieio-defgeneric-form)
(eieio--defmethod, eieio--typep)
(eieio-perform-slot-validation, eieio-validate-slot-value)
(eieio-validate-class-slot-value, eieio-barf-if-slot-unbound)
(eieio-oref, eieio-oref-default, eieio-default-eval-maybe)
(eieio-oset, eieio-oset-default, eieio-slot-originating-class-p)
(eieio-slot-name-index, eieio-class-slot-name-index)
(eieio-set-defaults, eieio-initarg-to-attribute)
(eieio-attribute-to-initarg, eieio-c3-candidate)
(eieio-c3-merge-lists, eieio-class-precedence-c3)
(eieio-class-precedence-dfs, eieio-class-precedence-bfs)
(eieio-class-precedence-list, eieio-generic-call-methodname)
(eieio-generic-call-arglst, eieio-generic-call-key)
(eieio-pre-method-execution-functions, eieio-generic-call)
(eieio-generic-call-primary-only, eieiomt-method-list)
(eieiomt-optimizing-obarray, eieiomt-install)
(eieiomt-add, eieiomt-next, eieiomt-sym-optimize)
(eieio-generic-form, eieio-defmethod, make-obsolete)
(eieio-defgeneric, make-obsolete): Moved to eieio-core.el
(defclass): Remove `eval-and-compile' from macro.
(call-next-method, shared-initialize): Instead of using
`scoped-class' variable, use new eieio--scoped-class, and
(initialize-instance): Rename local variable 'scoped-class' to
'this-class' to remove ambiguitity from old global.
* emacs-lisp/eieio-core.el: New file. Derived from key parts of
(eieio--scoped-class-stack): New variable
(eieio--scoped-class): New fcn
(eieio--with-scoped-class): New scoping macro.
(eieio-defclass): Use pushnew instead of add-to-list.
(eieio-defgeneric-form-primary-only-one, eieio-oset-default)
(eieio-slot-name-index, eieio-set-defaults, eieio-generic-call)
(eieio-generic-call-primary-only, eieiomt-add): Instead of using
`scoped-class' variable, use new eieio--scoped-class, and
* emacs-lisp/eieio-base.el (cl-lib): Require during compile.
2013-06-02 Tassilo Horn <>
* eshell/esh-ext.el (eshell-external-command): Pass args to
......@@ -271,7 +271,7 @@ This variable becomes buffer local when set in any fashion.")
:version "24.4")
(defconst auto-revert-notify-enabled
(or (featurep 'inotify) (featurep 'w32notify))
(or (featurep 'gfilenotify) (featurep 'inotify) (featurep 'w32notify))
"Non-nil when Emacs has been compiled with file notification support.")
(defcustom auto-revert-use-notify auto-revert-notify-enabled
......@@ -502,9 +502,12 @@ will use an up-to-date value of `auto-revert-interval'"
(puthash key value auto-revert-notify-watch-descriptor-hash-list)
(remhash key auto-revert-notify-watch-descriptor-hash-list)
(funcall (if (fboundp 'inotify-rm-watch)
'inotify-rm-watch 'w32notify-rm-watch)
((fboundp 'gfile-rm-watch) 'gfile-rm-watch)
((fboundp 'inotify-rm-watch) 'inotify-rm-watch)
((fboundp 'w32notify-rm-watch) 'w32notify-rm-watch))
(remove-hook 'kill-buffer-hook 'auto-revert-notify-rm-watch))
(setq auto-revert-notify-watch-descriptor nil
......@@ -519,12 +522,18 @@ will use an up-to-date value of `auto-revert-interval'"
(when (and buffer-file-name auto-revert-use-notify
(not auto-revert-notify-watch-descriptor))
(let ((func (if (fboundp 'inotify-add-watch)
'inotify-add-watch 'w32notify-add-watch))
;; `attrib' is needed for file modification time.
(aspect (if (fboundp 'inotify-add-watch)
'(attrib create modify moved-to) '(size last-write-time)))
(file (if (fboundp 'inotify-add-watch)
(let ((func
((fboundp 'gfile-add-watch) 'gfile-add-watch)
((fboundp 'inotify-add-watch) 'inotify-add-watch)
((fboundp 'w32notify-add-watch) 'w32notify-add-watch)))
((fboundp 'gfile-add-watch) '(watch-mounts))
;; `attrib' is needed for file modification time.
((fboundp 'inotify-add-watch) '(attrib create modify moved-to))
((fboundp 'w32notify-add-watch) '(size last-write-time))))
(file (if (or (fboundp 'gfile-add-watch) (fboundp 'inotify-add-watch))
(directory-file-name (expand-file-name default-directory))
(setq auto-revert-notify-watch-descriptor
......@@ -545,10 +554,13 @@ will use an up-to-date value of `auto-revert-interval'"
(defun auto-revert-notify-event-p (event)
"Check that event is a file notification event."
(cond ((featurep 'inotify)
(and (listp event) (= (length event) 4)))
((featurep 'w32notify)
(and (listp event) (= (length event) 3) (stringp (nth 2 event))))))
(and (listp event)
(cond ((featurep 'gfilenotify)
(and (>= (length event) 3) (stringp (nth 2 event))))
((featurep 'inotify)
(= (length event) 4))
((featurep 'w32notify)
(and (= (length event) 3) (stringp (nth 2 event)))))))
(defun auto-revert-notify-event-descriptor (event)
"Return watch descriptor of file notification event, or nil."
......@@ -561,7 +573,8 @@ will use an up-to-date value of `auto-revert-interval'"
(defun auto-revert-notify-event-file-name (event)
"Return file name of file notification event, or nil."
(and (auto-revert-notify-event-p event)