* lisp/textmodes/picture.el (picture-insert): Don't rely on
'move-to-column' to move to the column that is its argument: this
might be false when full-width characters are involved.
* lisp/textmodes/picture.el (picture-insert): Measure width by
counting columns on display, not by using 'string-width', because
the latter is inaccurate when TABs are involved. (Bug#74255)
* lisp/textmodes/emacs-news-mode.el (emacs-news-mode-map): Move
non-editing commands from here...
(emacs-news-common-map): ... to here.
(emacs-news-view-mode): Remove hard-coded 'special-mode' bindings.
(emacs-news-view-mode-map): Inherit from 'special-mode-map' and
'emacs-news-common-map' here instead.
(emacs-news-mode--menu-common-1): New defconst for menu items common to
'news-mode' and 'news-view-mode'.
(emacs-news-mode--menu-common-2): Second new defconst for common items.
(emacs-news-mode-menu): Use them.
(emacs-news-view-mode-menu): New menu, which omits the buffer editing
commands.
This builds on the fix for Bug#72080.
* lisp/textmodes/artist.el (artist-key-undraw-continuously)
(artist-key-draw-continuously)
(artist-key-do-continuously-continuously)
(artist-key-do-continuously-poly)
(artist-key-do-continuously-1point)
(artist-key-do-continuously-2points)
(artist-key-do-continuously-common)
(artist-key-set-point-continuously)
(artist-mouse-draw-continuously): Rename functions to fix misspelling of
"continuously". Leave old function names as obsolete aliases and update
all callers.
(artist-mt, artist-go-get-undraw-fn, artist-go-get-interval-fn)
(artist-go-get-fill-pred, artist-go-get-fill-fn)
(artist-key-undraw-common, artist-key-draw-common)
(artist-key-do-continously-common, artist-key-set-point-common)
(artist-down-mouse-1): Rename symbol to 'artist-do-continuously' to fix
misspelling of "continuously". Continue supporting the old symbol for
backwards-compatibility.
* lisp/textmodes/reftex-cite.el (reftex-format-citation):
Recognize the alternative "journaltitle" field which is preferred
by biblatex. (bug#38762)
* test/lisp/textmodes/reftex-tests.el
(reftex-format-citation-test): Adjust test.
* lisp/textmodes/mhtml-mode.el (mhtml-mode): When running hooks
simulating inheritance from `prog-mode', use `run-mode-hooks' that
honors `delay-mode-hooks' macro. Note that `delay-mode-hooks' is bound
to non-nil when major mode body is evaluated, so there is no chance that
any major mode-related hooks are executed twice.
* lisp/textmodes/reftex-cite.el (reftex-all-used-citation-keys):
Match the citation keys used with multicite macros provided by
biblatex. (bug#38249)
* test/lisp/textmodes/reftex-tests.el
(reftex-all-used-citation-keys): Adjust test accordingly.
* lisp/textmodes/reftex-dcr.el (reftex-view-crossref-when-idle):
Check if point inside a mandatory argument where the cite/ref key
usually resides. For example, with \cite[45]{emacs:30} and point
on 4, the following bogus message in the echo area is suppressed:
"cite: no such database entry: \cite[45]". (bug#38258)
Fix docstring.
* lisp/textmodes/reftex-parse.el (reftex-move-to-previous-arg):
Recognize ')' as closing delimiter for optional argument.
Fix docstring.
(reftex-what-macro): Identify LaTeX macros with optional arguments
in parentheses correctly. This is necessary to make
`reftex-view-crossref' work with biblatex on entries like:
\parencites(Glob.Pre)(Glob.Post)[Pre][Post]{key1}[Pre][Post]{key2}
(bug#31132)
(flyspell--mode-on): Add flyspell-check-changes to post-command-hook
when flyspell-check-changes is non-nil.
(flyspell--mode-off): Remove flyspell-check-changes from post-command-hook.
(flyspell-check-changes): New function (bug#61874).
While `major-mode-remap-alist` provides a way for users to indicate the
major mode of their choice, we need a similar variable for the
use of packages.
This patch adds a new `major-mode-remap-defaults` and changes various
packages to obey it or make use of it.
I think it nicely cleans the regexp duplication between CC-mode and
`c-ts-mode.el` and also makes it easier/cleaner for users to override
the changes made by `*-ts-mode.el`.
* lisp/files.el (major-mode-remap-defaults): New variable.
(major-mode-remap): New function.
(set-auto-mode-0): Use it.
* doc/lispref/modes.texi (Auto Major Mode): Document them.
* lisp/textmodes/tex-mode.el (tex--redirect-to-submode):
Use `major-mode-remap`.
(major-mode-remap-defaults): Set it to remap AUCTeX modes by default.
* lisp/progmodes/ruby-ts-mode.el (auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/progmodes/c-ts-mode.el (c-or-c++-ts-mode): Use `major-mode-remap`.
(auto-mode-alist): Leave it alone.
(major-mode-remap-defaults): Set this one instead.
* lisp/org/ox.el (org-export-to-buffer): Modernize docstring accordingly.
* lisp/progmodes/cc-mode.el (c-or-c++-mode):
* lisp/org/ox-latex.el (org-latex-export-as-latex):
* lisp/org/ox-koma-letter.el (org-koma-letter-export-as-latex):
* lisp/org/ox-beamer.el (org-beamer-export-as-latex):
Use `major-mode-remap` when available.