* lisp/newcomment.el (comment-region-internal): Previously, the
comment text had to contain at least one line break character for the
ending extra line to be added. Make the behavior more consistent by
looking for end of line instead.
(comment-region-internal): Remove trailing white space from the
comment's initial line.
Copyright-paperwork-exempt: yes
* doc/lispref/text.texi (Auto Filling): Add reference to Emacs
manual. Add description of 'comment-auto-fill-only-comments'.
* etc/NEWS: Mention new treatment of
'comment-auto-fill-only-comments'.
* lisp/net/tramp.el (tramp-autoload-file-name-handler): Load Tramp only if
`tramp-mode' is non-nil.
(tramp-unload-file-name-handlers): Unload also
`tramp-autoload-file-name-handler'.
* test/lisp/net/tramp-tests.el (tramp-test42-delay-load): Extend test.
According to the virtualenv docs only POSIX systems follow the
structure "/path/to/venv/bin/", while windows systems use
"/path/to/venv/Scripts" for the location of the binary files, most
importantly including the python interpreter (see:
https://virtualenv.pypa.io/en/stable/userguide/#windows-notes).
* lisp/progmodes/python.el (python-shell-calculate-exec-path): Use the
"/path/to/venv/Scripts" for `windows-nt' machines.
Copyright-paperwork-exempt: yes
* doc/misc/emacs-gnutls.texi (Help For Users): Update the
documentation of 'gnutls-available-p'.
* etc/NEWS (GnuTLS): Mention the change in the value returned by
'gnutls-available-p'.
* src/gnutls.c (Fgnutls_available_p): Return non-nil when GnuTLS
2.x is available. (Bug#29147)
* lisp/progmodes/flymake.el (flymake--highlight-line): Use
with-selected-window.
(flymake-goto-next-error): Call help-echo with a window and an
overlay.
* test/lisp/progmodes/flymake-tests.el (perl-backend)
(ruby-backend): New tests.
(warning-predicate-rx-perl, warning-predicate-function-perl):
Delete tests.
* test/lisp/progmodes/flymake-resources/test.pl: Include an
error the test file.
* test/lisp/progmodes/flymake-resources/test.rb: file.
Define a simple backend in perl-mode.el, which cperl-mode.el also
uses.
* lisp/progmodes/cperl-mode.el (cperl-mode): Add to
flymake-diagnostic-functions.
* lisp/progmodes/flymake-proc.el
(flymake-proc-allowed-file-name-masks): Disable legacy backend
for perl files.
* lisp/progmodes/perl-mode.el (perl-flymake-command): New
defcustom.
(perl--flymake-proc): New buffer-local variable.
(perl-flymake): New function.
(perl-mode): Add to flymake-diagnostic-functions.
* lisp/progmodes/ruby-mode.el (ruby-flymake-command): New
defcustom.
(ruby--flymake-proc): New buffer-local variable.
(ruby-flymake): New function.
(ruby-mode): Add flymake-diagnostic-functions.
Implement new Flymake backend with related customizable settings.
* lisp/progmodes/python.el (python-flymake-command)
(python-flymake-command-output-pattern)
(python-flymake-msg-alist): New defcustom.
(python--flymake-parse-output): New function, able to parse
python-flymake-command output accordingly to
python-flymake-command-output-pattern.
(python-flymake): New function implementing the backend
interface using python--flymake-parse-output for the real
work.
(python-mode): Add python-flymake to flymake-diagnostic-functions.
FreeBSD aarch64 does not provide sbrk, so gmalloc cannot be used; when
using system malloc dumping does not work correctly (allocated data is
invalid after dumping).
* configure.ac: Set hybrid_malloc for freebsd.
* src/gmalloc.c (gdefault_morecore) [!HAVE_SBRK]: Don't call sbrk.
* lisp/cedet/semantic/symref/grep.el
(semantic-symref-filepattern-alist): Fix the entry for
'html-mode', which used a regexp-like syntax where only glob
syntax is permitted. As a result, 'xref-find-references' (M-?)
can now find references in HTML files. Also duplicate the same
entry for the sake of 'mhtml-mode', and add a new one for
'python-mode'.
(semantic-symref-derive-find-filepatterns): In the documentation,
clarify that returned patterns must follow the glob syntax. Fix
an 'if' test that always evaluates to nil.
(semantic-symref-tool-grep):
(semantic-symref-perform-search): Fix typos.
* lisp/emacs-lisp/tabulated-list.el
(tabulated-list-watch-line-number-width): Call
tabulated-list-init-header instead of tabulated-list-revert.
(tabulated-list-window-scroll-function): New function.
(tabulated-list-mode): Put 'tabulated-list-window-scroll-function'
on the buffer-local 'window-scroll-functions' list.
* doc/lispref/windows.texi (Window Hooks): Fix the description of
window-configuration-change-hook. (Bug#29049)
<run-window-scroll-functions, run-window-configuration-change-hook>:
Document these functions.
Remove an erroneous interactive specification from two functions.
* lisp/progmodes/cc-cmds.el (c-display-defun-name): New command.
(c-defun-name, c-cpp-define-name): Remove interactive specification.
* lisp/progmodes/cc-mode.el (c-mode-base-map): Add binding C-c C-z for the new
command.
* doc/misc/cc-mode.texi (Other Commands): Add documentation for the new
command.
As in other Flymake backends, the process sentinel might run in
arbitrary buffers where this variable's value doesn't make sense.
For a way to trigger a problem due to this, see discussion starting in
https://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00645.html
* lisp/textmodes/tex-mode.el (tex-chktex): Use
with-current-buffer.
This is like xref-goto-xref, but quits the *xref* window just before
the user jump to ref.
* lisp/progmodes/xref.el (xref--show-location): Handle 'quit
value for SELECT.
(xref-goto-xref): Take optional QUIT arg.
(xref-quit-and-goto-xref): New command.
(xref--xref-buffer-mode-map): Bind "Q" and "TAB" to
xref-quit-and-goto-xref.
* doc/emacs/maintaining.texi (Xref Commands): Describe new bindings in
*xref*.
* etc/NEWS (Xref): Describe new binding.
As a fallback, and to avoid creating a frame, split-window-sensibly
would previously disregard split-height-threshold if the window to be
split is the frame's root window.
This change generalizes that: it disregards the threshold if the
window to be split is the frame's only _usable_ window (it is either
the only one, as before, or all the other windows are dedicated to
some buffer and thus cannot be touched).
This is required for the fix to bug#28814.
* lisp/window.el (split-height-threshold): Adjust doc to match
split-window-sensibly.
(split-window-sensibly): Also disregard threshold if all other
windows are dedicated.
When there is more than one xref to jump to, and an *xref* window
appears to help the user choose, the original intent to open a
definition in another window or frame is remembered when the choice to
go to or show a reference is finally made.
* lisp/progmodes/xref.el (xref--show-pos-in-buf): Rewrite.
(xref--original-window-intent): New variable.
(xref--original-window): Rename from xref--window and move up
here for clarity.
(xref--show-pos-in-buf): Rewrite. Don't take SELECT arg here.
(xref--show-location): Handle window selection decision here.
(xref--window): Rename to xref--original-window.
(xref-show-location-at-point): Don't attempt window management here.
(xref--show-xrefs): Ensure display-action intent is saved.
* src/lisp.h (GCALIGNMENT): Change it back to a macro
that expands to a literal integer constant, for older GCC.
I had mistakenly thought that only MSVC had the problem.
Problem repored by Eli Zaretskii (Bug#29040#69).