* lisp/textmodes/flyspell.el (flyspell-prog-mode): Record the
original M-TAB binding in a buffer-local variable.
(flyspell-auto-correct-word): Invoke the original binding of M-TAB
if that is recorded, when point is in a place where flyspell
should not be active (e.g., because the user turned on
'flyspell-prog-mode'). (Bug#18533)
* src/gtkutil.c (xg_get_page_setup): Use listn.
* src/xfns.c (Fx_export_frames, Fx_print_frames_dialog): Doc fix. Use
decode_window_system_frame and FRAME_VISIBLE_P.
(Fx_print_frames_dialog): Use redisplay_preserve_echo_area instead
of Fdisplay.
* src/xterm.c (x_cr_export_frames): Use redisplay_preserve_echo_area
instead of Fdisplay. Temporarily unblock_input around QUIT.
* doc/emacs/text.texi (TeX Print): Document
'tex-print-file-extension'.
* doc/emacs/programs.texi (Misc for Programs): Document support
for Prettify Symbols mode in TeX mode.
* lisp/progmodes/xref.el (xref-collect-matches): Undo
ill-advised change. The hits come in the order that `find'
produces them in, which isn't alphabetical.
* lisp/net/shr.el (shr-insert-document): Bind
bidi-display-reordering to nil while filling lines. This is
required for when a line includes characters whose bidi
directionality is opposite to the base paragraph direction,
because columns are counted in the logical order. (Bug#22250)
* doc/misc/trampver.texi: Change version to "2.2.13.25.1".
* lisp/net/tramp-compat.el (tramp-compat-delete-dups):
Use `tramp-compat-funcall'.
* lisp/net/tramp-gvfs.el (tramp-gvfs-parse-device-names):
Make `split-string' call compatible with older Emacsen.
* lisp/net/trampver.el: Change version to "2.2.13.25.1".
* lisp/mail/emacsbug.el (report-emacs-bug): If
`report-emacs-bug-no-explanations' is nil, make sure we can show
mail and warnings buffer on this frame (Bug#10873).
Use this in C, C++, and Objective C Modes. Fixes bug#22246
* src/syntax.c (comment-end-can-be-escaped): New buffer local variable.
(forw-comment, back-comment): On encountering an end of comment character,
test whether it is escaped when `comment-end-can-be-escaped' is non-nil.
* doc/lispref/syntax.texi (Control Parsing): Describe
`comment-end-can-be-escaped'.
* etc/NEWS (Lisp Changes): Describe `comment-end-can-be-escaped'.
* lisp/progmodes/cc-langs.el: New c-lang-setvar `comment-end-can-be-escaped'.
* lisp/progmodes/project.el (project-library-roots): Rename to
project-external-roots.
(project-library-roots-function): Rename to
project-vc-external-roots-function. Only use it in the VC
backend, for now. Update project-external-roots accordingly.
(project-vc-library-roots): Remove.
(project-or-libraries-find-regexp):
Rename to project-or-external-find-regexp.
* lisp/progmodes/elisp-mode.el (elisp-library-roots):
Rename to elisp-load-path-roots.
* lisp/progmodes/etags.el (etags-library-roots): Remove. Use
an anonymous function for the default value of
project-vc-external-roots-function.
* lisp/erc/erc-backend.el (erc-process-sentinel): Clear channel user
lists upon disconnection. This prevents invalid channel
user lists when reconnecting (bug#10947).
* erc-backend.el (erc-server-send-ping): If the server has
closed connection, this may already have been detected and
`erc-server-last-received-time' has been set to nil (bug#13608).
* lisp/erc/erc.el (erc-channel-receive-names): Fix errors
generated when multiple IRC clients talk to a single IRC proxy
(bug#19034).
Backport:
(cherry picked from commit 507e98a54d)
* lisp/erc/erc-backend.el (erc-server-setup-periodical-ping): Checks
for existing timers in the alist before adding new ones. If a
timer already exists, it is cancelled and
overwritten. (bug#19292).