Buffers `*Shell Command Output*' and `*Async Shell Command*'
have been around since a long time; used across several libraries,
they are de facto output buffers for shell commands.
* lisp/simple.el (shell-command-buffer-name)
(shell-command-buffer-name-async): New variables.
* lisp/dired-aux.el
* lisp/gnus/gnus-sum.el
* lisp/gnus/gnus-win.el
* lisp/ibuf-ext.el
* lisp/net/tramp.el: Use them.
* etc/NEWS (Changes in Emacs 28.1): Announce this change.
* doc/emacs/misc.texi (Single Shell)
* doc/misc/tramp.texi (Remote processes):
Update manual (bug#39138).
* etc/tutorials/TUTORIAL: For consistency with C-x s ("save some
buffers") and for accuracy, describe C-x C-s as "Save buffer to
file"), and then C-x s as "Save some buffers to their files"
(bug#39359). Also capitalize "Dired".
Copyright-paperwork-exempt: yes
* test/lisp/gnus/mml-sec-tests.el
(mml-secure-en-decrypt-sign-1-1-single): Mark the test as unstable
(bug#42720). It sometimes fails on some systems (Fedora?) when
run with "-j5", so there may be a race condition in the code somewhere.
* lisp/whitespace.el (whitespace-missing-newline-at-eof): Change
the colours to not be as angry.
(whitespace-color-on): Don't mark the end of the buffer if point
is there.
* lisp/buff-menu.el (Buffer-menu--dynamic-name-width): New
function (bug#30692).
(Buffer-menu-name-width): Default to using it.
(list-buffers--refresh): Call it.
* lisp/emacs-lisp/seq.el (seq-max): Add autoload cookie.
* lisp/net/browse-url.el: Turn on lexical-binding.
(browse-url--mailto, browse-url--man, browse-url--browser): Use
imperative form in docstrings.
(browse-url-delete-temp-file): Turn comment into a proper docstring.
* test/lisp/net/browse-url-tests.el: New file with tests for
browse-url.el.
* lisp/net/browse-url.el (browse-url-mosaic-program)
(browse-url-mosaic-arguments, browse-url-mosaic-pidfile)
(browse-url-CCI-port, browse-url-CCI-host)
(browse-url-default-browser, browse-url-mosaic, browse-url-cci):
Remove support for the Mosaic browser, which saw its last release in
1997, or 23 years ago.
* etc/NEWS: Announce its removal.
* lisp/help-fns.el (describe-widget-functions): New variable, used by
describe-widget.
(describe-widget): New command, to display information about a widget.
* lisp/button.el (button-describe): New command, for describing a button.
(button--describe): Helper function for button-describe.
* lisp/wid-edit.el (widget-describe): New command, for describing a
widget.
(widget--resolve-parent-action): Helper function, to allow
widget-describe to display more useful information (bug#139).
* lisp/arc-mode.el (archive-copy-file): New command, keystroke and
menu bar entry (bug#26192).
(archive-extract): Refactored out code from here...
(archive--extract-file): ... to here for use in archive-copy-file.
* lisp/thingatpt.el (thing-at-point-bounds-of-url-at-point): Don't
include trailing ' in the URL, because it's more likely to be a
punctuation character (bug#29410).
* lisp/emacs-lisp/byte-opt.el (byte-optimize-associative-math)
(byte-optimize-min-max): Transform 3-arg min/max call into two 2-arg
calls, which is faster.
* lisp/emacs-lisp/bytecomp.el (byte-compile-associative): Rename to...
(byte-compile-variadic-numeric): ...this function and simplify,
fixing incorrect comments. The 3-arg strength reduction is now
always done in the optimisers and is no longer needed here.
(byte-compile-min-max): New function.
(byte-compile-minus): Simplify, remove incorrect comment, and use
byte-compile-variadic-numeric.
(byte-compile-quo): Simplify and fix comment.
* lisp/emacs-lisp/bytecomp.el (byte-compile-associative):
Translate numerical identity expressions, such as (+ x) and (* x),
into (* x 1) since the previous translation (+ x 0) gets it wrong
for x = -0.0.
* test/lisp/emacs-lisp/bytecomp-tests.el
(byte-opt-testsuite-arith-data): Add test cases.