* src/xdisp.c (note_mode_line_or_margin_highlight): Reset the
mouse face also if the mouse pointer hovers above mode-line glyphs
that don't come from any Lisp string. (Bug#20620)
(package-menu--partition-transaction): New function.
(package-menu--prompt-transaction-p, package-menu-execute): Use
it.
(package-menu--perform-transaction): Don't do any messaging.
* lib-src/etags.c (canonicalize_filename) [DOS_NT]: Separate the
MS-Windows code from the Posix code, and support collapsing both
forward- and back-slashes on MS-Windows. Fixes a regression found
by the test suite.
* lisp/subr.el (let-when-compile): New let-like macro that makes its
bindings known to macros like `eval-when-compile' in the body.
* lisp/emacs-lisp/lisp-mode.el: Change the top-level `pcase-let' to a
`let-when-compile'. Also comment out the unused lexical var
`el-kws-re'.
The change greatly improves readability, while providing almost the
same (even shorter) byte code: instead of pre-evaluating 10 variables,
tossing them into a list, and destructuring that list a full screen
page later, the variables are simply bound as they are evaluated,
wrapped individually in `eval-when-compile'.
(package--used-elsewhere-p): New optional arg, ALL, and return
package-desc objects instead of names.
(package-delete): Update accordingly.
(describe-package-1): Describe which packages require the package.
* lisp/window.el (switch-to-buffer-in-dedicated-window): New option.
(switch-to-buffer): If the selected window is strongly dedicated
to its buffer, signal error before prompting for buffer name. Handle
`switch-to-buffer-in-dedicated-window'. (Bug#20472)
* doc/lispref/windows.texi (Switching Buffers): Document
`switch-to-buffer-in-dedicated-window'.
* test/etags/CTAGS.good, test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2, test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4, test/etags/ETAGS.good_5:
Adjust to test-case changes below.
* test/etags/Makefile (CSRC): Remove dostorture.c.
Whatever it was trying to test, wasn't working portably.
(LC_ALL): Remove. Apparently there wasn't an encoding problem,
just a line-ending problem.
* test/etags/c-src/dostorture.c: Remove.
* test/etags/cp-src/c.C: Remove stray CR.
* test/etags/html-src/algrthms.html: Remove trailing CRs.
State UTF-8 as the encoding. The file is ASCII so it doesn't matter,
but if someone edits it later it should stay UTF-8-compatible.
* src/keyboard.c (adjust_point_for_property): When adjusting point
due to display strings, ignore overlays that are specific to
windows other than the currently selected one.
* src/xdisp.c (handle_single_display_spec): If the display
property comes from an overlay, arrange for buffer iteration to
resume only after the end of that overlay. (Bug#20607)
* src/frame.c (Fdelete_frame): In doc-string mention that frame
can't be deleted if it has a surrogate minibuffer.
* doc/lispref/frames.texi (Minibuffers and Frames)
(Deleting Frames): Explain "surrogate minibuffer frames".
Problem reported by Eli Zaretskii for MS-Windows.
* test/etags/Makefile (UTF8_LOCALE, UTF8_ENCODING): Remove.
(LC_ALL): Set to C if the current locale isn't UTF-8.
(.PHONY): Remove ediff_1 thru ediff_5.
(check): Always run.
* test/automated/compile-tests.el
(compile-tests--test-regexps-data): Add a case for Maven warning
ouput.
(compile--test-error-line): Check the compilation message type, if
it's specified in the test data.
* lisp/vc/log-view.el (log-view-toggle-entry-display): When
there's no next entry, delete until the end of the buffer.
(log-view-end-of-defun-1): Stop at eob.
* lisp/vc/vc-annotate.el
(vc-annotate-show-diff-revision-at-line-internal): Don't give up
when previous-revision is nil.
* lisp/vc/vc-git.el (vc-git-expanded-log-entry): End the arguments
with `--' to avoid ambiguity.
(vc-git-annotate-extract-revision-at-line): Exclude `^' from the
returned revision string.
(vc-git-annotate-time): Expect `^' before the first revision.
* lisp/vc/vc-git.el (vc-git-diff): Diff against an empty tree if
REV1 is nil, and REV2 is not.
* lisp/vc/vc.el: Update the description of the `diff' function.
* lisp/emacs-lisp/checkdoc.el (checkdoc-error): When `noninteractive'
is non-nil, echo the error with `warn'.
How it can be used in -batch:
(with-current-buffer (find-file "checkdoc.el")
(checkdoc-current-buffer t))
* test/etags/CTAGS.good, test/etags/ETAGS.good_1:
* test/etags/ETAGS.good_2, test/etags/ETAGS.good_3:
* test/etags/ETAGS.good_4, test/etags/ETAGS.good_5:
* test/etags/html-src/index.shtml, test/etags/html-src/software.html:
* test/etags/html-src/softwarelibero.html:
Switch to UTF-8 encoding.
* test/etags/Makefile (SRCS): Adjust to switch to UTF-8.
Remove Makefile, as it's too incestuous to have the test input
include the build procedure.
(UTF8_LOCALE, UTF_ENCODING): New macros.
(LC_ALL): If possible, set to a UTF-8 encoding if not already UTF-8.
(check): Skip if not UTF-8.
(.PHONY): New rule.
(FRC): Remove, as superseded by .PHONY. All uses removed.
(regexfile): Prefer printf to echo when outputting oddball chars.
(.PRECIOUS): Remove, as these files are not built.
* test/automated/data/decompress/foo.gz:
Rename from test/automated/data/decompress/foo-gzipped,
to make it easier for other tools to tell that it's compressed.
* test/automated/zlib-tests.el (zlib--decompress):
Adjust to renamed file.
* lisp/vc/vc-annotate.el (vc-annotate-mode-map): Remove duplicate
binding for `v'.
(vc-annotate-show-changeset-diff-revision-at-line): Set up an
appropriate value for default-directory.
No-op by default, only kills term buffer if
`eshell-destroy-buffer-when-process-dies' is non-nil. (Bug#18108)
(eshell-destroy-buffer-when-process-dies): New custom to preserve
previous behavior.
The new buffer syntax '#<buffer-name>' is equivalent to '#<buffer
buffer-name>'. Remove `eshell-buffer-shorthand', as it is no longer
needed (Bug#19319).
* lisp/eshell/esh-io.el (eshell-buffer-shorthand): Remove.
(eshell-get-target): Remove shorthand-specific code.
* lisp/eshell/esh-arg.el (eshell-parse-special-reference): Parse
'#<buffer-name>'.