* time-stamp.el (time-stamp-format): Untabify the doc string, so
the two-column layout displays consistently in several contexts,
in particular when displayed by customize-variable.
* lisp/emacs-lisp/checkdoc.el (checkdoc-defun-info): Make checkdoc
work for cl-lib methods with more complex parameter lists
(bug#37063).
Copyright-paperwork-exempt: yes
* lisp/progmodes/compile.el
(compilation-transform-file-match-alist): New variable (bug#32968).
(compilation-error-properties): Use it to remove known false
positives.
(compilation-error-regexp-alist): Mention it in this doc string.
* lisp/tab-bar.el (tab-bar-tab-name-selected-window): Don't show the number
of windows when there is only one window in the window configuration.
(tab-bar-close-other-tabs): Rename from tab-close-other.
Take into account tab-bar-show to turn off when needed.
(tab-close-other): Alias to tab-bar-close-other-tabs.
* lisp/gnus/nnimap.el (nnimap-request-set-mark): Fix thinko in the
tick/read change: Unticking a message shouldn't make it unread,
but ticking it should make it read.
* lisp/gnus/mml-sec.el (mml-secure-epg-sign): Bug out if we
couldn't find anything to sign with instead of silently pretending
to sign.
* lisp/gnus/mml-smime.el (mml-smime-epg-sign): Don't bind
inhibit-display because that makes debugging impossible.
* time-stamp.el (time-stamp-string-preprocess): Revert change to "%04y"
format made 2 weeks ago by commit 0e56883878 (the previous commit to
this file). Although undocumented, "%04y" was discovered to be in use
in the wild (2016) and had not issued a warning that it would change.
Add a warning that it will change.
* time-stamp-tests.el (time-stamp-test-year-2digit): add test of "%04y"
* lisp/textmodes/rst.el (rst-compile-pdf-preview): Warn about missing
executables when attempting to compile and preview an RST file as PDF.
(Bug#30063)
* time-stamp-tests.el (time-stamp-test-year): break into two tests,
time-stamp-test-year-2digit and time-stamp-test-year-4digit. Expand
time-stamp-test-year-2digit to look more like tests for other 2-digit
conversions.
* doc/lispref/internals.texi (Writing Emacs Primitives): Add
description of DEFVAR_* arguments. Describe variable naming
conventions. Explain how to express quoting of symbols in C, plus
'specbind' and how to create buffer-local variables.
* lisp/net/tramp-sh.el (tramp-sh-extra-args): Extend zsh
arguments. Add :version.
(tramp-maybe-open-connection): Use extra args for
`tramp-encoding-shell'. (Bug#31924)
* src/xdisp.c (syms_of_xdisp) <display-line-numbers-offset>:
New variable to add an offset to absolute line numbers.
(syms_of_xdisp) <display-line-numbers>: Mention it in docstring.
(maybe_produce_line_number): Use it.
* doc/emacs/display.texi (Display Custom): Document it.
* etc/NEWS (value): Announce it.
* lisp/frame.el: Add `display-line-numbers-offset' to list of
variables which should trigger redisplay of the current buffer.
* src/xdisp.c (maybe_produce_line_number): Check beyond_zv
before using a tick face for the line number. Move all face
selection code outside the loop that draws the line number.
* lisp/progmodes/etags.el (visit-tags-table): Reimplement
`tags--find-default-tags-dir-recursively' using the much simpler
`locate-dominating-file'. Following up bug#37518.
* lisp/image-mode.el (image-next-file): If the image is in a dired
buffer, then move point in that buffer when advancing
(bug#21752). This makes it easier to select images.
* lisp/menu-bar.el ()
(menu-bar--display-line-numbers-mode-visual)
(menu-bar--display-line-numbers-mode-relative)
(menu-bar--display-line-numbers-mode-absolute)
(menu-bar--display-line-numbers-mode-none)
(menu-bar--visual-line-mode-enable)
(menu-bar--toggle-truncate-long-lines)
(menu-bar--wrap-long-lines-window-edge): Make lambdas into trivial
wrapper functions so that `C-h k' on the menu items work (bug#13841).
(menu-bar-showhide-line-numbers-menu)
(menu-bar-line-wrapping-menu): Use them.
* src/textprop.c (add_properties): Take a parameter to say whether
it's allowed to be destructive or not (bug#20153).
(add_text_properties_1): Ditto.
(Fadd_face_text_property): Use this to say that it shouldn't
modify face properties on strings destructively. This avoids
altering the face properties of one string when altering them on a
copy of the string.