]> code.delx.au - gnu-emacs/commitdiff
Merge from origin/emacs-25
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 9 Feb 2016 22:23:10 +0000 (14:23 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 9 Feb 2016 22:23:10 +0000 (14:23 -0800)
9ffe7dd * lisp/isearch.el (isearch-define-mode-toggle): Improve logic
16140f7 * lisp/menu-bar.el (menu-bar-options-menu): New search submenu
3db6adb * lisp/isearch.el (search-default-mode)
4ea1ea7 * lisp/isearch.el: Rename search-default-regexp-mode to search-default-mode
c77ffc8 Use monitor's resolution for positioning tooltips
49e5749 Fix file-notify-test on MS-Windows
be1d874 Fix issues found by auditing w32notify code
87ae218 Extend etags Ruby support for accessors
aa35257 Update publicsuffix.txt.
6816bff Ensure that Gnus dribble handling allows removing entries
691feae Be consistent when using encoded strings in nnimap data
3ed423b Display the decoded Gnus group name
5428b5b Use completion-ignore-case instead of defining command

14 files changed:
1  2 
etc/NEWS
lib-src/etags.c
lisp/erc/erc.el
lisp/gnus/gnus-start.el
lisp/gnus/gnus-sum.el
lisp/menu-bar.el
test/lisp/filenotify-tests.el
test/manual/etags/CTAGS.good
test/manual/etags/ETAGS.good_1
test/manual/etags/ETAGS.good_2
test/manual/etags/ETAGS.good_3
test/manual/etags/ETAGS.good_4
test/manual/etags/ETAGS.good_5
test/manual/etags/ETAGS.good_6

diff --combined etc/NEWS
index c2c5950891c745b48fa5d11084d094e7b2b3baca,e5f34a1d8a02331e032835fd1be86ea141a1fbff..d6ffb3879bcae9517924efef21979b28e90a5709
+++ b/etc/NEWS
@@@ -22,75 -22,6 +22,75 @@@ Temporary note
  When you add a new item, use the appropriate mark if you are sure it applies,
  otherwise leave it unmarked.
  
 +\f
 +* Installation Changes in Emacs 25.2
 +
 +\f
 +* Startup Changes in Emacs 25.2
 +
 +\f
 +* Changes in Emacs 25.2
 +
 +** It is possible to disable attempted recovery on fatal signals
 +
 +Two new variables allow to disable attempts to recover from stack
 +overflow and to avoid automatic auto-save when Emacs is delivered a
 +fatal signal.  `attempt-stack-overflow-recovery', if set to `nil',
 +will disable attempts to recover from C stack overflows; Emacs will
 +then crash as with any other fatal signal.
 +`attempt-orderly-shutdown-on-fatal-signal', if set to `nil', will
 +disable attempts to auto-save the session and shut down in an orderly
 +fashion when Emacs receives a fatal signal; instead, Emacs will
 +terminate immediately.  Both variables are non-`nil' by default.
 +These variables are for users who would like to avoid the small
 +probability of data corruption due to techniques Emacs uses to recover
 +in these situations.
 +
 +\f
 +* Editing Changes in Emacs 25.2
 +
 +\f
 +* Changes in Specialized Modes and Packages in Emacs 25.2
 +
 +** eww
 +
 ++++
 +*** A new `s' command for switching to another eww buffer via the minibuffer.
 +
 ++++
 +** The commands that add ChangeLog entries now prefer a VCS root directory
 +for the ChangeLog file, if none already exists.  Customize
 +`change-log-directory-files' to nil for the old behavior.
 +
 +---
 +** Support for non-string values of `time-stamp-format' has been removed.
 +
 +** Tramp
 +
 ++++
 +*** New connection method "sg", which allows to edit files under
 +different group ID.
 +
 ++++
 +*** New connection method "doas" for OpenBSD hosts.
 +
 +\f
 +* New Modes and Packages in Emacs 25.2
 +
 +\f
 +* Incompatible Lisp Changes in Emacs 25.2
 +
 +\f
 +* Lisp Changes in Emacs 25.2
 +
 +** New var syntax-ppss-table to control the syntax-table used in syntax-ppss
 +
 +** Autoload files can be generated without timestamps,
 +by setting `autoload-timestamps' to nil.
 +
 +\f
 +* Changes in Emacs 25.2 on Non-Free Operating Systems
 +
  \f
  * Installation Changes in Emacs 25.1
  
@@@ -249,33 -180,17 +249,33 @@@ change in future releases.  For that re
  by default, and must be enabled by using the `--with-modules' option
  at configure time.
  
 ++++
 +** A second dir-local file (.dir-locals-2.el) is now accepted.
 +See the variable `dir-locals-file-2' for more information.
 +
  +++
  ** Network security (TLS/SSL certificate validity and the like) is
  added via the new Network Security Manager (NSM) and controlled via
  the `network-security-level' variable.
  
 +---
 +** International domain names (IDNA) are now encoded via the new
 +puny.el library, so that one can visit web sites like
 +"http://méxico.icom.museum".
 +
  +++
  ** C-h l now also lists the commands that were run.
  
 +** The new M-s M-w key binding uses eww to search the web for the
 +text in the region.
 +
  +++
 -** x-select-enable-clipboard is renamed select-enable-clipboard
 -and x-select-enable-primary is renamed select-enable-primary.
 +** The new `timer-list' command lists all active timers in a buffer
 +where you can cancel them with the `c' command.
 +
 +** M-x suggests shorthands and ignores obsolete commands for completion.
 +** x-select-enable-clipboard is renamed select-enable-clipboard.
 +x-select-enable-primary and renamed select-enable-primary.
  Additionally they both now apply to all systems (OSX, GNUstep, Windows, you
  name it), with the proviso that on some systems (e.g. Windows)
  select-enable-primary is ineffective since the system doesn't
@@@ -290,10 -205,6 +290,10 @@@ selected window is strongly dedicated t
  ** The option `even-window-heights' has been renamed to
  `even-window-sizes' and now handles window widths as well.
  
 ++++
 +** New function `read-multiple-choice' use to prompt for
 +multiple-choice questions, with a handy way to display help texts.
 +
  +++
  ** terpri gets an optional arg ENSURE to conditionally output a newline.
  
@@@ -316,6 -227,14 +316,6 @@@ for use in Emacs bug reports
  hiding character but the default `.' can be used by let-binding the
  variable `read-hide-char'.
  
 -+++
 -** The Emacs pseudo-random number generator can be securely seeded.
 -On system where Emacs can access the system entropy or some other
 -cryptographically secure random stream, it now uses that when `random'
 -is called with its argument `t'.  This allows cryptographically strong
 -random values; in particular, the Emacs server now uses this facility
 -to produce its authentication key.
 -
  ---
  ** New input methods: `tamil-dvorak' and `programmer-dvorak'.
  
@@@ -506,9 -425,6 +506,9 @@@ additionally need to add `getSelection
  `erc-network-hide-list' and `erc-channel-hide-list' will only hide the
  specified message types for the respective specified targets.
  
 +*** New variable `erc-default-port-tls' used to connect to TLS IRC
 +servers.
 +
  ---
  *** Reconnection is now asynchronous.
  
@@@ -670,7 -586,7 +670,7 @@@ item as before
  ** Search and Replace
  
  +++
- *** New user option `search-default-regexp-mode'
+ *** New user option `search-default-mode'
  specifies the default mode for I-search.
  
  +++
@@@ -744,11 -660,6 +744,11 @@@ useful when, for example, one needs to 
  whether to use variable-pitch fonts or not.  The user can also
  customize the `shr-use-fonts' variable.
  
 ++++
 +*** A new command `C' (`eww-toggle-colors') can be used to toggle
 +whether to use the HTML-specified colors or not.  The user can also
 +customize the `shr-use-colors' variable.
 +
  +++
  *** A new command `R' (`eww-readable') will try do identify the main
  textual parts of a web page and display only that, leaving menus and
