commit 18028318d8908d547d82e8e3159994c14bb47dce (HEAD, refs/remotes/origin/master) Author: Anders Lindgren Date: Mon Sep 21 09:01:18 2015 +0200 Keep upper edge unchanged when changing size of NS frame (Bug#21415) * src/nsterm.m (x_set_window_size): Keep upper frame edge unchanged (Bug#21415). diff --git a/src/nsterm.m b/src/nsterm.m index 2806f31..14f2beb 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -1333,6 +1333,7 @@ x_set_window_size (struct frame *f, int tb = FRAME_EXTERNAL_TOOL_BAR (f); int pixelwidth, pixelheight; int rows, cols; + int orig_height = wr.size.height; NSTRACE (x_set_window_size); @@ -1386,7 +1387,7 @@ x_set_window_size (struct frame *f, if (f->output_data.ns->zooming) f->output_data.ns->zooming = 0; else - wr.origin.y += FRAME_PIXEL_HEIGHT (f) - pixelheight; + wr.origin.y += orig_height - wr.size.height; [view setRows: rows andColumns: cols]; [window setFrame: wr display: YES]; commit 57d48c364cf24c9f99f3d03eb74d9d2a81f4ae31 Author: Stefan Monnier Date: Sun Sep 20 23:01:16 2015 -0400 Subject: * lisp/progmodes/prolog.el: Improve handling of if/then/else (prolog-smie-rules): Accomodate standard if/then/else special indentation. (prolog-mode): Add . to electric-indent-chars. (prolog-electric--if-then-else): Re-indent the line before adding space after the new char (bug#21526). diff --git a/lisp/progmodes/prolog.el b/lisp/progmodes/prolog.el index b36df21..24ac8d7 100644 --- a/lisp/progmodes/prolog.el +++ b/lisp/progmodes/prolog.el @@ -925,12 +925,30 @@ This is really kludgy, and unneeded (i.e. obsolete) in Emacs>=24." (`(:after . ".") '(column . 0)) ;; To work around smie-closer-alist. ;; Allow indentation of if-then-else as: ;; ( test - ;; -> thenrule - ;; ; elserule + ;; -> thenrule + ;; ; elserule ;; ) (`(:before . ,(or `"->" `";")) - (and (smie-rule-bolp) (smie-rule-parent-p "(") (smie-rule-parent 1))) - (`(:after . ,(or `":-" `"->" `"-->")) prolog-indent-width))) + (and (smie-rule-bolp) (smie-rule-parent-p "(") (smie-rule-parent 0))) + (`(:after . ,(or `"->" `"*->")) + ;; We distinguish + ;; + ;; (a -> + ;; b; + ;; c) + ;; and + ;; ( a -> + ;; b + ;; ; c) + ;; + ;; based on the space between the open paren and the "a". + (unless (and (smie-rule-parent-p "(") + (save-excursion + (smie-indent-forward-token) + (smie-backward-sexp 'halfsexp) + (not (eq ?\( (char-before))))) + prolog-indent-width)) + (`(:after . ,(or `":-" `"-->")) prolog-indent-width))) ;;------------------------------------------------------------------- @@ -1121,6 +1139,9 @@ Commands: (dolist (ar prolog-align-rules) (add-to-list 'align-rules-list ar)) (add-hook 'post-self-insert-hook #'prolog-post-self-insert nil t) ;; `imenu' entry moved to the appropriate hook for consistency. + (when prolog-electric-dot-flag + (setq-local electric-indent-chars + (cons ?\. electric-indent-chars))) ;; Load SICStus debugger if suitable (if (and (eq prolog-system 'sicstus) @@ -2078,6 +2099,7 @@ whitespace characters, parentheses, or then/else branches." (when prolog-electric-if-then-else-flag (save-excursion (let ((regexp (concat "(\\|" prolog-left-indent-regexp)) + (pos (point)) level) (beginning-of-line) (skip-chars-forward " \t") @@ -2087,6 +2109,9 @@ whitespace characters, parentheses, or then/else branches." ;; prolog-paren-indent)) ;; work on all subsequent "->", "(", ";" + (and (looking-at regexp) + (= pos (match-end 0)) + (indent-according-to-mode)) (while (looking-at regexp) (goto-char (match-end 0)) (setq level (+ (prolog-find-unmatched-paren) prolog-paren-indent)) diff --git a/test/indent/prolog.prolog b/test/indent/prolog.prolog index 5b5d272..ca4d2c9 100644 --- a/test/indent/prolog.prolog +++ b/test/indent/prolog.prolog @@ -1,5 +1,27 @@ %% -*- mode: prolog; coding: utf-8; fill-column: 78 -*- +%% bug#21526 +test1 :- + ( a -> + b + ; c + ). + +test2 :- + ( a + -> b1, + b2 + ; c1, + c2 + ) + +test3 :- + ( a, + b + ; c + ). + + %% Testing correct tokenizing. foo(X) :- 0'= = X. foo(X) :- 8'234 = X. @@ -50,9 +72,9 @@ subst(X, V, FV, lambda(Y, Ti, Bi), lambda(Y1, To, Bo)) :- %% Perform substitution on the body. subst(X, V, FV, Bi1, Bo)), ( X = Y - %% If X is equal to Y, X is shadowed, so no subst can take place. - -> Y1 = Y, Bo = Bi - ; (member((Y, _), FV) + %% If X is equal to Y, X is shadowed, so no subst can take place. + -> Y1 = Y, Bo = Bi + ; (member((Y, _), FV) %% If Y appears in FV, it can appear in V, so we need to %% rename it to avoid name capture. -> new_atom(Y, Y1), commit dadcf33984391a285ef0b161c1122864264e4386 Author: Mark Oteiza Date: Sun Sep 20 15:20:36 2015 -0400 Add prettify symbols to python-mode lisp/progmodes/python.el (python-prettify-symbols-alist): New variable lisp/progmodes/python.el (python-mode): Use it diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el index 243125e..4fdf2ca 100644 --- a/lisp/progmodes/python.el +++ b/lisp/progmodes/python.el @@ -620,6 +620,11 @@ The type returned can be `comment', `string' or `paren'." ((python-rx string-delimiter) (0 (ignore (python-syntax-stringify)))))) +(defconst python--prettify-symbols-alist + '(("lambda" . ?\u03bb) + ("and" . ?\u2227) + ("or" . ?\u2228))) + (defsubst python-syntax-count-quotes (quote-char &optional point limit) "Count number of quotes around point (max is 3). QUOTE-CHAR is the quote char to count. Optional argument POINT is @@ -5104,6 +5109,9 @@ returned as is." "`outline-level' function for Python mode." (1+ (/ (current-indentation) python-indent-offset)))) + (set (make-local-variable 'prettify-symbols-alist) + python--prettify-symbols-alist) + (python-skeleton-add-menu-items) (make-local-variable 'python-shell-internal-buffer) commit dd1e6846198e559b1c2ca321a1e6f8b05945fd66 Author: Stefan Monnier Date: Sun Sep 20 15:53:51 2015 -0400 * lisp/emacs-lisp/syntax.el (syntax-begin-function): Make obsolete diff --git a/etc/NEWS b/etc/NEWS index 01b3ed3..5cb1af9 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -867,7 +867,8 @@ a typographically-correct documents. * Incompatible Lisp Changes in Emacs 25.1 -** Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN +** `syntax-begin-function' is declared obsolete. +Removed font-lock-beginning-of-syntax-function and the SYNTAX-BEGIN slot in font-lock-defaults. +++ diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el index fee6214..95ed775 100644 --- a/lisp/emacs-lisp/syntax.el +++ b/lisp/emacs-lisp/syntax.el @@ -374,6 +374,7 @@ from each other, to avoid keeping too much useless info.") "Function to move back outside of any comment/string/paren. This function should move the cursor back to some syntactically safe point (where the PPSS is equivalent to nil).") +(make-obsolete-variable 'syntax-begin-function nil "25.1") (defvar syntax-ppss-cache nil "List of (POS . PPSS) pairs, in decreasing POS order.") commit bf006d59e665e1289c8b4fd4fb519d478b5d87d6 Author: Jostein Kjønigsen Date: Sun Sep 20 15:46:28 2015 -0400 (compilation-error-regexp-alist-alist): Tone down guile-file * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Make guile-file a bit less enthusiastic (bug#21496). Copyright-paperwork-exempt: yes diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index f9c097e..9cb367a 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -477,7 +477,29 @@ File = \\(.+\\), Line = \\([0-9]+\\)\\(?:, Column = \\([0-9]+\\)\\)?" ;; "^\\([^ \t\r\n(]+\\) (\\([0-9]+\\):\\([0-9]+\\)) " 1 2 3) - (guile-file "^In \\(.+\\):\n" 1) + + ;; Guile compilation yields file-headers in the following format: + ;; + ;; In sourcefile.scm: + ;; + ;; We need to catch those, but we also need to be aware that Emacs + ;; byte-compilation yields compiler headers in similar form of + ;; those: + ;; + ;; In toplevel form: + ;; In end of data: + ;; + ;; We want to catch the Guile file-headers but not the Emacs + ;; byte-compilation headers, because that will cause next-error + ;; and prev-error to break, because the files "toplevel form" and + ;; "end of data" does not exist. + ;; + ;; To differentiate between these two cases, we require that the + ;; file-match must always contain an extension. + ;; + ;; We should also only treat this as "info", not "error", because + ;; we do not know what lines will follow. + (guile-file "^In \\(.+\\..+\\):\n" 1 nil nil 0) (guile-line "^ *\\([0-9]+\\): *\\([0-9]+\\)" nil 1 2) ) "Alist of values for `compilation-error-regexp-alist'.") commit 65d5ebdf4c824bef68816a651c51d73d4c623413 Author: Drew Csillag Date: Sun Sep 20 15:35:21 2015 -0400 * m4-mode.el (m4-font-lock-keywords): Fix m4_* highlighting * lisp/progmodes/m4-mode.el (m4-font-lock-keywords): Fix recognition of commands when they have a "m4_" prefix. diff --git a/lisp/progmodes/m4-mode.el b/lisp/progmodes/m4-mode.el index b0b0bdc..80a93a4 100644 --- a/lisp/progmodes/m4-mode.el +++ b/lisp/progmodes/m4-mode.el @@ -2,8 +2,7 @@ ;; Copyright (C) 1996-1997, 2001-2015 Free Software Foundation, Inc. -;; Author: Andrew Csillag -;; Maintainer: Andrew Csillag +;; Author: Andrew Csillag ;; Keywords: languages, faces ;; This file is part of GNU Emacs. @@ -69,8 +68,7 @@ If m4 is not in your PATH, set this to an absolute file name." ("\\$[*#@0-9]" . font-lock-variable-name-face) ("\\$\\@" . font-lock-variable-name-face) ("\\$\\*" . font-lock-variable-name-face) - ("\\b\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\b" . font-lock-keyword-face) - ("\\b\\(m4_\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(_undefine\\|exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|undivert\\)\\)\\b" . font-lock-keyword-face)) + ("\\_<\\(m4_\\)?\\(builtin\\|change\\(com\\|quote\\|word\\)\\|d\\(e\\(bug\\(file\\|mode\\)\\|cr\\|f\\(ine\\|n\\)\\)\\|iv\\(ert\\|num\\)\\|nl\\|umpdef\\)\\|e\\(rrprint\\|syscmd\\|val\\)\\|f\\(ile\\|ormat\\)\\|gnu\\|i\\(f\\(def\\|else\\)\\|n\\(c\\(lude\\|r\\)\\|d\\(ex\\|ir\\)\\)\\)\\|l\\(en\\|ine\\)\\|m\\(4\\(exit\\|wrap\\)\\|aketemp\\)\\|p\\(atsubst\\|opdef\\|ushdef\\)\\|regexp\\|s\\(hift\\|include\\|ubstr\\|ys\\(cmd\\|val\\)\\)\\|tra\\(ceo\\(ff\\|n\\)\\|nslit\\)\\|un\\(d\\(efine\\|ivert\\)\\|ix\\)\\)\\_>" . font-lock-keyword-face)) "Default `font-lock-keywords' for M4 mode.") (defcustom m4-mode-hook nil commit c7e69c404be9d7611ffb00ea027fed90c0667fec Author: Paul Eggert Date: Sun Sep 20 09:45:04 2015 -0700 '.' -> `.' in doc string * lisp/emacs-lisp/timer.el (run-at-time): In doc string, quote individual chars with grave quotes instead of straight quotes, as this works better when they are translated to curved quotes. diff --git a/lisp/emacs-lisp/timer.el b/lisp/emacs-lisp/timer.el index 2aca26c..c9e3fbe 100644 --- a/lisp/emacs-lisp/timer.el +++ b/lisp/emacs-lisp/timer.el @@ -350,7 +350,7 @@ TIME should be one of: - a string giving today's time like \"11:23pm\" (the acceptable formats are HHMM, H:MM, HH:MM, HHam, HHAM, HHpm, HHPM, HH:MMam, HH:MMAM, HH:MMpm, or HH:MMPM; - a period '.' can be used instead of a colon ':' to separate + a period `.' can be used instead of a colon `:' to separate the hour and minute parts); - a string giving a relative time like \"90\" or \"2 hours 35 minutes\" (the acceptable forms are a number of seconds without units commit f5bdcb3221ba28326b47210773d84c49cc9b4a1e Author: Michael Albinus Date: Sun Sep 20 18:44:36 2015 +0200 Improve file notifications, especially for Tramp * doc/lispref/files.texi (Magic File Names): Mention `file-notify-valid-p'. * doc/lispref/os.texi (File Notifications): Describe `file-notify-valid-p'. * etc/NEWS: Add `file-notify-valid-p'. * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch): Improve implementation. (tramp-gvfs-monitor-file-process-filter): Rename from `tramp-gvfs-file-gvfs-monitor-file-process-filter'. Delete process if appropriate. * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): Improve implementation. (tramp-sh-gvfs-monitor-dir-process-filter): Rename from `tramp-sh-file-gvfs-monitor-dir-process-filter'. Delete process if appropriate. (tramp-sh-inotifywait-process-filter): Rename from `tramp-sh-file-inotifywait-process-filter'. Delete process if appropriate. * lisp/net/tramp.el (tramp-handle-file-notify-rm-watch): Use `delete-process' (tramp-handle-file-notify-valid-p): Check also, that file or directory to be watched still exists. * test/automated/file-notify-tests.el (file-notify--test-timeout): New defun. Use it at all places a timeout is needed. (file-notify--test-cleanup): Delete directories recursively. Cleanup also Tramp connections. (file-notify-test02-events): Add tests for `attribute-change'. (file-notify-test04-file-validity, file-notify-test05-dir-validity): Add tests for `file-notify-rm-watch'. diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index ffc7936..db2ecc0 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -2854,6 +2854,7 @@ first, before handlers for jobs such as remote file access. @code{file-name-nondirectory}, @code{file-name-sans-versions}, @code{file-newer-than-file-p}, @code{file-notify-add-watch}, @code{file-notify-rm-watch}, +@code{file-notify-valid-p}, @code{file-ownership-preserved-p}, @code{file-readable-p}, @code{file-regular-p}, @code{file-remote-p}, @code{file-selinux-context}, @@ -2907,6 +2908,7 @@ first, before handlers for jobs such as remote file access. @code{file-name-nondirec@discretionary{}{}{}tory}, @code{file-name-sans-versions}, @code{file-newer-than-file-p}, @code{file-notify-add-watch}, @code{file-notify-rm-watch}, +@code{file-notify-valid-p}, @code{file-ownership-pre@discretionary{}{}{}served-p}, @code{file-readable-p}, @code{file-regular-p}, @code{file-remote-p}, @code{file-selinux-context}, diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi index cb58303..f5eecb2 100644 --- a/doc/lispref/os.texi +++ b/doc/lispref/os.texi @@ -2692,6 +2692,17 @@ Removes an existing file watch specified by its @var{descriptor}. @code{file-notify-add-watch}. @end defun +@defun file-notify-valid-p descriptor +Checks a watch specified by its @var{descriptor} for validity. +@var{descriptor} should be an object returned by +@code{file-notify-add-watch}. + +A watch can become invalid if the file or directory it watches is +deleted, or if the watcher thread exits abnormally for any other +reason. Removing the watch by calling @code{file-notify-rm-watch} +also makes it invalid. +@end defun + @node Dynamic Libraries @section Dynamically Loaded Libraries @cindex dynamic libraries diff --git a/etc/NEWS b/etc/NEWS index b5c52e3..01b3ed3 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -412,7 +412,6 @@ the old behavior -- *shell* buffer displays in current window -- use (add-to-list 'display-buffer-alist '("^\\*shell\\*$" . (display-buffer-same-window))). - ** EIEIO +++ *** The `:protection' slot option is not obeyed any more. @@ -657,11 +656,17 @@ plist will contain a :peer element that has the output of ** Tramp ++++ *** New connection method "nc", which allows to access dumb busyboxes. ++++ *** Method-specific parameters can be overwritten now with variable `tramp-connection-properties'. +--- +*** Handler for `file-notify-valid-p' for remote machines that support +filesystem notifications. + ** SQL mode *** New user variable `sql-default-directory' enables remote @@ -822,9 +827,15 @@ make the new option `eshell-destroy-buffer-when-process-dies' non-nil. ** tar-mode: new `tar-new-entry' command, allowing for new members to be added to the archive. +--- ** Autorevert: dired buffers are also auto-reverted via file notifications, if Emacs is compiled with file notification support. ++++ +** File Notifications: the new function `file-notify-valid-p' checks, +whether a file notification descriptor still corresponds to an +activate watch. + ** Obsolete packages --- diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el index cf42b59..b7b0a1c 100644 --- a/lisp/net/tramp-gvfs.el +++ b/lisp/net/tramp-gvfs.el @@ -1003,27 +1003,48 @@ file names." v (concat localname filename) "file-name-all-completions" result)))))))) -(defun tramp-gvfs-handle-file-notify-add-watch (file-name _flags _callback) +(defun tramp-gvfs-handle-file-notify-add-watch (file-name flags _callback) "Like `file-notify-add-watch' for Tramp files." (setq file-name (expand-file-name file-name)) (with-parsed-tramp-file-name file-name nil - (let ((p (start-process - "gvfs-monitor-file" (generate-new-buffer " *gvfs-monitor-file*") - "gvfs-monitor-file" (tramp-gvfs-url-file-name file-name)))) + ;; We cannot watch directories, because `gvfs-monitor-dir' is not + ;; supported for gvfs-mounted directories. + (when (file-directory-p file-name) + (tramp-error + v 'file-notify-error "Monitoring not supported for `%s'" file-name)) + (let* ((default-directory (file-name-directory file-name)) + (events + (cond + ((and (memq 'change flags) (memq 'attribute-change flags)) + '(created changed changes-done-hint moved deleted + attribute-changed)) + ((memq 'change flags) + '(created changed changes-done-hint moved deleted)) + ((memq 'attribute-change flags) '(attribute-changed)))) + (p (start-process + "gvfs-monitor-file" (generate-new-buffer " *gvfs-monitor-file*") + "gvfs-monitor-file" (tramp-gvfs-url-file-name file-name)))) (if (not (processp p)) (tramp-error - v 'file-notify-error "gvfs-monitor-file failed to start") + v 'file-notify-error "Monitoring not supported for `%s'" file-name) (tramp-message v 6 "Run `%s', %S" (mapconcat 'identity (process-command p) " ") p) (tramp-set-connection-property p "vector" v) + (tramp-compat-process-put p 'events events) + (tramp-compat-process-put p 'watch-name localname) (tramp-compat-set-process-query-on-exit-flag p nil) - (set-process-filter p 'tramp-gvfs-file-gvfs-monitor-file-process-filter) - (with-current-buffer (process-buffer p) - (setq default-directory (file-name-directory file-name))) + (set-process-filter p 'tramp-gvfs-monitor-file-process-filter) + ;; There might be an error if the monitor is not supported. + ;; Give the filter a chance to read the output. + (tramp-accept-process-output p 1) + (unless (memq (process-status p) '(run open)) + (tramp-error + v 'file-notify-error "Monitoring not supported for `%s'" file-name)) p)))) -(defun tramp-gvfs-file-gvfs-monitor-file-process-filter (proc string) - "Read output from \"gvfs-monitor-file\" and add corresponding file-notify events." +(defun tramp-gvfs-monitor-file-process-filter (proc string) + "Read output from \"gvfs-monitor-file\" and add corresponding \ +file-notify events." (let* ((rest-string (tramp-compat-process-get proc 'rest-string)) (dd (with-current-buffer (process-buffer proc) default-directory)) (ddu (regexp-quote (tramp-gvfs-url-file-name dd)))) @@ -1034,6 +1055,8 @@ file names." ;; Attribute change is returned in unused wording. string (tramp-compat-replace-regexp-in-string "ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string)) + (when (string-match "Monitoring not supported" string) + (delete-process proc)) (while (string-match (concat "^[\n\r]*" @@ -1041,10 +1064,10 @@ file names." "File = \\([^\n\r]+\\)[\n\r]+" "Event = \\([^[:blank:]]+\\)[\n\r]+") string) - (let ((action (intern-soft + (let ((file (match-string 1 string)) + (action (intern-soft (tramp-compat-replace-regexp-in-string - "_" "-" (downcase (match-string 2 string))))) - (file (match-string 1 string))) + "_" "-" (downcase (match-string 2 string)))))) (setq string (replace-match "" nil nil string)) ;; File names are returned as URL paths. We must convert them. (when (string-match ddu file) diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el index 206ddfb..433b2ba 100644 --- a/lisp/net/tramp-sh.el +++ b/lisp/net/tramp-sh.el @@ -3722,12 +3722,12 @@ Fall back to normal file name handler if no Tramp handler exists." "Like `file-notify-add-watch' for Tramp files." (setq file-name (expand-file-name file-name)) (with-parsed-tramp-file-name file-name nil - (let* ((default-directory (file-name-directory file-name)) - command events filter p sequence) + (let ((default-directory (file-name-directory file-name)) + command events filter p sequence) (cond ;; gvfs-monitor-dir. ((setq command (tramp-get-remote-gvfs-monitor-dir v)) - (setq filter 'tramp-sh-file-gvfs-monitor-dir-process-filter + (setq filter 'tramp-sh-gvfs-monitor-dir-process-filter events (cond ((and (memq 'change flags) (memq 'attribute-change flags)) @@ -3739,16 +3739,16 @@ Fall back to normal file name handler if no Tramp handler exists." sequence `(,command ,localname))) ;; inotifywait. ((setq command (tramp-get-remote-inotifywait v)) - (setq filter 'tramp-sh-file-inotifywait-process-filter + (setq filter 'tramp-sh-inotifywait-process-filter events (cond ((and (memq 'change flags) (memq 'attribute-change flags)) (concat "create,modify,move,moved_from,moved_to,move_self," - "delete,delete_self,attrib")) + "delete,delete_self,attrib,ignored")) ((memq 'change flags) (concat "create,modify,move,moved_from,moved_to,move_self," - "delete,delete_self")) - ((memq 'attribute-change flags) "attrib")) + "delete,delete_self,ignored")) + ((memq 'attribute-change flags) "attrib,ignored")) sequence `(,command "-mq" "-e" ,events ,localname))) ;; None. (t (tramp-error @@ -3770,13 +3770,20 @@ Fall back to normal file name handler if no Tramp handler exists." (mapconcat 'identity sequence " ")) (tramp-message v 6 "Run `%s', %S" (mapconcat 'identity sequence " ") p) (tramp-set-connection-property p "vector" v) - ;; Needed for `tramp-sh-file-gvfs-monitor-dir-process-filter'. + ;; Needed for `tramp-sh-gvfs-monitor-dir-process-filter'. (tramp-compat-process-put p 'events events) + (tramp-compat-process-put p 'watch-name localname) (tramp-compat-set-process-query-on-exit-flag p nil) (set-process-filter p filter) + ;; There might be an error if the monitor is not supported. + ;; Give the filter a chance to read the output. + (tramp-accept-process-output p 1) + (unless (memq (process-status p) '(run open)) + (tramp-error + v 'file-notify-error "Monitoring not supported for `%s'" file-name)) p)))) -(defun tramp-sh-file-gvfs-monitor-dir-process-filter (proc string) +(defun tramp-sh-gvfs-monitor-dir-process-filter (proc string) "Read output from \"gvfs-monitor-dir\" and add corresponding \ file-notify events." (let ((remote-prefix @@ -3790,6 +3797,8 @@ file-notify events." ;; Attribute change is returned in unused wording. string (tramp-compat-replace-regexp-in-string "ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string)) + (when (string-match "Monitoring not supported" string) + (delete-process proc)) (while (string-match (concat "^[\n\r]*" @@ -3798,18 +3807,24 @@ file-notify events." "\\(Other = \\([^\n\r]+\\)[\n\r]+\\)?" "Event = \\([^[:blank:]]+\\)[\n\r]+") string) - (let ((object - (list - proc - (intern-soft - (tramp-compat-replace-regexp-in-string - "_" "-" (downcase (match-string 4 string)))) - ;; File names are returned as absolute paths. We must - ;; add the remote prefix. - (concat remote-prefix (match-string 1 string)) - (when (match-string 3 string) - (concat remote-prefix (match-string 3 string)))))) + (let* ((file (match-string 1 string)) + (file1 (match-string 3 string)) + (object + (list + proc + (intern-soft + (tramp-compat-replace-regexp-in-string + "_" "-" (downcase (match-string 4 string)))) + ;; File names are returned as absolute paths. We must + ;; add the remote prefix. + (concat remote-prefix file) + (when file1 (concat remote-prefix file1))))) (setq string (replace-match "" nil nil string)) + ;; Remove watch when file or directory to be watched is deleted. + (when (and (member (cadr object) '(moved deleted)) + (string-equal + file (tramp-compat-process-get proc 'watch-name))) + (delete-process proc)) ;; Usually, we would add an Emacs event now. Unfortunately, ;; `unread-command-events' does not accept several events at ;; once. Therefore, we apply the callback directly. @@ -3821,7 +3836,7 @@ file-notify events." (when string (tramp-message proc 10 "Rest string:\n%s" string)) (tramp-compat-process-put proc 'rest-string string))) -(defun tramp-sh-file-inotifywait-process-filter (proc string) +(defun tramp-sh-inotifywait-process-filter (proc string) "Read output from \"inotifywait\" and add corresponding file-notify events." (tramp-message proc 6 "%S\n%s" proc string) (dolist (line (split-string string "[\n\r]+" 'omit-nulls)) @@ -3843,6 +3858,9 @@ file-notify events." (tramp-compat-replace-regexp-in-string "_" "-" (downcase x)))) (split-string (match-string 1 line) "," 'omit-nulls)) (match-string 3 line)))) + ;; Remove watch when file or directory to be watched is deleted. + (when (equal (cadr object) 'ignored) + (delete-process proc)) ;; Usually, we would add an Emacs event now. Unfortunately, ;; `unread-command-events' does not accept several events at ;; once. Therefore, we apply the callback directly. diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el index 9ec3226..fbb8c8a 100644 --- a/lisp/net/tramp.el +++ b/lisp/net/tramp.el @@ -3407,7 +3407,7 @@ of." (defun tramp-handle-file-notify-add-watch (filename _flags _callback) "Like `file-notify-add-watch' for Tramp files." ;; This is the default handler. tramp-gvfs.el and tramp-sh.el have - ;; its own one. + ;; their own one. (setq filename (expand-file-name filename)) (with-parsed-tramp-file-name filename nil (tramp-error @@ -3419,11 +3419,17 @@ of." (unless (processp proc) (tramp-error proc 'file-notify-error "Not a valid descriptor %S" proc)) (tramp-message proc 6 "Kill %S" proc) - (kill-process proc)) + (delete-process proc)) (defun tramp-handle-file-notify-valid-p (proc) "Like `file-notify-valid-p' for Tramp files." - (and proc (processp proc) (memq (process-status proc) '(run open)))) + (and proc (processp proc) (memq (process-status proc) '(run open)) + ;; Sometimes, the process is still in status `run' when the + ;; file or directory to be watched is deleted already. + (with-current-buffer (process-buffer proc) + (file-exists-p + (concat (file-remote-p default-directory) + (tramp-compat-process-get proc 'watch-name)))))) ;;; Functions for establishing connection: diff --git a/test/automated/file-notify-tests.el b/test/automated/file-notify-tests.el index dfc3244..9d66f03 100644 --- a/test/automated/file-notify-tests.el +++ b/test/automated/file-notify-tests.el @@ -61,6 +61,8 @@ (defvar file-notify--test-results nil) (defvar file-notify--test-event nil) (defvar file-notify--test-events nil) +(defun file-notify--test-timeout () + (if (file-remote-p temporary-file-directory) 6 3)) (defun file-notify--test-cleanup () "Cleanup after a test." @@ -69,13 +71,16 @@ (when (and file-notify--test-tmpfile (file-exists-p file-notify--test-tmpfile)) (if (directory-name-p file-notify--test-tmpfile) - (delete-directory file-notify--test-tmpfile) + (delete-directory file-notify--test-tmpfile 'recursive) (delete-file file-notify--test-tmpfile))) (when (and file-notify--test-tmpfile1 (file-exists-p file-notify--test-tmpfile1)) (if (directory-name-p file-notify--test-tmpfile1) - (delete-directory file-notify--test-tmpfile1) + (delete-directory file-notify--test-tmpfile1 'recursive) (delete-file file-notify--test-tmpfile1))) + (when (file-remote-p temporary-file-directory) + (tramp-cleanup-connection + (tramp-dissect-file-name temporary-file-directory) nil 'keep-password)) (setq file-notify--test-tmpfile nil) (setq file-notify--test-tmpfile1 nil) @@ -150,6 +155,8 @@ being the result.") (should (setq file-notify--test-desc (file-notify-add-watch temporary-file-directory '(change) 'ignore))) + + ;; Cleanup. (file-notify--test-cleanup)) (file-notify--deftest-remote file-notify-test00-availability @@ -190,6 +197,7 @@ being the result.") (file-notify-add-watch temporary-file-directory '(change) 3)) '(wrong-type-argument 3))) + ;; Cleanup. (file-notify--test-cleanup)) (file-notify--deftest-remote file-notify-test01-add-watch @@ -215,11 +223,11 @@ is bound somewhere." (defun file-notify--test-event-handler (event) "Run a test over FILE-NOTIFY--TEST-EVENT. -For later analysis, append the test result to -`file-notify--test-results' and the event to -`file-notify--test-events'." +For later analysis, append the test result to `file-notify--test-results' +and the event to `file-notify--test-events'." (let* ((file-notify--test-event event) - (result (ert-run-test (make-ert-test :body 'file-notify--test-event-test)))) + (result + (ert-run-test (make-ert-test :body 'file-notify--test-event-test)))) (setq file-notify--test-events (append file-notify--test-events `(,file-notify--test-event))) (setq file-notify--test-results @@ -243,7 +251,7 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." (declare (indent 3)) (let ((outer (make-symbol "outer"))) `(let ((,outer file-notify--test-events)) - (let ((file-notify--test-events nil)) + (let (file-notify--test-events) ,@body (file-notify--wait-for-events ,timeout (= ,n (length file-notify--test-events))) @@ -256,9 +264,7 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." (skip-unless (file-notify--test-local-enabled)) (unwind-protect (progn - (setq file-notify--test-results nil - file-notify--test-events nil - file-notify--test-tmpfile (file-notify--test-make-temp-name) + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name) file-notify--test-tmpfile1 (file-notify--test-make-temp-name) file-notify--test-desc (file-notify-add-watch @@ -268,41 +274,66 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." ;; Check creation, change, and deletion. (file-notify--test-with-events - 3 3 (lambda (events) - (should (equal '(created changed deleted) - (mapcar #'cadr events)))) + 3 (file-notify--test-timeout) + (lambda (events) + (should (equal '(created changed deleted) + (mapcar #'cadr events)))) (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) (delete-file file-notify--test-tmpfile)) ;; Check copy. (file-notify--test-with-events - 3 3 (lambda (events) - (should (equal '(created changed deleted) - (mapcar #'cadr events)))) + 3 (file-notify--test-timeout) + (lambda (events) + (should (equal '(created changed deleted) + (mapcar #'cadr events)))) (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) (copy-file file-notify--test-tmpfile file-notify--test-tmpfile1) + ;; The next two events shall not be visible. + (set-file-modes file-notify--test-tmpfile 000) + (set-file-times file-notify--test-tmpfile '(0 0)) (delete-file file-notify--test-tmpfile) (delete-file file-notify--test-tmpfile1)) ;; Check rename. (file-notify--test-with-events - 3 3 (lambda (events) - (should (equal '(created changed renamed) - (mapcar #'cadr events)))) + 3 (file-notify--test-timeout) + (lambda (events) + (should (equal '(created changed renamed) + (mapcar #'cadr events)))) (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) (rename-file file-notify--test-tmpfile file-notify--test-tmpfile1) ;; After the rename, we won't get events anymore. (delete-file file-notify--test-tmpfile1)) + ;; Check attribute change. + (file-notify-rm-watch file-notify--test-desc) + (setq file-notify--test-desc + (file-notify-add-watch + file-notify--test-tmpfile + '(attribute-change) 'file-notify--test-event-handler)) + (file-notify--test-with-events + 2 (file-notify--test-timeout) + (lambda (events) + (should (equal '(attribute-changed attribute-changed) + (mapcar #'cadr events)))) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (set-file-modes file-notify--test-tmpfile 000) + (read-event nil nil 0.1) ; In order to distinguish the events. + (set-file-times file-notify--test-tmpfile '(0 0)) + (delete-file file-notify--test-tmpfile)) + ;; Check the global sequence again just to make sure that ;; `file-notify--test-events' has been set correctly. (should (equal (mapcar #'cadr file-notify--test-events) '(created changed deleted created changed deleted - created changed renamed))) + created changed renamed + attribute-changed attribute-changed))) (should file-notify--test-results) (dolist (result file-notify--test-results) @@ -310,6 +341,8 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." (when (ert-test-failed-p result) (ert-fail (cadr (ert-test-result-with-condition-condition result)))))) + + ;; Cleanup. (file-notify--test-cleanup))) (file-notify--deftest-remote file-notify-test02-events @@ -367,7 +400,7 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." (buffer-string)))) (should (string-match "another text" (buffer-string))))) - ;; Exit. + ;; Cleanup. (ignore-errors (kill-buffer buf)) (file-notify--test-cleanup)))) @@ -377,6 +410,31 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." (ert-deftest file-notify-test04-file-validity () "Check `file-notify-valid-p' for files." (skip-unless (file-notify--test-local-enabled)) + + (unwind-protect + (progn + (setq file-notify--test-tmpfile (file-notify--test-make-temp-name)) + (setq file-notify--test-desc (file-notify-add-watch + file-notify--test-tmpfile + '(change) + #'file-notify--test-event-handler)) + (file-notify--test-with-events + 2 (file-notify--test-timeout) + (lambda (events) + (should (equal '(created changed) + (mapcar #'cadr events)))) + (should (file-notify-valid-p file-notify--test-desc)) + (write-region + "any text" nil file-notify--test-tmpfile nil 'no-message) + (should (file-notify-valid-p file-notify--test-desc))) + ;; After removing the watch, the descriptor must not be valid + ;; anymore. + (file-notify-rm-watch file-notify--test-desc) + (should-not (file-notify-valid-p file-notify--test-desc))) + + ;; Cleanup. + (file-notify--test-cleanup)) + ;; The batch-mode operation of w32notify is fragile (there's no ;; input threads to send the message to). (skip-unless (not (and noninteractive (eq file-notify--library 'w32notify)))) @@ -389,9 +447,10 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." '(change) #'file-notify--test-event-handler)) (file-notify--test-with-events - 2 3 (lambda (events) - (should (equal '(created changed) - (mapcar #'cadr events)))) + 2 (file-notify--test-timeout) + (lambda (events) + (should (equal '(created changed) + (mapcar #'cadr events)))) (should (file-notify-valid-p file-notify--test-desc)) (write-region "any text" nil file-notify--test-tmpfile nil 'no-message) @@ -399,10 +458,12 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." ;; After deleting the parent, the descriptor must not be valid ;; anymore. (delete-directory temporary-file-directory t) - (read-event nil nil 0.5) + (file-notify--wait-for-events + (file-notify--test-timeout) + (not (file-notify-valid-p file-notify--test-desc))) (should-not (file-notify-valid-p file-notify--test-desc))) - ;; Exit. + ;; Cleanup. (file-notify--test-cleanup))) (file-notify--deftest-remote file-notify-test04-file-validity @@ -411,6 +472,25 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." (ert-deftest file-notify-test05-dir-validity () "Check `file-notify-valid-p' for directories." (skip-unless (file-notify--test-local-enabled)) + + (unwind-protect + (progn + (setq file-notify--test-tmpfile (file-name-as-directory + (file-notify--test-make-temp-name))) + (make-directory file-notify--test-tmpfile) + (setq file-notify--test-desc (file-notify-add-watch + file-notify--test-tmpfile + '(change) + #'file-notify--test-event-handler)) + (should (file-notify-valid-p file-notify--test-desc)) + ;; After removing the watch, the descriptor must not be valid + ;; anymore. + (file-notify-rm-watch file-notify--test-desc) + (should-not (file-notify-valid-p file-notify--test-desc))) + + ;; Cleanup. + (file-notify--test-cleanup)) + ;; The batch-mode operation of w32notify is fragile (there's no ;; input threads to send the message to). (skip-unless (not (and noninteractive (eq file-notify--library 'w32notify)))) @@ -424,13 +504,15 @@ Don't wait longer than TIMEOUT seconds for the events to be delivered." '(change) #'file-notify--test-event-handler)) (should (file-notify-valid-p file-notify--test-desc)) - (delete-directory file-notify--test-tmpfile t) ;; After deleting the directory, the descriptor must not be ;; valid anymore. - (read-event nil nil 0.5) + (delete-directory file-notify--test-tmpfile t) + (file-notify--wait-for-events + (file-notify--test-timeout) + (not (file-notify-valid-p file-notify--test-desc))) (should-not (file-notify-valid-p file-notify--test-desc))) - ;; Exit. + ;; Cleanup. (file-notify--test-cleanup))) (file-notify--deftest-remote file-notify-test05-dir-validity commit ab11a1cf27ebe3791df45cccde3c851affd184dd Author: Paul Eggert Date: Sun Sep 20 09:40:35 2015 -0700 Use %s to format strings instead of splicing them If FOO might contain quotes that are part of a file or variable name, the quotes should not be translated when showing FOO’s name in a diagnostic. So, for example, (message (concat (FOO ": bar"))) is not quite right, as it would translate FOO’s quotes. Change it to (message "%s: bar" FOO) instead. * lisp/allout.el (allout-process-exposed): * lisp/calc/calc-ext.el (calc-do-prefix-help): * lisp/calc/calc-store.el (calc-store-into): * lisp/calendar/todo-mode.el (todo-category-completions): * lisp/cedet/semantic/complete.el (semantic-completion-message): * lisp/org/ob-latex.el (convert-pdf): * lisp/org/org-crypt.el (org-crypt-check-auto-save): * lisp/org/ox-latex.el (org-latex-compile): * lisp/org/ox-man.el (org-man-compile): * lisp/org/ox-odt.el (org-odt--export-wrap): * lisp/org/ox-texinfo.el (org-texinfo-compile): * lisp/progmodes/ruby-mode.el (ruby-in-ppss-context-p): * lisp/progmodes/verilog-mode.el (verilog-batch-execute-func) (verilog-signals-combine-bus, verilog-read-defines) (verilog-getopt-file, verilog-expand-dirnames) (verilog-modi-lookup, verilog-modi-modport-lookup-one): * lisp/term/ns-win.el (ns-spi-service-call): Use %s to avoid translating quotes of file names etc. in diagnostics. diff --git a/lisp/allout.el b/lisp/allout.el index bbd69cd..5273fe2 100644 --- a/lisp/allout.el +++ b/lisp/allout.el @@ -5562,9 +5562,8 @@ Defaults: ;; Specified but not a buffer -- get it: (let ((got (get-buffer frombuf))) (if (not got) - (error (concat "allout-process-exposed: source buffer " - frombuf - " not found.")) + (error "allout-process-exposed: source buffer %s not found." + frombuf) (setq frombuf got)))) ;; not specified -- default it: (setq frombuf (current-buffer))) diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el index 83722e7..933c446 100644 --- a/lisp/calc/calc-ext.el +++ b/lisp/calc/calc-ext.el @@ -1327,9 +1327,8 @@ calc-kill calc-kill-region calc-yank)))) (setq calc-prefix-help-retry (= chr ??)) (if bnd (call-interactively bnd) - (if key - (message (concat (key-description (vector key chr)) " is undefined")) - (message (concat (key-description (vector chr)) " is undefined"))))))) + (message "%s is undefined" + (key-description (if key (vector key chr) (vector chr)))))))) ;;;; Commands. diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el index 3d8c865..21209c6 100644 --- a/lisp/calc/calc-store.el +++ b/lisp/calc/calc-store.el @@ -58,8 +58,8 @@ (let ((msg (calc-store-value var (or calc-given-value (calc-top 1)) "" calc-given-value-flag))) - (message (concat "Stored to variable \"%s\"" msg) - (calc-var-name var))))) + (message "Stored to variable \"%s\"%s" + (calc-var-name var) msg)))) (setq var (calc-is-assignments (calc-top 1))) (if var (while var @@ -67,8 +67,8 @@ (calc-store-value (car (car var)) (cdr (car var)) (if (not (cdr var)) "") (if (not (cdr var)) 1)))) - (message (concat "Stored to variable \"%s\"" msg) - (calc-var-name (car (car var))))) + (message "Stored to variable \"%s\"%s" + (calc-var-name (car (car var))) msg)) (setq var (cdr var)))))))) (defun calc-store-plus (&optional var) @@ -422,8 +422,8 @@ (calc-var-name var1))))) (if var2 (let ((msg (calc-store-value var2 value ""))) - (message (concat "Variable \"%s\" copied to \"%s\"" msg) - (calc-var-name var1) (calc-var-name var2)))))))) + (message "Variable \"%s\" copied to \"%s\"%s" + (calc-var-name var1) (calc-var-name var2) msg))))))) (defvar calc-last-edited-variable nil) (defun calc-edit-variable (&optional var) diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el index 527548f..27ca17b 100644 --- a/lisp/calendar/todo-mode.el +++ b/lisp/calendar/todo-mode.el @@ -5643,9 +5643,10 @@ have been removed." (when deleted (let ((pl (> (length deleted) 1)) (names (mapconcat (lambda (f) (concat "\"" f "\"")) deleted ", "))) - (message (concat "File" (if pl "s" "") " " names " ha" (if pl "ve" "s") + (message (concat "File" (if pl "s" "") " %s ha" (if pl "ve" "s") " been deleted and removed from\n" - "the list of category completion files"))) + "the list of category completion files") + names)) (todo-reevaluate-category-completions-files-defcustom) (custom-set-default 'todo-category-completions-files (symbol-value 'todo-category-completions-files)) diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el index d32b2c4..9b7882c 100644 --- a/lisp/cedet/semantic/complete.el +++ b/lisp/cedet/semantic/complete.el @@ -156,7 +156,7 @@ Presumably if you call this you will insert something new there." "Display the string FMT formatted with ARGS at the end of the minibuffer." (if semantic-complete-inline-overlay (apply 'message fmt args) - (message (concat (buffer-string) (apply #'format-message fmt args))))) + (apply 'message (concat "%s" fmt) (buffer-string) args))) ;;; ------------------------------------------------------------ ;;; MINIBUFFER: Option Selection harnesses diff --git a/lisp/org/ob-latex.el b/lisp/org/ob-latex.el index d0a413f..811c9ef 100644 --- a/lisp/org/ob-latex.el +++ b/lisp/org/ob-latex.el @@ -183,7 +183,7 @@ This function is called by `org-babel-execute-src-block'." "Generate a file from a pdf file using imagemagick." (let ((cmd (concat "convert " im-in-options " " pdffile " " im-out-options " " out-file))) - (message (concat "Converting pdffile file " cmd "...")) + (message "Converting pdffile file %s..." cmd) (shell-command cmd))) (defun org-babel-latex-tex-to-pdf (file) diff --git a/lisp/org/org-crypt.el b/lisp/org/org-crypt.el index f527673..2b3445e 100644 --- a/lisp/org/org-crypt.el +++ b/lisp/org/org-crypt.el @@ -133,9 +133,10 @@ See `org-crypt-disable-auto-save'." (and (eq org-crypt-disable-auto-save 'ask) (y-or-n-p "org-decrypt: auto-save-mode may cause leakage. Disable it for current buffer? "))) - (message (concat "org-decrypt: Disabling auto-save-mode for " (or (buffer-file-name) (current-buffer)))) - ; The argument to auto-save-mode has to be "-1", since - ; giving a "nil" argument toggles instead of disabling. + (message "org-decrypt: Disabling auto-save-mode for %s" + (or (buffer-file-name) (current-buffer))) + ;; The argument to auto-save-mode has to be "-1", since + ;; giving a "nil" argument toggles instead of disabling. (auto-save-mode -1)) ((eq org-crypt-disable-auto-save nil) (message "org-decrypt: Decrypting entry with auto-save-mode enabled. This may cause leakage.")) diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el index 91a864e..51f7b17 100644 --- a/lisp/org/ox-latex.el +++ b/lisp/org/ox-latex.el @@ -2876,8 +2876,8 @@ Return PDF file name or an error if it couldn't be produced." ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p pdffile)) - (error (concat (format "PDF file %s wasn't produced" pdffile) - (when errors (concat ": " errors)))) + (error "PDF file %s wasn't produced%s" pdffile + (if errors (concat ": " errors) "")) ;; Else remove log files, when specified, and signal end of ;; process to user, along with any error encountered. (when (and (not snippet) org-latex-remove-logfiles) diff --git a/lisp/org/ox-man.el b/lisp/org/ox-man.el index d7adcd5..09ad186 100644 --- a/lisp/org/ox-man.el +++ b/lisp/org/ox-man.el @@ -1219,8 +1219,8 @@ Return PDF file name or an error if it couldn't be produced." ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p pdffile)) - (error (concat (format "PDF file %s wasn't produced" pdffile) - (when errors (concat ": " errors)))) + (error "PDF file %s wasn't produced%s" pdffile + (if errors (concat ": " errors) "")) ;; Else remove log files, when specified, and signal end of ;; process to user, along with any error encountered. (when org-man-remove-logfiles diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el index 1ee201b..9abda33 100644 --- a/lisp/org/ox-odt.el +++ b/lisp/org/ox-odt.el @@ -4089,8 +4089,8 @@ contextual information." nil standard-output nil (cdr cmd))))) (or (zerop exitcode) (error (concat "Unable to create OpenDocument file." - (format " Zip failed with error (%s)" - err-string))))) + " Zip failed with error (%s)") + err-string))) cmds))) ;; Move the zip file from temporary work directory to ;; user-mandated location. diff --git a/lisp/org/ox-texinfo.el b/lisp/org/ox-texinfo.el index 5130329..67daf6f 100644 --- a/lisp/org/ox-texinfo.el +++ b/lisp/org/ox-texinfo.el @@ -1534,8 +1534,8 @@ Return INFO file name or an error if it couldn't be produced." ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p infofile)) - (error (concat (format "INFO file %s wasn't produced" infofile) - (when errors (concat ": " errors)))) + (error "INFO file %s wasn't produced%s" infofile + (if errors (concat ": " errors) "")) ;; Else remove log files, when specified, and signal end of ;; process to user, along with any error encountered. (when org-texinfo-remove-logfiles diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el index a5efb93..0933886 100644 --- a/lisp/progmodes/ruby-mode.el +++ b/lisp/progmodes/ruby-mode.el @@ -2007,7 +2007,8 @@ It will be properly highlighted even when the call omits parens.") (t (error (concat "Internal error on `ruby-in-ppss-context-p': " - "context name `" (symbol-name context) "' is unknown")))) + "context name `%s' is unknown") + context))) t))) (defvar ruby-font-lock-syntax-table diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el index 85733e1..489094b 100644 --- a/lisp/progmodes/verilog-mode.el +++ b/lisp/progmodes/verilog-mode.el @@ -5301,8 +5301,8 @@ Save the result unless optional NO-SAVE is t." (save-excursion (if (not (file-exists-p (buffer-file-name buf))) (error - (concat "File not found: " (buffer-file-name buf)))) - (message (concat "Processing " (buffer-file-name buf))) + "File not found: %s" (buffer-file-name buf))) + (message "Processing %s" (buffer-file-name buf)) (set-buffer buf) (funcall funref) (when (and (not no-save) @@ -8074,9 +8074,9 @@ Duplicate signals are also removed. For example A[2] and A[1] become A[2:1]." (when (and sv-busstring (not (equal sv-busstring (verilog-sig-bits sig)))) (when nil ; Debugging - (message (concat "Warning, can't merge into single bus " - sv-name bus - ", the AUTOs may be wrong"))) + (message (concat "Warning, can't merge into single bus %s%s" + ", the AUTOs may be wrong") + sv-name bus)) (setq buswarn ", Couldn't Merge")) (if (verilog-sig-comment sig) (setq combo ", ...")) (setq sv-memory (or sv-memory (verilog-sig-memory sig)) @@ -9325,8 +9325,8 @@ warning message, you need to add to your init file: (let ((fns (verilog-library-filenames filename (buffer-file-name)))) (if fns (set-buffer (find-file-noselect (car fns))) - (error (concat (verilog-point-text) - ": Can't find verilog-read-defines file: " filename))))) + (error "%s: Can't find verilog-read-defines file: %s" + (verilog-point-text) filename)))) (when recurse (goto-char (point-min)) (while (re-search-forward "^\\s-*`include\\s-+\\([^ \t\n\f]+\\)" nil t) @@ -9507,8 +9507,8 @@ Some macros and such are also found and included. For dinotrace.el." line) (if fns (set-buffer (find-file-noselect (car fns))) - (error (concat (verilog-point-text) - ": Can't find verilog-getopt-file -f file: " filename))) + (error "%s: Can't find verilog-getopt-file -f file: %s" + (verilog-point-text) filename)) (goto-char (point-min)) (while (not (eobp)) (setq line (buffer-substring (point) (point-at-eol))) @@ -9710,7 +9710,8 @@ Or, just the existing dirnames themselves if there are no wildcards." ;; Note this function is performance critical. ;; Do not call anything that requires disk access that cannot be cached. (interactive) - (unless dirnames (error "`verilog-library-directories' should include at least '.'")) + (unless dirnames + (error "`verilog-library-directories' should include at least `.'")) (setq dirnames (reverse dirnames)) ; not nreverse (let ((dirlist nil) pattern dirfile dirfiles dirname root filename rest basefile) @@ -9889,17 +9890,18 @@ Return modi if successful, else print message unless IGNORE-ERROR is true." (if (not (setq mif (verilog-module-inside-filename-p realname (car filenames)))) (setq filenames (cdr filenames)))) ;; mif has correct form to become later elements of modi - (cond (mif (setq modi mif)) - (t (setq modi nil) - (or ignore-error - (error (concat (verilog-point-text) - ": Can't locate " module " module definition" - (if (not (equal module realname)) - (concat " (Expanded macro to " realname ")") - "") - "\n Check the verilog-library-directories variable." - "\n I looked in (if not listed, doesn't exist):\n\t" - (mapconcat 'concat orig-filenames "\n\t")))))) + (setq modi mif) + (or mif ignore-error + (error + (concat + "%s: Can't locate %s module definition%s" + "\n Check the verilog-library-directories variable." + "\n I looked in (if not listed, doesn't exist):\n\t%s") + (verilog-point-text) module + (if (not (equal module realname)) + (concat " (Expanded macro to " realname ")") + "") + (mapconcat 'concat orig-filenames "\n\t"))) (when (eval-when-compile (fboundp 'make-hash-table)) (unless verilog-modi-lookup-cache (setq verilog-modi-lookup-cache @@ -10001,11 +10003,11 @@ Report errors unless optional IGNORE-ERROR." (let* ((realname (verilog-symbol-detick name t)) (modport (assoc name (verilog-decls-get-modports (verilog-modi-get-decls modi))))) (or modport ignore-error - (error (concat (verilog-point-text) - ": Can't locate " name " modport definition" - (if (not (equal name realname)) - (concat " (Expanded macro to " realname ")") - "")))) + (error "%s: Can't locate %s modport definition%s" + (verilog-point-text) name + (if (not (equal name realname)) + (concat " (Expanded macro to " realname ")") + ""))) (let* ((decls (verilog-modport-decls modport)) (clks (verilog-modport-clockings modport))) ;; Now expand any clocking's diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el index a21c105..373f812 100644 --- a/lisp/term/ns-win.el +++ b/lisp/term/ns-win.el @@ -243,7 +243,7 @@ The properties returned may include `top', `left', `height', and `width'." (insert ns-input-spi-arg)) ((string-equal ns-input-spi-name "mail-to") (compose-mail ns-input-spi-arg)) - (t (error (concat "Service " ns-input-spi-name " not recognized"))))) + (t (error "Service %s not recognized" ns-input-spi-name)))) ;; Composed key sequence handling for Nextstep system input methods. commit 2ad2f8b084111e1479374fa38450de234242afaf Author: Stefan Monnier Date: Sun Sep 20 12:41:03 2015 -0400 * lisp/progmodes/js.el (js--syntax-begin-function): Remove. (js-mode): Don't set syntax-begin-function. diff --git a/lisp/progmodes/js.el b/lisp/progmodes/js.el index 71d0229..6a800f8 100644 --- a/lisp/progmodes/js.el +++ b/lisp/progmodes/js.el @@ -1370,17 +1370,6 @@ LIMIT defaults to point." (looking-at "\"\\s-*,\\s-*\\[") (eq (match-end 0) (1+ list-begin))))))) -(defun js--syntax-begin-function () - (when (< js--cache-end (point)) - (goto-char (max (point-min) js--cache-end))) - - (let ((pitem)) - (while (and (setq pitem (car (js--backward-pstate))) - (not (eq 0 (js--pitem-paren-depth pitem))))) - - (when pitem - (goto-char (js--pitem-h-begin pitem ))))) - ;;; Font Lock (defun js--make-framework-matcher (framework &rest regexps) "Helper function for building `js--font-lock-keywords'. @@ -3550,8 +3539,6 @@ If one hasn't been set, or if it's stale, prompt for a new one." (make-local-variable 'adaptive-fill-regexp) (c-setup-paragraph-variables)) - (setq-local syntax-begin-function #'js--syntax-begin-function) - ;; Important to fontify the whole buffer syntactically! If we don't, ;; then we might have regular expression literals that aren't marked ;; as strings, which will screw up parse-partial-sexp, scan-lists, commit 9474c70a8442e052bd7b192a515a4fdb1834f49a Author: Stefan Monnier Date: Sun Sep 20 12:04:52 2015 -0400 Don't assume syntax-begin-function is a symbol. * lisp/font-lock.el (font-lock-compile-keywords): Don't assume syntax-begin-function is a symbol. diff --git a/lisp/font-lock.el b/lisp/font-lock.el index d93cf71..e2660bf 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1752,7 +1752,8 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords are used for (if (and (not syntactic-keywords) (let ((beg-function syntax-begin-function)) (or (eq beg-function 'beginning-of-defun) - (get beg-function 'font-lock-syntax-paren-check))) + (if (symbolp beg-function) + (get beg-function 'font-lock-syntax-paren-check)))) (not beginning-of-defun-function)) ;; Try to detect when a string or comment contains something that ;; looks like a defun and would thus confuse font-lock. commit 6afe8168dde7780853003dea2fb9e3a8ba57e2ea Author: Eli Zaretskii Date: Sun Sep 20 14:33:46 2015 +0300 ; * ChangeLog.2: Fix typos and bad formatting, remove unneeded entries diff --git a/ChangeLog.2 b/ChangeLog.2 index 7557f51..edad2d5 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -57,11 +57,9 @@ 2015-09-18 Wilson Snyder Fix checkdoc warnings. - * lisp/progmodes/verilog-mode.el (verilog-forward-sexp-function) - (verilog-decls-princ) (verilog-modport-princ) - (verilog-modi-modport-lookup-one): Fix checkdoc warnings. - - /svaha/wsnyder/d/log + * lisp/progmodes/verilog-mode.el (verilog-forward-sexp-function) + (verilog-decls-princ, verilog-modport-princ) + (verilog-modi-modport-lookup-one): Fix checkdoc warnings. 2015-09-17 Jay Belanger @@ -329,9 +327,9 @@ 2015-09-16 Tassilo Horn Clarify reftex-extra-bindings docs. - * lisp/textmodes/reftex-vars.el (reftex-extra-bindings): Document that - the variable only has an effect at load-time. - * doc/misc/reftex.texi (Key Bindings): Ditto. + * lisp/textmodes/reftex-vars.el (reftex-extra-bindings): + * doc/misc/reftex.texi (Key Bindings): Document that the variable + only has an effect at load-time. 2015-09-16 Daniel McClanahan (tiny change) @@ -424,7 +422,7 @@ 2015-09-15 Mark Oteiza - lisp/custom.el (load-theme): Only compute hash when needed + lisp/custom.el (load-theme): Only compute hash when needed. 2015-09-15 Paul Eggert @@ -563,7 +561,7 @@ 2015-09-14 Michael Albinus - Adaot file-notify-tests.el test cases + Adapt file-notify-tests.el test cases * lisp/filenotify.el (file-notify-rm-watch): Ignore `file-notify-error'. * src/inotify.c (Finotify_valid_p): Adapt docstring. * test/automated/file-notify-tests.el () @@ -590,7 +588,7 @@ 2015-09-14 Stefan Monnier - * lisp/progmodes/cc-langs.el (c-make-init-lang-vars-fun): Use dolist + * lisp/progmodes/cc-langs.el (c-make-init-lang-vars-fun): Use dolist. 2015-09-14 Alan Mackenzie @@ -623,6 +621,12 @@ 2015-09-14 Tassilo Horn Fix tests for file-notify-valid-p. + * test/automated/file-notify-tests.el (file-notify--test-cleanup): + Use delete-directory to delete file-notify--test-tmpfile if it is + a directory. Likewise for file-notify--test-tmpfile1. + (file-notify-test04-file-validity) + (file-notify-test05-dir-validity): Delete the parent directory of + the test. Ignore errors when cleaning up after the test. 2015-09-14 Eli Zaretskii @@ -789,11 +793,9 @@ 2015-09-10 Mark Oteiza - lisp/mpc.el (mpc--proc-connect): use file-name-absolute-p - - lisp/mpc.el (mpc-file-local-copy): check for absolute path - - lisp/mpc.el (mpc-file-local-copy): check more config locations + * lisp/mpc.el (mpc--proc-connect): Use file-name-absolute-p. + (mpc-file-local-copy): Check for absolute path. Check more config + locations. 2015-09-10 Eli Zaretskii @@ -924,7 +926,8 @@ 2015-09-09 Stefan Monnier - * lisp/emacs-lisp/cl-generic.el (cl-generic-generalizers): Remove warning + * lisp/emacs-lisp/cl-generic.el (cl-generic-generalizers): Remove + warning. 2015-09-09 Eli Zaretskii @@ -987,12 +990,12 @@ 2015-09-08 Juri Linkov - * lisp/info.el (Info-fontify-node): Don't stop at the non-title underline. - (Bug#21433) + * lisp/info.el (Info-fontify-node): Don't stop at the non-title + underline. (Bug#21433) 2015-09-08 Stefan Monnier - * lisp/calendar/time-date.el (with-decoded-time-value): Fix debug spec + * lisp/calendar/time-date.el (with-decoded-time-value): Fix debug spec. 2015-09-08 Tassilo Horn @@ -1002,7 +1005,7 @@ 2015-09-08 Vasilij Schneidermann (tiny change) - * lisp/play/tetris.el (tetris-move-down): New command (bug#21360) + * lisp/play/tetris.el (tetris-move-down): New command (bug#21360). (tetris-mode-map): Use it. 2015-09-08 Stefan Monnier @@ -1022,9 +1025,9 @@ 2015-09-07 Stefan Monnier - (electric-quote-mode): Activate everywhere in message-mode * lisp/electric.el (electric-quote-post-self-insert-function): Don't use syntax-ppss if comment-use-syntax is nil (e.g. message-mode). + (electric-quote-mode): Activate everywhere in message-mode. 2015-09-07 Paul Eggert @@ -1328,7 +1331,7 @@ 2015-09-07 Stefan Monnier - * src/keyboard.c (read_key_sequence): Complete last fix (bug#21403) + * src/keyboard.c (read_key_sequence): Complete last fix (bug#21403). 2015-09-07 Eli Zaretskii @@ -1346,9 +1349,9 @@ situation, `package-initialize' now sets `package-enable-at-startup' to nil to prevent that. The user can have the old behaviour by setting this variable to t after the call to `package-initialize'. (Bug#21423) - * doc/emacs/package.texi (Package Installation): Document it - * doc/lispref/package.texi (Packaging Basics): Document it - * etc/NEWS: Document it + * doc/emacs/package.texi (Package Installation): Document it. + * doc/lispref/package.texi (Packaging Basics): Document it. + * etc/NEWS: Document it. 2015-09-06 Thomas Fitzsimmons @@ -1516,7 +1519,8 @@ reusing stale face IDs for 'escape-glyph' and 'glyphless-char' faces, which could case a segfault if the frame's face cache was freed since the last redisplay. (Bug#21394) - * src/xfaces.c (free_realized_faces): Call forget_escape_and_glyphless_faces. + * src/xfaces.c (free_realized_faces): Call + forget_escape_and_glyphless_faces. * src/dispextern.h (forget_escape_and_glyphless_faces): Add prototype. 2015-09-04 Paul Eggert @@ -1643,7 +1647,7 @@ Fix typo * ftfont.c (ftfont_drive_otf): otf_positioning_type_components_mask -> OTF_positioning_type_components_mask. - fix previous change + Fix previous change * ftfont.c (ftfont_drive_otf): Remember some bits of OTF_Glyph->positioning_type in MFLTGlyphFT->libotf_positioning_type. @@ -1719,7 +1723,7 @@ 2015-09-01 Paul Eggert - Rework quoting in tutorial + Rework quoting in Emacs Lisp Introduction * doc/lispintro/emacs-lisp-intro.texi (Sample let Expression) (if in more detail, type-of-animal in detail, else): Rework the early example to use " rather than ' so that we don’t burden @@ -1837,7 +1841,7 @@ isearch: Document character folding mode. * isearch.el (isearch-forward): Mention `isearch-toggle-character-fold' - in docstring. + in doc string. 2015-08-31 Paul Eggert @@ -2048,6 +2052,7 @@ Minor documentation and NEWS tweak * doc/lispintro/emacs-lisp-intro.texi (fwd-para let): Add an index entry. + * NEWS: Fix a typo in character-fold-to-regexp. 2015-08-30 Michael Albinus @@ -2086,7 +2091,7 @@ * lisp/progmodes/which-func.el (which-func-ff-hook): Look for new imenu-unavailable error symbol instead of trying to match message exactly. - * lisp/imenu.el (imenu-unavailable): New error + * lisp/imenu.el (imenu-unavailable): New error. (imenu-unavailable-error): New function. 2015-08-29 Eli Zaretskii @@ -2364,7 +2369,7 @@ 2015-08-26 Michael Albinus - * lisp/net/tramp-cache.el (top): Use `message' but `format-message'. + * lisp/net/tramp-cache.el (top): Use `message', not `format-message'. 2015-08-26 Paul Eggert @@ -2628,7 +2633,8 @@ 2015-08-24 YAMAMOTO Mitsuharu - * src/macfont.m (macfont_create_family_with_symbol): Accept localized names. + * src/macfont.m (macfont_create_family_with_symbol): Accept + localized names. 2015-08-24 Paul Eggert @@ -3160,7 +3166,8 @@ * lisp/progmodes/python.el (python-shell-tramp-refresh-process-environment): New function. (python-shell-with-environment): Use it. - * test/automated/python-tests.el (python-shell-with-environment-2): Update. + * test/automated/python-tests.el (python-shell-with-environment-2): + Update. python.el: Enhancements to process environment setup. * lisp/progmodes/python.el (python-shell-process-environment) @@ -3250,7 +3257,8 @@ 2015-08-21 Martin Rudalics Document `window-use-time' in Elisp manual - * doc/lispref/windows.texi (Selecting Windows): Document `window-use-time'. + * doc/lispref/windows.texi (Selecting Windows): Document + `window-use-time'. 2015-08-21 Eli Zaretskii @@ -3533,8 +3541,8 @@ (top-level) Set the `delete-selection' property of `self-insert-command' to `delete-selection-uses-region-p'. progmodes/cc-cmds.el (top-level): Give the `delete-selection' property - for c-electric-\(brace\|paren\) the value `delete-selection-uses-region-p' - when the latter function exists. + for c-electric-\(brace\|paren\) the value + `delete-selection-uses-region-p' when the latter function exists. 2015-08-19 Paul Eggert @@ -3577,7 +3585,7 @@ clause of `isearch-search-fun-default'. That lax variable does not refer to lax-whitespacing. Related to (bug#21777). This reverts commit a5bdb872edb9f031fe041faf9a8c0be432e5f64c. - * character-fold.el (character-fold-search): Set to nil + * character-fold.el (character-fold-search): Set to nil. Default to nil for now, until someone implements proper lax-whitespacing with char-fold searching. @@ -3634,8 +3642,7 @@ * lisp/gnus/message.el (message-delete-overlay, message-make-overlay) (message-overlay-get, message-overlay-put, message-overlays-in): * lisp/gnus/sieve.el (sieve-make-overlay, sieve-overlay-put) - (sieve-overlays-at): - Remove. + (sieve-overlays-at): Remove. 2015-08-19 Martin Rudalics @@ -3846,7 +3853,8 @@ 2015-08-17 Ronnie Schnell - Update version number in header (now matches help) + * lisp/play/dunnet.el: Update version number in header (now + matches help). 2015-08-17 Paul Eggert @@ -3970,38 +3978,41 @@ 2015-08-16 Wilson Snyder Update verilog-mode.el to 2015-05-14-6232468-vpo-GNU. - * losp/progmodes/verilog-mode.el: Fix some non-automated indent - issues and comments, bug943. (verilog-type-font-keywords): Cycle - delay operators like ##1 and ##[0:$] are now highlighted in their - entirety similarly to the # delay-control operator. Likewise, the - followed-by operators #-# and #=# are no longer partially - highlighed. (verilog-backward-syntactic-ws-quick, - verilog-skip-backward-comments): Minor performance improvements to - buffer traversal functions for reduced latency. (verilog-calc-1, - verilog-in-deferred-immediate-final-p): When the keyword 'final' - follows 'assert/assume/cover', then it is part of a deferred - immediate assertion item and should not be treated as a final - construct for indentation. Reported by Yuri Sugihara. - (verilog-do-indent): Virtual task/function/class definition lines - should not be considered as declarations. Reported by Enzo Chi. - (verilog-do-indent): Do not falsely indent to '=' of - property/sequence operators on subsequent lines of a multi-line - statement. (verilog-assignment-operator-re): Fix '!==' operator - and add support for '<->', ':/', '#-#', and '#=#' operators. - (verilog-calculate-indent, verilog-label-be): Enable - case-sensitive regular expression parsing when looking for - keywords. (verilog-calc-1): Detect 'pure virtual method' - declarations which exist in abstract classes. Reported by Enzo - Chi and Kaushal Modi. (verilog-backward-ws&directives): When - moving back to the start of a line and the preceeding line ended - with an escaped-newline, then jump up one line. This properly - consumes a multi-line pre-processor directive. Reported by - Kaushal Modi. (verilog-dpi-import-export-re, - verilog-extended-complete-re, verilog-calc-1): Teach verilog-mode - to properly indent after a DPI import/export statement that - resides outside of a module. Reported by Kaushal Modi. - (verilog-extended-complete-re): Update regexp to match both - "DPI-C" and "DPI". Reported by Kaushal Modi. + * lisp/progmodes/verilog-mode.el: Fix some non-automated indent + issues and comments, bug#943. + (verilog-type-font-keywords): Cycle delay operators like ##1 and + ##[0:$] are now highlighted in their entirety similarly to the # + delay-control operator. Likewise, the followed-by operators #-# + and #=# are no longer partially highlighed. + (verilog-backward-syntactic-ws-quick) + (verilog-skip-backward-comments): Minor performance improvements + to buffer traversal functions for reduced latency. + (verilog-calc-1, verilog-in-deferred-immediate-final-p): When the + keyword 'final' follows 'assert/assume/cover', then it is part of + a deferred immediate assertion item and should not be treated as a + final construct for indentation. Reported by Yuri Sugihara. + (verilog-do-indent): Virtual task/function/class definition lines + should not be considered as declarations. Reported by Enzo Chi. + (verilog-do-indent): Do not falsely indent to '=' of + property/sequence operators on subsequent lines of a multi-line + statement. + (verilog-assignment-operator-re): Fix '!==' operator and add + support for '<->', ':/', '#-#', and '#=#' operators. + (verilog-calculate-indent, verilog-label-be): Enable + case-sensitive regular expression parsing when looking for + keywords. + (verilog-calc-1): Detect 'pure virtual method' declarations which + exist in abstract classes. Reported by Enzo Chi and Kaushal Modi. + (verilog-backward-ws&directives): When moving back to the start of + a line and the preceeding line ended with an escaped-newline, then + jump up one line. This properly consumes a multi-line + pre-processor directive. Reported by Kaushal Modi. + (verilog-dpi-import-export-re, verilog-extended-complete-re) + (verilog-calc-1): Teach verilog-mode to properly indent after a + DPI import/export statement that resides outside of a module. + Reported by Kaushal Modi. + (verilog-extended-complete-re): Update regexp to match both + "DPI-C" and "DPI". Reported by Kaushal Modi. 2015-08-15 Paul Eggert @@ -4055,7 +4066,7 @@ 2015-08-15 Dani Moncayo Remove 'nt/zipdist.bat' (no longer used) - * nt/zipdist.bat: Remove - no longer used. + * nt/zipdist.bat: Remove -- no longer used. 2015-08-15 Jürgen Hötzel @@ -4176,7 +4187,7 @@ 2015-08-14 Stefan Monnier - * src/keyboard.c: Use false/true instead of 0/1 for booleans + * src/keyboard.c: Use false/true instead of 0/1 for booleans. * src/keyboard.h (struct kboard): Mark kbd_queue_has_data as boolean. 2015-08-14 Michael Albinus @@ -4304,10 +4315,9 @@ (c-not-decl-init-keywords, c-not-primitive-type-keywords) (c-paren-any-kwds, c-<>-sexp-kwds, c-block-stmt-kwds, c-expr-kwds) (c-decl-block-key, c-keywords, c-keywords-obarray) - (c-regular-keywords-regexp, c-primary-expr-regexp, - c-primary-expr-regexp) - (c-block-prefix-disallowed-chars, c-known-type-key, - c-nonlabel-token-key) + (c-regular-keywords-regexp, c-primary-expr-regexp) + (c-primary-expr-regexp, c-block-prefix-disallowed-chars) + (c-known-type-key, c-nonlabel-token-key) (c-make-init-lang-vars-fun): Use the new macros rather than the old names. @@ -4315,8 +4325,8 @@ loadhist.el (read-feature): Conform to completing-read * lisp/loadhist.el (read-feature): According to `completing-read' - documentation, if collection is a list, then it must be a list of - strings. And not a list of symbols like before. + documentation, if collection is a list, then it must be a list of + strings, not a list of symbols like before. 2015-08-12 David Kastrup @@ -4366,7 +4376,7 @@ 2015-08-12 Artur Malabarba - * emacs-lisp/lisp-mnt.el (lm-header): save-excursion + * emacs-lisp/lisp-mnt.el (lm-header): Add save-excursion. 2015-08-11 Fabián Ezequiel Gallina @@ -4414,8 +4424,8 @@ 2015-08-11 Stefan Monnier * lisp/replace.el (perform-replace): Document `replacements'. - (perform-replace): Move the description of the format of `replacements' from - the body's comment to the docstring. + (perform-replace): Move the description of the format of `replacements' + from the body's comment to the doc string. 2015-08-11 Jürgen Hötzel @@ -4426,13 +4436,13 @@ 2015-08-10 Stephen Leake Rewrite elisp--xref-find-definitions to handle many more cases; add tests. - * lisp/progmodes/elisp-mode.el (elisp--xref-identifier-location): deleted - (elisp--xref-format-cl-defmethod): new - (find-feature-regexp): new - (find-alias-regexp): new - (elisp--xref-make-xref): new - (elisp--xref-find-definitions): Rewrite using the above, handle many more - cases. Always output all available definitions. + * lisp/progmodes/elisp-mode.el (elisp--xref-identifier-location): + Function deleted. + (elisp--xref-format-cl-defmethod): New defconst. + (find-feature-regexp, find-alias-regexp): New defcustoms. + (elisp--xref-make-xref): New function. + (elisp--xref-find-definitions): Rewrite using the above, handle many + more cases. Always output all available definitions. (xref-location-marker): No need for special cases. * test/automated/elisp-mode-tests.el: Add more tests of elisp--xref-find-definitions, improve current tests. @@ -4450,8 +4460,8 @@ Set file buffer as current for "--file" * lisp/startup.el (command-line-1): Set file buffer as current before - it is displayed so it can be used with options like - "--eval". (Bug#21095) + it is displayed so it can be used with options like "--eval". + (Bug#21095) 2015-08-10 Eli Zaretskii @@ -4462,10 +4472,10 @@ 2015-08-10 Alan Mackenzie - Fix "Invalid search bound (wrong side of point)" in fontification. - progmodes/cc-fonts.el (c-font-lock-declarators): After skipping an - initialization expression, check point is not beyond the fontification - limit. + Fix "Invalid search bound (wrong side of point)" in fontification + * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): After skipping + an initialization expression, check point is not beyond the + fontification limit. 2015-08-09 Paul Eggert @@ -4537,10 +4547,10 @@ 2015-08-09 Ivan Kanis - fix link to source code in help window - * lisp/help-fns.el (find-lisp-object-file-name): remove code that + Fix link to source code in help window + * lisp/help-fns.el (find-lisp-object-file-name): Remove code that will never work due to Glenn Morris change a6d63d9 on Apr 20 2013 - 'No longer include timestamp in header of .elc files'. Add code + 'No longer include timestamp in header of .elc files'. Add code that will return .el source file in load-path. 2015-08-09 Artur Malabarba @@ -4580,10 +4590,6 @@ (org-reftex-citation): Add `org--' prefix to dynamically scoped `rds' var. -2015-08-08 Nicolas Petton - - Merge remote-tracking branch 'origin/fix/subsequence-error-with-negative-sequences' - 2015-08-08 Paul Eggert Electric quote if coding is undecided or no conv @@ -4622,17 +4628,16 @@ 2015-08-07 Phillip Lord - Improve error signalling for seq-subseq. - + Improve error signalling for seq-subseq * lisp/seq.el (seq-subseq): The existing behaviour is to error when indexes are too large, but to silently ignore numbers which are too negative for lists. String and vector handling errors in - both cases. This has been regularlised. Error signalling behaviour - has been explicitly added to the docstring. + both cases. This has been regularized. Error signaling behavior + has been explicitly added to the doc string. * lisp/cl-extra.el (cl-subseq): Defers to (seq-subseq) and is - therefore also impacted by this change. The docstring has been - updated to reflect this. + therefore also impacted by this change. Update the doc string + to reflect this. * test/automated/seq-tests.el (test-seq-subseq): Tests have been added for these exceptional cases, as well as one non exceptional @@ -4652,11 +4657,11 @@ 2015-08-07 Stephen Leake - lisp/window.el: fix typo, more `display-buffer-use-some-frame' - * lisp/window.el: fix typo that broke build - (display-buffer--action-function-custom-type): add - `display-buffer-use-some-frame' - (display-buffer): add `display-buffer-use-some-frame' to doc string + Fix typo in lisp/window.el, more `display-buffer-use-some-frame' + * lisp/window.el: Fix typo that broke build. + (display-buffer--action-function-custom-type): Add + `display-buffer-use-some-frame'. + (display-buffer): Add `display-buffer-use-some-frame' to doc string. Add support for 'inhibit-same-window in 'display-buffer-use-some-frame' * lisp/window.el (display-buffer-use-some-frame): Add support for @@ -4724,11 +4729,11 @@ 2015-08-05 Artur Malabarba - * lisp/replace.el (replace-character-fold): Default to nil + * lisp/replace.el (replace-character-fold): Default to nil. - * lisp/character-fold.el: Fix lax whitespace + * lisp/character-fold.el: Fix lax whitespace. (character-fold-table): Don't make space match other whitespace chars. - (character-fold-to-regexp): Simplify lax behaviour. + (character-fold-to-regexp): Simplify lax behavior. 2015-08-05 Dmitry Gutov @@ -4793,8 +4798,8 @@ Improve ansi-color filtering of unrecognized escape sequences * lisp/ansi-color.el (ansi-color-drop-regexp): Recognize mode-setting escape sequences. - (ansi-color-filter-apply): Filter out unrecognized escape sequences - (ansi-color-apply): Filter out unrecognized escape sequences + (ansi-color-filter-apply, ansi-color-apply): Filter out + unrecognized escape sequences. 2015-08-04 Artur Malabarba @@ -4864,10 +4869,6 @@ Consistently use "all:" to describe the all: target, replacing three different and confusingly-quoted usages. -2015-08-02 Eli Zaretskii - - Whitespace fixes - 2015-08-02 Evgeny Fraimovitch (tiny change) Don't abort emacsclientw when -a was specified commit 48ef71e9be040c06d0386ebba1a2a6262634973e Author: Glenn Morris Date: Sun Sep 20 06:24:04 2015 -0400 ; Auto-commit of ChangeLog files. diff --git a/ChangeLog.2 b/ChangeLog.2 index d9e5aee..7557f51 100644 --- a/ChangeLog.2 +++ b/ChangeLog.2 @@ -1,3 +1,460 @@ +2015-09-20 Eli Zaretskii + + Improve documentation of 'run-at-time' + * lisp/emacs-lisp/timer.el (run-at-time): Improve the doc string. + In particular, don't refer to 'diary-entry-time', because it is + unavailable until diary-lib is loaded. Also, refer to + 'timer-duration-words', not 'timer-duration', as the latter's doc + string says nothing about the accepted strings. + +2015-09-19 Jay Belanger + + * lisp/calc/calc-ext.el (calc-do-prefix-help): Tidy up error message. + +2015-09-19 Ken Manheimer + + Repair pdbtrack so it follows transition from one remote file to another. + * python.el (python-pdbtrack-set-tracked-buffer). + +2015-09-19 Artur Malabarba + + * lisp/emacs-lisp/timer.el (run-at-time): Docstring formatting + +2015-09-19 Eli Zaretskii + + Adapt vc-src to the old-new vc-checkin API + * lisp/vc/vc-src.el (vc-src-checkin): Accept and ignore an + additional optional parameter. + +2015-09-19 Simen Heggestøyl + + Add overflow module to CSS property list + * lisp/textmodes/css-mode.el (css-property-ids): Add properties from CSS + Overflow Module Level 3. + +2015-09-19 Eli Zaretskii + + Fix documentation of "C-u C-x v v" + * doc/emacs/maintaining.texi (Advanced C-x v v): Make the + documentation of "C-u C-x v v" match what the code does. + + Resurrect the ability to specify a revision in vc-next-action + * lisp/vc/vc-bzr.el (vc-bzr-checkin): + * lisp/vc/vc-dav.el (vc-dav-checkin): + * lisp/vc/vc-git.el (vc-git-checkin): + * lisp/vc/vc-hg.el (vc-hg-checkin): + * lisp/vc/vc-mtn.el (vc-mtn-checkin): Accept and silently ignore + an additional optional argument, the revision to checkin. + * lisp/vc/vc-sccs.el (vc-sccs-checkin): + * lisp/vc/vc-cvs.el (vc-cvs-checkin): + * lisp/vc/vc-rcs.el (vc-rcs-checkin): Allow to optionally specify + a revision to checkin. + * lisp/vc/vc.el (vc-next-action): Allow to optionally specify the + revision when checking in files. + See http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00688.html + for the details. + +2015-09-18 Wilson Snyder + + Fix checkdoc warnings. + * lisp/progmodes/verilog-mode.el (verilog-forward-sexp-function) + (verilog-decls-princ) (verilog-modport-princ) + (verilog-modi-modport-lookup-one): Fix checkdoc warnings. + + /svaha/wsnyder/d/log + +2015-09-17 Jay Belanger + + Fix the routine for help on Calc's prefixes. + * lisp/calc/calc-ext.el (calc-prefix-help-retry): New variable. + (calc-do-prefix-help): Use `read-char' to determine the next Calc + command. + +2015-09-17 Stefan Monnier + + * lisp/font-lock.el (font-lock-beginning-of-syntax-function): Remove + (font-lock-fontify-block): Don't let-bind it. + (font-lock-compile-keywords): Don't use it. + (font-lock-set-defaults): Don't set it. Allow the variable alist to + start one slot earlier, instead. + * lisp/emacs-lisp/syntax.el (font-lock-beginning-of-syntax-function): + Don't declare. + (syntax-ppss): Don't use it either. + * lisp/font-core.el (font-lock-defaults): Remove SYNTAX-BEGIN + from docstring. + * doc/emacs/display.texi (Font Lock): Don't mention + font-lock-beginning-of-syntax-function. + * doc/lispref/modes.texi (Font Lock Basics): Update description of + font-lock-defaults. + (Syntactic Font Lock): Remove font-lock-beginning-of-syntax-function. + * lisp/loadhist.el (unload-feature-special-hooks): + Remove font-lock-beginning-of-syntax-function. + * lisp/obsolete/lazy-lock.el (lazy-lock-fontify-region): + * lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Don't let-bind + font-lock-beginning-of-syntax-function. + +2015-09-17 Paul Eggert + + Backslash cleanup in Elisp source files + This patch should not change behavior. It typically omits backslashes + where they are redundant (e.g., in the string literal "^\$"). + In a few places, insert backslashes where they make regular + expressions clearer: e.g., replace "^\*" (equivalent to "^*") with + "^\\*", which has the same effect as a regular expression. + Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs, + and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with + RCS IDs, as that makes it clearer that the backslash is intended. + + Some more minor backslash fixes + * test/automated/compile-tests.el (compile-tests--test-regexps-data): + * test/automated/info-xref.el (info-xref-test-write-file): + Double backslashes in strings. + + Fix several backslash typos in Elisp strings + * lisp/calendar/todo-mode.el (todo-files, todo-rename-file) + (todo-find-filtered-items-file, todo-reset-nondiary-marker) + (todo-reset-done-string, todo-reset-comment-string) + (todo-reset-highlight-item): + * lisp/erc/erc-networks.el (erc-networks-alist): + * lisp/gnus/gnus-art.el (gnus-button-handle-library): + * lisp/gnus/gnus-group.el (gnus-read-ephemeral-gmane-group-url): + * lisp/gnus/nntp.el (nntp-via-shell-prompt) + (nntp-telnet-shell-prompt): + * lisp/gnus/spam-report.el (spam-report-gmane-regex): + * lisp/image-dired.el (image-dired-rotate-original): + (image-dired-get-exif-file-name): + * lisp/international/latin1-disp.el (latin1-display-ucs-per-lynx): + * lisp/mail/undigest.el (rmail-digest-parse-rfc1153strict): + * lisp/mh-e/mh-letter.el (mh-file-is-vcard-p): + * lisp/mh-e/mh-mime.el (mh-file-mime-type-substitutions): + * lisp/net/shr-color.el (shr-color->hexadecimal): + * lisp/org/org-bibtex.el (org-bibtex-fields): + * lisp/org/org-docview.el (org-docview-export): + * lisp/org/org-entities.el (org-entities): + * lisp/org/ox-icalendar.el (org-icalendar-cleanup-string): + * lisp/progmodes/cperl-mode.el (cperl-indent-exp): + * lisp/progmodes/ebnf2ps.el (ebnf-file-suffix-regexp) + (ebnf-style-database): + * lisp/progmodes/idlw-help.el (idlwave-do-context-help1): + * lisp/progmodes/ruby-mode.el (ruby-imenu-create-index-in-block): + * lisp/progmodes/sql.el (sql-product-alist): + * lisp/progmodes/verilog-mode.el (verilog-error-regexp-emacs-alist) + (verilog-error-font-lock-keywords) + (verilog-assignment-operator-re): + * lisp/progmodes/vhdl-mode.el (vhdl-compiler-alist): + * lisp/textmodes/reftex-parse.el (reftex-parse-from-file): + * lisp/vc/add-log.el (change-log-version-number-regexp-list): + Fix typo by replacing ‘\’ with ‘\\’ in a string literal. + For example, to get the regular expression ‘\.’ use the string + literal "\\.", not "\." (which is equivalent to "."). + * lisp/emulation/viper-util.el (viper-glob-unix-files): + Remove stray ‘\j’ from string. + * lisp/gnus/nntp.el (nntp-via-shell-prompt) + (nntp-telnet-shell-prompt): + Treat > like $ when matching a shell prompt. + * lisp/progmodes/make-mode.el (makefile-browse): + Properly quote a diagnostic. + + Fix minor quoting problems in diagnostics + * lisp/tutorial.el (tutorial--describe-nonstandard-key): + * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map): + Follow text-quoting-style in diagnostic, and quote a file name. + +2015-09-17 Eli Zaretskii + + * doc/lispref/frames.texi (Cursor Parameters): Document 'x-stretch-cursor'. + +2015-09-16 Paul Eggert + + Omit unnecessary \ before paren in C docstrings + Although \( is needed in docstrings in Elisp code, it is not needed in + docstrings in C code, since C function definitiions do not start with + a parenthesis. The backslashes made the docstrings a bit harder to + read and to format in columns. Also, some C docstrings had ( in + column 1 and this did not appear to be causing any problems. So, + simplify C docstrings by replacing \( with ( and \) with ). + + A few more minor quoting fixes in a script and a text file + + Minor quoting fixes in scripts and doc + Prefer straight quotes in random script files, as they are not converted. + Prefer grave quotes in a couple of places in the manual that were missed + earlier, as these quotes are converted. + + Minor backslash fixes in manuals and scripts + * Makefile.in (install-arch-indep): + * admin/charsets/compact.awk: + * admin/charsets/gb180302.awk (gb_to_index): + * admin/charsets/gb180304.awk (gb_to_index): + Avoid undefined behavior in Awk regular expression backslashes. + * doc/misc/efaq.texi (Matching parentheses): + Omit unnecessary backslashes. + * doc/misc/gnus-faq.texi (FAQ 5-8): + Avoid undefined behavior in suggested sed backslash usage. + + Add -Wswitch to --enable-gcc-warnings + Make --enable-gcc-warnings a bit pickier, by also using -Wswitch. + * configure.ac (WERROR_CFLAGS): Don’t add -Wno-switch. + * lib-src/etags.c (main, consider_token, C_entries): + * src/coding.c (encode_invocation_designation): + * src/data.c (Ftype_of): + * src/eval.c (Fdefvaralias, default_toplevel_binding) + (Fbacktrace__locals, mark_specpdl): + * src/lisp.h (record_xmalloc): + * src/syntax.c (scan_lists, scan_sexps_forward): + * src/window.c (window_relative_x_coord): + * src/xdisp.c (push_it, pop_it): + * src/xterm.c (xg_scroll_callback, x_check_fullscreen): + Error out or do nothing (as appropriate) if a switch statement + with an enum value does not cover all of the enum. + * src/dispextern.h (struct iterator_stack_entry.u.comp): + Remove unused member discovered by using -Wswitch. + * src/lisp.h (record_xmalloc): Add a ‘+ 0’ to pacify -Wswitch. + * src/vm-limit.c (check_memory_limits): + Simplify warning-diagnostic computation by using a table. + + etags ‘fatal’ function is now printf-like + * lib-src/etags.c (fatal): Now printf-like. All callers changed. + Also, now static; not clear why it needed to be extern. + (verror): New function, with most of the old contents of ‘error’. + (fatal, error): Use it. + +2015-09-16 Eli Zaretskii + + More adaptations in file-notify-tests.el + * test/automated/file-notify-tests.el + (file-notify-test05-dir-validity): Skip for w32notify in + batch-mode. (Bug#21432) + +2015-09-16 Michael Albinus + + Adapt test in file-notify-tests.el + * test/automated/file-notify-tests.el + (file-notify-test04-file-validity): Skip for w32notify in + batch-mode. Add test lost last commit. + +2015-09-16 Dima Kogan + + winner no longer holds on to dead frames + * lisp/winner.el (winner-change-fun): Cull dead frames. + This prevents a potentially massive memory leak. See: + http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00619.html + +2015-09-16 Michael Albinus + + Use common report_file_notify_error function + * src/fileio.c (report_file_notify_error): New function. + * src/inotify.c (report_inotify_error): Remove function. + (inotify_callback, symbol_to_inotifymask, Finotify_add_watch) + (Finotify_rm_watch): Use report_file_notify_error. + * src/lisp.h (report_file_notify_error): Declare external function. + * src/w32notify.c (report_w32notify_error): Remove function. + (Fw32notify_add_watch, Fw32notify_rm_watch): + Use report_file_notify_error. + +2015-09-16 Jay Belanger + + Fix documentation. + * doc/misc/calc.texi (Single-Variable Statistics): Fix the wording of + the documentation of the root mean square. + +2015-09-16 Martin Rudalics + + Remove tool_bar_redisplayed_once and associated code. + * src/frame.h (tool_bar_redisplayed_once): Remove slot. + * src/frame.c (make_frame, x_set_font): Remove initialization of + f->tool_bar_redisplayed_once. + * src/w32fns.c (x_change_tool_bar_height): + * src/xfns.c (x_change_tool_bar_height): Don't check for + f->tool_bar_redisplayed_once. + * src/xdisp.c (redisplay_internal): Remove handling of + f->tool_bar_redisplayed_once. + +2015-09-16 Eli Zaretskii + + Restore some of the quoting in the manuals + * doc/lispref/windows.texi (Coordinates and Windows) + (Coordinates and Windows): + * doc/lispref/variables.texi (Lexical Binding) + (File Local Variables): + * doc/lispref/text.texi (Format Properties): + * doc/lispref/symbols.texi (Symbol Components): + * doc/lispref/strings.texi (Creating Strings): + * doc/lispref/sequences.texi (Sequence Functions): + * doc/lispref/searching.texi (Regexp Special, Regexp Search) + (Search and Replace): + * doc/lispref/processes.texi (Bindat Spec): + * doc/lispref/os.texi (Idle Timers): + * doc/lispref/objects.texi (Basic Char Syntax): + * doc/lispref/numbers.texi (Float Basics, Random Numbers): + * doc/lispref/nonascii.texi (Character Properties): + * doc/lispref/modes.texi (Major Mode Conventions, Mode Hooks) + (Mode Line Variables): + * doc/lispref/minibuf.texi (Text from Minibuffer): + * doc/lispref/loading.texi (Autoload): + * doc/lispref/keymaps.texi (Controlling Active Maps): + * doc/lispref/frames.texi (Frame Layout, Size and Position) + (Size Parameters, Implied Frame Resizing): + * doc/lispref/files.texi (Changing Files, Magic File Names): + * doc/lispref/eval.texi (Self-Evaluating Forms): + * doc/lispref/display.texi (Progress, Abstract Display) + (Abstract Display Example, Bidirectional Display): + * doc/lispref/commands.texi (Event Mod): + * doc/emacs/windows.texi (Displaying Buffers): + * doc/emacs/trouble.texi (Bug Criteria, Checklist): + * doc/emacs/text.texi (Enriched Text): + * doc/emacs/programs.texi (MixedCase Words): + * doc/emacs/picture-xtra.texi (Insert in Picture) + (Tabs in Picture): + * doc/emacs/misc.texi (Emacs Server, Printing): + * doc/emacs/mini.texi (Minibuffer History): + * doc/emacs/maintaining.texi (Old Revisions, VC Change Log) + (Pulling / Pushing): + * doc/emacs/killing.texi (Yanking, Cut and Paste, Clipboard): + * doc/emacs/help.texi (Help, Help Echo): + * doc/emacs/glossary.texi (Glossary): + * doc/emacs/frames.texi (Mouse Commands, Creating Frames) + (Frame Commands): + * doc/emacs/files.texi (Reverting, Saving, Directories): + * doc/emacs/entering.texi (Exiting): + * doc/emacs/emacs.texi (Top): + * doc/emacs/cmdargs.texi (Window Size X, Icons X): + * doc/emacs/anti.texi (Antinews): Restore quoting of text where + appropriate or replace quoting with @dfn. + * doc/misc/ediff.texi (Window and Frame Configuration): + * doc/lispref/processes.texi (Network Feature Testing): + * doc/lispref/display.texi (Display Margins): Quote the phrase + after "a.k.a." where appropriate. + +2015-09-16 Tassilo Horn + + Clarify reftex-extra-bindings docs. + * lisp/textmodes/reftex-vars.el (reftex-extra-bindings): Document that + the variable only has an effect at load-time. + * doc/misc/reftex.texi (Key Bindings): Ditto. + +2015-09-16 Daniel McClanahan (tiny change) + + Fix search argument in ‘lisp--el-match-keyword’ (Bug#21492) (Bug#21493) + * lisp/emacs-lisp/lisp-mode.el (lisp--el-match-keyword): Fix + search argument. (Bug#21492) (Bug#21493) + +2015-09-16 Tassilo Horn + + Add pretty symbols for \qquad and \varrho. + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Add pretty + symbols for \qquad and \varrho. + +2015-09-15 Jay Belanger + + Add new functions for the root mean square of a (Calc) vector + * lisp/calc/calc-stats.el (calcFunc-rms, calc-vector-rms): + New functions. + * lisp/calc/calc-ext.el (calc-init-extensions): Add keybinding for + `calc-vector-rms', add autoloads for `calc-vector-rms' and + `calcFunc-rms'. + * lisp/calc/calc-map.el (calc-u-oper-keys): Add entry for + `calcFunc-rms'. + * lisp/calc/calc-menu.el (calc-vectors-menu): Add entry for + `calc-vector-rms'. + * doc/misc/calc.texi (Single-Variable Statistics): Document the rms + command. + +2015-09-15 Stephen Leake + + Add monotone EDE generic project + * lisp/cedet/ede/generic.el (ede-enable-generic-projects): Add monotone + generic project. + + Revert premature commit + * doc/lispref/files.texi: Revert premature commit of change to + file-name-all-completions. + + Fix a bug in elisp--xref-find-definitions related to cl-generic defaults + * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Fix bug + with cl-generic defaults. + (elisp--xref-find-references): Add doc string. + * test/automated/elisp-mode-tests.el (xref-elisp-generic-*): Improve + tests to find bug. + + Fix bugs in eieio-oref-default related to class symbols + * lisp/emacs-lisp/eieio-core.el (class-p): Handle symbol properly. + (eieio-oref-default): Handle class properly. + +2015-09-15 Paul Eggert + + Quote “fullboth” when defining it + * doc/lispref/frames.texi (Size Parameters): Use @dfn for “fullboth” + and rewrite the containing paragraph, which was awkward. (Bug#21472). + +2015-09-15 Eli Zaretskii + + Minor doc fix in emacs/ack.texi + * doc/emacs/ack.texi (Acknowledgments): Fix an xref missing the + first argument. + +2015-09-15 Michael Albinus + + Adapt tests in auto-revert-tests.el + * test/automated/auto-revert-tests.el (auto-revert--timeout): + Make it a defconst. + (auto-revert--wait-for-revert): New defun. + (auto-revert-test00-auto-revert-mode) + (auto-revert-test01-auto-revert-tail-mode) + (auto-revert-test02-auto-revert-mode-dired): Use it. + +2015-09-15 Stefan Monnier + + * lisp/emacs-lisp/lisp-mode.el (lisp-mode-symbol-regexp): New const + Use it everywhere "\\(\\sw\\|\\s_\\|\\\\.\\)+" was used. + (cl-lib-fdefs): Add defgeneric. + (cl-kw): Add all elements of eieio-kw and cl-lib-kw. + (eieio-kw, cl-lib-kw, el-kw): Remove. + +2015-09-15 Paul Eggert + + Quote less in manuals + The manuals often used quotes ``...'' when it is better to use @dfn or + @code or capitalized words or no quoting at all. For example, there is + no need for the `` and '' in “if a variable has one effect for + @code{nil} values and another effect for ``non-@code{nil}'' values”. + Reword the Emacs, Lisp intro, and Lisp reference manuals to eliminate + unnecessary quoting like this, and to use @dfn etc. instead when called + for (Bug#21472). + +2015-09-15 Mark Oteiza + + lisp/custom.el (load-theme): Only compute hash when needed + +2015-09-15 Paul Eggert + + Pacify --enable-gcc-warnings + * src/inotify.c (report_inotify_error): Declare it _Noreturn. + +2015-09-15 Michael Albinus + + Improve error reports in inotify.c + * src/inotify.c (report_inotify_error): New function. Clone of + report_w32notify_error. + (inotify_callback, symbol_to_inotifymask, Finotify_add_watch) + (Finotify_rm_watch): Use it. + +2015-09-15 Eli Zaretskii + + Fix the file-notify tests for watch validation on w32 + * test/automated/file-notify-tests.el + (file-notify-test04-file-validity): Move the directory deletion + out of the file-notify--test-with-events macro. + (file-notify-test04-file-validity) + (file-notify-test05-dir-validity): Enlarge the timeout of + read-event to 0.5, as 0.1 is borderline on w32. (Bug#21432) + +2015-09-15 Tassilo Horn + + Use OPEN BOX instead of space for \quad. + * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Use OPEN BOX + character for \quad instead of a space. + 2015-09-15 Eli Zaretskii Add missing *.pbm images @@ -12989,7 +13446,7 @@ This file records repository revisions from commit 9d56a21e6a696ad19ac65c4b405aeca44785884a (exclusive) to -commit 20b4625117b0303eaba1ef81085f0feb9062695a (inclusive). +commit 00a65e3238a888fc92b0c2aab8cb5bda8bd99c29 (inclusive). See ChangeLog.1 for earlier changes. ;; Local Variables: