(grep-mode-line-matches): New defconst.
(grep-mode-font-lock-keywords): Update the regexp for “Grep finished”
to include the number of matches found.
(grep-process-setup): Set grep-num-matches-found to 0.
(grep-exit-message): New function with body moved from lambda
in grep-process-setup. Use grep-num-matches-found to return
the number of matches found.
(grep-filter): Increment grep-num-matches-found.
(grep-mode): Set compilation-mode-line-errors to grep-mode-line-matches.
(Bug#30397, bug#14017)
* lisp/image.el (image--get-imagemagick-and-warn): Don't use
apostrophe in the error message, as that message is shown from a
unibyte buffer, and will run afoul of the default style of showing
quote characters. (Bug#30405)
* lisp/simple.el (shell-command): Display async shell buffer on
process output for every, not just first, command invocation. Check
buffer liveness, not name, before displaying. (bug#30213, bug#30280)
This fixes bug #30186. The with-silent-modifications was there to prevent
records of text property manipulations being put into buffer-undo-list. These
had been causing a significant slowdown in CC Mode with C-_ after a large
C-y. This CC Mode problem has since been solved by a different workaround.
* lisp/subr.el (remove-yank-excluded-properties): Remove the invocation of
with-silent-modifications around the text property manipulations.
* lisp/frameset.el (frameset-persistent-filter-alist): Specify
that text-pixels values are by default only saved by framesets
so the parameter is not set when restoring (Bug#30141).
This improves on the recent fix for master failing to build
on FreeBSD. Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't create
the temporary file under temporary-file-directory if the file
being compiled is specified by an absolute file name. This avoids
problems with ACL copying from temporary-file-directory on
FreeBSD. For the details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00513.html.
* lisp/term.el (term-mode): Add `name' attribute to
window-adjust-process-window-size-function value, so that it can be
removed easily by tests.
* test/lisp/term-tests.el: New tests.
Check to see if there is an incomplete command at the end of
term-emulate-terminal's input string, and, if so, save it so the whole
command can be processed when the next string arrives.
* lisp/term.el (term-partial-ansi-terminal-message): New variable.
(term-mode): Make it buffer local.
(term-handle-ansi-terminal-messages): Prepend it to the received
message, and set it if a partial message was received.
Copyright-paperwork-exempt: yes
Do not merge to master, it will be solved differently there, see
"Switch term.el to lexical binding, and clean up code a bit".
* lisp/emacs-lisp/shadow.el (load-path-shadows-find): Check for
shadowing with case-insensitive matching for files of case-insensitive
directories (as determined by `file-name-case-insensitive-p').
* test/lisp/emacs-lisp/shadow-tests.el: New test.
* test/lisp/emacs-lisp/shadow-resources/p1/foo.el:
* test/lisp/emacs-lisp/shadow-resources/p2/FOO.el: New test files.
Don't merge to master; this is a quick fix for the emacs-26 branch. This is
essentially a reversion of the patch from 2017-11-10 which attempted to handle
C99's compound literals.
The bug here was triggered when a defun block contained a declaration ending
in a comma, yet without a semicolon.
* lisp/progmodes/cc-engine.el (c-guess-basic-syntax): At the CASE 9 test,
remove from the `or' form the test of a block's contents.