@@@ -793,22 -704,6 +793,22 @@@ invalid certificates are marked in red
  *** text/html messages that contain inline image parts will be
  transformed into multipart/related messages before sending.
  
 +---
 +*** The `message-valid-fqdn-regexp' variable has been removed, since
 +there are now top-level domains added all the time.  Message will no
 +longer warn about sending emails to top-level domains it hasn't heard
 +about.
 +
 +*** `message-beginning-of-line' (bound to C-a) understands folded headers.
 +In `visual-line-mode' it will look for the true beginning of a header
 +while in non-`visual-line-mode' it will move the point to the indented
 +header’s value.
 +
 ++++
 +** Images are automatically scaled before displaying based on the
 +`image-scaling-factor' variable (if Emacs supports scaling the images
 +in question).
 +
  +++
  ** In Show Paren Mode, a parenthesis can be highlighted when point
  stands inside it, and certain parens can be highlighted when point is
@@@ -903,8 -798,6 +903,8 @@@ to produce a neat summary
  
  ---
  ** New js.el option `js-indent-first-init'.
 +It was renamed from `js-indent-first-initialiser', to avoid issues
 +with American vs British spelling.
  
  ** Info
  
@@@ -1302,9 -1195,6 +1302,9 @@@ compression command is determined from 
  `dired-compress-files-alist' variable.
  
  +++
 +*** `W' is now bound to `browse-url-of-dired-file', and is useful for
 +viewing HTML files and the like.
 +
  *** New user interface for the `A' and `Q' commands.
  These keys, now bound to `dired-do-find-regexp' and
  `dired-do-find-regexp-and-replace', work similarly to `xref-find-apropos'
