* lisp/hi-lock.el (hi-lock-face-buffer): If given a face name a
string, convert it to a symbol first, as later usage of this
expects a symbol and not a string (bug#43339).
* doc/emacs/building.texi (Lisp Eval): Document it.
* lisp/emacs-lisp/pp.el (pp-eval-last-sexp): Ditto.
* lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp): Work more
like `eval-defun': Re-evaluate defvar/defcustom/defface forms.
* doc/misc/efaq.texi (Colors on a TTY, Disabling backups)
(Errors with init files, Backspace invokes help)
(Backspace invokes help): Remove some references to "in Emacs 21 or
later". Now everyone can be assumed to use at least that version.
* lisp/simple.el (next-error-message-highlight): This function is
called directly, so clean up the code a bit (bug#32676).
(next-error-found): Pass in the error buffer.
* lisp/gnus/gnus-fun.el (gnus-convert-face-to-png): Do it.
* lisp/gnus/gnus-util.el (gnus-base64-repad): Allow not checking
anything, but just repadding.
Fix a few places I missed, where we incorrectly used lexical scoping on a var
that needed dynamic scoping.
These were detected thanks to a bit of footwork by Mattias Engdegård!
* lisp/calc/calc-ext.el (math-read-big-lines): Declare as dynbound.
(math-read-big-bigp): Bind it inside a `let`.
* lisp/calc/calc-graph.el (math-arglist): Declare as dynbound.
* lisp/calc/calc-map.el (math-arglist): Declare as dynbound.
* lisp/calc/calc-misc.el (math-trunc-prec): Declare as dynbound.
(math-trunc): Bind it inside a `let`.
(math-floor-prec): Declare as dynbound.
(math-floor): Bind it inside a `let`.
* lisp/calc/calc-nlfit.el (calc-curve-varnames, calc-curve-coefnames):
Declare as dynbound.
* lisp/calc/calc-sel.el (math-comp-sel-tag): Declare as dynbound.
* lisp/calc/calcsel2.el (calc-sel-reselect): Declare as dynbound.
* lisp/emacs-lisp/comp.el (comp-trampoline-sym): Remove function.
(comp-trampoline-filename): As we are introducing an ABI change in
the eln trampoline format change the trampoline filename to
disambiguate.
(comp-trampoline-search): Rename from `comp-search-trampoline'
and return directly the trampoline.
(comp-trampoline-compile): Rework to use native form compilation
in place of un-evaluating a function and return directly the
trampoline.
(comp-subr-trampoline-install): Update for
`comp-trampoline-search' and `comp-trampoline-compile' new
interfaces.
* src/comp.c (Fcomp__install_trampoline): Store the trampoline
itself as value in `comp-installed-trampolines-h'.
(syms_of_comp): Doc update `comp-installed-trampolines-h'.
* lisp/emacs-lisp/comp.el (native-compile): Return the compiled
function when the input is a symbol or a form.
* test/src/comp-tests.el (free-fun, tco, fw-prop): Update tests
for new `native-compile' interface.
* lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Synthesize
'top_level_run' so it returns the last value returned by
`comp--register-subr'.
* src/comp.c (load_comp_unit): Return what 'top_level_run'
returns.
(Fnative_elisp_load): Return what 'load_comp_unit' returns.
* src/comp.h (load_comp_unit): Update signature.
* lisp/replace.el (query-replace-highlight-submatches): New defcustom.
(replace-submatches-overlays): New variable.
(replace-highlight): Use query-replace-highlight-submatches.
(replace-dehighlight): Use query-replace-highlight-submatches.
* doc/emacs/search.texi (Query Replace):
Add documentation for query-replace-highlight-submatches.
Suggested by Drew Adams <drew.adams@oracle.com> in bug#43702.
* lisp/progmodes/grep.el (grep-expand-template): Add new arg 'more-opts'.
(grep-use-directories-skip): New variable.
(lgrep): Set 'grep-use-directories-skip' to the result of 'grep-probe'.
Use "--directories=skip" when 'grep-use-directories-skip' is t.
* lisp/simple.el (next-error-message-highlight):
(next-error-message): New faces (bug#32676).
(next-error--message-highlight-overlay): New internal variable.
(next-error-message-highlight): New function.
(next-error-found): Call the function.
* doc/emacs/indent.texi (Indent Convenience): Mention it.
* doc/lispref/text.texi (Mode-Specific Indent): Document it.
* lisp/indent.el (tab-first-completion): New variable (bug#34787).
(indent-for-tab-command): Use it.
* lisp/dired-x.el (dired-x-guess-filename-at-point): Rename (bug#43961).
(dired-filename-at-point): Made into an obsolete alias, since the name
can be confused with the unrelated dired-file-name-at-point function.
* src/emacs.c (main): Mark the return from strerror as a constant,
since it shouldn't be changed (bug#43982).
* lib-src/movemail.c (pfatal_and_delete): Ditto.
Copyright-paperwork-exempt: yes
* lisp/emacs-lisp/package.el (package-install-button-action)
(package-delete-button-action): Run describe-package instead of
revert-buffer in order to use newer package-desc (bug#43983).
* lisp/gnus/nnimap.el (nnimap-parse-flags):
Remove old hack that deletes MODSEQ entries in the buffer, as
Emacs now has bignums and so won't misparse MODSEQs (Bug#38938).
* doc/lispref/numbers.texi (Comparison of Numbers):
Copy some useful text from eql help string.
* src/fns.c (Feql): In doc string, say that eql also compares
integers by value.
* lisp/outline.el (outline-mode-map): Fix wording of a comment.
* doc/emacs/text.texi (Outline Visibility): Fix wording and markup
of a recently added paragraph. Improve indexing.
* etc/NEWS: Fix whitespace of a recently added entry.
Setting the word size ("b w") to 0 removes the word size clipping for
all bit operations (effectively as if a word size of -∞ had been set).
Rotation is disallowed; logical and arithmetic shifts behave
identically.
After a suggestion by Vincent Belaïche.
* lisp/calc/calc-bin.el (calc-word-size, math-binary-arg)
(math-binary-modulo-args, calcFunc-lsh, calcFunc-ash, calcFunc-rot)
(math-clip, math-format-twos-complement): Allow a word size of 0,
meaning -∞.
* test/lisp/calc/calc-tests.el
(calc-tests--not, calc-tests--and, calc-tests--or, calc-tests--xor)
(calc-tests--diff): New functions.
(calc-tests--clip, calc-tests--rot, calc-shift-binary): Extend to
cover word size 0.
(calc-bit-ops): New test.
* doc/misc/calc.texi (Binary Functions): Update manual.
* etc/NEWS: Announce the change.
Make the '/' precedence higher than that of '+' and '-' again,
partially reverting fda9b316f8 (bug#43902).
* lisp/calc/calc-lang.el (tex): Change precedence of '/'.
* test/lisp/calc/calc-tests.el (calc-latex-input): New test.
* doc/lispref/internals.texi (Module Values): Document
make_unibyte_string (bug#34873).
* src/emacs-module.c (module_make_unibyte_string): New function.
(initialize_environment): Export it.
* src/module-env-25.h: Define it.
* test/data/emacs-module/mod-test.c (Fmod_test_return_unibyte):
Test it.
* test/src/emacs-module-tests.el (module/unibyte): Test it.
* etc/emacs.service (ExecStop): Partially revert previous patch
for bug#37847, since: "This appears to break packages that rely on
`invocation-name' to be executable."
* lisp/outline.el (outline--cycle-state, outline-has-subheading-p)
(outline-cycle, outline-cycle-buffer): New functions.
(outline-mode-map): Add key bindings for the two new commands.
(outline--cycle-buffer-state): New variable.
* doc/emacs/text.text (Outline Visibility): Add 'outline-cycle' and
'outline-cycle-buffer'.
* etc/NEWS (Outline): Record the change (bug#41130).
* lisp/subr.el (read-char-choice): Use `read-char-from-minibuffer'
here (bug#42708) so that we're not as modal (and users can copy
the help buffer, if they should so want).