@@@ -1399,6 -1289,14 +1399,6 @@@ eliminated
  Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN
  slot in font-lock-defaults.
  
 -+++
 -** The new implementation of Subword mode affects word movement everywhere.
 -When Subword mode is turned on, `forward-word', `backward-word', and
 -everything that uses them will move by sub-words, effectively
 -overriding the buffer's syntax table.  Lisp programs that shouldn't be
 -affected by Subword mode should call the new functions
 -`forward-word-strictly' and `backward-word-strictly' instead.
 -
  +++
  ** `package-initialize' now sets `package-enable-at-startup' to nil if
  called during startup.  Users who call this function in their init
diff --combined lib-src/etags.c
index 65720e85f490ec6ba771c2a23f03d0544dc2b2c4,182cb4cc876e468c1214f40dfa03ada004206c07..796adaa5d057bab7086d5c0522e0ca7b62cc9a44
@@@ -959,8 -959,7 +959,8 @@@ Relative ones are stored relative to th
        Do not create tag entries for global variables in some\n\
        languages.  This makes the tags file smaller.");
  
 -  puts ("--no-line-directive\n\
 +  if (PRINT_UNDOCUMENTED_OPTIONS_HELP)
 +    puts ("--no-line-directive\n\
          Ignore #line preprocessor directives in C and derived languages.");
  
    if (CTAGS)
@@@ -4731,8 -4730,12 +4731,12 @@@ Ruby_functions (FILE *inf
              if (reader || writer || alias)
                {
                  do {
-                   char *np = cp;
+                   char *np;
  
+                   cp = skip_spaces (cp);
+                   if (*cp == '(')
+                     cp = skip_spaces (cp + 1);
+                   np = cp;
                    cp = skip_name (cp);
                    if (*np != ':')
                      continue;
diff --combined lisp/erc/erc.el
index d52a83b10290f349f76a0c839c55c041db06c7a6,1a126a80343dfd75b9c8cda2c601248a6b77d1ab..68460d15c4e77bd4df795711bebe14935bbf8b25
@@@ -1141,7 -1141,7 +1141,7 @@@ which the local user typed.
      (define-key map "\C-c\C-u" 'erc-kill-input)
      (define-key map "\C-c\C-x" 'erc-quit-server)
      (define-key map "\M-\t" 'ispell-complete-word)
-     (define-key map "\t" 'erc-completion-at-point)
+     (define-key map "\t" 'completion-at-point)
  
      ;; Suppress `font-lock-fontify-block' key binding since it
      ;; destroys face properties.
@@@ -1463,6 -1463,7 +1463,7 @@@ Defaults to the server buffer.
         (concat "\C-l\\|\\(^" (regexp-quote (erc-prompt)) "\\)"))
    (set (make-local-variable 'paragraph-start)
         (concat "\\(" (regexp-quote (erc-prompt)) "\\)"))
+   (setq-local completion-ignore-case t)
    (add-hook 'completion-at-point-functions 'erc-complete-word-at-point nil t))
  
  ;; activation
  (defconst erc-default-port 6667
    "IRC port to use if it cannot be detected otherwise.")
  
 +(defconst erc-default-port-tls 6697
 +  "IRC port to use for encrypted connections if it cannot be
 +  detected otherwise.")
 +
  (defcustom erc-join-buffer 'buffer
    "Determines how to display a newly created IRC buffer.
  
@@@ -2203,8 -2200,7 +2204,8 @@@ be invoked for the values of the other 
  (defun erc-tls (&rest r)
    "Interactively select TLS connection parameters and run ERC.
  Arguments are the same as for `erc'."
 -  (interactive (erc-select-read-args))
 +  (interactive (let ((erc-default-port erc-default-port-tls))
 +               (erc-select-read-args)))
    (let ((erc-server-connect-function 'erc-open-tls-stream))
      (apply #'erc r)))
  
@@@ -3996,13 -3992,6 +3997,6 @@@ Prompt for one if called interactively.
                           (format "MODE %s +k %s" tgt key)
                         (format "MODE %s -k" tgt)))))
  
- (defun erc-completion-at-point ()
-   "Perform completion on the text around point case-insensitively.
- See `completion-at-point'."
-   (interactive)
-   (let ((completion-ignore-case t))
-     (completion-at-point)))
  (defun erc-quit-server (reason)
    "Disconnect from current server after prompting for REASON.
  `erc-quit-reason' works with this just like with `erc-cmd-QUIT'."
diff --combined lisp/gnus/gnus-start.el
index f2e69781fc1e68925f416499af3ecc5df7dd3950,34a5ff6cbac83d83077e7942395965c98a918baa..692c834613037840f216af03885b839baa5431d1
@@@ -862,7 -862,9 +862,9 @@@ If REGEXP is given, lines that match i
            (goto-char (match-beginning 0))
            (delete-region (point-at-bol) end))))
        (goto-char (point-max))
-       (insert string "\n")
+       ;; Make sure that each dribble entry is a single line, so that
+       ;; the "remove" code above works.
+       (insert (replace-regexp-in-string "\n" "\\\\n" string) "\n")
        ;; This has been commented by Josh Huber <huber@alum.wpi.edu>
        ;; It causes problems with both XEmacs and Emacs 21, and doesn't
        ;; seem to be of much value. (FIXME: remove this after we make sure
@@@ -1673,10 -1675,10 +1675,10 @@@ backend check whether the group actuall
              type-cache))
        ;; Only add groups that need updating.
        (if (or (and foreign-level (null (numberp foreign-level)))
 -            (funcall (if one-level #'= #'<=) (gnus-info-level info)
 -                     (if (eq (cadr method-group-list) 'foreign)
 -                         foreign-level
 -                       alevel)))
 +         (funcall (if one-level #'= #'<=) (gnus-info-level info)
 +                  (if (eq (cadr method-group-list) 'foreign)
 +                      foreign-level
 +                    alevel)))
          (setcar (nthcdr 2 method-group-list)
                  (cons info (nth 2 method-group-list)))
        ;; The group is inactive, so we nix out the number of unread articles.
diff --combined lisp/gnus/gnus-sum.el
index bc31ce91346086df42e468d96c85015b4729de29,5972f29dd88f690f56f4d802c3d9a439d0ae1f1f..c8f0fa31300af8f2e8a1e68b7db7cb12d5f635c5
@@@ -1171,19 -1171,14 +1171,19 @@@ which it may alter in any way.
         (not (string= user-mail-address ""))
         (regexp-quote user-mail-address))
    "*From headers that may be suppressed in favor of To headers.
 -This can be a regexp or a list of regexps."
 +This can be a regexp, a list of regexps or a function.
 +
 +If a function, an email string is passed as the argument."
    :version "21.1"
    :group 'gnus-summary
    :type '(choice regexp
 -               (repeat :tag "Regexp List" regexp)))
 +               (repeat :tag "Regexp List" regexp)
 +                 function))
  
  (defsubst gnus-ignored-from-addresses ()
 -  (gmm-regexp-concat gnus-ignored-from-addresses))
 +  (cond ((functionp gnus-ignored-from-addresses)
 +         gnus-ignored-from-addresses)
 +        (t (gmm-regexp-concat gnus-ignored-from-addresses))))
  
  (defcustom gnus-summary-to-prefix "-> "
    "*String prefixed to the To field in the summary line when
@@@ -3691,17 -3686,15 +3691,17 @@@ buffer that was in action when the las
  
  (defun gnus-summary-from-or-to-or-newsgroups (header gnus-tmp-from)
    (let ((mail-parse-charset gnus-newsgroup-charset)
 -      (ignored-from-addresses (gnus-ignored-from-addresses))
        ;; Is it really necessary to do this next part for each summary line?
        ;; Luckily, doesn't seem to slow things down much.
        (mail-parse-ignored-charsets
         (with-current-buffer gnus-summary-buffer
           gnus-newsgroup-ignored-charsets)))
      (or
 -     (and ignored-from-addresses
 -        (string-match ignored-from-addresses gnus-tmp-from)
 +     (and gnus-ignored-from-addresses
 +          (cond ((functionp gnus-ignored-from-addresses)
 +                 (funcall gnus-ignored-from-addresses
 +                          (mail-strip-quoted-names gnus-tmp-from)))
 +                (t (string-match (gnus-ignored-from-addresses) gnus-tmp-from)))
          (let ((extra-headers (mail-header-extra header))
                to
                newsgroups)
@@@ -4011,7 -4004,8 +4011,8 @@@ If SELECT-ARTICLES, only select those a
              (gnus-group-next-unread-group 1))
          (gnus-handle-ephemeral-exit quit-config)))
        (if (null (gnus-list-of-unread-articles group))
-         (gnus-message 3 "Group %s contains no messages" group)
+         (gnus-message 3 "Group %s contains no messages"
+                       (gnus-group-decoded-name group))
        (gnus-message 3 "Can't select group"))
        nil)
       ;; The user did a `C-g' while prompting for number of articles,
@@@ -6091,6 -6085,9 +6092,6 @@@ If SELECT-ARTICLES, only select those a
                (setq arts (cdr arts)))
              (setq list (cdr all)))))
  
 -      (when (eq (cdr type) 'seen)
 -        (setq list (gnus-range-add list gnus-newsgroup-unseen)))
 -
        (when (eq (gnus-article-mark-to-type (cdr type)) 'list)
          (setq list (gnus-compress-sequence (set symbol (sort list '<)) t)))
  
diff --combined lisp/menu-bar.el
index 512d65fa580218bcb723c4c2c08b913be5388e15,6281d7e5453f0aad6744ea875b1a9e27f948579c..cc7233e193f9387f60832c188717f10e7c4a4075
    (setq menu-bar-last-search-type 'string)
    ;; Ideally, this whole command would be equivalent to `C-s RET'.
    (let ((isearch-forward (not backward))
-         (isearch-regexp-function search-default-regexp-mode)
+         (isearch-regexp-function search-default-mode)
          (isearch-regexp nil))
      (if (or (equal string "") (not string))
          (funcall (isearch-search-fun-default) (car search-ring))
  (defun clipboard-yank ()
    "Insert the clipboard contents, or the last stretch of killed text."
    (interactive "*")
 -  (let ((gui-select-enable-clipboard t))
 +  (let ((gui-select-enable-clipboard t)
 +        (interprogram-paste-function (or interprogram-paste-function
 +                                         #'gui-selection-value)))
      (yank)))
  
  (defun clipboard-kill-ring-save (beg end &optional region)
    "Copy region to kill ring, and save in the GUI's clipboard."
    (interactive "r\np")
 -  (let ((gui-select-enable-clipboard t))
 +  (let ((gui-select-enable-clipboard t)
 +        (interprogram-cut-function (or interprogram-cut-function
 +                                       #'gui-select-text)))
      (kill-ring-save beg end region)))
  
  (defun clipboard-kill-region (beg end &optional region)
    "Kill the region, and save it in the GUI's clipboard."
    (interactive "r\np")
 -  (let ((gui-select-enable-clipboard t))
 +  (let ((gui-select-enable-clipboard t)
 +        (interprogram-cut-function (or interprogram-cut-function
 +                                       #'gui-select-text)))
      (kill-region beg end region)))
  
  (defun menu-bar-enable-clipboard ()
@@@ -1256,6 -1250,52 +1256,52 @@@ mail status in mode line")
                    :enable (not (truncated-partial-width-window-p))))
      menu))
  
+ (defvar menu-bar-search-options-menu
+   (let ((menu (make-sparse-keymap "Search Options")))
+     (dolist (x '((character-fold-to-regexp "Fold Characters" "Character folding")
+                  (isearch-symbol-regexp "Whole Symbols" "Whole symbol")
+                  (word-search-regexp "Whole Words" "Whole word")))
+       (bindings--define-key menu (vector (nth 0 x))
+         `(menu-item ,(nth 1 x)
+                     (lambda ()
+                       (interactive)
+                       (setq search-default-mode #',(nth 0 x))
+                       (message ,(format "%s search enabled" (nth 2 x))))
+                     :help ,(format "Enable %s search" (downcase (nth 2 x)))
+                     :button (:radio . (eq search-default-mode #',(nth 0 x))))))
+     (bindings--define-key menu [regexp-search]
+       '(menu-item "Regular Expression"
+                   (lambda ()
+                     (interactive)
+                     (setq search-default-mode t)
+                     (message "Regular-expression search enabled"))
+                   :help "Enable regular-expression search"
+                   :button (:radio . (eq search-default-mode t))))
+     (bindings--define-key menu [regular-search]
+       '(menu-item "Literal Search"
+                   (lambda ()
+                     (interactive)
+                     (when search-default-mode
+                       (setq search-default-mode nil)
+                       (when (symbolp search-default-mode)
+                         (message "Literal search enabled"))))
+                   :help "Disable special search modes"
+                   :button (:radio . (not search-default-mode))))
+     (bindings--define-key menu [custom-separator]
+       menu-bar-separator)
+     (bindings--define-key menu [case-fold-search]
+       (menu-bar-make-toggle
+        toggle-case-fold-search case-fold-search
+        "Ignore Case"
+        "Case-Insensitive Search %s"
+        "Ignore letter-case in search commands"))
+     menu))
  (defvar menu-bar-options-menu
    (let ((menu (make-sparse-keymap "Options")))
      (bindings--define-key menu [customize]
         (:visible (and (boundp 'cua-enable-cua-keys)
                      (not cua-enable-cua-keys)))))
  
-     (bindings--define-key menu [case-fold-search]
-       (menu-bar-make-toggle
-        toggle-case-fold-search case-fold-search
-        "Ignore Case for Search"
-        "Case-Insensitive Search %s"
-        "Ignore letter-case in search commands"))
+     (bindings--define-key menu [search-options]
+       `(menu-item "Default Search Options"
+                 ,menu-bar-search-options-menu))
  
      (bindings--define-key menu [line-wrapping]
        `(menu-item "Line Wrapping in This Buffer"
index 629d85be1ef9b2bd23bd956b9569371c7bad3815,5fc4ff8bf4287d90bd77dd5f677b0b78c4c59577..5fc4ff8bf4287d90bd77dd5f677b0b78c4c59577
@@@ -66,7 -66,7 +66,7 @@@
    "Timeout to wait for arriving events, in seconds."
    (cond
     ((file-remote-p temporary-file-directory) 6)
-    ((string-equal (file-notify--test-library) "w32notify") 20)
+    ((string-equal (file-notify--test-library) "w32notify") 10)
     ((eq system-type 'cygwin) 10)
     (t 3)))
  
@@@ -797,10 -797,7 +797,7 @@@ longer than timeout seconds for the eve
          file-notify--test-tmpfile
          '(change) 'file-notify--test-event-handler)))
    (unwind-protect
-       ;; In case of w32notify, the upper limit of events to handle
-       ;; seems to be 260.  Reason unknown.
-       (let ((n (if (string-equal (file-notify--test-library) "w32notify")
-                    250 1000))
+       (let ((n 1000)
              source-file-list target-file-list
              (default-directory file-notify--test-tmpfile))
          (dotimes (i n)
            (let ((source-file-list source-file-list)
                  (target-file-list target-file-list))
              (while (and source-file-list target-file-list)
-               (rename-file (pop source-file-list) (pop target-file-list) t))))
+               (rename-file (pop source-file-list) (pop target-file-list) t)
+               (read-event nil nil 0.02))))
          (file-notify--test-with-events (make-list n 'deleted)
            (dolist (file target-file-list)
-             (delete-file file))))
+             (prog1 (delete-file file) (read-event nil nil 0.02)))))
      (file-notify--test-cleanup)))
  
  (file-notify--deftest-remote file-notify-test06-many-events
index 58b1db6b0a329fbf1b9646afef3c8f4c346a3a41,ebde715272aa945c9ebdb308c6ee3f41d86c85ab..ebde715272aa945c9ebdb308c6ee3f41d86c85ab
@@@ -454,7 -454,7 +454,7 @@@ Condition_Variable/t       ada-src/2ataspri.a
  Condition_Variable/t  ada-src/2ataspri.ads    /^   type Condition_Variable is$/
  Configure     pyt-src/server.py       /^class Configure(Frame, ControlEdit):$/
  ConfirmQuit   pyt-src/server.py       /^def ConfirmQuit(frame, context):$/
- Constant      ruby-src/test1.ru       38
+ Constant      ruby-src/test1.ru       42
  ControlEdit   pyt-src/server.py       /^class ControlEdit(Frame):$/
  Controls      pyt-src/server.py       /^class Controls:$/
  CopyTextString        pas-src/common.pas      /^function CopyTextString;(*($/
@@@ -2555,6 -2555,7 +2555,7 @@@ bar     c-src/c.c       /^void bar() {while(0) {}
  bar   c.c     143
  bar   c-src/h.h       19
  bar   cp-src/x.cc     /^XX::bar()$/
+ bar1  ruby-src/test1.ru       /^    attr_reader(:foo1, :bar1, # comment$/
  bar=  ruby-src/test1.ru       /^    attr_writer :bar,$/
  bas_syn       prol-src/natded.prolog  /^bas_syn(n(_)).$/
  base  c-src/emacs/src/lisp.h  2188
@@@ -3008,6 -3009,8 +3009,8 @@@ foo     f-src/entry.strange     /^       charac
  foo   php-src/ptest.php       /^foo()$/
  foo   ruby-src/test1.ru       /^    attr_reader :foo$/
  foo!  ruby-src/test1.ru       /^    def foo!$/
+ foo1  ruby-src/test1.ru       /^    attr_reader(:foo1, :bar1, # comment$/
+ foo2  ruby-src/test1.ru       /^    alias_method ( :foo2, #cmmt$/
  foobar        c-src/c.c       /^int foobar() {;}$/
  foobar        c.c     /^extern void foobar (void) __attribute__ ((section /
  foobar2       c-src/h.h       20
@@@ -3880,7 -3883,8 +3883,8 @@@ questo  ../c/c.web      3
  quiettest     make-src/Makefile       /^quiettest:$/
  quit_char     c-src/emacs/src/keyboard.c      192
  quit_throw_to_read_char       c-src/emacs/src/keyboard.c      /^quit_throw_to_read_char (bool from_signal)$/
- qux   ruby-src/test1.ru       /^    alias_method :qux, :tee, attr_accessor :bogus$/
+ qux   ruby-src/test1.ru       /^    alias_method :qux, :tee, attr_accessor(:bogus)/
+ qux1  ruby-src/test1.ru       /^                :qux1)$/
  qux=  ruby-src/test1.ru       /^      def qux=(tee)$/
  r0    c-src/sysdep.h  54
  r1    c-src/sysdep.h  55
index 90bbe774f0582420e40f8e672ca7be452c7c7723,d2550863428add2c1f15f16df08dbe940f5f8e69..d2550863428add2c1f15f16df08dbe940f5f8e69
@@@ -3061,7 -3061,7 +3061,7 @@@ module ModuleExample\7f1,
      def module_instance_method\7f46,1051
      def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
  \f
- ruby-src/test1.ru,785
+ ruby-src/test1.ru,935
  class A\7f1,0
   def a(\7f2,8
   def b(\7f5,38
@@@ -3084,9 -3084,13 +3084,13 @@@ module A\7f9,5
      attr_accessor :tee\7ftee\ 131,382
      attr_accessor :tee\7ftee=\ 131,382
      alias_method :qux,\7fqux\ 132,405
-     alias_method :xyz,\7fxyz\ 133,455
-                  :tee ; attr_reader :subtle\7fsubtle\ 134,478
- A::Constant \7fConstant\ 138,533
+     alias_method :xyz,\7fxyz\ 133,456
+                  :tee ; attr_reader :subtle\7fsubtle\ 134,479
+     attr_reader(:foo1,\7ffoo1\ 135,523
+     attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                 :qux1)\7fqux1\ 136,563
+     alias_method ( :foo2,\7ffoo2\ 137,586
+ A::Constant \7fConstant\ 142,655
  \f
  tex-src/testenv.tex,52
  \newcommand{\nm}\7f\nm\ 14,77
index d774bb1b1902ff3781146373c8ee21c9569142f2,9eb1d4297c863ab603d708163360dbcc65d83b53..9eb1d4297c863ab603d708163360dbcc65d83b53
@@@ -3631,7 -3631,7 +3631,7 @@@ module ModuleExample\7f1,
      def module_instance_method\7f46,1051
      def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
  \f
- ruby-src/test1.ru,785
+ ruby-src/test1.ru,935
  class A\7f1,0
   def a(\7f2,8
   def b(\7f5,38
@@@ -3654,9 -3654,13 +3654,13 @@@ module A\7f9,5
      attr_accessor :tee\7ftee\ 131,382
      attr_accessor :tee\7ftee=\ 131,382
      alias_method :qux,\7fqux\ 132,405
-     alias_method :xyz,\7fxyz\ 133,455
-                  :tee ; attr_reader :subtle\7fsubtle\ 134,478
- A::Constant \7fConstant\ 138,533
+     alias_method :xyz,\7fxyz\ 133,456
+                  :tee ; attr_reader :subtle\7fsubtle\ 134,479
+     attr_reader(:foo1,\7ffoo1\ 135,523
+     attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                 :qux1)\7fqux1\ 136,563
+     alias_method ( :foo2,\7ffoo2\ 137,586
+ A::Constant \7fConstant\ 142,655
  \f
  tex-src/testenv.tex,52
  \newcommand{\nm}\7f\nm\ 14,77
index e3855a593092f1e907e687cd92c88c8e10cf2707,1f5a34272e3dc7322018361a1e2cfbf1f1d9efde..1f5a34272e3dc7322018361a1e2cfbf1f1d9efde
@@@ -3408,7 -3408,7 +3408,7 @@@ module ModuleExample\7f1,
      def module_instance_method\7f46,1051
      def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
  \f
- ruby-src/test1.ru,785
+ ruby-src/test1.ru,935
  class A\7f1,0
   def a(\7f2,8
   def b(\7f5,38
@@@ -3431,9 -3431,13 +3431,13 @@@ module A\7f9,5
      attr_accessor :tee\7ftee\ 131,382
      attr_accessor :tee\7ftee=\ 131,382
      alias_method :qux,\7fqux\ 132,405
-     alias_method :xyz,\7fxyz\ 133,455
-                  :tee ; attr_reader :subtle\7fsubtle\ 134,478
- A::Constant \7fConstant\ 138,533
+     alias_method :xyz,\7fxyz\ 133,456
+                  :tee ; attr_reader :subtle\7fsubtle\ 134,479
+     attr_reader(:foo1,\7ffoo1\ 135,523
+     attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                 :qux1)\7fqux1\ 136,563
+     alias_method ( :foo2,\7ffoo2\ 137,586
+ A::Constant \7fConstant\ 142,655
  \f
  tex-src/testenv.tex,52
  \newcommand{\nm}\7f\nm\ 14,77
index dbae59bd59e940906bffa5ea4d67769c09c52ac9,b8a3d9de6dbc0843c01a7736e2e2fe14038c7bcb..b8a3d9de6dbc0843c01a7736e2e2fe14038c7bcb
@@@ -3225,7 -3225,7 +3225,7 @@@ module ModuleExample\7f1,
      def module_instance_method\7f46,1051
      def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
  \f
- ruby-src/test1.ru,785
+ ruby-src/test1.ru,935
  class A\7f1,0
   def a(\7f2,8
   def b(\7f5,38
@@@ -3248,9 -3248,13 +3248,13 @@@ module A\7f9,5
      attr_accessor :tee\7ftee\ 131,382
      attr_accessor :tee\7ftee=\ 131,382
      alias_method :qux,\7fqux\ 132,405
-     alias_method :xyz,\7fxyz\ 133,455
-                  :tee ; attr_reader :subtle\7fsubtle\ 134,478
- A::Constant \7fConstant\ 138,533
+     alias_method :xyz,\7fxyz\ 133,456
+                  :tee ; attr_reader :subtle\7fsubtle\ 134,479
+     attr_reader(:foo1,\7ffoo1\ 135,523
+     attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                 :qux1)\7fqux1\ 136,563
+     alias_method ( :foo2,\7ffoo2\ 137,586
+ A::Constant \7fConstant\ 142,655
  \f
  tex-src/testenv.tex,52
  \newcommand{\nm}\7f\nm\ 14,77
index 9ea77977ab6a28cbe3aeb1f9c89fa9b8bbfb9239,9e3b258eabcc4ddb3acfaacc8b760daeda2833fa..9e3b258eabcc4ddb3acfaacc8b760daeda2833fa
@@@ -4142,7 -4142,7 +4142,7 @@@ module ModuleExample\7f1,
      def module_instance_method\7f46,1051
      def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
  \f
- ruby-src/test1.ru,785
+ ruby-src/test1.ru,935
  class A\7f1,0
   def a(\7f2,8
   def b(\7f5,38
@@@ -4165,9 -4165,13 +4165,13 @@@ module A\7f9,5
      attr_accessor :tee\7ftee\ 131,382
      attr_accessor :tee\7ftee=\ 131,382
      alias_method :qux,\7fqux\ 132,405
-     alias_method :xyz,\7fxyz\ 133,455
-                  :tee ; attr_reader :subtle\7fsubtle\ 134,478
- A::Constant \7fConstant\ 138,533
+     alias_method :xyz,\7fxyz\ 133,456
+                  :tee ; attr_reader :subtle\7fsubtle\ 134,479
+     attr_reader(:foo1,\7ffoo1\ 135,523
+     attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                 :qux1)\7fqux1\ 136,563
+     alias_method ( :foo2,\7ffoo2\ 137,586
+ A::Constant \7fConstant\ 142,655
  \f
  tex-src/testenv.tex,52
  \newcommand{\nm}\7f\nm\ 14,77
index 7420a41b10866e9e5070aa0954f760c038bbeb0f,f5e0ad4407fa9894198ba72d1cf8e84e220616ad..f5e0ad4407fa9894198ba72d1cf8e84e220616ad
@@@ -4142,7 -4142,7 +4142,7 @@@ module ModuleExample\7f1,
      def module_instance_method\7f46,1051
      def ModuleExample.module_class_method\7fmodule_class_method\ 149,1131
  \f
- ruby-src/test1.ru,785
+ ruby-src/test1.ru,935
  class A\7f1,0
   def a(\7f2,8
   def b(\7f5,38
@@@ -4165,9 -4165,13 +4165,13 @@@ module A\7f9,5
      attr_accessor :tee\7ftee\ 131,382
      attr_accessor :tee\7ftee=\ 131,382
      alias_method :qux,\7fqux\ 132,405
-     alias_method :xyz,\7fxyz\ 133,455
-                  :tee ; attr_reader :subtle\7fsubtle\ 134,478
- A::Constant \7fConstant\ 138,533
+     alias_method :xyz,\7fxyz\ 133,456
+                  :tee ; attr_reader :subtle\7fsubtle\ 134,479
+     attr_reader(:foo1,\7ffoo1\ 135,523
+     attr_reader(:foo1, :bar1,\7fbar1\ 135,523
+                 :qux1)\7fqux1\ 136,563
+     alias_method ( :foo2,\7ffoo2\ 137,586
+ A::Constant \7fConstant\ 142,655
  \f
  tex-src/testenv.tex,52
  \newcommand{\nm}\7f\nm\ 14,77